-
Type: Bug
-
Status: To Do (View Workflow)
-
Priority: Medium
-
Resolution: Unresolved
-
Affects Version/s: None
-
Fix Version/s: None
-
Component/s: ONOS
-
Labels:None
-
Story Points:1
When the same route (for example 2001:558:fe2a:218::/64) gets learned by two quagga instances and programmed to ONOS via FPM, only one of them gets installed. Instead, it should install both as ECMP.
onos> routes | grep 2001:558:fe2a:218::/64 > 2001:558:fe2a:218::/64 fe80::2a99:3aff:fe40:9f4b FPM (96.112.165.36) 2001:558:fe2a:218::/64 fe80::2a99:3aff:fe41:19db FPM (96.112.165.35)
The next-hop fe80::2a99:3aff:fe40:9f4b resides at of:0000000059120112/51, and the next-hop fe80::2a99:3aff:fe41:19db is at of:0000000059120111/51
onos> flows -s any of:0000000059120111 | grep 2001:558:fe2a:218::/64 ADDED, bytes=0, packets=0, table=30, priority=32010, selector=[ETH_TYPE:ipv6, IPV6_DST:2001:558:fe2a:218::/64], treatment=[deferred=[GROUP:0x700000fb], transition=TABLE:60] onos> groups any of:0000000059120111 | grep id=0x700000fb id=0x700000fb, state=ADDED, type=SELECT, bytes=0, packets=0, appId=org.onosproject.segmentrouting, referenceCount=72 id=0x700000fb, bucket=1, bytes=0, packets=0, actions=[GROUP:0x920000f1] id=0x700000fb, bucket=2, bytes=0, packets=0, actions=[GROUP:0x920000f3] id=0x700000fb, bucket=3, bytes=0, packets=0, actions=[GROUP:0x920000f5] id=0x700000fb, bucket=4, bytes=0, packets=0, actions=[GROUP:0x920000f9] onos> groups any of:0000000059120111 | grep id=0x920000f1 id=0x920000f1, state=ADDED, type=INDIRECT, bytes=0, packets=0, appId=org.onosproject.segmentrouting, referenceCount=1 id=0x920000f1, bucket=1, bytes=0, packets=0, actions=[MPLS_PUSH:mpls_unicast, MPLS_LABEL:202, GROUP:0x900000f0, TTL_OUT, MPLS_BOS:true] onos> groups any of:0000000059120111 | grep id=0x920000f3 id=0x920000f3, state=ADDED, type=INDIRECT, bytes=0, packets=0, appId=org.onosproject.segmentrouting, referenceCount=1 id=0x920000f3, bucket=1, bytes=0, packets=0, actions=[MPLS_PUSH:mpls_unicast, MPLS_LABEL:202, GROUP:0x900000f2, TTL_OUT, MPLS_BOS:true] onos> groups any of:0000000059120111 | grep id=0x920000f5 id=0x920000f5, state=ADDED, type=INDIRECT, bytes=0, packets=0, appId=org.onosproject.segmentrouting, referenceCount=1 id=0x920000f5, bucket=1, bytes=0, packets=0, actions=[MPLS_PUSH:mpls_unicast, MPLS_LABEL:202, GROUP:0x900000f4, TTL_OUT, MPLS_BOS:true] onos> groups any of:0000000059120111 | grep id=0x920000f9 id=0x920000f9, state=ADDED, type=INDIRECT, bytes=0, packets=0, appId=org.onosproject.segmentrouting, referenceCount=1 id=0x920000f9, bucket=1, bytes=0, packets=0, actions=[MPLS_PUSH:mpls_unicast, MPLS_LABEL:202, GROUP:0x900000f7, TTL_OUT, MPLS_BOS:true] onos> groups any of:0000000059120111 | grep id=0x900000f0 id=0x900000f0, state=ADDED, type=INDIRECT, bytes=0, packets=0, appId=org.onosproject.segmentrouting, referenceCount=1 id=0x900000f0, bucket=1, bytes=0, packets=0, actions=[ETH_DST:A8:2B:B5:1C:72:F4, ETH_SRC:8C:EA:1B:D7:B8:4F, VLAN_ID:4094, GROUP:0xffe0034] onos> groups any of:0000000059120111 | grep id=0x900000f2 id=0x900000f2, state=ADDED, type=INDIRECT, bytes=0, packets=0, appId=org.onosproject.segmentrouting, referenceCount=1 id=0x900000f2, bucket=1, bytes=0, packets=0, actions=[ETH_DST:A8:2B:B5:1C:72:F4, ETH_SRC:8C:EA:1B:D7:B8:4F, VLAN_ID:4094, GROUP:0xffe0035] onos> groups any of:0000000059120111 | grep id=0x900000f4 id=0x900000f4, state=ADDED, type=INDIRECT, bytes=0, packets=0, appId=org.onosproject.segmentrouting, referenceCount=1 id=0x900000f4, bucket=1, bytes=0, packets=0, actions=[ETH_DST:8C:EA:1B:0F:FA:9C, ETH_SRC:8C:EA:1B:D7:B8:4F, VLAN_ID:4094, GROUP:0xffe0031] onos> groups any of:0000000059120111 | grep id=0x900000f7 id=0x900000f7, state=ADDED, type=INDIRECT, bytes=0, packets=0, appId=org.onosproject.segmentrouting, referenceCount=1 id=0x900000f7, bucket=1, bytes=0, packets=0, actions=[ETH_DST:8C:EA:1B:0F:FA:9C, ETH_SRC:8C:EA:1B:D7:B8:4F, VLAN_ID:4094, GROUP:0xffe0032] onos> groups any of:0000000059120111 | grep id=0xffe0034 id=0xffe0034, state=ADDED, type=INDIRECT, bytes=0, packets=0, appId=org.onosproject.segmentrouting, referenceCount=12 id=0xffe0034, bucket=1, bytes=0, packets=0, actions=[VLAN_POP, OUTPUT:52] onos> groups any of:0000000059120111 | grep id=0xffe0035 id=0xffe0035, state=ADDED, type=INDIRECT, bytes=0, packets=0, appId=org.onosproject.segmentrouting, referenceCount=12 id=0xffe0035, bucket=1, bytes=0, packets=0, actions=[VLAN_POP, OUTPUT:53] onos> groups any of:0000000059120111 | grep id=0xffe0031 id=0xffe0031, state=ADDED, type=INDIRECT, bytes=0, packets=0, appId=org.onosproject.segmentrouting, referenceCount=12 id=0xffe0031, bucket=1, bytes=0, packets=0, actions=[VLAN_POP, OUTPUT:49] onos> groups any of:0000000059120111 | grep id=0xffe0032 id=0xffe0032, state=ADDED, type=INDIRECT, bytes=0, packets=0, appId=org.onosproject.segmentrouting, referenceCount=12 id=0xffe0032, bucket=1, bytes=0, packets=0, actions=[VLAN_POP, OUTPUT:50]
In other words, the switch of:0000000059120111, even though it has a local reachability to
2001:558:fe2a:218::/64, sends traffic across the fabric to reach the prefix.