ExtUpperIpv4

Package: inet.emulation.networklayer.ipv4

ExtUpperIpv4

compound module

Provides IPv4 layer functionality for network emulation that connects simulated applications to a real network on the host computer. Uses a real TUN device on the host OS to capture and inject packets at the IP layer, allowing simulated applications to communicate with real-world network endpoints through the host's networking stack.

tun : ExtIpv4TunDevice

Provides a bidirectional connection to a real TUN device of the host computer which is running the...

Source:
tun: ExtIpv4TunDevice {
    parameters:
        @display("p=100,150");
}

Usage diagram

The following diagram shows usage relationships between types. Unresolved types are missing from the diagram.

Inheritance diagram

The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.

Gates

Name Direction Size Description
transportIn input
transportOut output
queueIn input
queueOut output

Unassigned submodule parameters

Name Type Default value Description
tun.displayStringTextFormat string ""

Determines the text that is written on top of the submodule, supports displaying pars, watches, and module-specific information

tun.device string
tun.namespace string ""
tun.packetNameFormat string "Ext"

Source code

//
// Provides IPv4 layer functionality for network emulation that connects
// simulated applications to a real network on the host computer. Uses a real
// TUN device on the host OS to capture and inject packets at the IP layer,
// allowing simulated applications to communicate with real-world network
// endpoints through the host's networking stack.
//
module ExtUpperIpv4 like IIpv4
{
    gates:
        input transportIn @labels(Ipv4ControlInfo/down,TcpHeader,UdpHeader,SctpHeader);
        output transportOut @labels(Ipv4ControlInfo/up,TcpHeader,UdpHeader,SctpHeader);
        input queueIn @labels(Ipv4Header,ArpPacket,Ieee802Ctrl);
        output queueOut @labels(Ipv4Header,ArpPacket,Ieee802Ctrl);
    submodules:
        tun: ExtIpv4TunDevice {
            parameters:
                @display("p=100,150");
        }
    connections allowunconnected:
        queueIn --> tun.lowerLayerIn;
        queueOut <-- tun.lowerLayerOut;
}
File: src/inet/emulation/networklayer/ipv4/ExtUpperIpv4.ned