IGP based Network Computing Combined Optimization
Aijun Wang
China Telecom
Beiqijia Town, Changping District
Beijing
102209
China
wangaj3@chinatelecom.cn
Zhibo Hu
Huawei Technologies
Huawei Bld., No.156 Beiqing Rd.
Beijing
100095
China
huzhibo@huawei.com
Changwang
New H3C Technologies
China
linchangwang.04414@h3c.com
Gyan S. Mishra
Verizon Inc.
13101 Columbia Pike
Silver Spring
MD 20904
United States of America
gyan.s.mishra@verizon.com
15 November 2024
RTG Area
LSR Working Group
RFC
This document describes the scenario and procedures that can be used to accomplish the IGP based network and computing combined optimization within the IS-IS or OSPF domain.

Introduction
Traditionally, the best path that is used to forward the packet within one IGP domain is calculated solely based on the network topology and links metric. In some scenario, there is need to select the best path based on other information. This document describes the scenario and procedures that can be used to accomplish the IGP based network and computing combined optimization requirements.

Conventions used in this document
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119] .

Network Computing Combined Optimization Scenario
Figure 1 below illustrates the scenario that the necessities of integrating the computing and network related information to achieve the combined optimization upon the service requirements.
In the network, R1-R8 are routers that connected each other to form one IGP domain. Server Pool A, B and C which are different server pools that can provide the same service are connected to the IGP domain via R6, R7 and R8 respectively. The capacities and the access bandwidths of the Server Pools may be different.
Image that one customer that is connected to router R1 requires the computing capabilities, called X, and the minimum bandwidth C along the end to end path. Based on the Short Path First(SPF) algorithm, R1 will select the path R1-R4-R6 to access the service. But the bandwidth between R6 and Server Pool A is below C and can't meet the requirements. The user's service requirement can't be met and the customer experiences will be downgraded significantly. Even there is other Server Pools that can provide the same service, there is no method for the SPF to select them automatically.
+--------------------------------------+
|                                      |
|   +---+                      +---+   |      +-------------+
|   |R1 +---------+       +----+R6 +----------+Server Pool A|
|   +-+-+         |       |    +-+-+   |      +-------------+
|     |         +-+-+     |      |     |
|     |     +---+R4 +-----+      |     |
|     |     |   +-+-+            |     |
|   +-+-+   |     |            +-+-+   |      +-------------+
|   |R2 +---+     +------------+R7 +----------+Server Pool B|
|   +-+-+   |                  +-+-+   |      +-------------+
|     |     |---+---+            |     |
|     |         |R5 +-----+      |     |
|     |         +-+-+     |      |     |
|   +-+-+         |       |    +-+-+   |      +-------------+
|   |R3 +---------+       +----+R8 +----------+Server Pool C|
|   +---+                      +---+   |      +-------------+
|                                      |
|                                      |
|              IGP Domain              |
+--------------------------------------+

  Figure 1: Network Computing Combined Optimization Scenario

Then, it is necessary to inject the other information that beyond the traditional network related information into the SPF algorithm, to find the best path that both satisfy the network and computing capacity requirements, which are the key factors in artificial intelligent era.

Network Computing Combined Optimization Procedures
The procedures to accomplish the network computing combined optimization within one IGP domain are the followings:
1) Computing Capacity Information Registration.
The server pool registers its capacity information to the router that it connects to, or the configuration of capacity information of the server pool on the access router directly.
2) Computing Capacity Information Encapsulation and Flooding.
The access router that connects to the server pool encapsulates the computing capacity information within one new container and floods the computing capacity information within its domain, let other routers within the same domain aware the capacity of each server pool.
3) Computing and Network Information based SPF Optimization Algorithm
Optimize the SPF algorithm, let it find the best path in combination both the network related information and computing capacity information, build the forward table on each router based on the combined optimization results. The router that can't parse the new container can still use the traditional SPF that based solely on network related information to build the forward table.
4) Network and Computing Combined Optimization Scheduling
Forward the customer traffic based on the combined optimization results by the routers on the optimized path. In order to achieve the incremental deployment of such features within the operator network, the entry router should tunnel the customer traffic to the router that connected to the preferred server pool. This can avoid the traffic loop within the IGP domains when not all of its routers use the same algorithm to find the best path.

Advertisement of Computing Capacity Related Information
OSPF[RFC7684] defines the OSPFv2 Extended Link Opaque LSA and [RFC8362]defines the E-Link-LSA to carry the information about links. These existing LSA can be used to include the new container that encapsulates and floods the computing capacity related information.
Based on the above containers, this document defines the Stub-Link TLV and some additional sub-TLVs to identify the stub link and transmit the associated computing capacity information for OSPF and IS-IS respectively.

OSPF Protocol Extension for Stub Link Attributes
The following sections define the protocol extension to indicate the stub link and its associated attributes in OSPFv2/v3.

OSPF Stub-Link TLV
This document defines the Stub-Link TLV to describe stub link of a single router. This Stub-Link TLV is only applicable to the OSPFv2 Extended Link Opaque LSA[RFC7684] and E-Link-LSA LSA [RFC8362]. Inclusion in other LSAs MUST be ignored.
The OSPF Stub-Link TLV which is under the IANA codepoint "OSPFv2 Extended Link Opaque LSA TLVs" and "OSPFv3 Extended-LSA TLV" has the following format:
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    Type(Stub-Link)            |      Length                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          Flags                |    Reserved                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                   Stub Link Prefix Sub-TLVs                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           Computing Capacity related Sub-TLVs (variable)      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                 Existing Sub-TLVs (variable)                  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            Figure 2: OSPF Stub-Link TLV

Type: The TLV type. The value is 2(TBD1) for OSPFv2 Extended Link Opaque LSA TLVs and 10(TBD2) for OSPFv3 Extended-LSA TLVs.
Length: Variable, dependent on sub-TLVs
Flags: Define the type of the stub-link:
- bit 0-15: Reserved
Stub Link Prefix Sub-TLV: The prefix of the stub-link. It's format is defined in Section 6.2 and Section 6.3.
Computing Capacity related Sub-TLVs: Sub-TLVs that contains the computing capacity information. They can be defined in other document and is out of the scope of this document.
Existing Sub-TLVs: Sub-TLV that defined within "Open Shortest Path First (OSPF) Traffic Engineering TLVs" for TE Link TLV(Value 2) can be included if necessary.
If this TLV is advertised multiple times in the same LSA, only the first instance of the TLV is used by receiving OSPFv2/v3 routers. This situation SHOULD be logged as an error.
This document creates a registry for Stub-Link attributes in Section 10.

OSPF Stub Link IPv4 Prefix Sub-TLV
The OSPF Stub Link IPv4 Prefix Sub-TLV has the following format:
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    Type                       |           Length              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Prefix Length |           IPv4 Prefix(variable)               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        Figure 3: OSPF Stub Link IPv4 Prefix Sub-TLV

Type: IPv4 Prefix Sub-TLV codepoint. Value is 37(TBD3) for OSPF(under "Types for sub-TLVs of TE Link TLV (Value 2)")
Length: The length of the value portion in octets.
Prefix Length: the length of the IPv4 Prefix in bits.
IPv4 Prefix: The IPv4 Prefix value of stub link.

OSPF Stub Link IPv6 Prefix Sub-TLV
The OSPF Stub Link IPv6 Prefix Sub-TLV has the following format:
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    Type                       |           Length              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Prefix Length |           IPv6 Prefix(variable)               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       Figure 4: OSPF Stub Link IPv6 Prefix Sub-TLV

Type: IPv6 Prefix Sub-TLV codepoint. Value is Value is 38(TBD4) for OSPF(under "Types for sub-TLVs of TE Link TLV (Value 2)")
Length: The length of the value portion in octets.
IPv6 Prefix: The IPv6 Prefix value of stub link.

IS-IS Protocol Extension for Stub Link Attributes
The following sections define the protocol extension to indicate the stub link and its associated attributes in IS-IS.

IS-IS Stub-link TLV
This document defines the IS-IS Stub-Link TLV to describes stub link of a single router.
The IS-IS Stub-Link TLV has the following format:
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Type(Stub-Link)|    Length     |         Flags                 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               Stub Link Prefix Sub-TLV                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|      Computing Capacity related Sub-TLVs (variable)           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                 Existing Sub-TLVs (variable)                  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            Figure 5: IS-IS Stub-Link TLV

Type: IS-IS TLV codepoint. Value is 151 (TBD5) for stub-link TLV.
Length: Variable, dependent on sub-TLVs
Flags: Define the type of the stub-link:
- bit 0-15: Reserved
Stub Link Prefix Sub-TLV: The prefix of the stub-link. It's format is defined in Section 7.2 and Section 7.3.
Computing Capacity related Sub-TLVs: Sub-TLVs that contains the computing capacity information. They can be defined in other document and is out of the scope of this document.
Existing Sub-TLVs: Sub-TLVs that defined within "IS-IS Sub-TLVs for TLVs Advertising Neighbor Information" can be included if necessary.

IS-IS Stub Link IPv4 Prefix Sub-TLV
The IS-IS Stub Link IPv4 Prefix Sub-TLV has the following format:
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|      Type     |     Length    |      Reserved   |Prefix Length|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                    IPv4 Prefix(Variable)                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
         Figure 6: IS-IS Stub Link IPv4 Prefix Sub-TLV

Type: IPv4 Prefix Sub-TLV codepoint. Value is 46(TBD6) for IS-IS(under "IS-IS Sub-TLVs for TLVs Advertising Neighbor Information")
Length: Length: The length of the value portion in octets.
Prefix Length: the length of the IPv4 Prefix in bits.
IPv4 Prefix: The IPv4 Prefix value of stub link.

IS-IS Stub Link IPv6 Prefix Sub-TLV
The IS-IS Stub Link IPv6 Prefix Sub-TLV has the following format:
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|      Type     |     Length    |      Reserved   |Prefix Length|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               IPv6 Prefix(Variable)                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        Figure 7: IS-IS Stub Link IPv6 Prefix Sub-TLV

Type: IPv6 Prefix Sub-TLV codepoint. Value is 47(TBD7) for IS-IS(under "IS-IS Sub-TLVs for TLVs Advertising Neighbor Information")
Length: Length: The length of the value portion in octets.
Prefix Length: the length of the IPv6 Prefix in bits.
IPv6 Prefix: The IPv6 Prefix value of stub link.

Application of the network computing combined optimization
The following figure gives the application example of the network computing combined optimization.
+--------------------------------------+
|                                      |
|   *****                      *****   |      +-------------+
|   *R1 *---------+       +----*R6 *----------+Server Pool A|
|   *****         |       |    *****   |      +-------------+
|     |         +-+-+     |      |     |
|     |     +---+R4 +-----+      |     |
|     |     |   +-+-+            |     |
|   +---+   |     |            *****   |      +-------------+
|   |R2 +---+     +------------*R7 *----------+Server Pool B|
|   +---+   |                  *****   |      +-------------+
|     |     |   *****            |     |
|     |     |---*R5 *-----+      |     |
|     |         *****     |      |     |
|   *****         |       |    *****   |      +-------------+
|   *R3 *---------+       +----*R8 *----------+Server Pool C|
|   *****                      *****   |      +-------------+
|                                      |
|                                      |
|              IGP Domain              |
+--------------------------------------+

  Figure 9: Application of Network Computing Combined Optimization

Suppose R1, R3, R5,R6,R7 and R8 (identified via the "*" signal)are the routers that have been updated to support the parse of newly defined Stub Link TLV and the optimized SPF algorithm that depends both on the network and computing capacity information. The router R2 and R4 (identified via the "-" signal are the legacy routers that had not been upgraded yet.
When R6, R7 and R8 knows the computing capacity information of their connected server Pool A, B and C( via the automatic registration process between the access router and server pool, or the manual configuration on the access router, which is out of the scope this document), they encapsulation such information within the above Stub Link TLV, and then the related LSA (for OSPF) or TLV(for IS-IS), flooding them within the IGP domain.
When upgraded routers receives such information, it can accomplish the network computing combined optimized SPF algorithm, to calculate the best path to each server pool and build the forwarding table on it. For the legacy routers, the forwarding table are built still via the traditional SPF algorithm.
When router R1 receives the customer traffic that requires the computing capacity X and minimum bandwidth path of C, it will lookup its FIB, make the final decision based on both of these information. If the connection between R6 and its associated server Pool A can't meet minimum bandwidth requirements, it will check the next candidate within its FIB table. If the capacity of Server Pool is less than X, it will be passed also. The final result will be Server Pool C, whose access bandwidth and the computing capacity can all meet the customer requirements.
Router R1 will encapsulate the customer traffic within one tunnel, with the tunnel destination set to the address of R8, which is the access router of Server Pool C and tunnel source is the R1 itself. When the traffic path through the intermediated router along the path, the traffic will be forwarded based on the destination address of R8, which is solely based on the traditional SPF algorithm. The tunnelled traffic can arrive safely to the tunnel destination without any possibility of loop, even they use different algorithm for different prefixes.

Security Considerations
Security concerns for IS-IS are addressed in [RFC5304] and[RFC5310]
Security concern for OSPFv3 is addressed in [RFC4552]
Advertisement of the additional information defined in this document introduces no new security concerns.

IANA Considerations
IANA is requested to the allocation in following registries:
+===========================================+============+===============================+
| Registry                                  | Type       |       Meaning                 |
|                                           |(suggested) |                               |
+===========================================+============+===============================+
|OSPFv2 Extended Link Opaque LSA TLVs       |   TBD1(2)  |OSPFv2 Stub-Link               |
+-------------------------------------------+------------+-------------------------------+
|OSPFv3 Extended-LSA TLVs                   |   TBD2(10) |OSPFv3 Stub-Link               |
+-------------------------------------------+------------+-------------------------------+
|IS-IS Top-Level TLV                        |   TBD5(151)|IS-IS Stub-Link                |
+-------------------------------------------+------------+-------------------------------+
|Types for sub-TLVs of TE Link TLV (Value 2)|   TBD3(37) |OSPF Stub Link IPv4 Prefix     |
+-------------------------------------------+------------+-------------------------------+
|Types for sub-TLVs of TE Link TLV (Value 2)|   TBD4(38) |OSPF Stub Link IPv6 Prefix     |
+-------------------------------------------+------------+-------------------------------+
|IS-IS Sub-TLVs for TLVs                    |            |                               |
|Advertising Neighbor Information           |   TBD6(46) |IS-IS Stub Link IPv4 Prefix    |
+-------------------------------------------+------------+-------------------------------+
|IS-IS Sub-TLVs for TLVs                    |            |                               |
|Advertising Neighbor Information           |   TBD7(47) |IS-IS Stub Link IPv6 Prefix    |
+-------------------------------------------+------------+-------------------------------+
   Figure 10: IANA Allocation for newly defined TLVs and Sub-TLVs

Acknowledgement
TBD

Normative References
[RFC2119]
[RFC7684]
[RFC8362]
[RFC5304]
[RFC5310]
[RFC4552]