Mipv6

Package: inet.networklayer.mipv6

simple module Mipv6

Implements Mobile IPv6 (RFC 3775): the mobility signalling and binding management logic for a mobile node, home agent, or correspondent node (the role is selected by the isMobileNode and isHomeAgent parameters). It is a submodule of Ipv6NetworkLayer (enabled by its hasMipv6 parameter) and works together with the BindingUpdateList and BindingCache modules.

inet.networklayer.mipv6.Mipv6Mipv6simple

Usage diagram

Inheritance diagram

Used in compound modules

Name

Type

Description

Ipv6NetworkLayer

compound module

Represents a complete IPv6 network layer (L3), to be used within hosts and routers. It connects to higher-layer protocols (TCP, UDP, …) on top and to the network interfaces below, and bundles the modules that together implement IPv6:

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

ipv6NeighbourDiscoveryModule

string

bindingUpdateListModule

string

bindingCacheModule

string

isHomeAgent

bool

isMobileNode

bool

maxHaBindingLifeTime

double

3600s

max binding lifetime for HA registration

maxRrBindingLifeTime

double

420s

max binding lifetime for CN (route optimization)

useRouteOptimization

bool

true

whether a mobile node route-optimizes with correspondent nodes (RFC 3775); if false, their traffic always uses the bidirectional home-agent tunnel

Properties

Name

Value

Description

class

Mipv6

display

i=block/classifier2

Gates

Name

Direction

Size

Description

fromIPv6

input

toIPv6

output

Signals

Name

Type

Unit

Description

mipv6RoCompleted

cMessage?

packetDropped

cPacket

Source code

//
// Implements Mobile IPv6 (RFC 3775): the mobility signalling and binding
// management logic for a mobile node, home agent, or correspondent node (the
// role is selected by the `isMobileNode` and `isHomeAgent` parameters). It is
// a submodule of ~Ipv6NetworkLayer (enabled by its `hasMipv6` parameter) and
// works together with the ~BindingUpdateList and ~BindingCache modules.
//
simple Mipv6 extends SimpleModule
{
    parameters:
        @class(Mipv6);
        string interfaceTableModule;   // The path to the InterfaceTable module
        string ipv6NeighbourDiscoveryModule;
        string bindingUpdateListModule;
        string bindingCacheModule;
        bool isHomeAgent;
        bool isMobileNode;
        double maxHaBindingLifeTime @unit(s) = default(3600s); // max binding lifetime for HA registration
        double maxRrBindingLifeTime @unit(s) = default(420s);  // max binding lifetime for CN (route optimization)
        bool useRouteOptimization = default(true);  // whether a mobile node route-optimizes with correspondent nodes (RFC 3775); if false, their traffic always uses the bidirectional home-agent tunnel
        @display("i=block/classifier2");
        @signal[mipv6RoCompleted](type=cMessage?);
        @signal[packetDropped](type=cPacket);
    gates:
        input fromIPv6;
        output toIPv6;
}

File: src/inet/networklayer/mipv6/Mipv6.ned