I raised the path count for add-path from 16 to 32, but the router (RR) still keeps seeding 16 paths to the client.
User wants to reflect 32 path for a route to the client from RR on CRPD. Due to limitation on junos version: 20.3X75-D42.21 for CRPD, only 16 routes were getting installed and 16 were getting reflected. To install more than 16 path there is requirement of "maximum-ecmp" knob which was not supported in current user's version.
The user wants to know if there is any alternative for reflecting all 32 paths for a prefix or router.
The customer was not able to use more than 16 path for a single route.
There are two ways to achieve the above requirements.
1. Using the "maximum-ecmp" knob, which will help in installing more than 16 paths for a single route
2. Using "add-path send" knob, which is explained below.
+++++++++++++++ 1. Knob: maximum-ecmp +++++++++++++++++
========== Without knob root@cRR1> show version Hostname: cRR1 Model: cRPD Junos: 21.1R1.10 root@cRR1> show bgp summary Threading mode: BGP I/O Default eBGP mode: advertise - accept, receive - accept Groups: 1 Peers: 2 Down peers: 0 Table Tot Paths Act Paths Suppressed History Damp State Pending inet.0 20 16 0 0 0 0 Peer AS InPkt OutPkt OutQ Flaps Last Up/Dwn State|#Active/Received/Accepted/Damped... 1.1.1.1 16509 2346 2336 0 0 17:32:29 Establ inet.0: 16/20/20/0 2.2.2.2 16509 2343 2335 0 0 17:32:29 Establ inet.0: 0/0/0/0 root@cRR1> show route 200.1.1.1 extensive | match Multip | count Count: 16 lines
>> Without knob, you can see there are 20 paths being received but only 16 are getting installed.
>> the router will reflect only 16 paths for the route.
============= After configuring the knob
root@cRR1# show | compare [edit routing-options] + maximum-ecmp 32; root@cRR1# commit and-quit root@cRR1> show bgp summary Threading mode: BGP I/O Default eBGP mode: advertise - accept, receive - accept Groups: 1 Peers: 2 Down peers: 0 Table Tot Paths Act Paths Suppressed History Damp State Pending inet.0 20 20 0 0 0 0 Peer AS InPkt OutPkt OutQ Flaps Last Up/Dwn State|#Active/Received/Accepted/Damped... 1.1.1.1 16509 2355 2345 0 0 17:36:35 Establ inet.0: 20/20/20/0 2.2.2.2 16509 2352 2344 0 0 17:36:35 Establ inet.0: 0/0/0/0 root@cRR1> show route 200.1.1.1 extensive | match Multip | count Count: 20 lines
>> After the knob is configured, you can see there are 20 paths being received and all 20 are getting installed.
>> Now router will reflect all 20 path for the route.
+++++++++++++++ 2. Knob: add-path send +++++++++++++++++
>> You need to use "add-path send path-count" and "add-path send path-selection-mode all-paths"
root@cRR2> show configuration |display set | match GROUPXXX set protocols bgp group GROUPXXX type internal set protocols bgp group GROUPXXX accept-remote-nexthop set protocols bgp group GROUPXXX family inet unicast add-path receive set protocols bgp group GROUPXXX family inet unicast add-path send path-selection-mode all-paths set protocols bgp group GROUPXXX family inet unicast add-path send path-count 20 set protocols bgp group GROUPXXX cluster 100.1.1.1 set protocols bgp group GROUPXXX multipath set protocols bgp group GROUPXXX neighbor 1.1.1.1 description PTX set protocols bgp group GROUPXXX neighbor 2.2.2.2 description MX
>> In my LAB, cRPD is receiving 20 path but it is installing only 16 path by default
root@cRR2> show bgp summary Threading mode: BGP I/O Default eBGP mode: advertise - accept, receive - accept Groups: 1 Peers: 2 Down peers: 0 Table Tot Paths Act Paths Suppressed History Damp State Pending inet.0 20 16 0 0 0 0 Peer AS InPkt OutPkt OutQ Flaps Last Up/Dwn State|#Active/Received/Accepted/Damped... 1.1.1.1 16509 30 8 0 0 3:12 Establ inet.0: 16/20/20/0 2.2.2.2 16509 10 29 0 0 3:12 Establ inet.0: 0/0/0/0
>> Above output help us to understand, there are 20 path for prefix: 200.1.1.1 but installed path are only 16.
>> If we want to reflect the route to another client from CRPD, then we use "add-path". This will help us to reflect the route with multiple path to client, even non-installed path.
>> Please make sure to configure correct path count and configure "add-path send path-selection-mode all-paths". It will send only those many path. If you mentioned the path -count as 8, then only 8 path will be sent.
set protocols bgp group GROUPXXX family inet6 unicast add-path send path-count 8 root@cRR2> show route advertising-protocol bgp 2.2.2.2 inet.0: 57 destinations, 76 routes (57 active, 0 holddown, 0 hidden) Limit/Threshold: 1024000/870400 destinations Prefix Nexthop MED Lclpref AS path * 200.1.1.1/32 100.100.100.1 0 I 100.100.100.2 0 I 100.100.100.3 0 I 100.100.100.4 0 I 100.100.100.5 0 I 100.100.100.6 0 I 100.100.100.7 0 I 100.100.100.8 0 I
>> Now with path-count 20
root@cRR2# set protocols bgp group GROUPXXX family inet unicast add-path send path-count 20 [edit] root@cRR2# commit and-quit commit complete Exiting configuration mode root@cRR2> show route advertising-protocol bgp 2.2.2.2 inet.0: 57 destinations, 76 routes (57 active, 0 holddown, 0 hidden) Limit/Threshold: 1024000/870400 destinations Prefix Nexthop MED Lclpref AS path * 200.1.1.1/32 100.100.100.1 0 I 100.100.100.2 0 I 100.100.100.3 0 I 100.100.100.4 0 I 100.100.100.5 0 I 100.100.100.6 0 I 100.100.100.7 0 I 100.100.100.8 0 I 100.100.100.9 0 I 100.100.100.10 0 I 100.100.100.11 0 I 100.100.100.12 0 I 100.100.100.13 0 I 100.100.100.14 0 I 100.100.100.15 0 I 100.100.100.16 0 I 100.100.100.17 0 I 100.100.100.18 0 I 100.100.100.19 0 I 100.100.100.20 0 I