ExtLowerIpv4NetworkLayer

Package: inet.emulation.networklayer.ipv4

ExtLowerIpv4NetworkLayer

compound module

Provides a simplified network layer for emulation that connects the simulation to a real network on the host computer. Uses ~ExtLowerIpv4 to send packets from the simulation to the real network and receive packets from the real network into the simulation using raw sockets.

Using this network layer in a host or router implies that layers above IPv4 are simulated, while layers below IPv4 are provided by the host operating system.

ip : like IIpv4

ExtLowerIpv4: Provides IPv4 layer functionality for network emulation that connects the simulation to a real...

IIpv4: Module interface for IPv4 protocol implementations.

Source:
ip: <default("ExtLowerIpv4")> like IIpv4 {
    parameters:
        @display("p=50,50");
}

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.

Properties

Name Value Description
display i=block/fork

Gates

Name Direction Size Description
ifIn input
ifOut output
transportIn input
transportOut output

Source code

//
// Provides a simplified network layer for emulation that connects the simulation
// to a real network on the host computer. Uses ~ExtLowerIpv4 to send packets from
// the simulation to the real network and receive packets from the real network
// into the simulation using raw sockets.
//
// Using this network layer in a host or router implies that layers above IPv4
// are simulated, while layers below IPv4 are provided by the host operating system.
//
module ExtLowerIpv4NetworkLayer like INetworkLayer
{
    parameters:
        @display("i=block/fork");

    gates:
        input ifIn @labels(INetworkHeader);
        output ifOut @labels(INetworkHeader);
        input transportIn @labels(Ipv4ControlInfo/down);
        output transportOut @labels(Ipv4ControlInfo/up);

    submodules:
        ip: <default("ExtLowerIpv4")> like IIpv4 {
            parameters:
                @display("p=50,50");
        }

    connections allowunconnected:
        transportIn --> ip.transportIn;
        transportOut <-- ip.transportOut;
}

File: src/inet/emulation/networklayer/ipv4/ExtLowerIpv4NetworkLayer.ned