Simple Module LDP

Package: inet.networklayer.ldp
File: src/inet/networklayer/ldp/LDP.ned

C++ definition

Handles and processes LDP messages.

The LDP protocol is used by one LSR (Label Switched Router) to inform another LSR of the label bindings it has made. The LSR uses this protocol to establish label switched paths through a network by mapping network layer routing information directly to data-link layer switched paths.

Operations

All LDP message types are subclassed from LDPPacket, and include LDPHello, LDPNotify, LDPLabelRequest, LDPIni and LDPAddress.

Message processing in the LDP module is explained in LDP Message Processing

Author: Andras Varga, Vojta Janota

LDP

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.

Used in compound modules:

Name Type Description
LDP_LSR compound module

An LDP-capable router.

Parameters:

Name Type Default value Description
interfaceTableModule string

The path to the InterfaceTable module

routingTableModule string
libTableModule string
tedModule string
holdTime double 15s
helloInterval double 5s
dataTransferMode string "bytecount"

TCP data transfer mode

Properties:

Name Value Description
display i=block/control

Gates:

Name Direction Size Description
tcpIn input
udpIn input
tcpOut output
udpOut output

Source code:

//
// Handles and processes LDP messages.
//
// The LDP protocol is used by one LSR (Label Switched Router) to inform
// another LSR of the label bindings it has made. The LSR uses this protocol
// to establish label switched paths through a network by mapping network layer
// routing information directly to data-link layer switched paths.
//
// Operations
//
// All LDP message types are subclassed from ~LDPPacket, and include
// ~LDPHello, ~LDPNotify, ~LDPLabelRequest, ~LDPIni and ~LDPAddress.
//
// Message processing in the ~LDP module is explained in
// <a href="ldp-processing.html">~LDP Message Processing</a>
//
// @author Andras Varga, Vojta Janota
//
simple LDP
{
    parameters:
        string interfaceTableModule;   // The path to the InterfaceTable module
        string routingTableModule;
        string libTableModule;
        string tedModule;
        double holdTime @unit("s") = default(15s);
        double helloInterval @unit("s") = default(5s);
        string dataTransferMode @enum("bytecount","object","bytestream") = default("bytecount"); // TCP data transfer mode
        @display("i=block/control");
    gates:
        input tcpIn @labels(TCPCommand/up);
        input udpIn @labels(UDPControlInfo/up);
        output tcpOut @labels(TCPCommand/down);
        output udpOut @labels(UDPControlInfo/down);
}