Package: inet.networklayer.contract
IArp
module interfaceInterface for Address Resolution Protocol (ARP) implementations. Provides address resolution services for mapping network layer addresses (e.g., IPv4) to link layer addresses (e.g., MAC). Modules implementing this interface maintain a cache of address mappings and handle resolution requests from the network layer.
Inheritance diagram
The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.
Implemented by
| Name | Type | Description |
|---|---|---|
| Arp | simple module |
Implements the Address Resolution Protocol for IPv4 and IEEE 802 6-byte MAC addresses. |
| GlobalArp | simple module |
Provides global address resolution without exchanging packets. |
Used in compound modules
| Name | Type | Description |
|---|---|---|
| ExtUpperIpv4NetworkLayer | compound module |
Provides a network layer that connects the simulation to a real network on the host computer using a TUN device. Allows simulated applications to send and receive packets through the host's networking stack at the IP layer. Contains standard components like routing table and ARP, and uses ~ExtUpperIpv4 with a TUN device for external connectivity. |
| Ipv4NetworkLayer | compound module | |
| SimpleNetworkLayer | compound module |
Provides a simple network layer. |
Properties
| Name | Value | Description |
|---|---|---|
| display | i=block/layer |
Signals
| Name | Type | Unit | Description |
|---|---|---|---|
| arpResolutionInitiated | inet::IArp::Notification | ||
| arpResolutionFailed | inet::IArp::Notification | ||
| arpResolutionCompleted | inet::IArp::Notification |
Source code
// // Interface for Address Resolution Protocol (ARP) implementations. Provides // address resolution services for mapping network layer addresses (e.g., IPv4) // to link layer addresses (e.g., MAC). Modules implementing this interface // maintain a cache of address mappings and handle resolution requests from // the network layer. // moduleinterface IArp { parameters: @display("i=block/layer"); @signal[arpResolutionInitiated](type=inet::IArp::Notification); @signal[arpResolutionCompleted](type=inet::IArp::Notification); @signal[arpResolutionFailed](type=inet::IArp::Notification); gates: input ifIn @labels(ArpPacket,Ieee802Ctrl); output ifOut @labels(ArpPacket,Ieee802Ctrl); }File: src/inet/networklayer/contract/IArp.ned