• Nikolay Aleksandrov's avatar
    net: ipmr: add support for passing full packet on wrong vif · c921c207
    Nikolay Aleksandrov authored
    This patch adds support for IGMPMSG_WRVIFWHOLE which is used to pass
    full packet and real vif id when the incoming interface is wrong.
    While the RP and FHR are setting up state we need to be sending the
    registers encapsulated with all the data inside otherwise we lose it.
    The RP then decapsulates it and forwards it to the interested parties.
    Currently with WRONGVIF we can only be sending empty register packets
    and will lose that data.
    This behaviour can be enabled by using MRT_PIM with
    val == IGMPMSG_WRVIFWHOLE. This doesn't prevent IGMPMSG_WRONGVIF from
    happening, it happens in addition to it, also it is controlled by the same
    throttling parameters as WRONGVIF (i.e. 1 packet per 3 seconds currently).
    Both messages are generated to keep backwards compatibily and avoid
    breaking someone who was enabling MRT_PIM with val == 4, since any
    positive val is accepted and treated the same.
    Signed-off-by: default avatarNikolay Aleksandrov <nikolay@cumulusnetworks.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    c921c207
ipmr.c 72.7 KB