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):
- 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.
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) writespbu->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:
and, for the timestamp scheme, which Section 9.3 makes the default (
TimestampBasedApproachInUse= 1):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.