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]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to