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

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

SimpleNetworkLayer

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);
}

File: src/inet/networklayer/contract/IArp.ned