Pmipv6¶
Package: inet.networklayer.pmipv6
simple module Pmipv6
Implements Proxy Mobile IPv6 (RFC 5213): network-based mobility management.
Unlike Mobile IPv6 (Mipv6), the mobile node runs no mobility software; the
network handles mobility through two entities, both implemented by this module
and selected by the isLocalMobilityAnchor / isMobileAccessGateway parameters:
- the Local Mobility Anchor (LMA), the home-prefix anchor and tunnel endpoint,
analogous to a Mobile IPv6 home agent; and
- the Mobile Access Gateway (MAG), the access router that detects mobile-node
attachment, sends Proxy Binding Updates to the LMA on the mobile node’s behalf, sets up the tunnel to the LMA, and advertises the mobile node’s home network prefix on the access link.
It is a submodule of Ipv6NetworkLayer (enabled by its hasPmipv6 parameter).
See also: LocalMobilityAnchor, MobileAccessGateway
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 |
path to the InterfaceTable module |
|
ipv6NeighbourDiscoveryModule |
string |
path to the Ipv6NeighbourDiscovery module |
|
isLocalMobilityAnchor |
bool |
false |
(the IPv6 routing table is resolved automatically) |
isMobileAccessGateway |
bool |
false |
|
localMobilityAnchorAddress |
string |
“” |
MAG: the address of the LMA to register mobile nodes with |
mobileNodeProfiles |
xml |
xml(“<mobileNodes/>”) |
MAG: mobile-node policy profiles, one per access interface, e.g. <mobileNodes> <mobileNode accessInterface=”wlan0” id=”mn1@example.com” homeNetworkPrefix=”2001:db8:1::” prefixLength=”64”/> </mobileNodes> (accessInterface may be omitted to match any access interface) |
bindingLifetime |
double |
3600s |
lifetime requested in Proxy Binding Updates |
homeNetworkPrefixAdvValidLifetime |
double |
3600s |
MAG: valid lifetime of the advertised home network prefix |
homeNetworkPrefixAdvPreferredLifetime |
double |
1800s |
MAG: preferred lifetime of the advertised home network prefix |
Properties¶
Name |
Value |
Description |
|---|---|---|
class |
Pmipv6 |
|
display |
i=block/network2 |
Gates¶
Name |
Direction |
Size |
Description |
|---|---|---|---|
fromIPv6 |
input |
||
toIPv6 |
output |
Signals¶
Name |
Type |
Unit |
Description |
|---|---|---|---|
packetDropped |
cPacket |
Source code¶
//
// Implements Proxy Mobile IPv6 (RFC 5213): network-based mobility management.
// Unlike Mobile IPv6 (~Mipv6), the mobile node runs no mobility software; the
// network handles mobility through two entities, both implemented by this module
// and selected by the `isLocalMobilityAnchor` / `isMobileAccessGateway` parameters:
//
// - the Local Mobility Anchor (LMA), the home-prefix anchor and tunnel endpoint,
// analogous to a Mobile IPv6 home agent; and
// - the Mobile Access Gateway (MAG), the access router that detects mobile-node
// attachment, sends Proxy Binding Updates to the LMA on the mobile node's behalf,
// sets up the tunnel to the LMA, and advertises the mobile node's home network
// prefix on the access link.
//
// It is a submodule of ~Ipv6NetworkLayer (enabled by its `hasPmipv6` parameter).
//
// @see ~LocalMobilityAnchor, ~MobileAccessGateway
//
simple Pmipv6 extends SimpleModule
{
parameters:
@class(Pmipv6);
string interfaceTableModule; // path to the InterfaceTable module
string ipv6NeighbourDiscoveryModule; // path to the Ipv6NeighbourDiscovery module
// (the IPv6 routing table is resolved automatically)
bool isLocalMobilityAnchor = default(false);
bool isMobileAccessGateway = default(false);
// MAG: the address of the LMA to register mobile nodes with
string localMobilityAnchorAddress = default("");
// MAG: mobile-node policy profiles, one per access interface, e.g.
// <mobileNodes>
// <mobileNode accessInterface="wlan0" id="[email protected]"
// homeNetworkPrefix="2001:db8:1::" prefixLength="64"/>
// </mobileNodes>
// (accessInterface may be omitted to match any access interface)
xml mobileNodeProfiles = default(xml("<mobileNodes/>"));
double bindingLifetime @unit(s) = default(3600s); // lifetime requested in Proxy Binding Updates
double homeNetworkPrefixAdvValidLifetime @unit(s) = default(3600s); // MAG: valid lifetime of the advertised home network prefix
double homeNetworkPrefixAdvPreferredLifetime @unit(s) = default(1800s); // MAG: preferred lifetime of the advertised home network prefix
@display("i=block/network2");
@signal[packetDropped](type=cPacket);
gates:
input fromIPv6;
output toIPv6;
}