Summary

  • RFC 9893 makes router-to-modem flow control proactive: a modem grants octet credit for a window identified by an FID, and the router must not send a matching packet without enough credit for the entire MAC-inclusive frame.
  • A Grant is permission at one boundary and Status is the router's counter view. Neither proves modem queue admission, attached-link transmission, remote receipt or application success.

The service review looked balanced. The modem had issued fresh Credit Window Grant items. The router's Credit Window Status values reconciled with the grants and its packet accounting. No unsupported identifier appeared in the control log. Yet the remote application had missed its delivery objective.

The tempting conclusion was that the link could not be at fault because the credit ledger was clean. That conclusion asked a router-modem control exchange to testify about events it was not designed to observe.

RFC 9893 adds credit-based flow control to the Dynamic Link Exchange Protocol. Base DLEP, defined in RFC 8175, lets a router and modem exchange link-related control information. It does not provide flow identification beyond DLEP endpoints or a data-plane flow-control capability. The new mechanism is proactive: the router waits until the modem has indicated sufficient buffer availability, which can reduce loss caused by sending into an exhausted receiver.

The mechanism regulates one direction and one boundary: traffic from the router to the modem. A logical credit window will typically correspond to a virtual or physical modem queue. Windows can be shared across several flows or dedicated more narrowly. The modem defines the available structure; the router uses it to decide whether a packet is eligible to cross the local interface.

Classification precedes credit. RFC 9892 gives the modem a Traffic Classification Data Item. A TID names a set of flows, and each FID names one flow within that set. A destination association completes the selection. These identifiers are modem-local. The number 7 from one modem has no implied relationship to the number 7 from another, and an FID identifies a credit window only inside its DLEP session.

That scope makes session epochs operationally important. If a session resets and identifiers are reused, a telemetry system that joins only on FID can silently attach new grants to old traffic. The defensible join is modem identity, router identity, session instance, destination, classifier generation, TID and FID. It must also preserve whether a wildcard existed. Without a matching classifier, the router must not send; if no wildcard catches the packet, it must drop it.

RFC 9893 then separates five different claims. Initialization identifies the FID and establishes or updates its window. Association binds a TID to a destination. Grant adds octets to one FID's window. Status reports the router's current view of available octets. Request asks the modem for more credit, for named FIDs or all of them. Compressing those items into a single “queue healthy” event erases who asserted what.

The Grant is precise but modest. Its Additional Credits field is a 64-bit unsigned number of octets. Zero means no increment. The modem may issue an increase when its transmission or local-queue availability exceeds the window it previously exposed. But the attached technology's overhead may not map cleanly to the protocol's semantics, so the modem may have to approximate. The number is an allocation decision made from the modem's current view, not a reservation of future radio conditions.

The router's debit rule is equally precise. Before sending a classified packet, it must have enough credit for the whole packet. The count includes MAC framing, header and trailer as seen on the router-modem link. Once it sends, it decrements the window by that octet count. A clean debit therefore establishes a router action and local accounting rule. It does not establish that the modem admitted the packet to the intended queue, retained it through a firmware transition, scheduled it on the attached link or received an acknowledgement from the far end.

Status should not be inflated either. It is the router's current credit-window view, sent for synchronization. The modem compares that value with its own outstanding view and may reinitialize or adjust later grants when the discrepancy cannot be explained by observed frames. The protocol anticipates that two legitimate counters can diverge. Reconciliation is evidence that a control-state repair occurred, not retroactive proof about every frame during the gap.

There is an unusually clear warning in the specification: the logging conditions described for these Data Items arise from received control content. No messages are logged in response to data-plane activity. A quiet DLEP log is therefore compatible with modem ingress loss, local queue drops, scheduling delay, radio retry exhaustion, remote loss and application failure. Absence of a control-plane complaint is not absence of a data-plane event.

The Diffserv-aware extension in RFC 9894 makes the allocation surface more expressive. A modem can map DSCPs to credit windows, while a router may support fewer queues or combinations than the modem advertises. The router can use a subset or reset the session as unsupported, and the mismatch should be visible to management. RFC 2474 maps a DS codepoint to a local per-hop behavior; RFC 2475 shows that services are composed from classifiers, conditioners and per-hop behaviors. A local DSCP-to-window mapping is not an end-to-end service contract.

RFC 8651 provides a useful contrast. Its pause and restart messages also apply only to traffic sent from router to modem on the connected subnetwork. Credit control can avoid the overshoot inherent in waiting for a pause, but being more proactive does not enlarge its jurisdiction. Both mechanisms govern whether the router may feed the modem; neither becomes a receipt from the remote application.

A credible closeout therefore preserves the handoffs. Record extension negotiation and the session epoch. Capture classifier bytes, destination, TID, FID and wildcard policy. Keep each Initialization, Association, Grant, Status and Request with receipt time and resulting counter. Join the router's classification decision, MAC-inclusive packet size, send timestamp and debit.

Then obtain different evidence for modem interface ingress, queue admission, occupancy, drop and drain; for attached-link scheduling, transmission, retries and acknowledgements; for remote network and transport receipt; and finally for the application's authorization, commit and response.

Heng Lu's Running-Code Primacy gives each observer authority at its own layer. The router can prove what it classified and sent. The modem can prove what it admitted and attempted to transmit, if its implementation exposes those facts. The remote node can prove what arrived. The application can prove what it committed. The discipline is not distrust of standards. It is respect for the exact boundary the standard made interoperable.

Minimum Initial Specification also explains why RFC 9893 is valuable without being total. It defines reusable messages, identifiers and accounting rules. It leaves queue count, grant cadence, DSCP policy, sampling, alarm thresholds, evidence retention and recovery with local operators. Those choices depend on the attached technology and on who can actually observe and reverse failure.

The executive question is not “were credits available?” It is: which session and classifier authorized which packet to cross the router-modem boundary, and what independent evidence carries that packet from the modem queue to the business result being claimed?

Sources