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).
Author:: Andras Varga
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. |
EtherHost | 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). |
EtherHost2 | compound module |
An example host with one Ethernet interface and an Ethernet traffic generator directly connected to it. This host model does not contain higher layer protocols (IP, TCP). By default is configured to use half-duplex MAC (CSMA/CD). |
EtherSwitch | 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::InterfaceEntry | |
interfaceStateChanged | inet::InterfaceEntryChangeDetails | |
interfaceIpv6ConfigChanged | inet::InterfaceEntryChangeDetails | |
ipv6MulticastGroupJoined | inet::Ipv6MulticastGroupInfo | |
interfaceIpv4ConfigChanged | inet::InterfaceEntryChangeDetails | |
ipv6MulticastGroupLeft | inet::Ipv6MulticastGroupInfo | |
interfaceConfigChanged | inet::InterfaceEntryChangeDetails | |
ipv4MulticastGroupUnregistered | inet::Ipv4MulticastGroupInfo | |
interfaceGnpConfigChanged | inet::InterfaceEntryChangeDetails | |
interfaceCreated | inet::InterfaceEntry |
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). // // @author: Andras Varga // simple InterfaceTable { parameters: bool displayAddresses = default(false); // whether to display IP addresses on links @display("i=block/table"); @signal[interfaceCreated](type=inet::InterfaceEntry); @signal[interfaceDeleted](type=inet::InterfaceEntry); @signal[interfaceStateChanged](type=inet::InterfaceEntryChangeDetails); @signal[interfaceConfigChanged](type=inet::InterfaceEntryChangeDetails); @signal[interfaceIpv4ConfigChanged](type=inet::InterfaceEntryChangeDetails); @signal[interfaceIpv6ConfigChanged](type=inet::InterfaceEntryChangeDetails); @signal[interfaceGnpConfigChanged](type=inet::InterfaceEntryChangeDetails); @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