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).
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 |
|---|---|---|
| AccessPoint | compound module |
A wireless access point device that connects wireless stations (like WirelessHost) to a wired network. Supports multiple wireless radios and multiple Ethernet ports. |
| BGPRouterEx | compound module |
Example IP router with BGPv4 and OSPFv4 support. |
| BGPRouterSimple | compound module |
Example Ipv4 router with BGPv4 support. |
| Client | compound module | (no description) |
| EthernetHost | compound module |
A simplified network device that communicates directly over Ethernet without higher layer protocols like IP or TCP. It provides a basic host model for Ethernet-only simulations. |
| EthernetHost2 | 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). |
| EthernetSwitch | compound module |
EthernetSwitch models a Layer 2 Ethernet switch with support for various IEEE 802.1 protocols and features. It provides frame forwarding based on MAC addresses and implements multiple switching technologies. |
| LdpMplsRouter | compound module |
An LDP-capable router. |
| LinkLayerNodeBase | compound module |
An extension of the basic node infrastructure with link layer functionality. Provides support for various network interfaces and link layer protocols, forming the foundation for network connectivity. |
| Node | compound module | (no description) |
| Node | compound module | (no description) |
| RsvpMplsRouter | compound module |
An RSVP-TE capable router. |
| SinkClient | compound module | (no description) |
| SinkNode | compound module | (no description) |
| ThroughputClient | compound module | (no description) |
| ThroughputClient | compound module | (no description) |
| ThroughputClient | compound module | (no description) |
| ThroughputServer | compound module | (no description) |
| ThroughputServer | compound module | (no description) |
| WirelessAPWithSink | compound module |
Well, this models a 802.11 Access Point with a Sink. |
Extends
| Name | Type | Description |
|---|---|---|
| SimpleModule | simple module |
Base module for all INET simple modules. |
Parameters
| Name | Type | Default value | Description |
|---|---|---|---|
| displayStringTextFormat | string | "" |
Determines the text that is written on top of the submodule, supports displaying pars, watches, and module-specific information |
| displayAddresses | bool | false |
Whether to display IP addresses on links |
Properties
| Name | Value | Description |
|---|---|---|
| class | InterfaceTable | |
| display | i=block/table |
Signals
| Name | Type | Unit | Description |
|---|---|---|---|
| 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 |
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 extends SimpleModule { parameters: @class(InterfaceTable); 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