Package: inet.networklayer.common
InterfaceTable
simple moduleKeeps the table of network interfaces.
Interfaces are dynamically registered by the corresponding L2 modules, e.g. PppInterface. In addition to registered interfaces, a loopback interface will also be created. This table only contains protocol-independent properties of interfaces -- IPv4 or IPv6 specific per-interface data (addresses etc) are kept in Ipv4RoutingTable and Ipv6RoutingTable. Must be named as "interfaceTable".
This module has no gates; all functionality can be accessed via member functions of the C++ module class. For detailed info, please see the C++ documentation of the class (Doxygen).
Used in compound modules
| Name | Type | Description |
|---|---|---|
| AccessPoint | compound module |
A generic access point supporting multiple wireless radios, and multiple ethernet ports. The type of the ethernet MAC, relay unit and wireless card can be specified as parameters. |
| EthernetHost | compound module |
An example host with one Ethernet port and a traffic generator that generates request-reply traffic directly over Ethernet. This host model does not contain higher layer protocols (IP, TCP). By default it is configured to use half-duplex MAC (CSMA/CD). |
| EthernetSwitch | compound module |
Model of an Ethernet switch. |
| LdpMplsRouter | compound module |
An LDP-capable router. |
| LinkLayerNodeBase | compound module | (no description) |
| RsvpMplsRouter | compound module |
An RSVP-TE capable router. |
Parameters
| Name | Type | Default value | Description |
|---|---|---|---|
| displayAddresses | bool | false |
whether to display IP addresses on links |
Properties
| Name | Value | Description |
|---|---|---|
| display | i=block/table |
Signals
| Name | Type | Unit |
|---|---|---|
| ipv4MulticastGroupLeft | inet::Ipv4MulticastGroupInfo | |
| ipv4MulticastGroupJoined | inet::Ipv4MulticastGroupInfo | |
| ipv4McastChange | inet::Ipv4MulticastGroupSourceInfo | |
| ipv4MulticastGroupRegistered | inet::Ipv4MulticastGroupInfo | |
| interfaceDeleted | inet::NetworkInterface | |
| interfaceStateChanged | inet::NetworkInterfaceChangeDetails | |
| interfaceIpv6ConfigChanged | inet::NetworkInterfaceChangeDetails | |
| ipv6MulticastGroupJoined | inet::Ipv6MulticastGroupInfo | |
| interfaceIpv4ConfigChanged | inet::NetworkInterfaceChangeDetails | |
| ipv6MulticastGroupLeft | inet::Ipv6MulticastGroupInfo | |
| interfaceConfigChanged | inet::NetworkInterfaceChangeDetails | |
| ipv4MulticastGroupUnregistered | inet::Ipv4MulticastGroupInfo | |
| interfaceGnpConfigChanged | inet::NetworkInterfaceChangeDetails | |
| interfaceCreated | inet::NetworkInterface |
Direct method calls (observed)
| call to | function | info |
|---|---|---|
| EthernetMacLayer | inet::EthernetMacLayer::receiveSignal | interfaceStateChanged |
| Rstp | inet::Rstp::receiveSignal | interfaceStateChanged |
| GlobalArp | inet::GlobalArp::receiveSignal | interfaceIpv4ConfigChanged |
| GlobalArp | inet::GlobalArp::receiveSignal | interfaceIpv6ConfigChanged |
| Ipv4NodeConfigurator | inet::Ipv4NodeConfigurator::receiveSignal | interfaceStateChanged |
| Ipv4RoutingTable | inet::Ipv4RoutingTable::receiveSignal | interfaceConfigChanged |
| Ipv4RoutingTable | inet::Ipv4RoutingTable::receiveSignal | interfaceIpv4ConfigChanged |
| Ipv4RoutingTable | inet::Ipv4RoutingTable::receiveSignal | interfaceStateChanged |
| Ipv6RoutingTable | inet::Ipv6RoutingTable::receiveSignal | interfaceConfigChanged |
| Ipv6RoutingTable | inet::Ipv6RoutingTable::receiveSignal | interfaceIpv6ConfigChanged |
| Ipv6RoutingTable | inet::Ipv6RoutingTable::receiveSignal | interfaceStateChanged |
| NextHopRoutingTable | inet::NextHopRoutingTable::receiveSignal | interfaceConfigChanged |
| NextHopRoutingTable | inet::NextHopRoutingTable::receiveSignal | interfaceIpv4ConfigChanged |
| NextHopRoutingTable | inet::NextHopRoutingTable::receiveSignal | interfaceStateChanged |
| Ieee80211ScalarRadioMedium | inet::physicallayer::RadioMedium::receiveSignal | interfaceConfigChanged |
| EigrpIpv4Pdm | inet::eigrp::EigrpIpv4Pdm::receiveSignal | interfaceConfigChanged |
| EigrpIpv4Pdm | inet::eigrp::EigrpIpv4Pdm::receiveSignal | interfaceStateChanged |
| EigrpIpv6Pdm | inet::eigrp::EigrpIpv6Pdm::receiveSignal | interfaceConfigChanged |
| EigrpIpv6Pdm | inet::eigrp::EigrpIpv6Pdm::receiveSignal | interfaceStateChanged |
| Ospfv2 | inet::ospfv2::Ospfv2::receiveSignal | interfaceStateChanged |
| Rip | inet::Rip::receiveSignal | interfaceStateChanged |
Called methods (observed)
Tagging operations (observed)
| tagType | tagAction |
|---|---|
| clearTags | |
| inet::Ipv4InterfaceData | findTag |
Source code
// // Keeps the table of network interfaces. // // Interfaces are dynamically registered by the corresponding L2 modules, e.g. // ~PppInterface. In addition to registered interfaces, a loopback interface // will also be created. This table only contains protocol-independent // properties of interfaces -- IPv4 or IPv6 specific per-interface data // (addresses etc) are kept in ~Ipv4RoutingTable and ~Ipv6RoutingTable. // Must be named as "interfaceTable". // // This module has no gates; all functionality can be accessed via member // functions of the C++ module class. For detailed info, please see the C++ // documentation of the class (Doxygen). // simple InterfaceTable { parameters: bool displayAddresses = default(false); // whether to display IP addresses on links @display("i=block/table"); @signal[interfaceCreated](type=inet::NetworkInterface); @signal[interfaceDeleted](type=inet::NetworkInterface); @signal[interfaceStateChanged](type=inet::NetworkInterfaceChangeDetails); @signal[interfaceConfigChanged](type=inet::NetworkInterfaceChangeDetails); @signal[interfaceIpv4ConfigChanged](type=inet::NetworkInterfaceChangeDetails); @signal[interfaceIpv6ConfigChanged](type=inet::NetworkInterfaceChangeDetails); @signal[interfaceGnpConfigChanged](type=inet::NetworkInterfaceChangeDetails); @signal[ipv4MulticastGroupJoined](type=inet::Ipv4MulticastGroupInfo); @signal[ipv4MulticastGroupLeft](type=inet::Ipv4MulticastGroupInfo); @signal[ipv4McastChange](type=inet::Ipv4MulticastGroupSourceInfo); @signal[ipv4MulticastGroupRegistered](type=inet::Ipv4MulticastGroupInfo); @signal[ipv4MulticastGroupUnregistered](type=inet::Ipv4MulticastGroupInfo); @signal[ipv6MulticastGroupJoined](type=inet::Ipv6MulticastGroupInfo); @signal[ipv6MulticastGroupLeft](type=inet::Ipv6MulticastGroupInfo); }File: src/inet/networklayer/common/InterfaceTable.ned