Skip to content

pmipv6: the local mobility anchor does not order Proxy Binding Updates, so a delayed one from the previous gateway re-points the prefix #1242

Description

@adamgeorge309

Summary

The Proxy Mobile IPv6 (PMIPv6) local mobility anchor (LMA) accepts Proxy Binding Updates (PBUs) in arrival order. In src/inet/networklayer/pmipv6/Pmipv6.cc:

  • :376: the mobile access gateway (MAG) writes pbu->setTimestampValue(0); // ordered by sequence number in this model;
  • :233: the LMA stores the sequence number in the binding cache entry, and nothing reads it back;
  • :208-:236: the registration branch re-points the mobile node's home network prefix for any PBU, whatever its age.

Neither the timestamp scheme nor the sequence-number scheme of RFC 5213 Section 5.5 is applied.

What the standard says

RFC 5213 Section 5.5:

If the local mobility anchor cannot determine the sending order of the received Proxy Binding Update messages, it may potentially process an older message sent by a mobile access gateway where the mobile node was previously anchored, but delivered out of order, resulting in incorrectly updating the mobile node's Binding Cache entry and creating a routing state for tunneling the mobile node's traffic to the previous mobile access gateway.

and, for the timestamp scheme, which Section 9.3 makes the default (TimestampBasedApproachInUse = 1):

  1. If the timestamp value in the received Proxy Binding Update is lower than the previously accepted timestamp in the Proxy Binding Update messages sent for that mobility binding, the local mobility anchor MUST reject the Proxy Binding Update message and send a Proxy Binding Acknowledgement message with the Status field set to TIMESTAMP_LOWER_THAN_PREV_ACCEPTED

The sequence-number scheme is allowed only when a MAG can learn the last sequence number another MAG sent for the node; each MAG in INET keeps its own counter.

Why it matters

A PBU from the MAG a node has left, delayed on that MAG's backhaul, re-points the node's traffic back to that MAG. In a two-MAG network where the node attaches to mag1 at 0.82 s and to mag2 at 3.49 s, and mag1's backhaul has a 1.4 s delay, mag1's PBU reaches the LMA at 5.02 s, after mag2's. On origin/master 49e1fa0 the LMA accepts it (LMA handover: re-pointing prefix 2001:db8:1::/64 toward MAG 2001:db8:0:1::2), and the correspondent node, which pings the mobile node every 0.5 s from 4 s, receives 3 echo replies to its 33 echo requests.

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