IGP Extensions for Advertising Link Numbers
Huaimo Chen
Independent
Boston, MA
USA
hchen.ietf@gmail.com
Donald E. Eastlake 3rd
Independent
2386 Panoramic Circle
Apopka, FL
32703
USA
+1-508-333-2270
d3e3e3@gmail.com
Aijun Wang
China Telecom
Beiqijia Town, Changping District
Beijing
102209
China
wangaj3@chinatelecom.cn
Gyan S. Mishra
Verizon Inc.
13101 Columbia Pike
Silver Spring
MD 20904
USA
301 502-1347
gyan.s.mishra@verizon.com
Yisong Liu
China Mobile
liuyisong@chinamobile.com
Yanhe Fan
Casa Systems
USA
yfan@casa-systems.com
Lei Liu
Fujitsu
USA
liulei.kddi@gmail.com
Xufeng Liu
Alef Edge
USA
xufeng.liu.ietf@gmail.com
24 september 2024
This document describes OSPF and IS-IS extensions for distributing the link numbers assigned to the links originating at a node.

Requirements Language
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] [RFC8174] when, and only when, they appear in all capitals, as shown here.

Introduction
When the links originating at each node in a network are numbered from 1 to the number of the such links for that node, an efficient stateless multicast along an explicit P2MP path can be achieved through using the link numbers of the links on the path to represent the path.
This document proposes OSPF and IS-IS extensions for distributing the link numbers assigned to the links originating at a node which will support such multicast.
After a controller such as PCE as a controller has the link numbers of the links originating at every node, for an explicit P2MP path, the controller can send the ingress the path represented by the link numbers of the links on the path.

Terminology
LSA: Link State Advertisement.
OSPF: Open Shortest Path First.
LSP: Link State Protocol data unit.
IS-IS: Intermediate System to Intermediate System.
MT: Multi-Topology.
TE: Traffic Engineering.

Extensions to OSPFv2
This section describes extensions to OSPFv2 for distributing the link numbers assigned to the links of a node.
[RFC7684] defines the OSPFv2 Extended Link TLV to advertise the information about a link. Multiple Link TLVs for the links of a router are included in the OSPFv2 Extended Link Opaque LSA of the router.
The OSPFv2 Extended Link TLV has the following format:

OSPFv2 Extended Link TLV

    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 (1)           |      Length (Variable)        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Link Type   |                    Reserved                   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                             Link ID                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                            Link Data                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                       Sub-TLVs (variable)                     |
   ~                                                               ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type: 1.
Length: Variable, dependent on Sub-TLVs.
Link Type, Link ID and Link Data: They are defined in Section A.4.2 of [RFC2328].
Reserved: MUST be set to 0 on transmission and MUST be ignored on reception.
Under the OSPFv2 Extended Link TLV for a link, a Link Number Sub-TLV is defined for distributing the link number assigned to the link by the router originating the LSA. A Link Number Sub-TLV is included in the Link TLV for a link of Link Type Point-to-Point, Broadcast (i.e., link to LAN or Transit Network), or stub (i.e., link to stub network).
The Link Number Sub-TLV has the following format:

Link Number Sub-TLV

    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 (TBD1)          |             Length            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |         Link Number           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type: TBD1. (Note this is the Sub-TLV Type, not the Link Type.)
Length: 2.
Link Number: A 2-octet field carrying the link number assigned to the link when the Link Type of the link in the OSPFv2 Extended Link TLV containing this Sub-TLV is 1 (i.e., Point-to-Point connection to another router), 2 (i.e., connection to a Transit Network or LAN), or 3 (i.e., connection to a stub network).

Extensions to OSPFv3
This section describes extensions to OSPFv3 for distributing the link numbers assigned to the links of a node.
[RFC8362] defines the OSPFv3 Extended Router LSA, which may include multiple Router-Link TLVs.

Extended Router-LSA

   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
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |              LS Age         |1|0|1|             0x21          |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                        Link State ID                          |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                      Advertising Router                       |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                      LS Sequence Number                       |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |        LS Checksum          |             Length              |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |  0  |N|x|V|E|B|                  Options                      |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                              TLVs                             |
  :                                                               :
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
A Router-Link TLV defines a single router link.

Router-Link TV

   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 (1 - Router-Link)    |         Length (Variable)       |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |  Link Type  |       0       |              Metric             |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                        Interface ID                           |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                    Neighbor Interface ID                      |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                      Neighbor Router ID                       |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                          Sub-TLVs                             |
  :                                                               :
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Under the Router-Link TLV for a link, a Link Number Sub-TLV is defined. This Sub-TLV has the same format as the Link Number Sub-TLV defined above for the OSPFv2 Extended Link TLV.
The Router-Link TLV for a link may include a Link Number Sub-TLV for distributing the link number assigned to the link by the router originating the LSA.

Extensions to IS-IS
This section describes extensions to IS-IS for distributing the link numbers assigned to the links of a node.
The Extended IS Reachability TLV (Type 22) defined in [RFC5305] may contain Sub-TLVs (such as those for TE (Traffic Engineering)) that apply to a link/interface to a neighbor.
To encode multiple links or interfaces to neighbors, the structure inside TLV is repeated.
The Multi-Topology (MT) Intermediate Systems TLV (Type 222) defined in [RFC5120] may contain Sub-TLVs (such as those for TE) that apply to a link/interface. It is aligned with the Extended IS Reachability TLV (Type 22) but has an additional two bytes in front at the beginning of the TLV for MT-ID.
A Link Number Sub-TLV is defined and used in the Extended IS Reachability TLV (Type 22) and/or MT Intermediate Systems TLV (Type 222) to advertise the link numbers assigned to the links of a node.
The Link Number Sub-TLV has the following format:

IS-IS Link Number Sub-TLV

    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 (TBD3)  |    Length     |         Link Number           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Type: TBD3.
Length: 2.
Link Number: A 2-octet field carrying the link number assigned to the link.

Security Considerations
TBD.

IANA Considerations
Under "OSPFv2 Extended Link TLV Sub-TLVs registry" as defined in [RFC7684], IANA is requested to assign a registry value for Link Number Sub-TLV as follows:

  +==============+======================+=====================+
  |  Value       |  Description         |    reference        |
  +==============+======================+=====================+
  |  TBD1        |  Link Number         |    This document    |
  +--------------+----------------------+---------------------+

Under "OSPFv3 Extended-LSA Sub-TLVs registry" as defined in [RFC8362], IANA is requested to assign a registry value for Link Number Sub-TLV as follows:

  +==============+======================+=====================+
  |  Value       |  Description         |    reference        |
  +==============+======================+=====================+
  |  TBD2        |  Link Number         |    This document    |
  +--------------+----------------------+---------------------+

Under "Sub-TLVs for TLVs 22, 23, 25, 141, 222, and 223" for IS-IS TLV Codepoints, IANA is requested to assign a codepoint for Link Number Sub-TLV as follows:

+============+===================+==+==+==+===+===+===+=============+
|Sub-TLV Type|Sub-TLV Name       |22|23|25|141|222|223|reference    |
+============+===================+==+==+==+===+===+===+=============+
| TBD3       |Link Number        |y |n |n | n | y | n |This document|
+------------+-------------------+--+--+--+---+---+---+-------------+

Acknowledgements
TBD.

Normative References
[RFC2119]
[RFC8174]
[RFC7684]
[RFC2328]
[RFC8362]
[RFC5305]
[RFC5120]