Ipv6NeighbourDiscovery

Package: inet.networklayer.icmpv6

Ipv6NeighbourDiscovery

simple module

C++ definition

Implements IPv6 Neighbor Discovery.

An overview of the IPv6 implementation in the INET Framework is provided here.

<b>See also:</b> ~Ipv6, ~Ipv6RoutingTable, ~Icmpv6

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).

Extends

Name Type Description
SimpleModule simple module

Base module for all INET simple modules.

Parameters

Name Type Default value Description
displayStringTextFormat string ""

Determines the text that is written on top of the submodule, supports displaying pars, watches, and module-specific information

interfaceTableModule string

The path to the InterfaceTable module

checksumMode string "declared"
icmpv6Module string
xmipv6Module string
routingTableModule string
minIntervalBetweenRAs double 30ms

MinRtrAdvInterval: 0.03 sec for MIPv6

maxIntervalBetweenRAs double 70ms

MaxrtrAdvInterval: 0.07 sec for MIPv6

Properties

Name Value Description
class Ipv6NeighbourDiscovery
display i=block/network

Gates

Name Direction Size Description
ipv6In input
ipv6Out output

Signals

Name Type Unit Description
startDad long

Emits value=1

Statistics

Name Title Source Record Unit Interpolation Mode Description
startDad DAD started count, vector

Source code

//
// Implements IPv6 Neighbor Discovery.
//
// An overview of the IPv6 implementation in the INET Framework is
// provided <a href="ipv6overview.html">here</a>.
//
// @see ~Ipv6, ~Ipv6RoutingTable, ~Icmpv6
//
simple Ipv6NeighbourDiscovery extends SimpleModule
{
    parameters:
        @class(Ipv6NeighbourDiscovery);
        string interfaceTableModule;   // The path to the InterfaceTable module
        string checksumMode @enum("declared","computed") = default("declared");
        string icmpv6Module;
        string xmipv6Module;
        string routingTableModule;
        double minIntervalBetweenRAs @unit(s) = default(30ms); // MinRtrAdvInterval:  0.03 sec for MIPv6
        double maxIntervalBetweenRAs @unit(s) = default(70ms);  // MaxrtrAdvInterval: 0.07 sec for MIPv6
        @display("i=block/network");
        @signal[startDad](type=long); // Emits value=1
        @statistic[startDad](title="DAD started"; record=count,vector);
    gates:
        input ipv6In;
        output ipv6Out;
}

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