Package: inet.networklayer.icmpv6
Icmpv6
simple moduleICMPv6 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 to | function | info |
---|---|---|
MessageDispatcher | inet::MessageDispatcher::arrived | arrived |
MessageDispatcher | inet::MessageDispatcher::handleRegisterProtocol | handleRegisterProtocol |
MessageDispatcher | inet::MessageDispatcher::handleRegisterService | handleRegisterService |
Called methods (observed)
function | info | call from |
---|---|---|
inet::Icmpv6::handleRegisterProtocol | handleRegisterProtocol | MessageDispatcher |
inet::Icmpv6::handleRegisterService | handleRegisterService | MessageDispatcher |
inet::Icmpv6::sendErrorMessage | sendErrorMessage(datagram, type=%d, code=%d) | Ipv6NeighbourDiscovery, Udp |
Incoming messages (observed)
gate | msg | kind | ctrl | srcModule | tags |
---|---|---|---|---|---|
ipv6In | Packet | 0 | Ipv6 | DispatchProtocolInd, DispatchProtocolReq, DscpInd, EcnInd, HopLimitInd, InterfaceInd, L3AddressInd, NetworkProtocolInd, PacketProtocolTag, TosInd |
Outgoing messages (observed)
gate | msg | kind | ctrl | destModule | tags |
---|---|---|---|---|---|
ipv6Out | Packet | 0 | Ipv6 | DispatchProtocolReq, L3AddressReq, PacketProtocolTag | |
transportOut | Packet | 0 | Udp | DispatchProtocolReq, L3AddressInd, PacketProtocolTag, DispatchProtocolInd?, DscpInd?, EcnInd?, HopLimitInd?, InterfaceInd?, NetworkProtocolInd?, TosInd? |
Packet operations (observed)
chunkType | packetAction |
---|---|
peekDataAsBytes, peekDataAt | |
Icmpv6DestUnreachableMsg | insertAtBack, insertAtFront |
Icmpv6Header | peekAtFront, peekDataAt, removeAtFront |
Ipv6Header | peekAtFront, peekDataAt |
SequenceChunk | insertAtBack |
Shared Tagging operations (observed)
tagType | tagAction |
---|---|
DispatchProtocolReq | addTagIfAbsent |
L3AddressInd | addTag |
L3AddressReq | addTagIfAbsent |
PacketProtocolTag | addTag, 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