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