Search

US-12627597-B2 - Segment routing point to multipoint path

US12627597B2US 12627597 B2US12627597 B2US 12627597B2US-12627597-B2

Abstract

Disclosed is a mechanism implemented by an ingress node in a network. The mechanism comprises receiving, at a receiver of the ingress node, a packet. A segment list describing a segment routing point-to-multipoint (SR P2MP) path is pushed onto the packet. The packet is transmitted on a downstream interface along the SR P2MP path.

Inventors

  • Huaimo Chen

Assignees

  • HUAWEI TECHNOLOGIES CO., LTD.

Dates

Publication Date
20260512
Application Date
20221216

Claims (15)

  1. 1 . A method implemented by an ingress node in a network, the method comprising: receiving a packet; pushing a segment list describing a segment routing point-to-multipoint (SR P2MP) path onto the packet, wherein the segment list in the packet comprises multicast segment identifiers (SIDs) of each node or each link in each sub-tree of the SR P2MP path such that the packet is routable across the network without reference to any SR P2MP path state stored in any transit node along the SR P2MP path; and transmitting the packet on a downstream interface along the SR P2MP path, wherein the SR P2MP path is stateless across the network such that SR P2MP path state is not maintained at any transit node.
  2. 2 . The method of claim 1 , further comprising transmitting a copy of the packet on a different downstream interface than the packet, wherein the copy of the packet comprises a second segment list, and wherein the segment list and the second segment list describe different sub-trees of the SR P2MP path.
  3. 3 . The method of claim 1 , wherein pushing the segment list onto the packet further comprises setting a multicast SID of a next hop along a sub-tree of the SR P2MP path as a destination address of the packet.
  4. 4 . The method of claim 1 , wherein each multicast SID comprises a multicast block prefix, a node identifier, and arguments.
  5. 5 . The method of claim 1 , wherein each multicast SID comprises a multicast adjacency SID locator, a link number, and arguments.
  6. 6 . The method of claim 1 , wherein each multicast SID comprises arguments, wherein the arguments comprise a number of branches of the sub-tree that are associated with a corresponding node and a number of SIDs included in the sub-tree downstream of the corresponding node.
  7. 7 . A method implemented by a transit node in a network along a segment routing point-to-multipoint (SR P2MP) path, the method comprising: receiving a packet comprising an upstream segment list describing one or more sub-trees of the SR P2MP path, wherein the upstream segment list in the packet comprises multicast segment identifiers (SIDs) of each node or each link in each sub-tree of the SR P2MP path such that the packet is routable across the network without reference to any SR P2MP path state stored in any transit node along the SR P2MP path; determining, based on the upstream segment list, a downstream segment list describing a sub-tree for a downstream interface of the transit node included in the SR P2MP path; replacing the upstream segment list associated with the packet with the downstream segment list; and transmitting the packet on the downstream interface along the SR P2MP path, wherein the SR P2MP path is stateless across the network such that SR P2MP path state is not maintained at any transit node.
  8. 8 . The method of claim 7 , further comprising: duplicating the packet to generate a copy of the packet for transmission on a second downstream interface of the transit node; determining, based on the upstream segment list, a second downstream segment list describing a second sub-tree for the second downstream interface included in the SR P2MP path; replacing the upstream segment list associated with the copy of the packet with the second downstream segment list; and transmitting the copy of the packet on the second downstream interface along the SR P2MP path.
  9. 9 . A method implemented by a transit node in a network along a segment routing point-to-multipoint (SR P2MP) path, the method comprising: receiving a packet comprising an upstream segment list describing one or more sub-trees of the SR P2MP path; determining, based on the upstream segment list, a downstream segment list describing a sub-tree for a downstream interface of the transit node included in the SR P2MP path; replacing the upstream segment list associated with the packet with the downstream segment list; and transmitting the packet on the downstream interface along the SR P2MP path, duplicating the packet to generate a copy of the packet for transmission on a second downstream interface of the transit node; determining, based on the upstream segment list, a second downstream segment list describing a second sub-tree for the second downstream interface included in the SR P2MP path; replacing the upstream segment list associated with the copy of the packet with the second downstream segment list; and transmitting the copy of the packet on the second downstream interface along the SR P2MP path, wherein the SR P2MP path is stateless across the network such that SR P2MP path state is not maintained at any transit node, and wherein replacing the upstream segment list with the second downstream segment list includes duplicating the packet containing the upstream segment list and then replacing the upstream segment list with the second downstream segment list in the copy of the packet.
  10. 10 . The method of claim 9 , wherein replacing the upstream segment list with the second downstream segment list includes removing the upstream segment list from the packet prior to duplication and pushing the second downstream segment list onto the copy of the packet.
  11. 11 . The method of claim 9 , wherein the packet, as received, contains a destination address identifying the transit node, wherein the destination address includes arguments comprising a number of branches associated with the transit node.
  12. 12 . The method of claim 11 , wherein the upstream segment list comprises multicast segment identifier (SIDs) of each node or each link in a sub-tree associated with the transit node, and wherein each multicast SID comprises a number of SIDs included in a sub-tree downstream of a corresponding node.
  13. 13 . The method of claim 12 , wherein determining the downstream segment list comprises: employing the number of branches indicated in the destination address to determine a number of next hop nodes; employing the number of SIDs in a multicast SID for each next hop node to determine a number of multicast SIDs in each sub-tree associated with the each next hop node; and generating the downstream segment list including only multicast SIDs associated with the sub-tree for the next hop node associated with the downstream interface.
  14. 14 . The method of claim 13 , wherein determining the second downstream segment list comprises generating the second downstream segment list including only the multicast SIDs associated with the second sub-tree for the second downstream interface based on the number of branches indicated in the destination address and the number of SIDs in the multicast SID for each next hop node.
  15. 15 . The method of claim 9 , wherein replacing the upstream segment list with the downstream segment list further comprises setting a multicast SID of a next hop along a sub-tree for the downstream interface as a destination address of the packet, and wherein the transit node does not store a state for the SR P2MP path.

Description

CROSS-REFERENCE TO RELATED APPLICATIONS This patent application is a continuation of International Application No. PCT/US2021/023328, filed Mar. 19, 2021 by Huaimo Chen, and titled “Segment Routing Point To Multipoint Path” which claims the benefit of U.S. Provisional Patent Application No. 63/039,856, filed Jun. 16, 2020 by Huaimo Chen, and titled “Segment Routing Point To Multipoint Path,” which is hereby incorporated by reference. TECHNICAL FIELD The present disclosure is generally related to network communication, and is specifically related to a mechanism to create a point to multipoint (P2MP) path using segment routing (SR) in an internet protocol version six (IPv6) network. BACKGROUND Certain networks employ network states to route network packets. For example, a controller can create a path across a network by assigning forwarding states to nodes along the path. Each node may store one or more states for each path that crosses the node, for example in a forwarding table in memory. As a network continues to create new paths, the forwarding tables of such nodes can become progressively more crowded. As such, the memory assigned to such tables may limit the number of paths that can cross a node. Further, as a forwarding table increases in size, the processing resources used to search the forwarding table increase. Hence, path states employ increasing memory and processing resources as the number of paths in a network increase. As such, networks that use states to describe paths are not as scalable as stateless networks. SUMMARY In an embodiment, the disclosure includes a method implemented by an ingress node in a network, the method comprising: receiving a packet; pushing, by a processor of the ingress node, a segment list describing a segment routing point-to-multipoint (SR P2MP) path onto the packet; and transmitting the packet on a downstream interface along the SR P2MP path. Segment Routing (SR) is a routing protocol that supports routing without maintaining states across a network. Specifically, SR employs segment lists to describe a path. In point-to-point (P2P) routing, the segment list is implemented as a stack of labels or SIDs that describe segments of the path. A packet is encapsulated with the segment list. Each node in a path can pop the top label from the packet and forward the packet according to the next label in the stack. In this way, the only node that maintains a state is the ingress node. Transit nodes and egress nodes forward packets based on the label stack, and hence the SR protocol is stateless over the core network. SR works well for P2P paths, but is not designed to support P2MP paths. For example, routing protocols that support P2MP paths are stateful, and hence do not integrate with the stateless approach used in SR. For example, some routing protocols compute a P2MP path and create states at each node to support forwarding along the P2MP path. The present aspect includes a SR based mechanism for creating and maintaining P2MP paths in a stateless manner through an IPv6 network. An ingress node can create a segment list that describes a P2MP path through the network. The segment list contains multicast SIDs of nodes in the P2MP path. The multicast SIDs can identify the nodes and/or can identify links/interfaces for the nodes, depending on the example. The multicast SIDs contain a number of branches field and a number of SIDs field. The number of branches indicates the number of segments of the P2MP path that extend downstream from the corresponding node. The number of SIDs indicate the number of multicast nodes contained in the P2MP path downstream of the corresponding node. Such information can be pushed onto a packet by an ingress node via encapsulation. The packet can then be transmitted downstream for duplication and/or routing along the P2MP path as indicated. For example, each current node (e.g., ingress and transit nodes) can duplicate the packet a number of times equal to the branches indicated by the number of branches for the multicast SID indicated for the current node. The current node can then encapsulate each packet with a segment list that describes the sub-tree of the P2MP path downstream from the current node along the corresponding branch prior to forwarding the packet. The multicast SID for the next hop node and associated parameters can be included in the destination address for the packet, and the address for the current node can be included in the source address. This allows for the creation of stateless P2MP communication across an IPv6 network via SR. As such, the described examples create additional functionality for nodes in a IPv6 core network. Further, the described examples remove the need to maintain states in the core network, and hence reduces memory and processor resource usage across the core network as the number of P2MP paths scale up. Hence, the described examples solve various problems specific to network communications and increase the