IArp¶
Package: inet.networklayer.contract
module interface IArp
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.
Usage diagram¶
Inheritance diagram¶
Implemented by¶
Name |
Type |
Description |
|---|---|---|
simple module |
Implements the Address Resolution Protocol for IPv4 and IEEE 802 6-byte MAC addresses. |
|
simple module |
Provides global address resolution without exchanging packets. |
Used in compound modules¶
Name |
Type |
Description |
|---|---|---|
compound module |
Provides a simple network layer. |
Properties¶
Name |
Value |
Description |
|---|---|---|
display |
i=block/layer |
Signals¶
Name |
Type |
Unit |
Description |
|---|---|---|---|
arpResolutionCompleted |
inet::IArp::Notification |
||
arpResolutionFailed |
inet::IArp::Notification |
||
arpResolutionInitiated |
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);
}