ExtUpperIpv4NetworkLayer

Package: inet.emulation.networklayer.ipv4

ExtUpperIpv4NetworkLayer

compound module

(no description)

Ipv4NodeConfigurator Ipv4RoutingTable IIpv4 IArp MessageDispatcher

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.

Parameters

Name Type Default value Description
interfaceTableModule string

Properties

Name Value Description
display i=block/fork

Gates

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

Unassigned submodule parameters

Name Type Default value Description
configurator.interfaceTableModule string

The path to the InterfaceTable module

configurator.routingTableModule string
configurator.networkConfiguratorModule string "configurator"

TODO eventually rename to networkConfigurator

configurator.configureRoutingTable bool true

add routing entries to routing table (uses the configurator module)

routingTable.interfaceTableModule string

The path to the InterfaceTable module

routingTable.routerId string "auto"

for routers, the router id using IPv4 address dotted notation; specify "auto" to select the highest interface address; should be left empty ("") for hosts

routingTable.netmaskRoutes string "*"

maintain netmask routes for interfaces

routingTable.forwarding bool true

turns IP forwarding on/off

routingTable.multicastForwarding bool false

turns multicast forwarding on/off

routingTable.useAdminDist bool false

Use Cisco like administrative distances

routingTable.routingFile string ""

routing table file name

lp.displayStringTextFormat string "processed %p pk (%l)"

determines the text that is written on top of the submodule

lp.forwardServiceRegistration bool true
lp.forwardProtocolRegistration bool true

Source code

module ExtUpperIpv4NetworkLayer like INetworkLayer
{
    parameters:
        string interfaceTableModule;
        *.interfaceTableModule = default(absPath(this.interfaceTableModule));
        *.routingTableModule = default(absPath(".routingTable"));
        @display("i=block/fork");

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

    submodules:
        configurator: Ipv4NodeConfigurator {
            parameters:
                @display("p=100,100;is=s");
        }
        routingTable: Ipv4RoutingTable {
            parameters:
                @display("p=100,200;is=s");
        }
        ip: <default("ExtUpperIpv4")> like IIpv4 {
            parameters:
                @display("p=500,100");
        }
        arp: <default("Arp")> like IArp {
            parameters:
                @display("p=200,100;q=pendingQueue");
        }
        lp: MessageDispatcher {
            parameters:
                @display("p=350,200;b=600,5");
        }

    connections allowunconnected:
        arp.ifOut --> lp.in++;
        arp.ifIn <-- lp.out++;

        ip.queueOut --> lp.in++;
        ip.queueIn <-- lp.out++;

        lp.out++ --> { @display("m=s"); } --> ifOut;
        lp.in++ <-- { @display("m=s"); } <-- ifIn;
}

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