Optimizing segmented routing paths with segment identifiers

By optimizing segmented routing paths and using micro SIDs instead of traditional SIDs, the high cost and high latency issues caused by the reduction in the number of SIDs are solved, achieving low-cost and high-efficiency network transmission.

CN116547952BActive Publication Date: 2025-11-25CISCO TECHNOLOGY INC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202180073805.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-11-30
Filing Date
2021-11-17
Publication Date
2025-11-25
Estimated Expiration
2041-11-17

AI Technical Summary

Technical Problem

Existing segmented routing techniques may lead to higher cost and higher latency paths when reducing the number of SIDs in packets, and the preferred number of paths is inconsistent with the minimum number, especially in the SRv6 and MPLS data planes where there are poor quality issues.

Method used

By determining the capacity and cost constraints of the micro SID carrier, segmented routing paths are optimized, and micro SIDs are used to replace traditional SIDs. This ensures that the path cost is lower than the constraint value, while maximizing the utilization of the micro SID carrier and reducing packet overhead.

Benefits of technology

While maintaining low cost, it improved network efficiency, optimized packet path selection, reduced packet overhead, and improved overall network performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116547952B_ABST
    Figure CN116547952B_ABST
Patent Text Reader

Abstract

Techniques are disclosed for optimizing a Segment Routing (SR) path using Segment Identifiers (SIDs), including determining that a packet is to be sent from a first node to a second node of a network using a SR method. The techniques can also include determining a segment quantization factor that represents a first number of SIDs included in a segment quantization interval. Based at least in part on the segment quantization factor and a cost constraint, a SR path defined by a second number of SIDs can be determined to send the packet. The second number of SIDs can be associated with maximizing the SIDs included in an individual segment quantization interval. The techniques also include modifying the packet to include at least the second number of SIDs and causing the packet to flow from the first node to the second node via the SR path.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross Reference to Related Applications

[0002] This patent application claims priority to U.S. Utility Patent Application Serial No. 17 / 106,651, filed November 30, 2020, which is hereby incorporated by reference in its entirety. TECHNICAL FIELD

[0003] The present disclosure relates generally to improved techniques in the field of segment routing, and more specifically to optimizing segment routing paths using segment identifiers. BACKGROUND

[0004] Segment Routing (SR) is a flexible, scalable way to source route. According to the SR approach, a source can select a path and encode that path as an ordered list of segments and / or instructions in a packet header. Each segment is identified by its segment identifier (SID). With segment routing, therefore, the network no longer needs to maintain state per application and / or per flow, rather, the network simply follows the forwarding instructions provided in the packet.

[0005] With respect to the SR packet itself, reducing the number of SIDs in the packet improves network efficiency due to reduced overhead. However, reducing the number of SIDs for a path can result in a path with higher cost and / or higher latency. To balance overhead and path cost, various techniques have been proposed to determine a path with a minimum number of SIDs subject to a margin constraint. However, in some cases, the preferred number of SIDs for a path can be different than this minimum number. BRIEF DESCRIPTION OF DRAWINGS

[0006] A detailed description will be made below with reference to the accompanying drawings. In the drawings, the left-most digit(s) of a reference number indicates the figure in which the reference number first appears. The same numbers are used on different drawings to indicate similar or identical components. The systems depicted in the drawings are not to scale and the components in the drawings can not be to scale with respect to each other.

[0007] Figure 1 A system architecture diagram illustrating an example environment in which SID optimization is used to send packets between various nodes of a network of nodes.

[0008] Figure 2 A system architecture diagram illustrating an example environment including a network of nodes and a controller. The controller can receive telemetry data from one or more individual nodes of the network of nodes and, among other things, determine optimized SID paths between the nodes.

[0009] Figure 3AA block diagram illustrating an example Segment Routing Header of a SID packet is shown. The Segment Routing Header includes one or more SID addresses corresponding to one or more SR path segments.

[0010] Figure 3B A block diagram illustrating an example Segment Routing Header of a SID packet is shown. The Segment Routing Header includes one or more micro-SID addresses corresponding to one or more SR path segments.

[0011] Figure 4 A flow diagram illustrating an example method of optimizing an SR path using micro-SIDs is shown.

[0012] Figure 5 A flow diagram illustrating another example method of optimizing an SR path using micro-SIDs is shown.

[0013] Figure 6 A flow diagram illustrating yet another example method of optimizing an SR path using micro-SIDs is shown.

[0014] Figure 7 is a computer architecture diagram showing an example computer hardware architecture of a computer that can be utilized to implement aspects of the various technologies presented herein. DETAILED DESCRIPTION

[0015] SUMMARY

[0016] Aspects of the application are set out in the independent claims and preferred features are set out in the dependent claims. Features of one aspect can be applied to each aspect, alone or in combination with the other aspects.

[0017] The present disclosure describes various techniques for optimizing Segment Routing (SR) paths using Segment Identifiers (SIDs). As an example and not by way of limitation, the method in accordance with the various techniques presented in this disclosure can include determining, at a computing device, to send a packet from a first node of a network to a second node of the network using SIDs of an SR method. The method can also include determining a first number of micro-SIDs included in a micro-SID carrier. A SR path for sending the packet defined by a second number of SIDs can then be determined based at least in part on the first number of micro-SIDs and a cost constraint. The second number of SIDs can be associated with maximizing the first number of micro-SIDs included in individual micro-SID carriers. The method can further include modifying the packet to include at least the first number of micro-SIDs, and causing the packet to flow from the first node to the second node via the SR path.

[0018] Further, the techniques described herein can be performed as a method and / or by a system having a non-transitory computer-readable medium storing computer-executable instructions, which, when executed by one or more processors, perform the techniques described above.

[0019] Example Embodiments

[0020] As described above, reducing the number of SIDs in a packet can improve network efficiency due to reduced overhead. However, reducing the number of SIDs for a path can result in a path with higher cost and / or higher latency. To balance overhead and path cost, various techniques have been proposed to determine a path with a minimum number of SIDs subject to a margin constraint.

[0021] However, these techniques do not address cases where, for example, the preferred number of segments for a path is not simply the minimum. This is the case for SRv6 networks based on micro-SIDs. Minimizing the segment list within the quantized size of, for example, a micro-SID bearer, can result in selecting a path that is within the margin of metrics, but has a worse quality compared to a longer segment list within the same quantization. In other words, computing a path with a minimum number of segments results in a worse quality compared to a path with a minimum number of quanta (e.g., the minimum number of segments that completely fill a micro-SID bearer). Furthermore, similar deficiencies exist in Multiprotocol Label Switched (MPLS) data planes that use source routing. Accordingly, various techniques are described herein for optimizing SR paths that use micro-SIDs, which are equally applicable to SRv6-based networks, MPLS data plane networks, and other source routed networks.

[0022] By way of example, and not limitation, methods in accordance with some of the various techniques of this disclosure can include determining, at a computing device, that a segment identifier is to be used to send a packet from a first node of a network to a second node of the network using a segment routing method. The packet can be sent from the first node to the second node via one or more intermediate nodes arranged along an SR path between the first node and the second node. The first node, the second node, and the one or more intermediate nodes can be associated with a network of nodes for communicating data to various devices utilizing the network of nodes. In some examples, the first node, the second node, and / or the intermediate nodes can comprise various networking and / or computing devices, such as routers, switches, hubs, gateways, and the like. Further, the first node, the second node, and / or the intermediate nodes can communicate with one another via one or more wired and / or wireless links.

[0023] In some examples, the method can further include determining a first number of micro-SIDs included in the micro-SID carrier. In other words, the method can include determining a capacity of the micro-SID carrier for the network. As used herein, the term "micro-SID carrier" or "uSID carrier" refers to a maximum number of individual micro-SIDs that can be contained within a micro-SID carrier. For example, in most network configurations, a micro-SID can be represented using 2 bytes, and up to 6 micro-SIDs can be carried in a regular 16 byte SID. Thus, where a micro-SID is represented using 2 bytes, the micro-SID carrier capacity is 6. However, different choices for micro-SID size are contemplated depending on the network, and a micro-SID can be represented using 3 bytes, 4 bytes, etc. Thus, for a micro-SID represented using 3 bytes, up to 4 micro-SIDs can be carried in a regular 16 byte SID (micro-SID carrier capacity equals 4), and for a micro-SID represented using 4 bytes, up to 3 micro-SIDs can be carried in a regular 16 byte SID (micro-SID carrier capacity equals 3). In some examples, the capacity of the micro-SID carrier for a particular network can be set by a network administrator, a consumer of the network, etc.

[0024] In some examples, the method can include determining an SR path defined by a second number of SIDs to send the packet from the first node to the second node. In some examples, determining the SR path can be based at least in part on the first number of micro-SIDs (e.g., the capacity of the micro-SID carrier). The second number of SIDs can be associated with maximizing the first number of micro-SIDs included in an individual micro-SID carrier. For example, if the first number of micro-SIDs (the capacity of the micro-SID carrier) is 6, then the second number of SIDs should equal a multiple of 6 (e.g., 6, 12, 18, 24, etc.) in order to completely fill the micro-SID carrier with micro-SIDs representing SIDs to its maximum capacity.

[0025] Additionally, or alternatively, determining the SR path can be based at least in part on a cost constraint. As described above, as the number of SIDs increases, the cost of the SR path decreases. Thus, the second number of SIDs of the SR path can be greater than or equal to a minimum number of SIDs associated with keeping the cost of the SR path below the cost constraint. In at least one example, determining the SR path can be based at least in part on determining a minimum number of SIDs associated with sending the packet from the first node to the second node while maintaining a path cost less than or equal to the cost constraint. However, the minimum number of SIDs associated with keeping the cost of the SR path below the cost constraint can be less than the maximum capacity of one or more micro-SID carriers.

[0026] In some examples, the cost constraint can be associated with a monetary cost (e.g., a dollar amount associated with sending the packet), a latency, a TE cost, an IGP cost, and so forth. The cost constraint can include a maximum path cost associated with a user-specified margin and a sum of costs of the SR path when using a network maximum of the number of micro-SIDs. In other words, in at least one example, the cost of the SR path should be less than the user-specified margin plus the sum of the costs of the SR path when having at most the network maximum of the number of micro-SIDs.

[0027] In some examples, the method can include modifying the packet to include at least the first number of micro-SIDs, and then causing the packet to flow from the first node to the second node via the SR path. For example, each of the second number of SIDs can be modified such that a first SID of the second number of SIDs is represented by a first micro-SID of the first number of micro-SIDs, and so forth. In other words, each individual segment of the SR path can be represented by a respective micro-SID that contains fewer bits or bytes than a traditional 16-byte SID.

[0028] The techniques described herein are generally applicable to any type of source routing method, including segment routing, micro-SID based segment routing, MPLS data plane routing, and so forth. According to the techniques described herein, a source routed packet header using micro-SIDs can take advantage of the capacity of a 16-byte SID when sending a packet between nodes. This reduces the path cost associated with sending the packet between nodes, while minimizing the overhead of the packet, thereby improving network efficiency. This approach has benefits over state-of-the-art methods, even when using a minimum cost path technique to determine the SR path.

[0029] Certain implementations and embodiments of the present disclosure will now be described more fully hereinafter with reference to the accompanying drawings, in which various aspects can be seen. The various aspects, however, can be implemented in many different forms and should not be construed as limited to the implementations set forth herein. The present disclosure encompasses all variations of the embodiments described herein. Like numbers refer to like elements throughout.

[0030] Figure 1The diagram illustrates the system architecture of example environment 100, where micro SID optimization is used to send packets between various nodes in node network 102. Node network 102 may include one or more nodes 104A-104N (collectively referred to as "Node 104", where N represents any number greater than or equal to one). Node 104 may include switches, routers, hubs, gateways, load balancers, any combination thereof, etc. In various examples, nodes 104 may be located in different geographical locations and communicate with each other via one or more wired or wireless links. Each node 104 may include a corresponding SID and / or micro SID. Additionally, or alternatively, each link between nodes may include a corresponding SID and / or micro SID.

[0031] One or more client devices 106 can communicate with nodes in node network 102 through one or more networks 108A. For example... Figure 1 As shown, node 104A acts as an edge node, providing communication for client device 106 via node network 102. In some examples, client device 106 may communicate with one or more servers 110 via networks 108A and 108B and via individual nodes of node network 102 to consume and / or use application 112 running on one or more servers 110 (e.g., virtual machines). One or more client devices 106 may include any type of device configured to communicate via network 108A using various communication protocols. For example, client device 106 may include personal user devices (e.g., desktop computers, laptops, telephones, tablets, wearable devices, entertainment devices such as televisions, etc.), network devices (e.g., servers, routers, switches, access points, etc.), and / or any other type of computing device.

[0032] Networks 108A and 108B (collectively, “Network 108”) may include one or more networks implemented using any feasible communication technology, such as wired and / or wireless methods and / or technologies. Network 108 may include any combination of Personal Area Network (PAN), Local Area Network (LAN), Campus Area Network (CAN), Metropolitan Area Network (MAN), Extranet, Intranet, Internet, Short-Range Wireless Communication Network (e.g., ZigBee, Bluetooth, etc.), Wide Area Network (WAN) – including centralized and / or distributed – and / or any combination, permutation, and / or aggregation thereof.

[0033] One or more servers 110 can provide services to client devices 106, such as applications 112. Generally, server 110 can provide basic resources such as processors (CPU), memory (RAM), storage devices (disks), and networking (bandwidth). In addition, in some examples, server 110 can provide, host, or otherwise support one or more application services for client devices 106 to connect to and use.

[0034] In some cases, server 110 may be stored in various data centers located in different physical locations. For example, a first server may be stored in a first data center located in a first geographical location, and a second server may be stored in a second data center located in a second geographical location. The first server may be associated with a first node of node network 102, and the second server may be associated with a second node of node network 102. Data centers may be physical facilities or buildings located in various geographical regions, designated as storage networking devices. Data centers may include various networking devices, as well as redundant or backup components and infrastructure for power supply, data communication connections, environmental control, and various security devices. In some examples, data centers may include one or more virtual data centers, which are pools or collections of cloud infrastructure resources specifically designed for enterprise needs and / or the needs of cloud-based service providers.

[0035] like Figure 1 As shown, packets sent by client device 106, such as packet 114, can traverse node network 102 according to the SR path to reach server 110. The minimum SID cost path is shown as a solid line, while the optimized micro SID (uSID) path is shown as a dashed line. In this example, controller 116 can determine an SR path for each node 104 to communicate with each other at the lowest cost and with the lowest overhead. Therefore, controller 116 can determine the minimum SID cost path by including four SIDs (corresponding to nodes 104A, 104B, 104E, and 104F) in the SR header of packet 114 to ensure the SR path has the lowest cost and lowest overhead. However, in a micro SID-based source routing network, controller 116 can additionally determine that up to six micro SIDs can be included in the SR header of packet 114. Therefore, controller 116 can determine to send packet 114 using an optimized micro SID path (via nodes 104A, 104D, 104G, 104H, 104N, and 104F), thereby producing a lower cost path than the minimum SID cost path without increasing overhead.

[0036] Figure 2A system architecture diagram illustrating an example environment including a network of nodes 102 and a controller 116 is shown. The controller 116 can receive telemetry data 202 from one or more of the individual nodes 104A-104N of the network of nodes 102 and, among other things, determine optimized micro-SID paths between the nodes. The telemetry data 202 can include, among other things, neighboring nodes of each individual node of the network of nodes 102, latency between a first node and a second node (e.g., nodes 104A and 104D) of the network of nodes 102, node parameters, virtual routing and forwarding (VRF) tables, data plane parameters, and the like. In some examples, as shown, the controller 116 can be able to directly communicate with each node 104 via one or more wired and / or wireless links. Additionally, or alternatively, the controller 116 can communicate with some of the nodes of the network of nodes 102 through other nodes of the network of nodes 102 (e.g., communicate with node 104A through nodes 104B and 104C). Figure 2

[0037] The controller 116 can include one or more processors 204 and one or more computer-readable media 206. The processor(s) 204 can include one or more cores and can perform one or more operations on behalf of the controller 116. The computer-readable media 206 can store various data associated with one or more devices of the environment 200, including one or more SID tables 208, network parameters 210, and optimized micro-SID paths 212, such as the optimized micro-SID paths shown in Figure 1

[0038] The micro-SID path optimization component 212 can access data stored in the one or more SID tables 208 and / or the network parameters 210 in order to determine and / or calculate one or more optimized micro-SID paths. For example, the micro-SID path optimization component 212 can access cached data stored in the SID tables 208 that indicates the shortest SR paths between nodes and can also access data associated with the network parameters 210 in order to determine optimized micro-SID paths between the nodes. After determining and / or calculating the optimized micro-SID paths, the micro-SID path optimization component 212 can store the paths in the optimized micro-SID paths 212 database.

[0039] Figure 3A ​​A block diagram illustrating an example Segment Routing Header 300A for a SID packet is shown. The Segment Routing Header 300A includes one or more SID addresses corresponding to one or more SR path segments. The Segment Routing Header 300A can be used to route a packet from a first node of a network to a second node of the network according to a source routing method.

[0040] As shown, the Segment Routing Header 300A can include various data fields and / or layers, such as a Next Header field 302, a Header Length field 304, a Routing Type field 306, a Remaining Segments field 308, a Last Entry field 310, a Flags field 312, and a Label field 314. In addition, the Segment Routing Header 300A can include a Segment List that includes one or more SID addresses, such as a first SID address 316A, a second SID address 316B, a third SID address 316C, and an Nth SID address 316N (where N can represent any number greater than or equal to 1). Figure 3A

[0041] The Next Header field 302 can include an 8-bit selector that identifies the type of header immediately following the Segment Routing Header 302. The Header Length field 304 can include an 8-bit unsigned integer that indicates the length of the Segment Routing Header 304, in 8-octet units, not including the first 8 octets. The Routing Type field 306 can include an 8-bit identifier that indicates the type of routing protocol (e.g., a particular routing header variant) to be used to send the packet. The Remaining Segments field 308 can include an 8-bit unsigned integer that indicates the number of remaining routing segments. In other words, the Remaining Segments field 308 can indicate the number of explicitly listed intermediate nodes that still need to be visited before reaching the final destination. The value of the 8-bit unsigned integer in the Remaining Segments field 308 can be decremented at each segment.

[0042] The Last Entry field 310 can contain an index of the last element of the Segment List in the Segment List (e.g., the Nth SID address 316N). The Flags field 312 can include an 8-bit flag. Individual flags included in the Flags field 312 can be associated with different meanings. For example, a P flag can indicate a protected flag, an O flag can represent an operations and management (OAM) flag, an A flag can represent an alarm flag, and so on. Finally, the Label field 314 can tag the packet as part of a class or group of packets (e.g., packets that share the same set of attributes).

[0043] ​The segment list of the segment routing header 300A can include one or more 128-bit (16-byte) IPv6 addresses (SID addresses) that represent individual segments of the SR path. In some examples, the segment list is encoded starting from the last segment of the path. In other words, the first element (first SID address 316A) of the segment list contains the last segment of the path, the second element (second SID address 316B) contains the second-to-last segment of the SR path, the third element (third SID address 316C) contains the third-to-last segment of the SR path, and so on. Each SID address of the segment list can correspond to a particular segment of the SR path. For example, the first SID address 316A can correspond to a first node and / or segment, the second SID address 316B can correspond to a second node and / or segment, the third SID address 316C can correspond to a third node and / or segment, and so on.

[0044] Figure 3B A block diagram of an example segment routing header 300B of a SID packet is illustrated. The segment routing header 300B includes a segment list that contains one or more micro-SID addresses that correspond to one or more SR path segments. As shown, the segment routing header 300B can include the same or similar data fields and / or layers as the segment routing header 300A described above, such as the next header field 302, the header length field 304, the routing type field 306, the remaining segments field 308, the last entry field 310, the flags field 312, and the label field 314.

[0045] Further, the Segment Routing Header 300B can include a Segment List that includes one or more micro-SIDs (uSID) addresses 318A-318N (hereinafter collectively referred to as "micro-SID addresses 318," and where N can represent any number greater than or equal to 1). The micro-SID addresses 318 can include 16-bit (2-byte) IPv6 addresses that represent at least one of individual segments of the SR path or micro-SID Carriers associated with the SR path. For example, a first micro-SID address 318A can correspond to a first node, segment, and / or first SID address 316A, a second micro-SID address 318B can correspond to a second node, segment, and / or second SID address 316B, a third micro-SID address 318C can correspond to a third node, segment, and / or third SID address 316C, and so on. In some examples, the Segment List is encoded starting from the last segment of the path. In other words, the first element of the Segment List (the first micro-SID address 318A) contains the last segment of the path, the second element (the second micro-SID address 318B) contains the second to last segment of the SR path, the third element (the third micro-SID address 318C) contains the third to last segment of the SR path, and so on.

[0046] As shown, up to six 16-bit (2-byte) micro-SIDs 318A-318F can be included in one micro-SID Carrier. A micro-SID Carrier can include a 128-bit (16-byte) data field. In other words, a micro-SID Carrier can correspond to an individual traditional SID field. While shown as 16-bit (2-byte) micro-SIDs in Figure 3B it is contemplated that other configurations of micro-SIDs can be used. For example, 24-bit (3-byte) micro-SIDs can be used, and up to four 24-bit (3-byte) micro-SIDs can be contained within one micro-SID Carrier. Additionally, or alternatively, 32-bit (4-byte) micro-SIDs can be used, and up to three 32-bit (4-byte) micro-SIDs can be contained within one micro-SID Carrier.

[0047] Figure 4 、 Figure 5 and Figure 6 illustrate flow diagrams of example methods that illustrate aspects of the functionality performed, at least in part, by the nodes 104 and / or controllers 116 as described in Figure 1 and 2 . Herein, the nodes 104 and / or controllers 116 are described as performing certain functions in accordance with the methods described herein. It should be understood that the nodes 104 and / or controllers 116 can be configured to perform these functions by virtue of having related Figure 4 、 Figure 5 and Figure 6The logical operations described herein can be implemented (1) as a sequence of computer implemented acts or program modules running on a computing system and / or (2) as interconnected machine logic circuits or circuit modules within the computing system.

[0048] The implementation of the various components described herein is a matter of choice dependent on the performance and other requirements of the computing system. Accordingly, the logical operations described herein are referred to variously as operations, structural devices, acts, or modules. These operations, structural devices, acts and modules can be implemented in software, in firmware, in special purpose digital logic, and any combination thereof. It should also be appreciated that more or fewer operations might be performed than shown in the figures and described herein. These operations can also be performed in parallel, or in a different order than those described herein. Some or all of these operations can also be performed by components other than those specifically identified. Although the techniques described in this disclosure are with reference to particular components, in other examples, these techniques can be implemented by less than all of these components, by more than these components, by components with different configurations, or by any combination of components. Figure 4 、 Figure 5 and Figure 6 more or less operations than shown and described herein. These operations can also be performed in parallel, or in a different order than those described herein. Some or all of these operations can also be performed by components other than those specifically identified. Although the techniques described in this disclosure are with reference to particular components, in other examples, these techniques can be implemented by less than all of these components, by more than these components, by components with different configurations, or by any combination of components.

[0049] Figure 4 A flow diagram illustrating an example method 400 of optimizing an SR path using a micro-SID is shown. The method 400 begins at operation 402, during which a computing device determines to send a packet from a first node of a network to a second node of the network using a Segment Identifier (SID) of a Segment Routing (SR) method. The packet can be sent from the first node to the second node via one or more intermediate nodes arranged along an SR path between the first node and the second node. The first node, the second node, and the one or more intermediate nodes can be associated with a network of nodes for communicating data to various devices utilizing the network of nodes. In some examples, the nodes can include various networking and / or computing devices, such as routers, switches, hubs, gateways, and the like. Further, the first node, the second node, and / or the intermediate nodes can communicate with one another via one or more wired and / or wireless links.

[0050] At operation 404, the method 400 includes determining a segment quantization factor that represents a first number of SIDs included in a segment quantization interval. In some cases, the segment quantization factor can represent a capacity of a micro-SID bearer of a network. In some examples, the capacity of the micro-SID bearer of the network can be able to accommodate up to six micro-SIDs, five micro-SIDs, four micro-SIDs, or another number of micro-SIDs specified by the network. The capacity of the micro-SID bearer of a particular network can be set by a network administrator, a consumer of the network, or the like. In various examples, determining the segment quantization factor can be based at least in part on programming the segment list to a node of the data packet. The segment quantization factor can represent a number of SIDs that can be pushed in a single pass in a forwarding application-specific integrated circuit (ASIC), a number of micro-SIDs in a micro-SID bearer, or the like. When the segment quantization factor represents a number of SIDs that can be pushed in a single pass in a forwarding ASIC, the segment list is determined such that a maximum number of SIDs are pushed in each pass of forwarding.

[0051] At operation 406, the method 400 includes determining an SR path defined by a second number of SIDs to send the packet based at least in part on the segment quantization factor and a cost constraint, where the second number of SIDs is associated with maximizing the SIDs included in individual segment quantization intervals. In other words, the second number of SIDs is associated with maximizing the SIDs included in each of one or more segment quantization intervals of the segment list. For example, if the first number of micro-SIDs (e.g., the capacity of the micro-SID bearer) is 6, then the second number of SIDs should be equal to a multiple of 6 (e.g., 6, 12, 18, 24, etc.) in order to completely fill the micro-SID bearer with micro-SIDs representing SIDs to its maximum capacity. In this example, the segment quantization factor is 6, the first segment quantization interval is between the 1st SID and the 6th SID, the second quantization interval is between the 7th SID and the 12th SID, and so on. In some examples, the second number of SIDs of the SR path can be greater than or equal to a minimum number of SIDs associated with keeping a cost of the SR path below the cost constraint. Further, determining the SR path can be further based at least in part on determining a minimum number of SIDs associated with sending the packet from the first node to the second node while maintaining a path cost less than or equal to the cost constraint.

[0052] In some examples, the cost constraint can be associated with a monetary cost (e.g., a dollar amount associated with sending the packet), a latency, a TE cost, an IGP cost, and so forth. The cost constraint can include a maximum path cost associated with a user-specified margin and a sum of a cost of a minimum cost path. The calculation of the minimum cost path can be subject to a constraint that limits a number of micro-SIDs of the path to a maximum number. In other words, in at least one example, the cost of the SR path should be less than a sum of the user-specified margin and the cost of the minimum cost SR path.

[0053] At operation 408, the method 400 includes modifying the packet to include at least a first number of micro-SIDs. For example, each of the second number of SIDs can be modified such that a first SID of the second number of SIDs is represented by a first micro-SID of the first number of micro-SIDs, and so forth. In other words, each individual segment of the SR path and / or a SID corresponding to the individual segment can be represented by a respective micro-SID that contains fewer bits or bytes than a traditional 128-bit (16-byte) SID.

[0054] At operation 410, the method 400 includes causing the packet to flow from the first node to the second node via the SR path. In some examples, causing the packet to flow from the first node to the second node can further include sending instructions from a controller (e.g., the controller 116) to the first node. The instructions can indicate one or more SR paths to be used by the first node when sending data to other nodes of the network. For example, the instructions can indicate a first SR path to be used by the first node when sending data to the second node, a second SR path to be used by the first node when sending data to the third node, and so forth. In some examples, the SR path instructions can be stored by various nodes of the network. The SR path instructions can be updated when a node becomes unavailable due to, for example, a failure related to the node, an amount of bandwidth available to the node, and so forth.

[0055] Figure 5 A flowchart illustrating another example method 500 of optimizing SR paths using micro-SIDs is shown. The method 500 begins at operation 502, where one or more shortest segment routing (SR) paths between a first node and a second node are determined, the paths using at most one segment identifier (SID).

[0056] At operation 504, the method 500 includes determining shortest SR paths between the first node and the second node that use at most two SIDs based at least in part on the paths computed in operation 502. The shortest SR paths can include one or more SR paths between the first node and the second node. In some examples, operation 504 can be repeated one or more times to determine additional shortest SR paths between the first node and the second node that use at most an additional number of SIDs (e.g., four SIDs, eight SIDs, etc.).

[0057] At operation 506, the method 500 includes determining shortest SR paths between the first node and the second node that use at most a number of SIDs equal to a segment quantization factor associated with the network or equal to a number of micro-SIDs that can be contained within a micro-SID carrier based at least in part on the paths computed in operation 504. The segment quantization factor can represent a number of SIDs that can be pushed in a single pass in a forwarding ASIC, a number of micro-SIDs in a micro-SID carrier, etc. In some examples, a capacity of a micro-SID carrier of the network can be able to accommodate up to six micro-SIDs, five micro-SIDs, four micro-SIDs, or another number of micro-SIDs specified by the network. The capacity of the micro-SID carrier of a particular network can be set by a network administrator, a consumer of the network, etc.

[0058] At operation 508, the method 500 includes determining shortest SR paths between the first node and the second node that use at most two micro-SID carriers based at least in part on the paths computed in operation 506. In some examples, operation 508 can be repeated one or more times to determine additional shortest SR paths between the first node and the second node that use at most an additional number of micro-SID carriers (e.g., three micro-SID carriers, four micro-SID carriers, etc.). At operation 510, the method 500 includes determining shortest SR paths between the first node and the second node that use at most a maximum number of micro-SID carriers based at least in part on the paths computed in operation 508. In some examples, the maximum number of micro-SID carriers can be set by a network administrator, a user of the network, etc. Additionally, or alternatively, the maximum number of micro-SID carriers can be associated with a cost constraint or capabilities of hardware and software used in network devices.

[0059] At operation 512, the method 500 includes identifying, based at least in part on the path determined in operations 506-510, an SR path having a minimum number of micro-SID carriers that has a path cost less than a threshold path cost. In this way, an SR path defined by a number of segments equal to a capacity of one or more micro-SID carriers can be used in order to minimize a cost of the path, as well as minimize an overhead of the packet. Finally, at operation 514, the method 500 includes causing traffic to flow from the first node to the second node using the identified SR path.

[0060] Figure 6 A flowchart illustrating another example method 600 of optimizing SR paths using micro-SIDs is shown. The method 600 begins at operation 602, which includes determining, at a computing device, that a packet is to be sent from a first node of a network to a second node of the network using a Segment Routing (SR) approach. The packet can be sent from the first node to the second node via one or more intermediate nodes arranged along an SR path between the first node and the second node. Alternatively, the packet can be sent directly from the first node to the second node. The first node, the second node, and / or the one or more intermediate nodes can be associated with a network of nodes for communicating data to various devices utilizing the network of nodes. In some examples, the nodes can include one or more various networking and / or computing devices, such as routers, switches, hubs, gateways, etc. Further, the first node, the second node, and / or the intermediate nodes can communicate with one another via one or more wired and / or wireless links. Additionally, the nodes can communicate with one another using one or more different communication methods or protocols.

[0061] At operation 604, the method 600 includes determining a first number of Segment Identifiers (SIDs) associated with sending the packet from the first node to the second node such that a path cost associated with the first number of SIDs is less than a threshold path cost. Generally, as the number of segments and / or SIDs of an SR path increases, the path cost can decrease. Thus, the first number of SIDs can be further described as a minimum number / quantity of SIDs associated with keeping the path cost below the threshold path cost. In some examples, determining the first number of SIDs can be based at least in part on calculating a first path cost associated with a first SR path defined by a single SID, calculating a second path cost associated with a second SR path defined by two SIDs, calculating a third path cost associated with a third SR path defined by three SIDs, etc., until a path cost less than the threshold path cost is identified.

[0062] At operation 606, the method 600 includes determining that the first number of SIDs is less than a micro-SID carrier capacity. The micro-SID carrier capacity can include one or more micro-SID carriers. In other words, this operation includes determining that the last micro-SID carrier needed to hold the first number of SIDs is partially filled. In some examples, determining that the first number of SIDs is less than a micro-SID carrier capacity can be based at least in part on a segment quantization factor. The segment quantization factor can indicate a number of micro-SIDs that can be contained within a single micro-SID carrier (e.g., a conventional 16-byte SID). For example, if the number of micro-SIDs that can be contained within a single micro-SID carrier is six, then the segment quantization factor can equal six. For example, if the number of micro-SIDs that can be contained within a single micro-SID carrier is three, then the segment quantization factor can equal three, and so on. In some cases, determining that the first number of SIDs is less than a micro-SID carrier capacity can be based at least in part on dividing the first number of SIDs by the segment quantization factor, or other similar techniques. For example, if the quotient resulting from dividing the first number of SIDs by the segment quantization factor is not an integer (e.g., 1, 2, 3, and so on), then the first number of SIDs is less than a micro-SID carrier capacity. In other words, additional micro-SIDs can be contained within the micro-SID carrier capacity.

[0063] At operation 608, the method 600 includes determining, based at least in part on the first number being less than the micro-SID carrier capacity, an SR path between the first node and the second node, the SR path defined by a second number of SIDs, the second number higher than the first number of SIDs and equal to the micro-SID carrier capacity unless a lowest cost SR path between the first node and the second node does not require as many micro-SIDs as the full capacity of a micro-SID carrier. In other words, the second number of SIDs fully maximizes the capacity of the one or more micro-SID carriers. In some cases, determining the SR path can be based at least in part on determining a difference between the first number of SIDs and the micro-SID carrier capacity (e.g., determining how many additional SIDs can be added to the first number to fully maximize the capacity of the micro-SID carrier).

[0064] At operation 610, the method 600 includes modifying the packet to include the second number of SIDs, where individual SIDs of the second number of SIDs are represented by individual micro-SIDs of the micro-SIDs. For example, each SID determined to be used in a packet header to send the packet to the second node using the SR path can be converted to a micro-SID that includes fewer bits or bytes than the original SID. And finally, at operation 612, the method 600 includes causing the packet to flow from the first node to the second node via the SR path. Each individual micro-SID can indicate how the current segment forwards the packet according to the SR path.

[0065] Figure 7 FIG. 1 is a diagram of a computer architecture that can be used in implementing aspects of the various technologies presented herein. Figure 7 The illustrated computer architecture diagram illustrates a conventional server computer, workstation, desktop computer, laptop, tablet, network appliance, e-reader, smart phone, or other computing device, and can be utilized to execute any of the software components presented herein. In some examples, computer 700 can correspond to a node 104, client device 106, server 110, and / or controller 116 as described herein, and can include networked devices such as servers, switches, routers, hubs, bridges, gateways, modems, repeaters, access points, and the like.

[0066] Computer 700 includes a baseboard 702, or “motherboard,” which is a printed circuit board to which a multitude of components or devices can be connected by way of a system bus or other electrical communication paths. In one illustrative configuration, one or more central processing units (CPU(s)) 704 operate in conjunction with a chipset 706. CPU(s) 704 can be standard programmable processors that execute instructions from program binaries stored in memory locations within computer 700.

[0067] CPU(s) 704 performs operations through transitions from one discrete physical state to the next through the manipulation of switches, which differentiate and change states in response to instructions from one or more software applications or from firmware or operating system software running on computer 700. These switches are generally represented by their states, and changes between states are generally referred to as voltages that switch from one value to another. Such physical implementations of instructions by CPU(s) 704 form into a configuration often referred to as machine or computer code, machine language, machine operations, or others.

[0068] Chipset 706 provides an interface between CPU(s) 704 and the remainder of computer 700. Chipset 706 can provide an interface between a system bus of computer 700 and one or more components or devices. For example, chipset 706 can provide an interface between CPU(s) 704 and RAM 708, which is used as main memory in computer 700. Chipset 706 can further provide an interface to computer-readable storage media, such as read-only memory (ROM) 710 or non-volatile RAM (NVRAM), which stores basic routines that help to startup computer 700 and transfer information between components and devices. ROM 710 or NVRAM can also store other software components necessary for the operation of computer 700 in accordance with the configurations described herein.

[0069] Computer 700 can operate in a networked environment, using a logical connection to remote computing devices and computer systems via one or more networks 724. Network 724 can connect with... Figure 1 The network 108 described herein is the same as or similar to that described herein. Chipset 706 may include functionality for providing network connectivity via NIC 712 (e.g., a Gigabit Ethernet adapter). NIC 712 enables computer 700 to connect to other computing devices via network 724. It should be understood that multiple NICs 712 may be present in computer 700 to connect the computer to other types of networks and remote computer systems. In some examples, network interface card 712 may be configured to perform at least some of the techniques described herein.

[0070] Computer 700 can be connected to storage device 718, which provides non-volatile storage for the computer. Storage device 718 can store operating system 720, programs 722, and data, which have been described in more detail herein. Storage device 718 can be connected to computer 700 via storage controller 714, which is connected to chipset 706. Storage device 718 can consist of one or more physical storage units. Storage controller 714 can be connected to physical storage units via a serial attached SCSI (SAS) interface, a serial advanced technology attachment (SATA) interface, a fiber channel (FC) interface, or other types of interfaces used for physical connection and data transfer between the computer and physical storage units.

[0071] Computer 700 can store data on storage device 718 by changing the physical state of physical storage units to reflect the stored information. In different embodiments of this specification, the specific changes in physical state can depend on various factors. Examples of such factors include, but are not limited to, the technology used to implement the physical storage units, whether storage device 718 is characterized as primary or secondary storage, etc.

[0072] For example, computer 700 can store information to the storage device 718 by issuing instructions 716 to modify the magnetic properties of a particular location within a disk drive unit, the reflective or refractive qualities of a particular location within an optical storage unit, or the electrical characteristics of a particular capacitor, transistor, or other discrete component in a solid-state storage unit. Other transformations of physical media are possible without departing from the scope and spirit of the present description, with the foregoing examples provided only to facilitate this description. Computer 700 can further read information from the storage device 718 by detecting changes in the physical state of one or more specific locations within the physical storage units.

[0073] In addition to the mass storage device 718 described above, the computer 700 can have access to other computer-readable storage media to store and read the information, such as program modules, data structures, or other data. It should be appreciated by those skilled in the art that computer-readable storage media is any available media that provides for the non- transitory storage of data and that is accessible by the computer 700. In some examples, the operations performed by the node network 102 and or any components included therein can be supported by one or more devices similar to the computer 700. In other words, some or all of the operations performed by the node network 102 and or any components included therein can be performed by one or more computer devices 700 operating in a cloud-based arrangement.

[0074] By way of example, and not limitation, computer-readable storage media can include volatile and non-volatile, removable and non-removable media implemented in any method or technology. Computer-readable storage media includes, but is not limited to, RAM, ROM, erasable programmable ROM (EPROM), electrically-erasable programmable ROM (EEPROM), flash memory or other solid-state memory technology, compact disc ROM (CD-ROM), digital versatile disk (DVD), high definition DVD (HD-DVD), BLU-RAY, or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information in a non-transitory fashion.

[0075] As briefly mentioned above, the storage device 718 can store an operating system 720 utilized to control the operation of the computer 700. According to one embodiment, the operating system comprises the LINUX operating system. According to another embodiment, the operating system comprises the SERVER operating system from MICROSOFT Corporation of Redmond, Washington. According to further embodiments, the operating system can include the UNIX operating system or one of its variants. Consequently, those skilled in the art will appreciate that the embodiments described herein can be practiced with other operating systems as well. The storage device 518 can also store other system or application programs and data utilized by the computer 500.

[0076] In one embodiment, the storage device 718 or other computer readable storage medium is encoded with computer-executable instructions which, when loaded into the computer 700, transform the computer from a general-purpose computing system into a special- purpose computing system configured to implement the embodiments described herein. As stated above, these computer-executable instructions transform the computer 700 by specifying how the CPU 704 transitions between states, thereby changing the way the computer 700 operates. According to one embodiment, the computer 700 is configured to access a computer- readable storage medium that stores computer-executable instructions which, when executed by the computer 700, perform the various processes described above with regard to Figures 1-6 the embodiments described herein. The computer 700 can also include computer- readable storage media storing instructions that, when executed by the computer, perform any of the other computer-implemented operations described herein.

[0077] The computer 700 can also include one or more input / output controllers 716 for receiving and processing inputs from a number of input devices, such as a keyboard, mouse, touchpad, touchscreen, electronic stylus, or other type of input device. Similarly, the input / output controller 716 can provide output to a display, such as a computer monitor, flat- panel display, digital projector, printer, or other type of output device. It will be appreciated that the computer 700 can not include all of the components shown in Figure 7 FIG. 6, can include other components not explicitly shown in FIG. 6, or can utilize an architecture completely different than that shown in FIG. 6. Figure 7 Figure 7

[0078] ​The computer 700 can include one or more hardware processors 704 (processors) configured to execute one or more stored instructions that implement the functionality disclosed herein. The processor(s) 704 can include one or more cores. Additionally, the computer 700 can include one or more network interfaces configured to provide communication between the computer 700 and other devices, such as the communications described herein as being performed by the nodes 104 and the controller 116. The network interfaces can include devices configured to couple to personal area networks (PANs), wired and wireless local area networks (LANs), wired and wireless wide area networks (WANs), etc. For example, the network interfaces can include devices compatible with Ethernet, Wi-Fi TM , Bluetooth®, etc.

[0079] The programs 722 can include any type of programs or processes that execute the techniques described in this disclosure for optimizing SR paths using micro-SIDs. The programs 722 can cause the nodes 104 and / or the controller 116 to perform the various operations described herein.

[0080] In summary, techniques are disclosed for optimizing Segment Routing (SR) paths using Segment Identifiers (SIDs), including determining that a packet is to be sent from a first node to a second node of a network using an SR method. The techniques can also include determining a segment quantization factor that represents a first number of SIDs included in a segment quantization interval. Based at least in part on the segment quantization factor and a cost constraint, a SR path defined by a second number of SIDs can be determined to send the packet. The second number of SIDs can be associated with maximizing the SIDs included in an individual segment quantization interval. The techniques also include modifying the packet to include at least the second number of SIDs and causing the packet to flow from the first node to the second node via the SR path.

[0081] While the application has been described with respect to specific examples including presently preferred modes of carrying out the application, those skilled in the art will recognize that many modifications and variations are possible that fall within the scope of the application, as defined by the appended claims. It is therefore intended that there be no limitations on the scope of the application other than as set forth in the following claims.

[0082] While this application describes embodiments with specific features and / or methods, it is understood that claims can not necessarily be limited to the specific features or acts described. Rather, the specific features and acts are disclosed as exemplary forms of implementing the claims.

Claims

1. A method for communication comprising: determining, at a computing device, to use segment identifiers (SIDs) of a segment routing (SR) method to send a packet from a first node of a network to a second node of the network, wherein the packet includes an SR header that includes a SID address; determining a segment quantization factor that represents a first number of SIDs included in a segment quantization interval; determining, based at least in part on the segment quantization factor and a cost constraint, an SR path defined by a second number of SIDs to send the packet, wherein the second number of SIDs is associated with maximizing SIDs included in individual segment quantization intervals; modifying the packet to include the second number of SIDs; and causing the packet to flow from the first node to the second node via the SR path.

2. The method of claim 1, wherein, the segment quantization factor further represents at least one of a number of micro-SIDs includable within a micro-SID carrier or a number of SIDs pushable in a single pass in a forwarding application specific integrated circuit (ASIC).

3. The method of claim 1 or 2, further comprising: determining, based at least in part on the cost constraint, a third number of SIDs associated with sending the packet from the first node to the second node, the third number of SIDs being associated with a path cost that is at least one of less than or equal to the cost constraint, wherein determining the SR path is further based at least in part on the third number of SIDs.

4. The method of claim 3, wherein, the third number of SIDs is at least one of less than or equal to the second number of SIDs, and wherein the cost constraint is associated with an amount of at least one of a latency associated with the SR path, an interior gateway protocol (IGP) metric associated with the SR path, or a traffic engineering (TE) metric associated with the SR path.

5. The method of claim 1 or 2, wherein, the SR path comprises a first SR path, the method further comprising determining, based at least in part on the segment quantization factor, one or more additional SR paths between the first node and the second node, the one or more additional SR paths including at least a second SR path defined by a third number of SIDs, wherein the third number of SIDs is at least one of greater than or less than the second number of SIDs and is associated with maximizing SIDs included in individual segment quantization intervals.

6. The method of claim 1 or 2, wherein, modifying the packet further comprises modifying individual SIDs of the second number of SIDs such that each of the second number of SIDs is represented by a respective micro-SID.

7. The method of claim 1 or 2, wherein: the cost constraint comprises a maximum amount of a metric associated with the SR path, the second number of SIDs is associated with a first amount of the metric, the first amount being less than the maximum amount, and the metric comprises at least one of a latency, an interior gateway protocol (IGP) metric, or a traffic engineering (TE) metric.

8. A system for communication, comprising: one or more processors; and one or more non-transitory computer-readable media storing instructions that, when executed by the one or more processors, cause the one or more processors to perform operations comprising: determining, at a computing device, to send a packet from a first node of a network to a second node of the network using segment identifiers (SIDs) of a segment routing (SR) method, wherein the packet includes an SR header that includes a SID address; determining a segment quantization factor that is representative of a first number of SIDs included in a segment quantization interval; determining, based at least in part on the segment quantization factor and a cost constraint, an SR path defined by a second number of SIDs to send the packet, wherein the second number of SIDs is associated with maximizing SIDs included in individual segment quantization intervals; modifying the packet to include at least the second number of SIDs; and causing the packet to flow from the first node to the second node via the SR path. the segment quantization factor is further representative of at least one of a number of micro-SIDs includable within a micro-SID carrier or a number of SIDs pushable in a single pass in a forwarding application-specific integrated circuit (ASIC).

9. The system of claim 8, wherein, determining, based at least in part on the cost constraint, a third number of SIDs associated with sending the packet from the first node to the second node, the third number of SIDs being associated with a path cost that is at least one of less than or equal to the cost constraint, wherein determining the SR path is further based at least in part on the third number of SIDs.

10. The system of claim 8 or 9, the operations further comprising: the third number of SIDs is at least one of less than or equal to the second number of SIDs, and wherein the cost constraint is associated with an amount of at least one of a latency associated with the SR path, an interior gateway protocol (IGP) metric associated with the SR path, or a traffic engineering (TE) metric associated with the SR path.

11. The system of claim 10, wherein, the SR path comprises a first SR path, the operations further comprising determining, based at least in part on the segment quantization factor, one or more additional SR paths between the first node and the second node, the one or more additional SR paths comprising at least a second SR path defined by a third number of SIDs, wherein the third number of SIDs is at least one of greater than or less than the second number of SIDs and is associated with maximizing SIDs included in individual segment quantization intervals.

12. The system of claim 8 or 9, wherein, modifying the packet further comprises modifying individual SIDs of the second number of SIDs such that each of the second number of SIDs is represented by a respective micro-SID.

13. The system of claim 8 or 9, wherein, 14. The system of claim 8 or 9, wherein: the cost constraint comprises a maximum amount of a metric associated with the SR path, ​ a second number of the SIDs is associated with a first amount of the metric, the first amount being less than the maximum amount, and the metric comprises at least one of a delay, an Interior Gateway Protocol (IGP) metric, or a Traffic Engineering (TE) metric.

15. A system for communication, comprising: one or more processors; and one or more non-transitory computer-readable media storing instructions that, when executed by the one or more processors, cause the one or more processors to perform operations comprising: determining to send a packet from a first node of a network to a second node of the network using Segment Routing (SR) methods of Segment Identifiers (SIDs); determining a segment quantization factor that represents a first number of SIDs that can be pushed in a single-pass forwarding; determining, based at least in part on the segment quantization factor and a desired packet forwarding rate, an SR path defined by a second number of SIDs to send the packet, wherein the second number of the SIDs is associated with maximizing the packet forwarding rate; modifying the packet to include the second number of SIDs; and causing the packet to flow from the first node to the second node via the SR path.

16. The system of claim 15, the operations further comprising receiving an indication of a desired packet forwarding rate, wherein the packet forwarding rate is at least one of user-configured, platform-dependent, or network-dependent.

17. The system of claim 16, the operations further comprising: determining, based at least in part on the packet forwarding rate, a maximum number of segment quantization intervals associated with sending the packet from the first node to the second node, and wherein the SR path is associated with a first number of segment quantization intervals that is less than the maximum number.

18. The system of claim 15 or 16, wherein, modifying the packet further comprises modifying individual SIDs of the second number of SIDs such that each of the second number of SIDs is represented by a respective micro-SID.

19. The system of claim 15 or 16, the operations further comprising: receiving a first indication of a desired packet forwarding rate; receiving a second indication of a cost constraint; and calculating, based at least in part on the desired packet forwarding rate and the cost constraint, one or more segment lists for sending a packet from a first node of a network to a second node of the network, wherein determining the SR path comprises selecting the SR path based at least in part on the one or more segment lists such that a packet forwarding rate of the SR path is maximized while a cost of the SR path is minimized.

20. An apparatus for communication, comprising: means for determining, at a computing device, to send a packet from a first node of a network to a second node of the network using Segment Routing (SR) methods of Segment Identifiers (SIDs), wherein the packet includes a SR header that includes a SID address; means for determining a segment quantization factor that represents a first number of SIDs included in a segment quantization interval; means for determining to send the packet along a SR path defined by a second number of SIDs based at least in part on the segment quantization factors and cost constraints, wherein the second number of SIDs is associated with maximizing SIDs included in individual segment quantization intervals; means for modifying the packet to include the second number of SIDs; and means for causing the packet to flow from the first node to the second node via the SR path.

21. The apparatus of claim 20, further comprising means for implementing a method according to any of claims 2 to 7.

22. A computer program product comprising instructions which, when executed by a computer, cause the computer to carry out the steps of a method as claimed in any of claims 1 to 7.

23. A computer readable medium comprising instructions which, when executed by a computer, cause the computer to carry out the steps of a method as claimed in any of claims 1 to 7.

Citation Information

Patent Citations

  • Segment routing based on maximum segment identifier depth

    US20190190818A1

  • Segment Routing Network Processing of Packets including Packets having a Segment Identifier Structure Providing Processing and / or Memory Efficiencies

    US20190215267A1