Skip to content

examples: the pmipv6 mobile node runs Mobile IPv6, although the example says it runs no mobility software #1239

Description

@adamgeorge309

Summary

The mobile node mn of examples/ipv6/pmipv6 is a WirelessHost6 (examples/ipv6/pmipv6/Pmipv6Network.ned:68), which assigns without default() (src/inet/node/mipv6/WirelessHost6.ned:28):

ipv6.hasMipv6 = true;
ipv6.mipv6.isMobileNode = true; // Is a Mobile Node

So the node carries a Mobile IPv6 (MIPv6) mipv6 submodule, a Binding Update list and a binding cache. The example's README says the opposite:

In contrast to Mobile IPv6 (see examples/ipv6/mipv6*), the
mobile node runs NO mobility software: it is a plain wireless IPv6 host that
simply autoconfigures an address from Router Advertisements.

and so does the network's own comment ("a plain wireless IPv6 host with no mobility software").

What the standard says

The example exists to show the point of Proxy Mobile IPv6 (PMIPv6). RFC 5213, Abstract:

Network-based mobility management enables IP mobility for a host without requiring its participation in any mobility-related signaling.

RFC 5213 does not forbid a PMIPv6 mobile node from running MIPv6; the defect is that the example contradicts its own documentation.

Why it matters

A reader who opens the network in Qtenv to check the README finds a mipv6 submodule inside the mobile node, and the results record hasMipv6 = true for it. On origin/master 49e1fa0 the eventlog of inet -u Cmdenv -c General in examples/ipv6/pmipv6 contains:

MC id 8 c inet::NodeBase t inet.node.mipv6.WirelessHost6 pid 1 n mn cm 1
MC id 349 c inet::Mipv6 t inet.networklayer.mipv6.Mipv6 pid 297 n mipv6

WirelessHost6 cannot be kept with hasMipv6 = false, because it assigns that parameter without default(). No simulation result depends on the module: the run gives the same scalars and vectors without it.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions