BGP Add-Paths · “PL Backwalking” time in a CRS-1 0 50 100 150 200 0 100 200 300 400 500 600...
Transcript of BGP Add-Paths · “PL Backwalking” time in a CRS-1 0 50 100 150 200 0 100 200 300 400 500 600...
![Page 2: BGP Add-Paths · “PL Backwalking” time in a CRS-1 0 50 100 150 200 0 100 200 300 400 500 600 700 800 900 1000 LoC(ms) 1000 sets of 100 BGP destinations. Each set corresponds to](https://reader034.fdocuments.in/reader034/viewer/2022052011/6026144bcfdc5449d70786a9/html5/thumbnails/2.jpg)
ToC
• Data-plane evolution : BGP PIC
• Control-plane evolution : BGP Add-paths
![Page 3: BGP Add-Paths · “PL Backwalking” time in a CRS-1 0 50 100 150 200 0 100 200 300 400 500 600 700 800 900 1000 LoC(ms) 1000 sets of 100 BGP destinations. Each set corresponds to](https://reader034.fdocuments.in/reader034/viewer/2022052011/6026144bcfdc5449d70786a9/html5/thumbnails/3.jpg)
BGP PIC Sub-second data-plane convergence
• Fast switchover to pre-installed alternate paths
• Convergence, not Fast ReRoute
• BGP converges when IGP converges
![Page 4: BGP Add-Paths · “PL Backwalking” time in a CRS-1 0 50 100 150 200 0 100 200 300 400 500 600 700 800 900 1000 LoC(ms) 1000 sets of 100 BGP destinations. Each set corresponds to](https://reader034.fdocuments.in/reader034/viewer/2022052011/6026144bcfdc5449d70786a9/html5/thumbnails/4.jpg)
FIB designFrom flat FIB...
Prefix NH or oif
p/P ASBR1
q/Q ASBR1
r/R ASBR2
... ...
... ...
ASBR1 north oif
ASBR2 east oif
RIBASBR1
ASBR2
R1
Prefix oif
p/P north oif
q/Q north oif
r/R east oif
ASBR1 north oif
ASBR2 east oif
FIB
} BGP
} IGP
IGP change leads to FIB Updatesfor BGP prefixes !
![Page 5: BGP Add-Paths · “PL Backwalking” time in a CRS-1 0 50 100 150 200 0 100 200 300 400 500 600 700 800 900 1000 LoC(ms) 1000 sets of 100 BGP destinations. Each set corresponds to](https://reader034.fdocuments.in/reader034/viewer/2022052011/6026144bcfdc5449d70786a9/html5/thumbnails/5.jpg)
FIB designto hierarchical FIB...
Prefix NH or oif
p/P ASBR1
q/Q ASBR1
r/R ASBR2
... ...
... ...
ASBR1 north oif
ASBR2 east oif
FIB
PIC “core”
ASBR1
ASBR2
R1
Update of the outgoing interface for a BGP nexthop impacts all prefixes tracked by the nexthop
![Page 6: BGP Add-Paths · “PL Backwalking” time in a CRS-1 0 50 100 150 200 0 100 200 300 400 500 600 700 800 900 1000 LoC(ms) 1000 sets of 100 BGP destinations. Each set corresponds to](https://reader034.fdocuments.in/reader034/viewer/2022052011/6026144bcfdc5449d70786a9/html5/thumbnails/6.jpg)
FIB design...to generalized FIB
p/P ... z/Z
prim. nh back. nh
igp pfx k via neigh. a
igp pfx k via neigh. b
igp pfx i via neigh. x
igp pfx j via neigh. y
eastnortheastnorth
BGP Path ListsPrimary nh /Backup nh
IGP (ECMP)PLs
oifs
prim. nh back. nhBGP prefixes share
members of the BGP PL setSmall PLs # in practice
A given IGP PL is sharedby BGP PLs
# IGP PLs = n
Becomes a listwhen BGP
Multipath is used
Support for PIC “core”/“edge”
![Page 7: BGP Add-Paths · “PL Backwalking” time in a CRS-1 0 50 100 150 200 0 100 200 300 400 500 600 700 800 900 1000 LoC(ms) 1000 sets of 100 BGP destinations. Each set corresponds to](https://reader034.fdocuments.in/reader034/viewer/2022052011/6026144bcfdc5449d70786a9/html5/thumbnails/7.jpg)
FIB designgeneralized FIB example (R1)
p/P ... z/Z
ASBR1 ASBR2 ASBR3
ASBR3 via R2
ASBR3 via R3
ASBR1 via R4
R2
R3
ASBR2ASBR3
ASBR2 via R2
eastnortheast
R4
north
BGP
PLs
IGP
PLs
oifs
z/Zp/P
R1
ASBR1
...
![Page 8: BGP Add-Paths · “PL Backwalking” time in a CRS-1 0 50 100 150 200 0 100 200 300 400 500 600 700 800 900 1000 LoC(ms) 1000 sets of 100 BGP destinations. Each set corresponds to](https://reader034.fdocuments.in/reader034/viewer/2022052011/6026144bcfdc5449d70786a9/html5/thumbnails/8.jpg)
FIB designgeneralized FIB example (R1)
p/P ... z/Z
ASBR1 ASBR2 ASBR3
ASBR3 via R2
ASBR3 via R3
ASBR1 via R4
R2
R3
ASBR2 via R2
eastnortheast
R4
north
BGP
PLs
IGP
PLs
oifs
z/Zp/P
R1
...
ASBR2ASBR3
ASBR1
![Page 9: BGP Add-Paths · “PL Backwalking” time in a CRS-1 0 50 100 150 200 0 100 200 300 400 500 600 700 800 900 1000 LoC(ms) 1000 sets of 100 BGP destinations. Each set corresponds to](https://reader034.fdocuments.in/reader034/viewer/2022052011/6026144bcfdc5449d70786a9/html5/thumbnails/9.jpg)
FIB designgeneralized FIB example (R1)
p/P ... z/Z
ASBR1 ASBR2 ASBR3
ASBR3 via R2
ASBR3 via R3
ASBR1 via R4
R2
R3
ASBR2 via R2
eastnortheast
R4
north
BGP
PLs
IGP
PLs
oifs
z/Zp/P
R1
...
ASBR2ASBR3
ASBR1
![Page 10: BGP Add-Paths · “PL Backwalking” time in a CRS-1 0 50 100 150 200 0 100 200 300 400 500 600 700 800 900 1000 LoC(ms) 1000 sets of 100 BGP destinations. Each set corresponds to](https://reader034.fdocuments.in/reader034/viewer/2022052011/6026144bcfdc5449d70786a9/html5/thumbnails/10.jpg)
FIB designgeneralized FIB example (R1)
p/P ... z/Z
ASBR1 ASBR2 ASBR3
ASBR3 via R2
ASBR3 via R3
ASBR1 via R4
R2
R3
ASBR2 via R2
eastnortheast
R4
north
BGP
PLs
IGP
PLs
oifs
z/Zp/P
R1
ASBR2ASBR3
ASBR1
![Page 11: BGP Add-Paths · “PL Backwalking” time in a CRS-1 0 50 100 150 200 0 100 200 300 400 500 600 700 800 900 1000 LoC(ms) 1000 sets of 100 BGP destinations. Each set corresponds to](https://reader034.fdocuments.in/reader034/viewer/2022052011/6026144bcfdc5449d70786a9/html5/thumbnails/11.jpg)
FIB designPL “Backwalking” time
p/P ... z/Z
ASBR1 ASBR2 ASBR3
ASBR3 via R2
ASBR3 via R3
ASBR1 via R4
R2
R3
ASBR2 via R2
eastnortheast
R4
north
BGP
PLs
IGP
PLs
oifs
z/Zp/P
R1
ASBR2ASBR3
ASBR1
![Page 12: BGP Add-Paths · “PL Backwalking” time in a CRS-1 0 50 100 150 200 0 100 200 300 400 500 600 700 800 900 1000 LoC(ms) 1000 sets of 100 BGP destinations. Each set corresponds to](https://reader034.fdocuments.in/reader034/viewer/2022052011/6026144bcfdc5449d70786a9/html5/thumbnails/12.jpg)
Backwalking timeTestbed
Z/z
AS X AS Y
iBGP
eBGP
Y2
Y3
Y1X1
X5
e1
e2
X4
X3
X2
100k
1k loopbacks Evenly scatteredtraffic to 1/10 ofthe prefixes
![Page 13: BGP Add-Paths · “PL Backwalking” time in a CRS-1 0 50 100 150 200 0 100 200 300 400 500 600 700 800 900 1000 LoC(ms) 1000 sets of 100 BGP destinations. Each set corresponds to](https://reader034.fdocuments.in/reader034/viewer/2022052011/6026144bcfdc5449d70786a9/html5/thumbnails/13.jpg)
FIB design“PL Backwalking” time in a CRS-1
0
50
100
150
200
0 100 200 300 400 500 600 700 800 900 1000
LoC
(ms)
1000 sets of 100 BGP destinations. Each set corresponds to a different BGP Path-List
52 flows that were already going through the “alternate” nexthop
“IGP reactivity”
Actual Backwalking time (48 flows)
![Page 14: BGP Add-Paths · “PL Backwalking” time in a CRS-1 0 50 100 150 200 0 100 200 300 400 500 600 700 800 900 1000 LoC(ms) 1000 sets of 100 BGP destinations. Each set corresponds to](https://reader034.fdocuments.in/reader034/viewer/2022052011/6026144bcfdc5449d70786a9/html5/thumbnails/14.jpg)
Not a futuristic talk
• BGP PIC Core/Edge is available
![Page 15: BGP Add-Paths · “PL Backwalking” time in a CRS-1 0 50 100 150 200 0 100 200 300 400 500 600 700 800 900 1000 LoC(ms) 1000 sets of 100 BGP destinations. Each set corresponds to](https://reader034.fdocuments.in/reader034/viewer/2022052011/6026144bcfdc5449d70786a9/html5/thumbnails/15.jpg)
All our problems solved ?
• PIC makes data-plane convergence really fast
• Useless if no alternates to converge to...
![Page 16: BGP Add-Paths · “PL Backwalking” time in a CRS-1 0 50 100 150 200 0 100 200 300 400 500 600 700 800 900 1000 LoC(ms) 1000 sets of 100 BGP destinations. Each set corresponds to](https://reader034.fdocuments.in/reader034/viewer/2022052011/6026144bcfdc5449d70786a9/html5/thumbnails/16.jpg)
Policies let paths be hidden
ASBR2
ASBR1
p : localpref = 90
p : localpref = 100
pp
p
p
![Page 17: BGP Add-Paths · “PL Backwalking” time in a CRS-1 0 50 100 150 200 0 100 200 300 400 500 600 700 800 900 1000 LoC(ms) 1000 sets of 100 BGP destinations. Each set corresponds to](https://reader034.fdocuments.in/reader034/viewer/2022052011/6026144bcfdc5449d70786a9/html5/thumbnails/17.jpg)
ASBR2
ASBR1
p : localpref = 100
p : localpref = 100
pp
p
RR1
PE
p
p
Route Reflection hides paths
![Page 18: BGP Add-Paths · “PL Backwalking” time in a CRS-1 0 50 100 150 200 0 100 200 300 400 500 600 700 800 900 1000 LoC(ms) 1000 sets of 100 BGP destinations. Each set corresponds to](https://reader034.fdocuments.in/reader034/viewer/2022052011/6026144bcfdc5449d70786a9/html5/thumbnails/18.jpg)
Can’t we just turn adv-best-external on ?
ASBR2
ASBR1
p : localpref = {100,90}
p : localpref = 100
pp
pp
RR1
RR2
p
pp
PE
p
p
p p
p p
Doesn’t solve the route reflection problem
![Page 19: BGP Add-Paths · “PL Backwalking” time in a CRS-1 0 50 100 150 200 0 100 200 300 400 500 600 700 800 900 1000 LoC(ms) 1000 sets of 100 BGP destinations. Each set corresponds to](https://reader034.fdocuments.in/reader034/viewer/2022052011/6026144bcfdc5449d70786a9/html5/thumbnails/19.jpg)
Motivation for Add-paths
• Initial “motivation” was MED oscillation avoidance
• Emergence of new IDR requirements a few years ago
• Fast recovery upon peering link / ASBR failure (PIC)
• Load balancing among multiple primary BGP NHs
• Hitless planned maintenance
• “Optimal” hot-potato routing
• (Churn reduction / convergence concealment)
![Page 20: BGP Add-Paths · “PL Backwalking” time in a CRS-1 0 50 100 150 200 0 100 200 300 400 500 600 700 800 900 1000 LoC(ms) 1000 sets of 100 BGP destinations. Each set corresponds to](https://reader034.fdocuments.in/reader034/viewer/2022052011/6026144bcfdc5449d70786a9/html5/thumbnails/20.jpg)
BGP Add paths
ASBR2
ASBR1
pp
RR1
p
p
pPE p
p
• Advertise multiple BGP paths
• towards the same NLRI
• over a single iBGP session
• draft-ietf-idr-add-paths
p
![Page 21: BGP Add-Paths · “PL Backwalking” time in a CRS-1 0 50 100 150 200 0 100 200 300 400 500 600 700 800 900 1000 LoC(ms) 1000 sets of 100 BGP destinations. Each set corresponds to](https://reader034.fdocuments.in/reader034/viewer/2022052011/6026144bcfdc5449d70786a9/html5/thumbnails/21.jpg)
BGP Add paths
ASBR2
ASBR1
pp
RR1
p
p
pPE p
p
p• Install PIC state
• Load balance
• Hitless reroute to alternate
• ASBR2 can be shut “hitlessly”
• Pick closest exist
• Reduced churn upon loss
![Page 22: BGP Add-Paths · “PL Backwalking” time in a CRS-1 0 50 100 150 200 0 100 200 300 400 500 600 700 800 900 1000 LoC(ms) 1000 sets of 100 BGP destinations. Each set corresponds to](https://reader034.fdocuments.in/reader034/viewer/2022052011/6026144bcfdc5449d70786a9/html5/thumbnails/22.jpg)
Churn reduction
• Churn reduction for primary paths...
• ...with internal churn increase for non-primary ones
![Page 23: BGP Add-Paths · “PL Backwalking” time in a CRS-1 0 50 100 150 200 0 100 200 300 400 500 600 700 800 900 1000 LoC(ms) 1000 sets of 100 BGP destinations. Each set corresponds to](https://reader034.fdocuments.in/reader034/viewer/2022052011/6026144bcfdc5449d70786a9/html5/thumbnails/23.jpg)
Churn Reduction
ASBR2
ASBR1
p : localpref = 90
p : localpref = 100
p
p
p
p
PE
Withdraw, UpdateWithdraw, Update, Update
ASBR3
p
p : LP = 80
Update (or silence)
![Page 24: BGP Add-Paths · “PL Backwalking” time in a CRS-1 0 50 100 150 200 0 100 200 300 400 500 600 700 800 900 1000 LoC(ms) 1000 sets of 100 BGP destinations. Each set corresponds to](https://reader034.fdocuments.in/reader034/viewer/2022052011/6026144bcfdc5449d70786a9/html5/thumbnails/24.jpg)
Churn Reduction
ASBR2
ASBR1
p : localpref = 90
p : localpref = 100
p
p
p
p
PE
ASBR3
p
p : LP = 80
“Churny” internal for
“Quiet” external
Update ...or silence...
![Page 25: BGP Add-Paths · “PL Backwalking” time in a CRS-1 0 50 100 150 200 0 100 200 300 400 500 600 700 800 900 1000 LoC(ms) 1000 sets of 100 BGP destinations. Each set corresponds to](https://reader034.fdocuments.in/reader034/viewer/2022052011/6026144bcfdc5449d70786a9/html5/thumbnails/25.jpg)
What to send ?Application dependent
• MED oscillation ?
• Avoid hiding lowest MED paths from neighboring ASes
• PIC ?
• Feed all PE nodes with 2 paths
• Load-balancing ?
• Feed all PE nodes with N paths
• Hitless maintenance
• Never have 0 paths
• Churn reduction
• Favor dissemination of post-convergence paths
![Page 26: BGP Add-Paths · “PL Backwalking” time in a CRS-1 0 50 100 150 200 0 100 200 300 400 500 600 700 800 900 1000 LoC(ms) 1000 sets of 100 BGP destinations. Each set corresponds to](https://reader034.fdocuments.in/reader034/viewer/2022052011/6026144bcfdc5449d70786a9/html5/thumbnails/26.jpg)
draft-ietf-idr-add-paths
• Adds an identifier to paths
• Identifier only has session meaning
![Page 27: BGP Add-Paths · “PL Backwalking” time in a CRS-1 0 50 100 150 200 0 100 200 300 400 500 600 700 800 900 1000 LoC(ms) 1000 sets of 100 BGP destinations. Each set corresponds to](https://reader034.fdocuments.in/reader034/viewer/2022052011/6026144bcfdc5449d70786a9/html5/thumbnails/27.jpg)
draft-ietf-idr-add-paths-guidelines
• draft-ietf-idr-add-paths doesn’t tell which paths to select
• Multiple motivations lead to different “selection modes”
• Evaluate them (what they give, at which cost)
• analytical
• “numbers”
![Page 28: BGP Add-Paths · “PL Backwalking” time in a CRS-1 0 50 100 150 200 0 100 200 300 400 500 600 700 800 900 1000 LoC(ms) 1000 sets of 100 BGP destinations. Each set corresponds to](https://reader034.fdocuments.in/reader034/viewer/2022052011/6026144bcfdc5449d70786a9/html5/thumbnails/28.jpg)
Modes
• All paths
• N paths
• AS-Wide best paths (and variants)
• Neighbor-AS group best paths
• (Best Loc Pref / Second best Loc Pref paths)
• (Decisive step -1 paths)
![Page 29: BGP Add-Paths · “PL Backwalking” time in a CRS-1 0 50 100 150 200 0 100 200 300 400 500 600 700 800 900 1000 LoC(ms) 1000 sets of 100 BGP destinations. Each set corresponds to](https://reader034.fdocuments.in/reader034/viewer/2022052011/6026144bcfdc5449d70786a9/html5/thumbnails/29.jpg)
All Paths
ASBR2
ASBR1
pp
RR1
p
p
pPE p
p
p
ASBR3
p
p
p
pKnown paths almost
like if iBGP full-mesh
and adv-ext-best on
![Page 30: BGP Add-Paths · “PL Backwalking” time in a CRS-1 0 50 100 150 200 0 100 200 300 400 500 600 700 800 900 1000 LoC(ms) 1000 sets of 100 BGP destinations. Each set corresponds to](https://reader034.fdocuments.in/reader034/viewer/2022052011/6026144bcfdc5449d70786a9/html5/thumbnails/30.jpg)
Add-All
• Easiest Decision Process algorithm
• Nice mode to turn on towards a BGP monitor
• Depending on how many paths for each p
• Memory monster (control-plane)
• Internal update churn monster
![Page 31: BGP Add-Paths · “PL Backwalking” time in a CRS-1 0 50 100 150 200 0 100 200 300 400 500 600 700 800 900 1000 LoC(ms) 1000 sets of 100 BGP destinations. Each set corresponds to](https://reader034.fdocuments.in/reader034/viewer/2022052011/6026144bcfdc5449d70786a9/html5/thumbnails/31.jpg)
Please...
RR1
PE
RR2
ppRR10
ASBR2
ASBR1
pp
pp
pp
pppp Avoid rushed up implementations
![Page 32: BGP Add-Paths · “PL Backwalking” time in a CRS-1 0 50 100 150 200 0 100 200 300 400 500 600 700 800 900 1000 LoC(ms) 1000 sets of 100 BGP destinations. Each set corresponds to](https://reader034.fdocuments.in/reader034/viewer/2022052011/6026144bcfdc5449d70786a9/html5/thumbnails/32.jpg)
Add-N paths
ASBR2
ASBR1
pp
RR1
p
p
pPE p
p
p
ASBR3
p
p
p p p
p p(1)
(2)
p
Usually consider NH disjoint paths
![Page 33: BGP Add-Paths · “PL Backwalking” time in a CRS-1 0 50 100 150 200 0 100 200 300 400 500 600 700 800 900 1000 LoC(ms) 1000 sets of 100 BGP destinations. Each set corresponds to](https://reader034.fdocuments.in/reader034/viewer/2022052011/6026144bcfdc5449d70786a9/html5/thumbnails/33.jpg)
Add-N-Paths
• Most practical use cases
• Set N to 2 for basic PIC support
• Set N to desired number of NHs for LB
• Memory hit kept under control through configuration of N
• Configurable per AFI/SAFI (some may provide finer tuning)
• Doesn’t solve MED oscillations
• Developers tend to implement it as N*DP
![Page 34: BGP Add-Paths · “PL Backwalking” time in a CRS-1 0 50 100 150 200 0 100 200 300 400 500 600 700 800 900 1000 LoC(ms) 1000 sets of 100 BGP destinations. Each set corresponds to](https://reader034.fdocuments.in/reader034/viewer/2022052011/6026144bcfdc5449d70786a9/html5/thumbnails/34.jpg)
AS-Wide Best paths
ASBR2
ASBR1
pp
RR1
pLP 100AS Path length : 3
p
PE
p
p
ASBR3
p
p
p p p
p p
(LP)p
pLP 100AS Path length : 3
pLP 90AS Path length : 3
p
(AS Path)
p p p p(MED)
Not hiding paths that another node would
have preferred
![Page 35: BGP Add-Paths · “PL Backwalking” time in a CRS-1 0 50 100 150 200 0 100 200 300 400 500 600 700 800 900 1000 LoC(ms) 1000 sets of 100 BGP destinations. Each set corresponds to](https://reader034.fdocuments.in/reader034/viewer/2022052011/6026144bcfdc5449d70786a9/html5/thumbnails/35.jpg)
• “The router doesn’t make local decisions”
• DP complexity < not running add-paths
• Provides routing optimality and max LB potential
• Provides MED oscillation avoidance
• !!! Doesn’t feed PIC !!!
AS-Wide Best paths
![Page 36: BGP Add-Paths · “PL Backwalking” time in a CRS-1 0 50 100 150 200 0 100 200 300 400 500 600 700 800 900 1000 LoC(ms) 1000 sets of 100 BGP destinations. Each set corresponds to](https://reader034.fdocuments.in/reader034/viewer/2022052011/6026144bcfdc5449d70786a9/html5/thumbnails/36.jpg)
AS-Wide Best paths
ASBR2
ASBR1
pp
RR1
pLP 100AS Path length : 3
p
PE
p
p
ASBR3
p
p
p p p(LP)p
pLP 90AS Path length : 3
pLP 90AS Path length : 3
p
p One winner problem still applies
![Page 37: BGP Add-Paths · “PL Backwalking” time in a CRS-1 0 50 100 150 200 0 100 200 300 400 500 600 700 800 900 1000 LoC(ms) 1000 sets of 100 BGP destinations. Each set corresponds to](https://reader034.fdocuments.in/reader034/viewer/2022052011/6026144bcfdc5449d70786a9/html5/thumbnails/37.jpg)
AS-Wide Best paths
ASBR2
ASBR1
pp
RR1
pLP 100AS Path length : 3
p
PE
p
p
ASBR3
p
p
p p p
p
(LP)p
pLP 100AS Path length : 2
pLP 90AS Path length : 3
p
(AS Path)
p One winner problem still applies
p
![Page 38: BGP Add-Paths · “PL Backwalking” time in a CRS-1 0 50 100 150 200 0 100 200 300 400 500 600 700 800 900 1000 LoC(ms) 1000 sets of 100 BGP destinations. Each set corresponds to](https://reader034.fdocuments.in/reader034/viewer/2022052011/6026144bcfdc5449d70786a9/html5/thumbnails/38.jpg)
Neighbor-AS group best
• Avoids MED oscillations
• draft-walton-bgp-route-oscillation-stop
• Advertise the best path from each neighboring AS
• No ASBR picks as best a non-lowest MED path
![Page 39: BGP Add-Paths · “PL Backwalking” time in a CRS-1 0 50 100 150 200 0 100 200 300 400 500 600 700 800 900 1000 LoC(ms) 1000 sets of 100 BGP destinations. Each set corresponds to](https://reader034.fdocuments.in/reader034/viewer/2022052011/6026144bcfdc5449d70786a9/html5/thumbnails/39.jpg)
Neighbor-AS group best
• Provides paths from different neighboring ASes, but
• their existence is not guaranteed
• nothing to deal with post-convergence paths
![Page 40: BGP Add-Paths · “PL Backwalking” time in a CRS-1 0 50 100 150 200 0 100 200 300 400 500 600 700 800 900 1000 LoC(ms) 1000 sets of 100 BGP destinations. Each set corresponds to](https://reader034.fdocuments.in/reader034/viewer/2022052011/6026144bcfdc5449d70786a9/html5/thumbnails/40.jpg)
Path optimality
Backup availability / optimality
Control plane load and stress
DP Complexity
MED osc. avoidance
All OK OK Max EASIEST OK
N ? OK / ? Bounded Depends on Ncan be optimized ?
AS-Wide OK KO / ~OK ~MAX EASY OK
LP1/LP2 OK OK ~MAX EASIER OK
Decisive-1 OK OK ~MAX Easy but “spaghetti” OK
Group best KO ... KO ~MAX ? OK
Summary
![Page 41: BGP Add-Paths · “PL Backwalking” time in a CRS-1 0 50 100 150 200 0 100 200 300 400 500 600 700 800 900 1000 LoC(ms) 1000 sets of 100 BGP destinations. Each set corresponds to](https://reader034.fdocuments.in/reader034/viewer/2022052011/6026144bcfdc5449d70786a9/html5/thumbnails/41.jpg)
Path optimality
Backup availability / optimality
Control plane load and stress
DP Complexity
MED osc. avoidance
All OK OK Max EASIEST OK
N ? OK / ? Bounded Depends on Ncan be optimized ?
AS-Wide OK KO / ~OK ~MAX EASY OK
LP1/LP2 OK OK ~MAX EASIER OK
Decisive-1 OK OK ~MAX Easy but “spaghetti” OK
Group best KO ... KO ~MAX ? OK
Summary
![Page 42: BGP Add-Paths · “PL Backwalking” time in a CRS-1 0 50 100 150 200 0 100 200 300 400 500 600 700 800 900 1000 LoC(ms) 1000 sets of 100 BGP destinations. Each set corresponds to](https://reader034.fdocuments.in/reader034/viewer/2022052011/6026144bcfdc5449d70786a9/html5/thumbnails/42.jpg)
Path optimality
Backup availability / optimality
Control plane load and stress
DP Complexity
MED osc. avoidance
All OK OK Max EASIEST OK
N ? OK / ? Bounded Depends on Ncan be optimized ?
AS-Wide OK KO / ~OK ~MAX EASY OK
LP1/LP2 OK OK ~MAX EASIER OK
Decisive-1 OK OK ~MAX Easy but “spaghetti” OK
Group best KO ... KO ~MAX ? OK
Summary
![Page 43: BGP Add-Paths · “PL Backwalking” time in a CRS-1 0 50 100 150 200 0 100 200 300 400 500 600 700 800 900 1000 LoC(ms) 1000 sets of 100 BGP destinations. Each set corresponds to](https://reader034.fdocuments.in/reader034/viewer/2022052011/6026144bcfdc5449d70786a9/html5/thumbnails/43.jpg)
Path optimality
Backup availability / optimality
Control plane load and stress
DP Complexity
MED osc. avoidance
All OK OK Max EASIEST OK
N ? OK / ? Bounded Depends on Ncan be optimized ?
AS-Wide OK KO / ~OK ~MAX EASY OK
LP1/LP2 OK OK ~MAX EASIER OK
Decisive-1 OK OK ~MAX Easy but “spaghetti” OK
Group best KO ... KO ~MAX ? OK
Summary
![Page 44: BGP Add-Paths · “PL Backwalking” time in a CRS-1 0 50 100 150 200 0 100 200 300 400 500 600 700 800 900 1000 LoC(ms) 1000 sets of 100 BGP destinations. Each set corresponds to](https://reader034.fdocuments.in/reader034/viewer/2022052011/6026144bcfdc5449d70786a9/html5/thumbnails/44.jpg)
Path optimality
Backup availability / optimality
Control plane load and stress
DP Complexity
MED osc. avoidance
All OK OK Max EASIEST OK
N ? OK / ? Bounded Depends on Ncan be optimized ?
AS-Wide OK KO / ~OK ~MAX EASY OK
LP1/LP2 OK OK ~MAX EASIER OK
Decisive-1 OK OK ~MAX Easy but “spaghetti” OK
Group best KO ... KO ~MAX ? OK
Summary
![Page 45: BGP Add-Paths · “PL Backwalking” time in a CRS-1 0 50 100 150 200 0 100 200 300 400 500 600 700 800 900 1000 LoC(ms) 1000 sets of 100 BGP destinations. Each set corresponds to](https://reader034.fdocuments.in/reader034/viewer/2022052011/6026144bcfdc5449d70786a9/html5/thumbnails/45.jpg)
Path optimality
Backup availability / optimality
Control plane load and stress
DP Complexity
MED osc. avoidance
All OK OK Max EASIEST OK
N ? OK / ? Bounded Depends on Ncan be optimized ?
AS-Wide OK KO / ~OK ~MAX EASY OK
LP1/LP2 OK OK ~MAX EASIER OK
Decisive-1 OK OK ~MAX Easy but “spaghetti” OK
Group best KO ... KO ~MAX ? OK
Summary
![Page 46: BGP Add-Paths · “PL Backwalking” time in a CRS-1 0 50 100 150 200 0 100 200 300 400 500 600 700 800 900 1000 LoC(ms) 1000 sets of 100 BGP destinations. Each set corresponds to](https://reader034.fdocuments.in/reader034/viewer/2022052011/6026144bcfdc5449d70786a9/html5/thumbnails/46.jpg)
Path optimality
Backup availability / optimality
Control plane load and stress
DP Complexity
MED osc. avoidance
All OK OK Max EASIEST OK
N ? OK / ? Bounded Depends on Ncan be optimized ?
AS-Wide OK KO / ~OK ~MAX EASY OK
LP1/LP2 OK OK ~MAX EASIER OK
Decisive-1 OK OK ~MAX Easy but “spaghetti” OK
Group best KO ... KO ~MAX ? OK
Summary
![Page 47: BGP Add-Paths · “PL Backwalking” time in a CRS-1 0 50 100 150 200 0 100 200 300 400 500 600 700 800 900 1000 LoC(ms) 1000 sets of 100 BGP destinations. Each set corresponds to](https://reader034.fdocuments.in/reader034/viewer/2022052011/6026144bcfdc5449d70786a9/html5/thumbnails/47.jpg)
Path optimality
Backup availability / optimality
Control plane load and stress
DP Complexity
MED osc. avoidance
All OK OK Max EASIEST OK
N ? OK / ? Bounded Depends on Ncan be optimized ?
AS-Wide OK KO / ~OK ~MAX EASY OK
LP1/LP2 OK OK ~MAX EASIER OK
Decisive-1 OK OK ~MAX Easy but “spaghetti” OK
Group best KO ... KO ~MAX ? OK
Summary
![Page 48: BGP Add-Paths · “PL Backwalking” time in a CRS-1 0 50 100 150 200 0 100 200 300 400 500 600 700 800 900 1000 LoC(ms) 1000 sets of 100 BGP destinations. Each set corresponds to](https://reader034.fdocuments.in/reader034/viewer/2022052011/6026144bcfdc5449d70786a9/html5/thumbnails/48.jpg)
Path optimality
Backup availability / optimality
Control plane load and stress
DP Complexity
MED osc. avoidance
All OK OK Max EASIEST OK
N ? OK / ? Bounded Depends on Ncan be optimized ?
AS-Wide OK KO / ~OK ~MAX EASY OK
LP1/LP2 OK OK ~MAX EASIER OK
Decisive-1 OK OK ~MAX Easy but “spaghetti” OK
Group best KO ... KO ~MAX ? OK
Summary
![Page 49: BGP Add-Paths · “PL Backwalking” time in a CRS-1 0 50 100 150 200 0 100 200 300 400 500 600 700 800 900 1000 LoC(ms) 1000 sets of 100 BGP destinations. Each set corresponds to](https://reader034.fdocuments.in/reader034/viewer/2022052011/6026144bcfdc5449d70786a9/html5/thumbnails/49.jpg)
Current Recommendations
• MUST: Add-N
• Default MUST be 2
• N MUST be configurable
• Option to not limit N (Add-All)
• OPTIONAL : AS-Wide best variants
• OPTIONAL-: All others
![Page 50: BGP Add-Paths · “PL Backwalking” time in a CRS-1 0 50 100 150 200 0 100 200 300 400 500 600 700 800 900 1000 LoC(ms) 1000 sets of 100 BGP destinations. Each set corresponds to](https://reader034.fdocuments.in/reader034/viewer/2022052011/6026144bcfdc5449d70786a9/html5/thumbnails/50.jpg)
Deployment
• Session wide upgrade required (unlike Robert’s Diverse-paths)
• As for all solutions
• Forget about deployments w/o Ingress-Egress encap
• Transient forwarding loops if naïve PIC implementation
![Page 51: BGP Add-Paths · “PL Backwalking” time in a CRS-1 0 50 100 150 200 0 100 200 300 400 500 600 700 800 900 1000 LoC(ms) 1000 sets of 100 BGP destinations. Each set corresponds to](https://reader034.fdocuments.in/reader034/viewer/2022052011/6026144bcfdc5449d70786a9/html5/thumbnails/51.jpg)
Tool
• Evaluate the behavior of Add-paths in YOUR network
• Analytical
• Numbers
![Page 52: BGP Add-Paths · “PL Backwalking” time in a CRS-1 0 50 100 150 200 0 100 200 300 400 500 600 700 800 900 1000 LoC(ms) 1000 sets of 100 BGP destinations. Each set corresponds to](https://reader034.fdocuments.in/reader034/viewer/2022052011/6026144bcfdc5449d70786a9/html5/thumbnails/52.jpg)
Next Steps
• Add-path for eBGP
• Route Server implementation
• draft-jasinska-ix-bgp-route-server+Add-All+Filtering+Pick one for clients not supporting add-paths
![Page 53: BGP Add-Paths · “PL Backwalking” time in a CRS-1 0 50 100 150 200 0 100 200 300 400 500 600 700 800 900 1000 LoC(ms) 1000 sets of 100 BGP destinations. Each set corresponds to](https://reader034.fdocuments.in/reader034/viewer/2022052011/6026144bcfdc5449d70786a9/html5/thumbnails/53.jpg)
Next Steps
• Improvement of capability negotiation ?
• Currently send/receive bits
• Might want to make this a bit more expressive
• Announce N to route reflector ?
• Community based modes
• Advertise which mode the RR should run ???
![Page 54: BGP Add-Paths · “PL Backwalking” time in a CRS-1 0 50 100 150 200 0 100 200 300 400 500 600 700 800 900 1000 LoC(ms) 1000 sets of 100 BGP destinations. Each set corresponds to](https://reader034.fdocuments.in/reader034/viewer/2022052011/6026144bcfdc5449d70786a9/html5/thumbnails/54.jpg)
Thanks !