LinkStateRouting

Package: inet.networklayer.ted

LinkStateRouting

simple module

This module implements a very minimalistic link state routing protocol. Apart from the basic topology information, the current link usage is distributed to all participants in the network (by means of flooding).

Collaborations

The link state database is kept in the Ted module.

Used in compound modules

Name Type Description
LdpMplsRouter compound module

An LDP-capable router.

RsvpMplsRouter compound module

An RSVP-TE capable router.

Parameters

Name Type Default value Description
interfaceTableModule string

The path to the InterfaceTable module

routingTableModule string
tedModule string
peers string

Properties

Name Value Description
display i=block/network2

Gates

Name Direction Size Description
ipIn input
ipOut output

Scheduled messages (observed)

msgkindctrltagsmsgnamecontext
omnetpp::cMessage0announce

Direct method calls (observed)

call tofunctioninfo
MessageDispatcherinet::MessageDispatcher::arrivedarrived
MessageDispatcherinet::MessageDispatcher::handleRegisterProtocolhandleRegisterProtocol
InterfaceTableinet::InterfaceTable::findInterfaceByNamefindInterfaceByName
Ipv4RoutingTableinet::Ipv4RoutingTable::addRouteaddRoute(...)
Ipv4RoutingTableinet::Ipv4RoutingTable::deleteRoutedeleteRoute(...)
Ipv4RoutingTableinet::Ipv4RoutingTable::getInterfaceByAddressgetInterfaceByAddress(%u.%u.%u.%u)

Called methods (observed)

functioninfocall from
inet::LinkStateRouting::receiveSignaltedChangedRsvpTe

Incoming messages (observed)

gatemsgkindctrlsrcModuletags
ipInPacket0Ipv4DispatchProtocolReq, DscpInd, EcnInd, HopLimitInd, InterfaceInd, L3AddressInd, NetworkProtocolInd, PacketProtocolTag, TosInd

Outgoing messages (observed)

gatemsgkindctrldestModuletags
ipOutPacket0Ipv4DispatchProtocolInd, DispatchProtocolReq, L3AddressReq, PacketProtocolTag

Packet operations (observed)

chunkTypepacketAction
LinkStateMsginsertAtBack, peekAtFront

Shared Tagging operations (observed)

tagTypetagAction
DispatchProtocolIndaddTagIfAbsent
DispatchProtocolReqaddTagIfAbsent
L3AddressIndgetTag
L3AddressReqaddTagIfAbsent
PacketProtocolTagaddTagIfAbsent

Tagging operations (observed)

tagTypetagAction
inet::Ipv4InterfaceDatagetTag

Source code

//
// This module implements a very minimalistic link state routing protocol.
// Apart from the basic topology information, the current link usage
// is distributed to all participants in the network (by means of flooding).
//
// Collaborations
//
// The link state database is kept in the ~Ted module.
//
simple LinkStateRouting
{
    parameters:
        string interfaceTableModule;   // The path to the InterfaceTable module
        string routingTableModule;
        string tedModule;
        string peers;
        @display("i=block/network2");
    gates:
        input ipIn @labels(Ipv4ControlInfo/up);
        output ipOut @labels(Ipv4ControlInfo/down);
}

File: src/inet/networklayer/ted/LinkStateRouting.ned