LibTable

Package: inet.networklayer.mpls

simple module LibTable

Stores the LIB (Label Information Base), accessed by Mpls and its associated control protocols (RsvpTe, Ldp) via direct C++ method calls.

The config file must have the following format:

The root element is <libtable>, which contains any number of <libentry> children. <libentry> represents an entry (row) in the table, and must have the following child elements:

  • <inLabel>: input label (integer)

  • <inInterface>: input interface (interface name)

  • <outInterface>: output interface (interface name)

  • <outLabel>: output label operations, see below.

  • <color>: color (integer); this element is optional.

The <outLabel> element describes the output label operations in <op> child elements. <op> has two attributes:

  • code: accepted values are “push”, “pop” and “swap”.

  • value: label value for “push” (integer)

A DTD is available in inet/etc/.

inet.networklayer.mpls.LibTableLibTablesimple

Usage diagram

Inheritance diagram

Used in compound modules

Name

Type

Description

MplsRouterBase

compound module

Base module for MPLS-capable routers. Extends the standard Router with the MPLS data plane (Mpls, LibTable) and the Traffic Engineering Database (Ted, LinkStateRouting) common to all MPLS signaling protocols.

Extends

Name

Type

Description

SimpleModule

simple module

Base module for all INET simple modules.

Parameters

Name

Type

Default value

Description

displayStringTextFormat

string

“”

Determines the text that is written on top of the submodule, supports displaying pars, watches, and module-specific information

config

xml

xml(“<libtable/>”)

Table contents to be loaded on startup

Properties

Name

Value

Description

class

LibTable

display

i=block/table2

Source code

//
// Stores the LIB (Label Information Base), accessed by ~Mpls and its
// associated control protocols (~RsvpTe, ~Ldp) via direct C++ method calls.
//
// The config file must have the following format:
//
// The root element is <libtable>, which contains any number of
// <libentry> children. <libentry> represents an entry (row) in
// the table, and must have the following child elements:
// - <inLabel>: input label (integer)
// - <inInterface>: input interface (interface name)
// - <outInterface>: output interface (interface name)
// - <outLabel>: output label operations, see below.
// - <color>: color (integer); this element is optional.
//
// The <outLabel> element describes the output label operations in
// <op> child elements. <op> has two attributes:
// - code: accepted values are "push", "pop" and "swap".
// - value: label value for "push" (integer)
//
// A DTD is available in inet/etc/.
//
simple LibTable extends SimpleModule
{
    parameters:
        @class(LibTable);
        xml config = default(xml("<libtable/>")); // Table contents to be loaded on startup
        @display("i=block/table2");
}

File: src/inet/networklayer/mpls/LibTable.ned