Compound Module BurstHost

File: Nodes/INET/BurstHost.ned

Definition of an IP node with a transport generator that connects to IP directly, without TCP or UDP.

notificationBoard: NotificationBoard interfaceTable: InterfaceTable routingTable: RoutingTable trafGen: trafGenType like IPTrafficGenerator networkLayer: NetworkLayer ppp: PPPInterface

Usage diagram:

The following diagram shows usage relationships between modules, networks and channels. Unresolved module (and channel) types are missing from the diagram. Click here to see the full picture.

BurstHost IPTrafficGenerator NotificationBoard InterfaceTable RoutingTable PPPInterface NetworkLayer

Contains the following modules:

If a module type shows up more than once, that means it has been defined in more than one NED file.

IPTrafficGenerator

Prototype for modules that generate traffic directly over IP.

InterfaceTable

Keeps the table of network interfaces.

NetworkLayer

Network layer of an IP node.

NotificationBoard

Using NotificationBoard, modules can now notify each other about "events" such as routing table changes, interface status changes (up/down), interface configuration changes, wireless handovers, changes in the state of the wireless channel, mobile node position changes, etc.

PPPInterface

PPP interface. Complements the PPP module with an output queue for QoS and RED support.

RoutingTable

Stores the routing table. (Per-interface configuration is stored in InterfaceTable.)

Parameters:

Name Type Description
trafGenType string
IPForward bool
routingFile string

Gates:

Name Direction Description
in [ ] input
out [ ] output

Unassigned submodule parameters:

Name Type Description
networkLayer.proxyARP bool
networkLayer.ip.procDelay numeric const
networkLayer.arp.retryTimeout numeric

number seconds ARP waits between retries to resolve an IP address

networkLayer.arp.retryCount numeric

number of times ARP will attempt to resolve an IP address

networkLayer.arp.cacheTimeout numeric

number seconds unused entries in the cache will time out

ppp[*].queueType string

Source code:

module BurstHost
    parameters:
        trafGenType : string,
        IPForward : bool,
        routingFile : string;
    gates:
        in: in[];
        out: out[];
    submodules:
        notificationBoard: NotificationBoard;
            display: "p=83,66;i=block/control";
        interfaceTable: InterfaceTable;
            display: "p=83,136;i=block/table";
        routingTable: RoutingTable;
            parameters:
                IPForward = IPForward,
                routerId = "",
                routingFile = routingFile;
            display: "p=83,206;i=block/table";
        trafGen: trafGenType like IPTrafficGenerator;
            display: "i=block/app;p=198,86";
        networkLayer: NetworkLayer;
            gatesizes:
                ifIn[1],
                ifOut[1];
            display: "p=198,173;i=block/fork;q=queue";
        ppp: PPPInterface[1];
            display: "p=198,262,row,90;q=txQueue;i=block/ifcard";
    connections nocheck:
        // transport connections
        networkLayer.UDPOut --> trafGen.from_ip;
        networkLayer.UDPIn <-- trafGen.to_ip;

        // connections to network outside
        for i=0..0 do
            in[i] --> ppp[i].physIn;
            out[i] <-- ppp[i].physOut;
            ppp[i].netwOut --> networkLayer.ifIn[i];
            ppp[i].netwIn <-- networkLayer.ifOut[i];
        endfor;

endmodule