Hi Sontu, Please let me refer you to a previous answer to this question: https://www.mail-archive.com/search?l=vpp-dev@lists.fd.io&q=subject:%22%5C%5Bvpp%5C-dev%5C%5D+multipath+dpo+buckets+is+wrong.%22&o=newest&f=1
/neale From: <vpp-dev@lists.fd.io> on behalf of sontu mazumdar <sont...@gmail.com> Date: Friday 27 March 2020 at 15:47 To: "vpp-dev@lists.fd.io" <vpp-dev@lists.fd.io> Subject: [vpp-dev] ECMP seems to have issue if path is more than 2 #ecmp #vpp Hi, I am using fdio 1810 version. I observed that why I try to configure route with more than 2 paths, in show ip fib output it displays many duplicates entries. This is what I am trying, I have 3 interfaces as below vpp# show interface address VirtualFunctionEthernet0/6/0 (up): VirtualFunctionEthernet0/6/0.1 (up): L3 10.10.10.1/24 ip4 table-id 1 fib-idx 1 VirtualFunctionEthernet0/6/0.2 (up): L3 20.20.20.1/24 ip4 table-id 1 fib-idx 1 VirtualFunctionEthernet0/6/0.3 (up): L3 30.30.30.1/24 ip4 table-id 1 fib-idx 1 I am adding route as below: 1st path: vpp# ip route add 2.2.2.2/32 table 1 via 10.10.10.2 VirtualFunctionEthernet0/6/0.1 vpp# show ip fib table 1 2.2.2.2/32 nc1, fib_index:1, flow hash:[src dst sport dport proto ] locks:[src:API:4, ] 2.2.2.2/32 fib:1 index:44 locks:2 src:CLI refs:1 src-flags:added,contributing,active, path-list:[51] locks:2 flags:shared, uPRF-list:53 len:1 itfs:[5, ] path:[59] pl-index:51 ip4 weight=1 pref=0 attached-nexthop: oper-flags:resolved, 10.10.10.2 VirtualFunctionEthernet0/6/0.1 [@0]: arp-ipv4: via 10.10.10.2 VirtualFunctionEthernet0/6/0.1 forwarding: unicast-ip4-chain [@0]: dpo-load-balance: [proto:ip4 index:46 buckets:1 uRPF:53 to:[0:0]] [0] [@3]: arp-ipv4: via 10.10.10.2 VirtualFunctionEthernet0/6/0.1 vpp# 2nd path: vpp# ip route add 2.2.2.2/32 table 1 via 20.20.20.2 VirtualFunctionEthernet0/6/0.2 vpp# show ip fib table 1 2.2.2.2/32 nc1, fib_index:1, flow hash:[src dst sport dport proto ] locks:[src:API:4, ] 2.2.2.2/32 fib:1 index:44 locks:2 src:CLI refs:1 src-flags:added,contributing,active, path-list:[53] locks:2 flags:shared, uPRF-list:55 len:2 itfs:[5, 6, ] path:[62] pl-index:53 ip4 weight=1 pref=0 attached-nexthop: oper-flags:resolved, 10.10.10.2 VirtualFunctionEthernet0/6/0.1 [@0]: arp-ipv4: via 10.10.10.2 VirtualFunctionEthernet0/6/0.1 path:[61] pl-index:53 ip4 weight=1 pref=0 attached-nexthop: oper-flags:resolved, 20.20.20.2 VirtualFunctionEthernet0/6/0.2 [@0]: arp-ipv4: via 20.20.20.2 VirtualFunctionEthernet0/6/0.2 forwarding: unicast-ip4-chain [@0]: dpo-load-balance: [proto:ip4 index:46 buckets:2 uRPF:55 to:[0:0]] [0] [@3]: arp-ipv4: via 10.10.10.2 VirtualFunctionEthernet0/6/0.1 [1] [@3]: arp-ipv4: via 20.20.20.2 VirtualFunctionEthernet0/6/0.2 vpp# 3rd path: vpp# ip route add 2.2.2.2/32 table 1 via 30.30.30.2 VirtualFunctionEthernet0/6/0.3 vpp# show ip fib table 1 2.2.2.2/32 nc1, fib_index:1, flow hash:[src dst sport dport proto ] locks:[src:API:4, ] 2.2.2.2/32 fib:1 index:44 locks:2 src:CLI refs:1 src-flags:added,contributing,active, path-list:[51] locks:2 flags:shared, uPRF-list:53 len:3 itfs:[5, 6, 7, ] path:[63] pl-index:51 ip4 weight=1 pref=0 attached-nexthop: oper-flags:resolved, 10.10.10.2 VirtualFunctionEthernet0/6/0.1 [@0]: arp-ipv4: via 10.10.10.2 VirtualFunctionEthernet0/6/0.1 path:[64] pl-index:51 ip4 weight=1 pref=0 attached-nexthop: oper-flags:resolved, 20.20.20.2 VirtualFunctionEthernet0/6/0.2 [@0]: arp-ipv4: via 20.20.20.2 VirtualFunctionEthernet0/6/0.2 path:[59] pl-index:51 ip4 weight=1 pref=0 attached-nexthop: oper-flags:resolved, 30.30.30.2 VirtualFunctionEthernet0/6/0.3 [@0]: arp-ipv4: via 30.30.30.2 VirtualFunctionEthernet0/6/0.3 forwarding: unicast-ip4-chain [@0]: dpo-load-balance: [proto:ip4 index:46 buckets:16 uRPF:53 to:[0:0]] [0] [@3]: arp-ipv4: via 10.10.10.2 VirtualFunctionEthernet0/6/0.1 [1] [@3]: arp-ipv4: via 10.10.10.2 VirtualFunctionEthernet0/6/0.1 [2] [@3]: arp-ipv4: via 10.10.10.2 VirtualFunctionEthernet0/6/0.1 [3] [@3]: arp-ipv4: via 10.10.10.2 VirtualFunctionEthernet0/6/0.1 [4] [@3]: arp-ipv4: via 10.10.10.2 VirtualFunctionEthernet0/6/0.1 [5] [@3]: arp-ipv4: via 10.10.10.2 VirtualFunctionEthernet0/6/0.1 [6] [@3]: arp-ipv4: via 20.20.20.2 VirtualFunctionEthernet0/6/0.2 [7] [@3]: arp-ipv4: via 20.20.20.2 VirtualFunctionEthernet0/6/0.2 [8] [@3]: arp-ipv4: via 20.20.20.2 VirtualFunctionEthernet0/6/0.2 [9] [@3]: arp-ipv4: via 20.20.20.2 VirtualFunctionEthernet0/6/0.2 [10] [@3]: arp-ipv4: via 20.20.20.2 VirtualFunctionEthernet0/6/0.2 [11] [@3]: arp-ipv4: via 30.30.30.2 VirtualFunctionEthernet0/6/0.3 [12] [@3]: arp-ipv4: via 30.30.30.2 VirtualFunctionEthernet0/6/0.3 [13] [@3]: arp-ipv4: via 30.30.30.2 VirtualFunctionEthernet0/6/0.3 [14] [@3]: arp-ipv4: via 30.30.30.2 VirtualFunctionEthernet0/6/0.3 [15] [@3]: arp-ipv4: via 30.30.30.2 VirtualFunctionEthernet0/6/0.3 vpp# Once I add the 3rd path, as you see above I see multiple duplicate entries of the next-hops. Is it a bug ? Is it expected to have such output ? Can someone please help on this. Regards, Sontu
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#15922): https://lists.fd.io/g/vpp-dev/message/15922 Mute This Topic: https://lists.fd.io/mt/72588783/21656 Mute #vpp: https://lists.fd.io/mk?hashtag=vpp&subid=1480452 Mute #ecmp: https://lists.fd.io/mk?hashtag=ecmp&subid=1480452 Group Owner: vpp-dev+ow...@lists.fd.io Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-