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.
Usage diagram¶
Inheritance diagram¶
Used in compound modules¶
Name |
Type |
Description |
|---|---|---|
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 |
|---|---|---|
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;
}