Compound Module RSVP_LSR

Package: inet.nodes.mpls
File: src/nodes/mpls/RSVP_LSR.ned

An RSVP-TE capable router.

RSVP occupies the Transport layer; however, it is not a transport protocol itself. RSVP uses transport protocols to route packets. TED is used to calculate shortest paths.

NotificationBoard RoutingTable InterfaceTable TED LinkStateRouting RSVP SimpleClassifier NetworkLayer PPPInterface MPLS LIBTable NAMTraceWriter

Usage diagram:

The following diagram shows usage relationships between types. Unresolved types are missing from the diagram. Click here to see the full picture.

Inheritance diagram:

The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram. Click here to see the full picture.

Networks:

R37 (network) (no description)
R37orig (network) (no description)
RSVPTE4 (network)

Example network to demonstrate RSVP-TE.

RSVPTE4 (network)

Example network to demonstrate RSVP-TE.

RSVPTE4 (network)

Example network to demonstrate RSVP-TE.

RSVPTE4 (network)

Example network to demonstrate RSVP-TE.

RSVPTE4 (network)

Example network to demonstrate RSVP-TE.

Parameters:

Name Type Default value Description
namid int -1
peers string
routerId string "auto"
routingFile string ""

Properties:

Name Value Description
node
labels node
display i=abstract/router

Gates:

Name Direction Size Description
pppg [ ] inout

Unassigned submodule parameters:

Name Type Default value Description
rsvp.traffic xml

specifies paths to set up

rsvp.helloInterval double
rsvp.helloTimeout double
classifier.conf xml
networkLayer.ip.procDelay double 0s
networkLayer.arp.retryTimeout double 1s

number seconds ARP waits between retries to resolve an IP address

networkLayer.arp.retryCount int 3

number of times ARP will attempt to resolve an IP address

networkLayer.arp.cacheTimeout double 120s

number seconds unused entries in the cache will time out

ppp.ppp.mtu int 4470
libTable.conf xml

table contents to be loaded on startup

Source code:

//
// An \RSVP-TE capable router.
//
// \RSVP occupies the Transport layer; however, it is not a transport protocol
// itself. \RSVP uses transport protocols to route packets. TED is used
// to calculate shortest paths.
//
module RSVP_LSR
{
    parameters:
        @node();
        @labels(node,mpls-node);
        @display("i=abstract/router");
        int namid = default(-1);
        string peers;
        string routerId = default("auto");
        string routingFile = default("");
    gates:
        inout pppg[] @labels(PPPFrame-conn);
    submodules:
        notificationBoard: NotificationBoard {
            parameters:
                @display("p=74,57");
        }
        routingTable: RoutingTable {
            parameters:
                IPForward = true;
                routerId = routerId;
                routingFile = routingFile;
                @display("p=68,138");
        }
        interfaceTable: InterfaceTable {
            parameters:
                @display("p=68,208");
        }
        ted: TED {
            parameters:
                @display("p=312,203");
        }
        linkStateRouting: LinkStateRouting {
            parameters:
                peers = peers;
                @display("p=254,115");
        }
        rsvp: RSVP {
            parameters:
                peers = peers;
                @display("p=156,67");
        }
        classifier: SimpleClassifier {
            parameters:
                @display("p=330,67");
        }
        networkLayer: NetworkLayer {
            parameters:
                @display("p=192,195");
            gates:
                ifIn[sizeof(pppg)];
                ifOut[sizeof(pppg)];
        }
        ppp[sizeof(pppg)]: PPPInterface {
            parameters:
                @display("p=88,329,row,90;q=l2queue");
        }
        mpls: MPLS {
            parameters:
                classifier = "classifier";
                @display("p=192,270");
            gates:
                netwIn[sizeof(pppg)];
                netwOut[sizeof(pppg)];
                ifIn[sizeof(pppg)];
                ifOut[sizeof(pppg)];
        }
        libTable: LIBTable {
            parameters:
                @display("p=312,268");
        }
        namTrace: NAMTraceWriter {
            parameters:
                namid = namid;
                @display("p=70,270");

        }
    connections allowunconnected:
        linkStateRouting.ipOut --> networkLayer.ospfIn;
        linkStateRouting.ipIn <-- networkLayer.ospfOut;

        rsvp.ipOut --> networkLayer.rsvpIn;
        rsvp.ipIn <-- networkLayer.rsvpOut;

        for i=0..sizeof(pppg)-1 {
            pppg[i] <--> ppp[i].phys;

            ppp[i].netwOut --> mpls.ifIn[i];
            ppp[i].netwIn <-- mpls.ifOut[i];

            mpls.netwOut[i] --> networkLayer.ifIn[i];
            mpls.netwIn[i] <-- networkLayer.ifOut[i];
        }
}