Package: inet.networklayer.ipv6
Ipv6RoutingTable
simple moduleIPv6 Routing Table and Neighbour Discovery data structures. NOTE: This component MUST be named as "routingTable6" inside a StandardHost/Router etc. in order to be accessible by the Ipv6 and other modules
See also: Ipv6, Ipv6NeighbourDiscovery, Icmpv6
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 |
|---|---|---|
| Ipv6NetworkLayer | compound module |
Represents an IPv6 network layer (L3). |
Parameters
| Name | Type | Default value | Description |
|---|---|---|---|
| interfaceTableModule | string |
The path to the InterfaceTable module |
|
| ipv6TunnelingModule | string | "^.ipv6.iptunneling" | |
| routes | xml | xml(" |
|
| forwarding | bool | false | |
| isRouter | bool | this.forwarding | |
| multicastForwarding | bool | false | |
| useAdminDist | bool | false |
Use Cisco like administrative distances |
Properties
| Name | Value | Description |
|---|---|---|
| display | i=block/table |
Signals
| Name | Type | Unit |
|---|---|---|
| routeDeleted | inet::Ipv6Route | |
| mrouteChanged | inet::IPv6MulticastRoute | |
| mrouteDeleted | inet::IPv6MulticastRoute | |
| routeChanged | inet::Ipv6Route | |
| mrouteAdded | inet::IPv6MulticastRoute | |
| routeAdded | inet::Ipv6Route |
Direct method calls (observed)
| call to | function | info |
|---|---|---|
| InterfaceTable | inet::InterfaceTable::interfaceChanged | interfaceChanged |
| EigrpIpv4Pdm | inet::eigrp::EigrpIpv4Pdm::receiveSignal | routeDeleted |
| EigrpIpv6Pdm | inet::eigrp::EigrpIpv6Pdm::receiveSignal | routeDeleted |
Called methods (observed)
| function | info | call from |
|---|---|---|
| inet::Ipv6RoutingTable::doLongestPrefixMatch | doLongestPrefixMatch(%s) | Ipv6NeighbourDiscovery, Ipv6, Dymo, Sctp |
| inet::Ipv6RoutingTable::getInterfaceByAddress | getInterfaceByAddress(%s)=? | Ipv6 |
| inet::Ipv6RoutingTable::isLocalAddress | isLocalAddress(%s) | Ipv6, Dymo, Gpsr, Rip |
| inet::Ipv6RoutingTable::lookupDestCache | lookupDestCache(%s) | Ipv6 |
| inet::Ipv6RoutingTable::receiveSignal | interfaceConfigChanged | InterfaceTable |
| inet::Ipv6RoutingTable::receiveSignal | interfaceIpv6ConfigChanged | InterfaceTable |
| inet::Ipv6RoutingTable::receiveSignal | interfaceStateChanged | InterfaceTable |
Tagging operations (observed)
| tagType | tagAction |
|---|---|
| inet::Ipv6InterfaceData | addTag, findTag, getTag, getTagForUpdate |
| inet::NextHopInterfaceData | findTag |
Source code
// // IPv6 Routing Table and Neighbour Discovery data structures. // NOTE: This component MUST be named as "routingTable6" inside // a ~StandardHost/~Router etc. in order to be accessible by the // ~Ipv6 and other modules // // @see ~Ipv6, ~Ipv6NeighbourDiscovery, ~Icmpv6 // simple Ipv6RoutingTable like IRoutingTable { parameters: string interfaceTableModule; // The path to the InterfaceTable module string ipv6TunnelingModule = default("^.ipv6.iptunneling"); @display("i=block/table"); xml routes = default(xml("<routingTable/>")); bool forwarding = default(false); bool isRouter = default(this.forwarding); bool multicastForwarding = default(false); bool useAdminDist = default(false); // Use Cisco like administrative distances @signal[routeAdded](type=inet::Ipv6Route); @signal[routeChanged](type=inet::Ipv6Route); @signal[routeDeleted](type=inet::Ipv6Route); @signal[mrouteAdded](type=inet::IPv6MulticastRoute); @signal[mrouteDeleted](type=inet::IPv6MulticastRoute); @signal[mrouteChanged](type=inet::IPv6MulticastRoute); }File: src/inet/networklayer/ipv6/Ipv6RoutingTable.ned