| Internet-Draft | Flow-Level Load Balancing of Computing-A | February 2026 |
| Fu, et al. | Expires 30 August 2026 | [Page] |
This document specifies a flow-level load balancing mechanism for Computing-Aware Traffic Steering (CATS) that reduces control plane overhead and improves resource utilization through data plane autonomous flow distribution.¶
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.¶
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.¶
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."¶
This Internet-Draft will expire on 30 August 2026.¶
Copyright (c) 2026 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.¶
Computing-Aware Traffic Steering (CATS) [I-D.ldbc-cats-framework] directs traffic between service clients and providers based on real-time computing and network status. While CATS operates as an overlay system for selecting optimal service instances, the framework does not assume specific data plane or control plane solutions.¶
This document defines a flow-level load balancing mechanism addressing two operational challenges: control plane scalability limitations caused by reactive path computation, and resource utilization imbalances resulting from coarse-grained status reporting. The mechanism enables the control plane to pre-compute multiple viable forwarding alternatives while allowing the data plane to autonomously distribute traffic across these alternatives using flow-based affinity.¶
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.¶
This document makes use of the terms defined in [I-D.ldbc-cats-framework].¶
Current CATS implementations rely on periodic or threshold-triggered resource status reports to optimize service instance and path selection. This approach creates uneven computing resource utilization when status updates lag behind actual load changes, potentially directing multiple requests to already overloaded instances. Additionally, frequent metric fluctuations trigger repeated control plane path recalculation and policy updates, creating scalability constraints that incremental calculation alone cannot resolve.¶
The Flow-Level Load Balancing of Computing-Aware Traffic Steering is constructed based on the framework established in the CATS architecture [I-D.ldbc-cats-framework](Figure 1 for a visual representation).¶
+-----+ +------+ +------+
+------+| +------+ | +------+ |
|client|+ |client|-+ |client|-+
+---+--+ +---+--+ +---+--+
| | |
| +----------------+ | +-----+----------+
+-+ C-TC#1 +-+ +-----+ C-TC#2 |
|----------------| | |----------------|
| |C-PS#1 | +------+ |CATS-Forwarder 4|
......| +----------|....|C-PS#2|..| |...
: |CATS-Forwarder 2| | | | | .
: +----------------+ +------+ +----------------+ :
: :
: +-------+ :
: Underlay | C-NMA | :
: Infrastructure +-------+ :
: :
: :
: +----------------+ +----------------+ :
: |CATS-Forwarder 1| +-------+ |CATS-Forwarder 3| :
:.| |..|C-SMA#1|.... | |....:
+---------+------+ +-------+ +----------------+
| | | C-SMA#2 |
| | +-------+--------+
| | |
| | |
+------------+ +------------+
+------------+ | +------------+ |
| Service | | | Service | |
| Contact | | | Contact | |
| Instance |-+ | Instance |-+
+------------+ +------------+
service site 1 service site 2
The mechanism operates through three functional entities: the Path Selector (C-PS) situated in the control plane collecting metrics via Metric Agents (C-SMA and C-NMA) and computing forwarding alternatives; the Forwarder operating in the data plane performing flow identification, affinity maintenance and packet forwarding; and the Metric Agents reporting service instance and network status to enable path computation.¶
The Path Selector maintains the CATS Routing Table containing for each CS-ID a set of Forwarding Alternatives comprising network path identifiers, service instance identifiers, and load sharing weights representing desired traffic distribution proportions. The Forwarder generates the CATS Forwarding Table through UCMP-to-ECMP expansion, creating a uniform lookup structure where each Forwarding Alternative appears in proportion to its weight, and maintains the Flow Affinity Table binding flow identifiers to specific forwarding entries.¶
The Path Selector identifies for each CS-ID the Service Instance Set containing all Forwarding Alternatives satisfying SLA requirements, computing load sharing weights based on service instance metrics, network path characteristics and policy objectives. The resulting CATS Routing Table is translated into a CATS Forwarding Table and distributed to Forwarders..¶
Figure 2 shows an example of a representation of multi-next-hop CATS routing table designed for a specific CS-ID1.¶
+-------+-------+--------------------------------------------------+ | | | NEXT HOP | |VRF-ID |PREFIX +-----------------+-----------+--------------------+ | | |SR-Policy |Service SID| Load Sharing Ratio | +-------+-------+-----------------+-----------+--------------------+ |100 |CS-ID1 |SR-Policy1(2ms) |END.DX-1 | 20% | | | +-----------------+-----------+--------------------+ | | |SR-Policy1(2ms) |END.DX-2 | 30% | | | +-----------------+-----------+--------------------+ | | |SR-Policy2(1.5ms)|END.DX-3 | 30% | | | +-----------------+-----------+--------------------+ | | |SR-Policy2(1.5ms)|END.DX-4 | 20% | +-------+-------+-----------------+-----------+--------------------+
Figure 3 shows an example of the CATS forwarding table following the changes.¶
+-------+-------+-----------------+-----------+--------+ |VRF-ID |PREFIX |SR-Policy |Service SID| offset | +-------+-------+-----------------+-----------+--------+ |100 |CS-ID1 |SR-Policy1(2ms) |END.DX-1 | 0 | | | +-----------------+-----------+--------+ | | |SR-Policy1(2ms) |END.DX-1 | 1 | | | +-----------------+-----------+--------+ | | |SR-Policy1(2ms) |END.DX-2 | 2 | | | +-----------------+-----------+--------+ | | |SR-Policy1(2ms) |END.DX-2 | 3 | | | +-----------------+-----------+--------+ | | |SR-Policy1(2ms) |END.DX-2 | 4 | | | +-----------------+-----------+--------+ | | |SR-Policy2(1.5ms)|END.DX-3 | 5 | | | +-----------------+-----------+--------+ | | |SR-Policy2(1.5ms)|END.DX-3 | 6 | | | +-----------------+-----------+--------+ | | |SR-Policy2(1.5ms)|END.DX-3 | 7 | | | +-----------------+-----------+--------+ | | |SR-Policy2(1.5ms)|END.DX-4 | 8 | | | +-----------------+-----------+--------+ | | |SR-Policy2(1.5ms)|END.DX-4 | 9 | +-------+-------+-----------------+-----------+--------+
To minimize control plane load, the Path Selector regenerates the CATS Routing Table only when metric changes cross predefined thresholds rather than reacting to every fluctuation, optionally employing hysteresis mechanisms to prevent rapid oscillation between configurations.¶
Upon receiving a packet the Forwarder extracts the CS-ID and computes the flow identifier, typically derived from the five-tuple. The Forwarder queries the Flow Affinity Table and if an existing binding is found forwards the packet using the bound entry. For unbound flows the Forwarder computes a hash over the flow identifier, selects the CATS Forwarding Table entry at the resulting index, creates a Flow Affinity Entry binding the flow to this entry, and forwards the packet.¶
The CATS Forwarding Table remains stable during flow affinity establishment ensuring consistent forwarding for all packets of a flow. Table updates received from the Path Selector apply only to new flows while existing bindings remain valid until flow termination or timeout.¶
The mechanism introduces potential denial of service vulnerabilities through Flow Affinity Table exhaustion if an attacker generates excessive new flows, mitigated by implementing binding creation rate limits. Predictable flow identifiers could enable binding hijacking requiring cryptographically robust hash functions. CATS Forwarding Tables distributed from Path Selector to Forwarder may expose topology information warranting protection during transmission.¶
To be added upon contributions, comments and suggestions.¶