frr icon indicating copy to clipboard operation
frr copied to clipboard

`show ip mroute json` one route per group limit

Open Jafaral opened this issue 3 years ago • 3 comments

While writing a topotest for static routes, I configured the same G to be forwarded on multiple interfaces, I came a cross this case:

show ip mroute (3 routes)

unet> r1 show ip mroute
IP Multicast Routing Table
Flags: S - Sparse, C - Connected, P - Pruned
       R - SGRpt Pruned, F - Register flag, T - SPT-bit set

Source          Group           Flags    Proto  Input            Output           TTL  Uptime
*               239.0.0.1       -        STATIC r1-eth0          r1-eth1          1    00:00:23
*               239.0.0.1       -        STATIC r1-eth1          r1-eth0          1    00:00:23
*               239.0.0.1       -        STATIC r1-eth2          r1-eth0          1    00:00:23

show ip mroute json (only 1 route)

unet> r1 show ip mroute json
{
  "239.0.0.1":{
    "*":{
      "iif":"r1-eth2",
      "oil":{
        "r1-eth0":{
          "source":"*",
          "group":"239.0.0.1",
          "protocolStatic":true,
          "inboundInterface":"r1-eth2",
          "iVifI":3,
          "outboundInterface":"r1-eth0",
          "oVifI":1,
          "ttl":1,
          "upTime":"00:00:28"
        }
      }
    }
  }
}

unet>

since the json objects are keyed using the group address, any route for the same group ends up overwriting the existing ones even though it is a different route!

Jafaral avatar Aug 07 '22 05:08 Jafaral

the *,G routes with different input IIF's is clearly broken. It should not be allowed.

donaldsharp avatar Aug 07 '22 10:08 donaldsharp

@donaldsharp , I don't think it is. This is exactly what my recent static mroute fix did. You can have multiple senders for the same (*, G) coming on different interfaces and a receiver who wants to receive from all of them.

Jafaral avatar Aug 07 '22 14:08 Jafaral

You can also have multiple hosts sending and receiving the same (*, G) connected on multiple interfaces. Those mroutes allow them to communicate. This is not strictly a static mroute issue. This is why we have ssm, to allow a receiver to select a specific source when multiple senders for the same group exists.

Jafaral avatar Aug 07 '22 14:08 Jafaral

This issue is stale because it has been open 180 days with no activity. Comment or remove the autoclose label in order to avoid having this issue closed.

github-actions[bot] avatar Feb 04 '23 01:02 github-actions[bot]

This issue will be automatically closed in the specified period unless there is further activity.

frrbot[bot] avatar Feb 04 '23 01:02 frrbot[bot]