net: fib_rules: Add new attribute to set protocol

For ages iproute2 has used `struct rtmsg` as the ancillary header for
FIB rules and in the process set the protocol value to RTPROT_BOOT.
Until ca56209a66 ("net: Allow a rule to track originating protocol")
the kernel rules code ignored the protocol value sent from userspace
and always returned 0 in notifications. To avoid incompatibility with
existing iproute2, send the protocol as a new attribute.

Fixes: cac56209a6 ("net: Allow a rule to track originating protocol")
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Donald Sharp
2018-02-23 14:01:52 -05:00
committed by David S. Miller
parent cc30c93fa0
commit 1b71af6053
4 changed files with 20 additions and 8 deletions

View File

@@ -23,8 +23,8 @@ struct fib_rule_hdr {
__u8 tos;
__u8 table;
__u8 proto;
__u8 res1; /* reserved */
__u8 res1; /* reserved */
__u8 res2; /* reserved */
__u8 action;
__u32 flags;
@@ -58,6 +58,7 @@ enum {
FRA_PAD,
FRA_L3MDEV, /* iif or oif is l3mdev goto its table */
FRA_UID_RANGE, /* UID range */
FRA_PROTOCOL, /* Originator of the rule */
__FRA_MAX
};