From: Paul Davey <paul.da...@alliedtelesis.co.nz> Date: Tue, 8 Sep 2020 10:04:05 +1200
> Currently it is not possible to use more than 255 multicast interfaces > for IPv4 due to the format of the igmpmsg header which only has 8 bits > available for the VIF ID. There is space available in the igmpmsg > header to store the full VIF ID in the form of an unused byte following > the VIF ID field. There is also enough space for the full VIF ID in > the Netlink cache notifications, however the value is currently taken > directly from the igmpmsg header and has thus already been truncated. > > Adding the high byte of the VIF ID into the unused3 byte of igmpmsg > allows use of more than 255 IPv4 multicast interfaces. The full VIF ID > is also available in the Netlink notification by assembling it from > both bytes from the igmpmsg. > > Additionally this reveals a deficiency in the Netlink cache report > notifications, they lack any means for differentiating cache reports > relating to different multicast routing tables. This is easily > resolved by adding the multicast route table ID to the cache reports. > > changes in v2: > - Added high byte of VIF ID to igmpmsg struct replacing unused3 > member. > - Assemble VIF ID in Netlink notification from both bytes in igmpmsg > header. Series applied, thank you.