Summary

  • In RFC 5184, L2-LinkConnect.confirm(Ack) returns immediately and permits the link operation to begin. It is not the later L2-LinkUp.indication, Layer 3 convergence or proof that packets crossed the new path.
  • A defensible handover record keeps the trigger, command, Ack, link transition, IP state and measured service outcome separate, especially when thresholds can mislead and link-layer frames can be spoofed.

The operations console showed a green completion mark next to the mobile node. The reason was simple: Layer 2 had returned L2-LinkConnect.confirm with Ack. The old path was released, the new point of attachment became authoritative in the inventory, and the incident timer stopped.

The radio had not completed the move. Under RFC 5184, that Ack is the boundary after which the requested link operation begins. The later L2-LinkUp.indication is a separate event. Layer 3 still has its own movement, address and binding work. Packet continuity is later evidence again.

No primitive was wrong. The dashboard erased their order.

Four classes prevent one green light from owning the story

RFC 5184 is an Experimental product of the MobOpts Research Group, not an Internet Standard. It tackles a real implementation problem: protocol layers were designed and often implemented independently, yet a fast mobile handover benefits when the IP layer knows what the link layer is observing and can ask it to move.

The document defines nine abstractions and four primitive classes. A Request asks another layer for information or service. A Confirm answers the Request. An Indication reports an event asynchronously. A Response can acknowledge the Indication. These names are not decoration. They preserve who asked, what was accepted and which event occurred later.

Type 1 primitives obtain current information through Request and Confirm. L2-LinkStatus returns the interface, point of attachment and Condition. L2-PoAList returns candidates. Type 2 primitives register for later events: Request and Confirm establish the subscription, then Indication reports PoAFound, PoALost, LinkUp, LinkDown or LinkStatusChanged. Type 3 primitives request action through Request and immediate Confirm.

The Type 3 sentence is the control boundary. Ack or Nack returns immediately. For L2-LinkConnect, the operation begins after Ack. The same is true of L2-LinkDisconnect. A valid command has crossed an interface; the resulting state has not yet been demonstrated.

The later event still is not an end-to-end receipt

The RFC’s example operation keeps the ordering explicit. Layer 3 sends L2-LinkConnect.request. After Confirm, Layer 2 begins its handover. When that handover finishes, Layer 2 sends L2-LinkUp.indication. Only then does Layer 3 perform the next handover operation.

Even LinkUp has a bounded meaning. The RFC says “connected” depends on link type. In its IEEE 802.11 infrastructure example, LinkUp is produced when association with the access point has been established. RFC 4907 warns that LinkUp does not necessarily mean IP configuration changed, that it should not be assumed to prove symmetric low-loss conditions, and that applications should wait for Internet-layer configuration evidence.

RFC 4957 sharpens the warning for Ethernet. A physical indication does not guarantee that frames are receivable across the bridge domain. A host may have no explicit signal that spanning-tree forwarding has completed. Link-layer state can therefore be genuine while the service path remains unusable.

The minimum honest status model is not pending/complete. It is at least: cue observed; decision made; command accepted; link transition in progress; link state reported; Layer 3 converging; traffic verified; or failed and recovering.

A candidate and a quality label do not authorize movement

The PoAList and PoAFound primitives expose possible points of attachment. Condition abstracts available bandwidth and link quality into five labels: EXCELLENT, GOOD, FAIR, BAD and NONE. The conversion algorithm depends on hardware and software. The RFC says one device’s quality levels are independent of another’s and that decisions based on the metrics are error-prone and not guaranteed to choose the optimal link.

That makes the labels useful but local. “EXCELLENT” is not a universal unit, capacity reservation, identity assertion or admission decision. A candidate AP can be detected before its authorization, congestion, upstream reachability and policy suitability are known.

Indication timing is also outside the specification. It depends on scanning and implementation. An audit that stores only the abstract label loses the raw measurements, averaging window, threshold version, driver and moment that created it.

The RFC expects misleading cues and recovery

RFC 5184 reports ping-pong handovers in its experiments. Thresholds vary by deployment and poor configuration can create misleading indications. It says L2-LinkStatusChanged is sometimes untrusted because abstracting link quality is difficult; an invalid indication can cause a redundant handover.

The prescribed response is not to pretend the signal is certain. Upper layers need a timely recovery step. In the example, IP can recheck L2-LinkStatus and cancel the move if the current AP remains most suitable. RFC 4907 goes further: treat an indication as an advisory hint and validate it, rather than letting the hint dictate the action.

This is a governance pattern. Fast reaction and local autonomy are compatible when the system records confidence, validates before irreversible steps and retains a cancellation path. They become antagonistic when a threshold event silently receives authority to dismantle the old path.

Spoofed observations can produce perfectly valid primitives

The security section gives a concrete attack. Forged beacon frames from a malicious access point can generate L2-PoAFound.indication; the mobile node may then issue L2-LinkConnect.request toward the attacker. Alternating strong and weak forged RSSI can make PoAFound and PoALost fire repeatedly, creating denial of service.

The primitive still reports what the local link implementation observed. Standardized syntax does not authenticate the radio environment. A safe controller binds candidate discovery to link authentication, trusted driver state, policy and later reachability evidence. It also rate-limits or damps oscillation and keeps the old path until the new path reaches a defined commit point.

One laboratory result cannot become a fleet promise

The RFC’s experimental appendix reports an implementation in which Layer 2 handover took about one millisecond and zero or one ICMP echo reply was lost while probes were sent every ten milliseconds. That is useful evidence for the named test sequence.

It does not cover every radio, driver, authentication exchange, access network, address configuration, workload or mobility protocol. RFC 5568 separately notes that fast Mobile IPv6 reduces IP-protocol latency but does not improve link-switching latency. It also says tunnel setup alone does not ensure packets reach the node immediately after attachment; the new router still has to detect the node.

Leadership should therefore ask for the distribution of trigger-to-Ack, Ack-to-LinkUp, LinkUp-to-IP-ready and IP-ready-to-first-successful-service exchange. A single total hides the component that changed.

The receipt is a partial order, not a status string

For consequential mobility automation, retain an immutable operation ID; interface and technology; implementation build; candidate and discovery provenance; raw measurements and thresholds; trigger sequence; decision; exact Request; Confirm and its narrow meaning; link start and completion; authentication and association; address, route and binding state; packet loss and latency; and every cancellation or rollback.

That evidence object respects Heng Lu’s reality layers. A symbol such as Ack lives at an interface boundary. The running radio, IP stack and application occupy different layers. Authority should advance only when the evidence required at the next boundary exists.

RFC 5184’s lasting value is not that nine primitive names solve mobility. It is that the vocabulary makes premature certainty visible. If an operator cannot say which step has completed and which receipt remains missing, “handover complete” is not a summary. It is a claim beyond the evidence.

Sources

  1. RFC 5184 — HTML
  2. RFC 5184 — plain text
  3. RFC Editor information page
  4. IETF Datatracker document page
  5. IETF Datatracker history
  6. IETF Datatracker references
  7. RFC 5184 errata
  8. RFC 4907 — Architectural Implications of Link Indications
  9. RFC 4907 information page
  10. RFC 4957 — Link-Layer Event Notifications for Detecting Network Attachments
  11. RFC 5568 — Mobile IPv6 Fast Handovers
  12. RFC 5568 information page
  13. RFC 5944 — IP Mobility Support for IPv4
  14. RFC 6275 — Mobility Support in IPv6
  15. RFC 4140 — Hierarchical Mobile IPv6
  16. RFC 3819 — Advice for Internet Subnetwork Designers
  17. RFC 4968 — Analysis of IPv6 Link Models
  18. Heng Lu — reality layers
  19. Heng Lu — minimum specification and voluntary adoption
  20. Heng Lu — running code is primary