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. |
| 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 |
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) |
| 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. |
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 |
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