LibTable

Package: inet.networklayer.mpls

LibTable

simple module

C++ definition

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/.

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
LdpMplsRouter compound module

An LDP-capable router.

RsvpMplsRouter compound module

An RSVP-TE capable router.

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("")

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