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