summaryrefslogtreecommitdiff
path: root/include/uapi/linux/mroute6.h
diff options
context:
space:
mode:
authorMobashshera Rasool <mobash.rasool.linux@gmail.com>2022-02-17 10:46:40 +0300
committerDavid S. Miller <davem@davemloft.net>2022-02-19 19:05:54 +0300
commit4b340a5a726dafba15b366c4009aa0a8f77631ac (patch)
treebe3ee62ad98ccd07995f6855b229624e71b8ee78 /include/uapi/linux/mroute6.h
parent7e1b54d07751edcbf23c7211508abf5667b490ee (diff)
downloadlinux-4b340a5a726dafba15b366c4009aa0a8f77631ac.tar.xz
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>
Diffstat (limited to 'include/uapi/linux/mroute6.h')
-rw-r--r--include/uapi/linux/mroute6.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/uapi/linux/mroute6.h b/include/uapi/linux/mroute6.h
index a1fd6173e2db..1d90c21a6251 100644
--- a/include/uapi/linux/mroute6.h
+++ b/include/uapi/linux/mroute6.h
@@ -134,6 +134,7 @@ struct mrt6msg {
#define MRT6MSG_NOCACHE 1
#define MRT6MSG_WRONGMIF 2
#define MRT6MSG_WHOLEPKT 3 /* used for use level encap */
+#define MRT6MSG_WRMIFWHOLE 4 /* For PIM Register and assert processing */
__u8 im6_mbz; /* must be zero */
__u8 im6_msgtype; /* what type of message */
__u16 im6_mif; /* mif rec'd on */