You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
[NET] rules: Protocol independant mark selector
Move mark selector currently implemented per protocol into the protocol independant part. Signed-off-by: Thomas Graf <tgraf@suug.ch> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
5f300893fd
commit
b8964ed9fa
@@ -45,8 +45,6 @@ struct dn_fib_rule
|
||||
__le16 dstmask;
|
||||
__le16 srcmap;
|
||||
u8 flags;
|
||||
u32 fwmark;
|
||||
u32 fwmask;
|
||||
};
|
||||
|
||||
static struct dn_fib_rule default_rule = {
|
||||
@@ -129,9 +127,6 @@ static int dn_fib_rule_match(struct fib_rule *rule, struct flowi *fl, int flags)
|
||||
((daddr ^ r->dst) & r->dstmask))
|
||||
return 0;
|
||||
|
||||
if ((r->fwmark ^ fl->mark) & r->fwmask)
|
||||
return 0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -165,18 +160,6 @@ static int dn_fib_rule_configure(struct fib_rule *rule, struct sk_buff *skb,
|
||||
if (tb[FRA_DST])
|
||||
r->dst = nla_get_u16(tb[FRA_DST]);
|
||||
|
||||
if (tb[FRA_FWMARK]) {
|
||||
r->fwmark = nla_get_u32(tb[FRA_FWMARK]);
|
||||
if (r->fwmark)
|
||||
/* compatibility: if the mark value is non-zero all bits
|
||||
* are compared unless a mask is explicitly specified.
|
||||
*/
|
||||
r->fwmask = 0xFFFFFFFF;
|
||||
}
|
||||
|
||||
if (tb[FRA_FWMASK])
|
||||
r->fwmask = nla_get_u32(tb[FRA_FWMASK]);
|
||||
|
||||
r->src_len = frh->src_len;
|
||||
r->srcmask = dnet_make_mask(r->src_len);
|
||||
r->dst_len = frh->dst_len;
|
||||
@@ -197,12 +180,6 @@ static int dn_fib_rule_compare(struct fib_rule *rule, struct fib_rule_hdr *frh,
|
||||
if (frh->dst_len && (r->dst_len != frh->dst_len))
|
||||
return 0;
|
||||
|
||||
if (tb[FRA_FWMARK] && (r->fwmark != nla_get_u32(tb[FRA_FWMARK])))
|
||||
return 0;
|
||||
|
||||
if (tb[FRA_FWMASK] && (r->fwmask != nla_get_u32(tb[FRA_FWMASK])))
|
||||
return 0;
|
||||
|
||||
if (tb[FRA_SRC] && (r->src != nla_get_u16(tb[FRA_SRC])))
|
||||
return 0;
|
||||
|
||||
@@ -240,10 +217,6 @@ static int dn_fib_rule_fill(struct fib_rule *rule, struct sk_buff *skb,
|
||||
frh->src_len = r->src_len;
|
||||
frh->tos = 0;
|
||||
|
||||
if (r->fwmark)
|
||||
NLA_PUT_U32(skb, FRA_FWMARK, r->fwmark);
|
||||
if (r->fwmask || r->fwmark)
|
||||
NLA_PUT_U32(skb, FRA_FWMASK, r->fwmask);
|
||||
if (r->dst_len)
|
||||
NLA_PUT_U16(skb, FRA_DST, r->dst);
|
||||
if (r->src_len)
|
||||
|
||||
Reference in New Issue
Block a user