Icmpv6

Package: inet.networklayer.icmpv6

Icmpv6

simple module

ICMPv6 implementation.

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

crcMode string "declared"

Properties

Name Value Description
display i=block/control

Gates

Name Direction Size Description
transportIn input
transportOut output
ipv6In input
ipv6Out output

Direct method calls (observed)

call tofunctioninfo
MessageDispatcherinet::MessageDispatcher::arrivedarrived
MessageDispatcherinet::MessageDispatcher::handleRegisterProtocolhandleRegisterProtocol
MessageDispatcherinet::MessageDispatcher::handleRegisterServicehandleRegisterService

Called methods (observed)

functioninfocall from
inet::Icmpv6::handleRegisterProtocolhandleRegisterProtocolMessageDispatcher
inet::Icmpv6::handleRegisterServicehandleRegisterServiceMessageDispatcher
inet::Icmpv6::sendErrorMessagesendErrorMessage(datagram, type=%d, code=%d)Ipv6NeighbourDiscovery, Udp

Incoming messages (observed)

gatemsgkindctrlsrcModuletags
ipv6InPacket0Ipv6DispatchProtocolInd, DispatchProtocolReq, DscpInd, EcnInd, HopLimitInd, InterfaceInd, L3AddressInd, NetworkProtocolInd, PacketProtocolTag, TosInd

Outgoing messages (observed)

gatemsgkindctrldestModuletags
ipv6OutPacket0Ipv6DispatchProtocolReq, L3AddressReq, PacketProtocolTag
transportOutPacket0UdpDispatchProtocolReq, L3AddressInd, PacketProtocolTag, DispatchProtocolInd?, DscpInd?, EcnInd?, HopLimitInd?, InterfaceInd?, NetworkProtocolInd?, TosInd?

Packet operations (observed)

chunkTypepacketAction
peekDataAsBytes, peekDataAt
Icmpv6DestUnreachableMsginsertAtBack, insertAtFront
Icmpv6HeaderpeekAtFront, peekDataAt, removeAtFront
Ipv6HeaderpeekAtFront, peekDataAt
SequenceChunkinsertAtBack

Shared Tagging operations (observed)

tagTypetagAction
DispatchProtocolReqaddTagIfAbsent
L3AddressIndaddTag
L3AddressReqaddTagIfAbsent
PacketProtocolTagaddTag, addTagIfAbsent

Source code

//
// ICMPv6 implementation.
//
// @see ~Ipv6, ~Ipv6RoutingTable, ~Ipv6NeighbourDiscovery
//#FIXME gate descriptions needed...
//
simple Icmpv6
{
    parameters:
        string interfaceTableModule;   // The path to the InterfaceTable module
        string crcMode @enum("declared","computed") = default("declared");
        @display("i=block/control");
    gates:
        input transportIn;
        output transportOut;
        input ipv6In;
        output ipv6Out;
}

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