Guaranteed bandwidth for segment routed (SR) paths
11070463 · 2021-07-20
Assignee
Inventors
- Raveendra Torvi (Nashua, NH)
- Sudharsana Venkataraman (Toronto, CA)
- Tarek Saad (Ottawa, CA)
- Vishnu Pavan Beeram (Naperville, IL)
Cpc classification
G06F16/2379
PHYSICS
H04L45/036
ELECTRICITY
International classification
Abstract
At least one bandwidth-guaranteed segment routing (SR) path through a network is determined by: (a) receiving, as input, a bandwidth demand value; (b) obtaining network information; (c) determining a constrained shortest multipath (CSG.sub.i); (d) determining a set of SR segment-list(s) (S.sub.i=[sl.sub.1.sup.i, sl.sub.2.sup.i . . . sl.sub.n.sup.i]) a that are needed to steer traffic over CSG.sub.i; and (e) tuning the loadshares in L.sub.i, using S.sub.i and the per segment-list loadshare (L.sub.i=[l.sub.1.sup.i, l.sub.2.sup.i . . . l.sub.n.sup.i]), the per segment equal cost multipath (“ECMP”), and the per link residual capacity, such that the bandwidth capacity that can be carried over CSG.sub.i is maximized.
Claims
1. A computer-implemented method for determining at least one bandwidth-guaranteed segment routing (SR) path through a network from an ingress device to an egress device, the computer-implemented method comprising: a) receiving, as input, a bandwidth demand value; b) obtaining network information; c) determining a constrained shortest multipath (CSG.sub.i) from the ingress device to the egress device; d) determining a set of SR segment-list(s) (S.sub.i=[sl.sub.1.sup.i, sl.sub.2.sup.i . . . sl.sub.n.sup.i]) that are needed to steer traffic over CSG.sub.i; and e) tuning each of a plurality of loadshares in a set of segment link loadshares L.sub.i that the ingress device uses to steer portions of the bandwidth demand to the egress device, using all of 1) S.sub.i and the per segment-list loadshare (L.sub.i=[l.sub.1.sup.i, l.sub.2.sup.i, . . . l.sub.n.sup.i]), 2) the per segment equal cost multipath (“ECMP”), and 3) the per link residual capacity, such that the bandwidth capacity over CSG.sub.i is maximized or such that the bandwidth capacity meets a threshold value.
2. The computer-implemented method of claim 1 wherein the CSG.sub.i is formed of paths of equal cost of minimum accumulative path metric.
3. The computer-implemented method of claim 1 wherein the CSG.sub.i is formed of paths of equal cost of minimum accumulative path metric after excluding link(s) due to any topological constraints.
4. The computer-implemented method of claim 1 wherein the CSG.sub.i is formed of paths of equal cost of minimum accumulative path metric after pruning out zero residual bandwidth links.
5. The computer-implemented method of claim 1 wherein the CSG.sub.i is formed of paths of equal cost of minimum accumulative path metric.
6. The computer-implemented method of claim 1 wherein the act of obtaining network information is performed by accessing information in a traffic engineering database (TED), the computer-implemented method further comprising: f) updating the TED or a workspace including information from the TED, to deduct bandwidth capacity used on CSG.sub.i.
7. The computer-implemented method of claim 6 further comprising: g) determining whether or not the (remaining) bandwidth demand is satisfied by CSG.sub.i; and h) responsive to a determination that the capacity of CSG.sub.i is smaller than the (remaining) demand, repeating the acts (a)-(e).
8. The computer-implemented method of claim 1 wherein the act of tuning the loadshares in L.sub.i, using S.sub.i and the per segment-list loadshare (L.sub.i=[l.sub.1.sup.i, l.sub.2.sup.i, . . . l.sub.n.sup.i]), the per segment equal cost multipath (“ECMP”), and the per link residual capacity, such that the bandwidth capacity that is carried over CSG.sub.i is maximized, uses a sequential least squares programming procedure.
9. A router serving as an ingress of a SR path and comprising: a) at least one routing processor; and b) a non-transitory computer readable medium storing processor executable instructions which, when executed by the at least one routing processor, cause the at least one routing processor to determine at least one bandwidth-guaranteed segment routing (SR) path through a network from the router serving as the ingress of the SR path to an egress router, by performing a method comprising: a) receiving, as input, a bandwidth demand value; b) obtaining network information; c) determining a constrained shortest multipath (CSG.sub.i) from the router serving as the ingress of the SR path to the egress router; d) determining a set of SR segment-list(s) (S.sub.i=[sl.sub.1.sup.i, sl.sub.2.sup.i . . . sl.sub.n.sup.i]) that are needed to steer traffic over CSG.sub.i; and e) tuning each of a plurality of loadshares in a set of segment link loadshares L.sub.i that the router serving at the ingress of the SR path uses to steer portions of the bandwidth demand to the egress router, using all of 1) S.sub.i and the per segment-list loadshare (L.sub.i=[l.sub.1.sup.i, l.sub.2.sup.i, . . . l.sub.n.sup.i]), 2) the per segment equal cost multipath (“ECMP”), and 3) the per link residual capacity, such that the bandwidth capacity over CSG.sub.i is maximized or such that the bandwidth capacity meets a threshold value.
10. The router of claim 9 wherein the CSG.sub.i is formed of paths of equal cost of minimum accumulative path metric.
11. The router of claim 9 wherein the CSG.sub.i is formed of paths of equal cost of minimum accumulative path metric after excluding link(s) due to any topological constraints.
12. The router of claim 9 wherein the CSG.sub.i is formed of paths of equal cost of minimum accumulative path metric after pruning out zero residual bandwidth links.
13. The router of claim 9 wherein the CSG.sub.i is formed of paths of equal cost of minimum accumulative path metric.
14. The router of claim 9 wherein the act of obtaining network information is performed by accessing information in a traffic engineering database (TED), the method further comprising: f) updating the TED or a workspace including information from the TED, to deduct bandwidth capacity used on CSG.sub.i.
15. The router of claim 14 wherein the method further comprises: g) determining whether or not the (remaining) bandwidth demand is satisfied by CSG.sub.i; and h) responsive to a determination that the capacity of CSG.sub.i is smaller than the (remaining) demand, repeating the acts (a)-(e).
16. The router of claim 9 wherein the act of tuning the loadshares in L.sub.i, using S.sub.i and the per segment-list loadshare (L.sub.i=[l.sub.1.sup.i, l.sub.2.sup.i, . . . l.sub.n.sup.i]), the per segment equal cost multipath (“ECMP”), and the per link residual capacity, such that the bandwidth capacity over CSG.sub.i is maximized, uses a sequential least squares programming procedure.
17. A server in communication with a router serving as an ingress of a SR path, the server comprising: a) at least one path computation element (PCE); and b) a non-transitory computer readable medium storing processor executable instructions which, when executed by the at least one PCE, cause the at least one PCE to determine at least one bandwidth-guaranteed segment routing (SR) path through a network from the router serving as the ingress of the SR path to an egress router, by performing a method comprising: a) receiving, as input, a bandwidth demand value; b) obtaining network information; c) determining a constrained shortest multipath (CSG.sub.i) from the router serving as the ingress of the SR path to the egress router; d) determining a set of SR segment-list(s) (S.sub.i=[sl.sub.1.sup.i, sl.sub.2.sup.i . . . sl.sub.n.sup.i]) that are needed to steer traffic over CSG.sub.i; and e) tuning each of a plurality of loadshares in a set of segment link loadshares L.sub.i that the router serving at the ingress of the SR path uses to steer portions of the bandwidth demand to the egress router, using all of 1) S.sub.i and the per segment-list loadshare (L.sub.i=[l.sub.1.sup.i, l.sub.2.sup.i, . . . l.sub.n.sup.i]), 2) the per segment equal cost multipath (“ECMP”), and 3) the per link residual capacity, such that the bandwidth capacity over CSG.sub.i is maximized or such that the bandwidth capacity meets a threshold value.
Description
§ 3. BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
(17)
§ 4. DETAILED DESCRIPTION
(18) The present disclosure may involve novel methods, apparatus, message formats, and/or data structures for determining bandwidth guaranteed SR paths. The following description is presented to enable one skilled in the art to make and use the described embodiments, and is provided in the context of particular applications and their requirements. Thus, the following description of example embodiments provides illustration and description, but is not intended to be exhaustive or to limit the present disclosure to the precise form disclosed. Various modifications to the disclosed embodiments will be apparent to those skilled in the art, and the general principles set forth below may be applied to other embodiments and applications. For example, although a series of acts may be described with reference to a flow diagram, the order of acts may differ in other implementations when the performance of one act is not dependent on the completion of another act. Further, non-dependent acts may be performed in parallel. No element, act or instruction used in the description should be construed as critical or essential to the present description unless explicitly described as such. Also, as used herein, the article “a” is intended to include one or more items. Where only one item is intended, the term “one” or similar language is used. Thus, the present disclosure is not intended to be limited to the embodiments shown and the inventors regard their invention as any patentable subject matter described.
§ 4.1 Definintions and Terminology
(19) SG(R,D): the shortest multi-path directed acyclic graph from root R to destination D. This is analogous to the IGP computed shortest multi-path graph from R to D with no constraints on topology and when optimizing for the IGP metric.
(20) CSG(R,D): the constrained shortest multi-path directed acyclic graph from R to destination D. (The classical CSPF algorithm is extended by example methods consistent with the present description to become multi-path aware and support constraints on the topology and optimization of an arbitrary path metric such as TE, latency, hops, etc.)
(21) sl: SR segment-list that is composed of an ordered set of segments that resemble the path(s) that dataflow will follow. The segments of a segment-list are copied in a Segment Routing Header (SRH) that is imposed on top of data packets that are steered over the SR Path.
§ 4.2 Example Methods
(22) Example methods consistent with the present description determine bandwidth guaranteed SR paths. Such method(s) may be referred to as “SR Bandwidth Constrained Path Algorithm” (“SR-BCPA”). Goals of such example methods include, for example: determining a placement for the incoming traffic demand on link(s) where enough required resources are available to carry the share of traffic, so it minimizes the chances of congestion; determining an SR Path that utilizes ECMP capable SR segments whenever possible and accounting for load balancing of traffic on the available ECMP path(s); and optimizing for the chosen path metric (e.g. delay, TE metric, hops, etc.) when selecting the set of feasible path(s).
(23) Referring to
(24) Referring back to block 730, example methods consistent with the present description may use topology information composed from the TED and the per link residual capacities (or available bandwidth). For SR path computation purposes, it is assumed the per link residual capacities are managed by a resource manager that keeps track of the per SR Path resource allocation on each traversed link and that gets reflected on the TED used for new path computations.
(25) The following properties can be derived about the determined CSG.sub.i:
(26)
where: X.sub.i: is the cost of the i.sup.th CSG, X.sub.i: is the bandwidth capacity of the i.sup.th CSG, which is to be maximized (or increased to at least a determined threshold), S.sub.i: is the set of segment-lists needed to steer traffic over the path(s) described by the i.sup.th CSG, L.sub.i: is the per segment-list loadshare that the ingress uses to steer portion of the incoming demand on to S.sub.i. These loadshares are tuned by the optimization problem to maximize the capacity of the i.sup.th CSG.
(27) The weight distribution of the total incoming traffic on to each CSG can be represented as:
(28)
where w.sub.i: is the load-share of traffic carried by the i.sup.th CSG.
(29) The effective load carried by each segment-list sl can be computed as:
w.sub.i×L.sub.i∀sl(s) in S.sub.i.
§ 4.2.1 EXAMPLES OF OPERATIONS OF EXAMPLE METHODS
§ 4.2.1.1 First Example
(30) Referring to
(31)
(32) Since, however the bandwidth demand is not yet satisfied (Recall, e.g., 780, NO) (10 U<12 U), the method 700 performs a second iteration. In the second iteration, H runs the example method 700 to find CSPG.sub.2 and consequently steer the remainder 2 U over CSG.sub.2:
(33)
H updates the weight distribution as:
(34) W×L, where W=[w1, w2] and w1= 10/12 and w2= 2/12 and L=[L.sub.1, L.sub.2] and S=[S.sub.1, S.sub.2] describe the set of segment-list(s) found for each iteration.
§ 4.2.1.2 Second Example
(35)
(36) The example method 700 is performed to determine the maximum capacity X that node (R1) can send to node (R8) over the most optimal path(s). The steps involved include:
(37) TABLE-US-00001 STEP DESCRIPTION 1 Compute CSG.sub.1 (Recall 740 of FIG. 7.) 2 Determine S1, the set of segment-list(s) to steer traffic over CSG.sub.1 (Recall 750 of FIG. 7.): sl.sub.1.sup.1 = {node-SID(6), node-SID(8)} sl.sub.2.sup.1 = {node-SID(2), node-SID(5), node-SID(8)} and, S.sub.1 = {sl.sub.1.sup.1, sl.sub.2.sup.1} L.sub.1 = {l.sub.1, l.sub.2} 3 Formulate the set of constraint equalities and inequalities 4 Solve the optimization problem to maximize the capacity of CSG.sub.1 and find: L, and W (Recall 760 of FIG. 7.)
(38) The set of constraints equations can be derived as:
(39)
(40) Where e.sub.xy is the unidirectional edge (or link) connecting node(x) to node(y). Inequalities (1)-(3) are derived from the three (3) links exiting node R1. The denominator 3 indicates ECMP over the three links. Inequalities (5)-(7) are derived from the three (3) links entering node R6. Again, the denominator 3 indicates ECMP over the three links.
(41) The inequalities or equations above can be simplified further to:
l.sub.1+l.sub.2=1 (10)
l.sub.1x≤3 (11)
l.sub.2x≤4 (12)
l.sub.2x+3l.sub.1x≤9 (13)
(42) Equation (10) is derived from the fact that the sum of the loads is always 1. Inequality (11) corresponds to inequality (6), and inequality (12) corresponds to inequality (9). Inequality (13) is derived from inequality (1). Expressions (10)-(13) can be programmatically solved (e.g., using non-linear programming such as Sequential Least SQuares Programming (“SLSQP”)). The example below uses python. ($python compute_cap_weigths.py). In the example of
Capacity (X)=6.333333327495734
I.sub.2=0.7894736842874963
I.sub.1=0.21052631571250358
§ 4.3 EXAMPLE ARCHITECTURES AND APPARATUS
(43) The nodes may be forwarding devices such as routers for example.
(44) As just discussed above, and referring to
(45) The control component 1110 may include an operating system (OS) kernel 1120, routing protocol process(es) 1130, label-based forwarding protocol process(es) 1140, interface process(es) 1150, user interface (e.g., command line interface) process(es) 1160, and chassis process(es) 1170, and may store routing table(s) 1139, label forwarding information 1145, and forwarding (e.g., route-based and/or label-based) table(s) 1180. As shown, the routing protocol process(es) 1130 may support routing protocols such as the routing information protocol (“RIP”) 1131, the intermediate system-to-intermediate system protocol (“IS-IS”) 1132, the open shortest path first protocol (“OSPF”) 1133, the enhanced interior gateway routing protocol (“EIGRP”) 1134 and the boarder gateway protocol (“BGP”) 1135, and the label-based forwarding protocol process(es) 1140 may support protocols such as BGP 1135, the label distribution protocol (“LDP”) 1136 and the resource reservation protocol (“RSVP”) 1137. One or more components (not shown) may permit a user 1165 to interact with the user interface process(es) 1160. Similarly, one or more components (not shown) may permit an outside device to interact with one or more of the router protocol process(es) 1130, the label-based forwarding protocol process(es) 1140, the interface process(es) 1150, and the chassis process(es) 1170, via SNMP 1185, and such processes may send information to an outside device via SNMP 1185. Example embodiments consistent with the present description may be implemented in one or more routing protocol processes 1130.
(46) The packet forwarding component 1190 may include a microkernel 1192, interface process(es) 1193, distributed ASICs 1194, chassis process(es) 1195 and forwarding (e.g., route-based and/or label-based) table(s) 1196.
(47) In the example router 1100 of
(48) Still referring to
(49) Referring to the routing protocol process(es) 1130 of
(50) Still referring to
(51) The example control component 1110 may provide several ways to manage the router. For example, it 1110 may provide a user interface process(es) 1160 which allows a system operator 1165 to interact with the system through configuration, modifications, and monitoring. The SNMP 1185 allows SNMP-capable systems to communicate with the router platform. This also allows the platform to provide necessary SNMP information to external agents. For example, the SNMP 1185 may permit management of the system from a network management station running software, such as Hewlett-Packard's Network Node Manager (“HP-NNM”), through a framework, such as Hewlett-Packard's OpenView. Accounting of packets (generally referred to as traffic statistics) may be performed by the control component 1110, thereby avoiding slowing traffic forwarding by the packet forwarding component 1190.
(52) Although not shown, the example router 1100 may provide for out-of-band management, RS-232 DB9 ports for serial console and remote management access, and tertiary storage using a removable PC card. Further, although not shown, a craft interface positioned on the front of the chassis provides an external view into the internal workings of the router. It can be used as a troubleshooting tool, a monitoring tool, or both. The craft interface may include LED indicators, alarm indicators, control component ports, and/or a display screen. Finally, the craft interface may provide interaction with a command line interface (“CLI”) 1160 via a console port, an auxiliary port, and/or a management Ethernet port
(53) The packet forwarding component 1190 is responsible for properly outputting received packets as quickly as possible. If there is no entry in the forwarding table for a given destination or a given label and the packet forwarding component 1190 cannot perform forwarding by itself, it 1190 may send the packets bound for that unknown destination off to the control component 1110 for processing. The example packet forwarding component 1190 is designed to perform Layer 2 and Layer 3 switching, route lookups, and rapid packet forwarding.
(54) As shown in
(55) Referring back to distributed ASICs 1194 of
(56) Still referring to
(57) An FPC 1220 can contain from one or more PICs 1210, and may carry the signals from the PICs 1210 to the midplane/backplane 1230 as shown in
(58) The midplane/backplane 1230 holds the line cards. The line cards may connect into the midplane/backplane 1230 when inserted into the example router's chassis from the front. The control component (e.g., routing engine) 1110 may plug into the rear of the midplane/backplane 1230 from the rear of the chassis. The midplane/backplane 1230 may carry electrical (or optical) signals and power to each line card and to the control component 1110.
(59) The system control board 1240 may perform forwarding lookup. It 1240 may also communicate errors to the routing engine. Further, it 1240 may also monitor the condition of the router based on information it receives from sensors. If an abnormal condition is detected, the system control board 1240 may immediately notify the control component 1110.
(60) Referring to
(61) The I/O manager ASIC 1222 on the egress FPC 1220/1120′ may perform some value-added services. In addition to incrementing time to live (“TTL”) values and re-encapsulating the packet for handling by the PIC 1210, it can also apply class-of-service (CoS) rules. To do this, it may queue a pointer to the packet in one of the available queues, each having a share of link bandwidth, before applying the rules to the packet. Queuing can be based on various rules. Thus, the I/O manager ASIC 1222 on the egress FPC 1220/1120′ may be responsible for receiving the blocks from the second DBM ASIC 1235b′, incrementing TTL values, queuing a pointer to the packet, if necessary, before applying CoS rules, re-encapsulating the blocks, and sending the encapsulated packets to the PIC I/O manager ASIC 1215.
(62)
(63) Referring back to block 1470, the packet may be queued. Actually, as stated earlier with reference to
(64) Referring back to block 1480 of
(65) Although example embodiments consistent with the present invention may be implemented on the example routers of
(66)
(67) In some embodiments consistent with the present invention, the processors 1510 may be one or more microprocessors and/or ASICs. The bus 1540 may include a system bus. The storage devices 1520 may include system memory, such as read only memory (ROM) and/or random access memory (RAM). The storage devices 1520 may also include a hard disk drive for reading from and writing to a hard disk, a magnetic disk drive for reading from or writing to a (e.g., removable) magnetic disk, an optical disk drive for reading from or writing to a removable (magneto-) optical disk such as a compact disk or other (magneto-) optical media, or solid-state non-volatile storage.
(68) Some example embodiments consistent with the present invention may also be provided as a machine-readable medium for storing the machine-executable instructions. The machine-readable medium may be non-transitory and may include, but is not limited to, flash memory, optical disks, CD-ROMs, DVD ROMs, RAMs, EPROMs, EEPROMs, magnetic or optical cards or any other type of machine-readable media suitable for storing electronic instructions. For example, example embodiments consistent with the present invention may be downloaded as a computer program which may be transferred from a remote computer (e.g., a server) to a requesting computer (e.g., a client) by way of a communication link (e.g., a modem or network connection) and stored on a non-transitory storage medium. The machine-readable medium may also be referred to as a processor-readable medium.
(69) Example embodiments consistent with the present invention (or components or modules thereof) might be implemented in hardware, such as one or more field programmable gate arrays (“FPGA”s), one or more integrated circuits such as ASICs, one or more network processors, etc. Alternatively, or in addition, embodiments consistent with the present invention (or components or modules thereof) might be implemented as stored program instructions executed by a processor. Such hardware and/or software might be provided in an addressed data (e.g., packet, cell, etc.) forwarding device (e.g., a switch, a router, etc.), a laptop computer, desktop computer, a tablet computer, a mobile phone, or any device that has computing and networking capabilities.
§ 4.4 Refinements, Alternatives and Extensions
(70) Referring back to block 750 of
(71) Referring back to block 760 of
(72)
(73)
(74) Finally,
§ 4.5 CONCLUSIONS
(75) Example embodiments consistent with the present description allows the setup of SR path(s) with bandwidth guarantees in SR network.
(76) Example embodiments consistent with the present description are applicable to SRv6 and SR-MPLS dataplane technologies.
(77) Example embodiments consistent with the present description enable auto-bandwidth to work for SR Path(s).
(78) Example embodiments consistent with the present description can work on a central computation server, where per path reservations are managed centrally.
(79) Example embodiments consistent with the present description are compatible with RSVP-TE LSP and bandwidth reservations in the same network.