ICMPv6

Package: inet.networklayer.icmpv6

ICMPv6

simple module

ICMPv6 implementation.

To send an ICMPv6 Echo Request, send any message to port pingIn with IPv6ControlInfo attached. The message will be used as ping payload (encapsulated into an ICMPv6Message). When an ICMPv6 Echo Reply is received, the payload message will be sent to pingOut.

See also: IPv6, IPv6RoutingTable, IPv6NeighbourDiscovery

Used in compound modules

Name Type Description
IPv6NetworkLayer compound module

Represents an IPv6 network layer (L3).

Parameters

Name Type Default value Description
interfaceTableModule string

The path to the InterfaceTable module

Properties

Name Value Description
display i=block/control

Gates

Name Direction Size Description
ipv6In input
ipv6Out output
pingIn [ ] input

ping requests from app

pingOut [ ] output
errorOut output

for errors

Source code

//
// ICMPv6 implementation.
//
// To send an ICMPv6 Echo Request, send any message to port pingIn with ~IPv6ControlInfo
// attached. The message will be used as ping payload (encapsulated into an ~ICMPv6Message).
// When an ICMPv6 Echo Reply is received, the payload message will be sent to pingOut.
//
// @see ~IPv6, ~IPv6RoutingTable, ~IPv6NeighbourDiscovery
//#FIXME gate descriptions needed...
//
simple ICMPv6
{
    parameters:
        string interfaceTableModule;   // The path to the InterfaceTable module
        @display("i=block/control");
    gates:
        input ipv6In;
        output ipv6Out;
        input pingIn[]; // ping requests from app
        output pingOut[];
        output errorOut;  // for errors
}


File: src/inet/networklayer/icmpv6/ICMPv6.ned