From: Nikolay Aleksandrov Date: Thu, 27 Jun 2019 08:10:47 +0000 (+0300) Subject: net: sched: em_ipt: add support for addrtype matching X-Git-Tag: v5.3-rc1~140^2~109^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0c4231c784b4a0435a31f42451c66186c6e43170;p=thirdparty%2Fkernel%2Flinux.git net: sched: em_ipt: add support for addrtype matching Allow em_ipt to use addrtype for matching. Restrict the use only to revision 1 which has IPv6 support. Since it's a NFPROTO_UNSPEC xt match we use the user-specified nfproto for matching, in case it's unspecified both v4/v6 will be matched by the rule. v2: no changes, was patch 5 in v1 Signed-off-by: Nikolay Aleksandrov Signed-off-by: David S. Miller --- diff --git a/net/sched/em_ipt.c b/net/sched/em_ipt.c index 3c356d6f719aa..9fff6480acc60 100644 --- a/net/sched/em_ipt.c +++ b/net/sched/em_ipt.c @@ -72,11 +72,25 @@ static int policy_validate_match_data(struct nlattr **tb, u8 mrev) return 0; } +static int addrtype_validate_match_data(struct nlattr **tb, u8 mrev) +{ + if (mrev != 1) { + pr_err("only addrtype match revision 1 supported"); + return -EINVAL; + } + + return 0; +} + static const struct em_ipt_xt_match em_ipt_xt_matches[] = { { .match_name = "policy", .validate_match_data = policy_validate_match_data }, + { + .match_name = "addrtype", + .validate_match_data = addrtype_validate_match_data + }, {} };