Simple Module ICMPv6

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

C++ definition

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

ICMPv6

Usage diagram:

The following diagram shows usage relationships between types. Unresolved types are missing from the diagram.

Inheritance diagram:

The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.

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
}