]> git.baikalelectronics.ru Git - kernel.git/commit
net: ip6mr: add support for passing full packet on wrong mif
authorMobashshera Rasool <mobash.rasool.linux@gmail.com>
Thu, 17 Feb 2022 07:46:40 +0000 (07:46 +0000)
committerDavid S. Miller <davem@davemloft.net>
Sat, 19 Feb 2022 16:05:54 +0000 (16:05 +0000)
commit38668f54487697b65f48ab45f67a1fac10f02767
treebe3ee62ad98ccd07995f6855b229624e71b8ee78
parentff18f28f768ed6d79dc473e207dd541555d12b93
net: ip6mr: add support for passing full packet on wrong mif

This patch adds support for MRT6MSG_WRMIFWHOLE 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 WRONGMIF we can only be sending empty register packets
and will lose that data.
This behaviour can be enabled by using MRT_PIM with
val == MRT6MSG_WRMIFWHOLE. This doesn't prevent MRT6MSG_WRONGMIF from
happening, it happens in addition to it, also it is controlled by the same
throttling parameters as WRONGMIF (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: Mobashshera Rasool <mobash.rasool.linux@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/uapi/linux/mroute6.h
net/ipv6/ip6mr.c