Compound Module MultiRoutingTable

Package: inet.networklayer.multi
File: src/inet/networklayer/multi/MultiRoutingTable.ned

This module supports multiple different routing tables simultaneously. The actual routes are stored in the submodule routing tables and they are accessed directly by modules.

IRoutingTable IRoutingTable IRoutingTable

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
enableIPv4 bool haveClass("inet::IPv4RoutingTable")
enableIPv6 bool haveClass("inet::IPv6RoutingTable")
enableGeneric bool haveClass("inet::GenericRoutingTable")
forwarding bool
multicastForwarding bool

Properties:

Name Value Description
display i=block/table

Source code:

//
// This module supports multiple different routing tables simultaneously.
// The actual routes are stored in the submodule routing tables and they
// are accessed directly by modules.
//
module MultiRoutingTable like IRoutingTable
{
    parameters:
        string interfaceTableModule;
        *.interfaceTableModule = default(absPath(interfaceTableModule));
        @display("i=block/table");
        bool enableIPv4 = default(haveClass("inet::IPv4RoutingTable"));
        bool enableIPv6 = default(haveClass("inet::IPv6RoutingTable"));
        bool enableGeneric = default(haveClass("inet::GenericRoutingTable"));
        bool forwarding;
        bool multicastForwarding;

    submodules:
        ipv4: <"IPv4RoutingTable"> like IRoutingTable if enableIPv4 {
            @display("p=50,50;is=s");
            forwarding = forwarding;
            multicastForwarding = multicastForwarding;
        }
        ipv6: <"IPv6RoutingTable"> like IRoutingTable if enableIPv6 {
            @display("p=50,100;is=s");
            forwarding = forwarding;
            multicastForwarding = multicastForwarding;
        }
        generic: <"GenericRoutingTable"> like IRoutingTable if enableGeneric {
            @display("p=50,150;is=s");
            forwarding = forwarding;
            multicastForwarding = multicastForwarding;
        }
}