netfilter: ipset: Add skbinfo extension kernel support for the hash set types.
Add skbinfo extension kernel support for the hash set types. Inroduce the new revisions of all hash set types. Signed-off-by: Anton Danilov <littlesmilingcloud@gmail.com> Signed-off-by: Jozsef Kadlecsik <kadlec@blackhole.kfki.hu>
This commit is contained in:
parent
39d1ecf1ad
commit
af331419d3
11 changed files with 130 additions and 25 deletions
|
@ -720,6 +720,8 @@ mtype_add(struct ip_set *set, void *value, const struct ip_set_ext *ext,
|
|||
ip_set_init_counter(ext_counter(data, set), ext);
|
||||
if (SET_WITH_COMMENT(set))
|
||||
ip_set_init_comment(ext_comment(data, set), ext);
|
||||
if (SET_WITH_SKBINFO(set))
|
||||
ip_set_init_skbinfo(ext_skbinfo(data, set), ext);
|
||||
|
||||
out:
|
||||
rcu_read_unlock_bh();
|
||||
|
@ -797,6 +799,9 @@ mtype_data_match(struct mtype_elem *data, const struct ip_set_ext *ext,
|
|||
if (SET_WITH_COUNTER(set))
|
||||
ip_set_update_counter(ext_counter(data, set),
|
||||
ext, mext, flags);
|
||||
if (SET_WITH_SKBINFO(set))
|
||||
ip_set_get_skbinfo(ext_skbinfo(data, set),
|
||||
ext, mext, flags);
|
||||
return mtype_do_data_match(data);
|
||||
}
|
||||
|
||||
|
|
|
@ -26,7 +26,8 @@
|
|||
#define IPSET_TYPE_REV_MIN 0
|
||||
/* 1 Counters support */
|
||||
/* 2 Comments support */
|
||||
#define IPSET_TYPE_REV_MAX 3 /* Forceadd support */
|
||||
/* 3 Forceadd support */
|
||||
#define IPSET_TYPE_REV_MAX 4 /* skbinfo support */
|
||||
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_AUTHOR("Jozsef Kadlecsik <kadlec@blackhole.kfki.hu>");
|
||||
|
@ -111,7 +112,10 @@ hash_ip4_uadt(struct ip_set *set, struct nlattr *tb[],
|
|||
if (unlikely(!tb[IPSET_ATTR_IP] ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_TIMEOUT) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_PACKETS) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_BYTES)))
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_BYTES) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBMARK) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBPRIO) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBQUEUE)))
|
||||
return -IPSET_ERR_PROTOCOL;
|
||||
|
||||
if (tb[IPSET_ATTR_LINENO])
|
||||
|
@ -247,6 +251,9 @@ hash_ip6_uadt(struct ip_set *set, struct nlattr *tb[],
|
|||
!ip_set_optattr_netorder(tb, IPSET_ATTR_TIMEOUT) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_PACKETS) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_BYTES) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBMARK) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBPRIO) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBQUEUE) ||
|
||||
tb[IPSET_ATTR_IP_TO] ||
|
||||
tb[IPSET_ATTR_CIDR]))
|
||||
return -IPSET_ERR_PROTOCOL;
|
||||
|
@ -295,6 +302,9 @@ static struct ip_set_type hash_ip_type __read_mostly = {
|
|||
[IPSET_ATTR_BYTES] = { .type = NLA_U64 },
|
||||
[IPSET_ATTR_PACKETS] = { .type = NLA_U64 },
|
||||
[IPSET_ATTR_COMMENT] = { .type = NLA_NUL_STRING },
|
||||
[IPSET_ATTR_SKBMARK] = { .type = NLA_U64 },
|
||||
[IPSET_ATTR_SKBPRIO] = { .type = NLA_U32 },
|
||||
[IPSET_ATTR_SKBQUEUE] = { .type = NLA_U16 },
|
||||
},
|
||||
.me = THIS_MODULE,
|
||||
};
|
||||
|
|
|
@ -25,7 +25,8 @@
|
|||
#include <linux/netfilter/ipset/ip_set_hash.h>
|
||||
|
||||
#define IPSET_TYPE_REV_MIN 0
|
||||
#define IPSET_TYPE_REV_MAX 1 /* Forceadd support */
|
||||
/* 1 Forceadd support */
|
||||
#define IPSET_TYPE_REV_MAX 2 /* skbinfo support */
|
||||
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_AUTHOR("Vytas Dauksa <vytas.dauksa@smoothwall.net>");
|
||||
|
@ -113,7 +114,10 @@ hash_ipmark4_uadt(struct ip_set *set, struct nlattr *tb[],
|
|||
!ip_set_attr_netorder(tb, IPSET_ATTR_MARK) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_TIMEOUT) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_PACKETS) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_BYTES)))
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_BYTES) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBMARK) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBPRIO) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBQUEUE)))
|
||||
return -IPSET_ERR_PROTOCOL;
|
||||
|
||||
if (tb[IPSET_ATTR_LINENO])
|
||||
|
@ -244,6 +248,9 @@ hash_ipmark6_uadt(struct ip_set *set, struct nlattr *tb[],
|
|||
!ip_set_optattr_netorder(tb, IPSET_ATTR_TIMEOUT) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_PACKETS) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_BYTES) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBMARK) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBPRIO) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBQUEUE) ||
|
||||
tb[IPSET_ATTR_IP_TO] ||
|
||||
tb[IPSET_ATTR_CIDR]))
|
||||
return -IPSET_ERR_PROTOCOL;
|
||||
|
@ -301,6 +308,9 @@ static struct ip_set_type hash_ipmark_type __read_mostly = {
|
|||
[IPSET_ATTR_BYTES] = { .type = NLA_U64 },
|
||||
[IPSET_ATTR_PACKETS] = { .type = NLA_U64 },
|
||||
[IPSET_ATTR_COMMENT] = { .type = NLA_NUL_STRING },
|
||||
[IPSET_ATTR_SKBMARK] = { .type = NLA_U64 },
|
||||
[IPSET_ATTR_SKBPRIO] = { .type = NLA_U32 },
|
||||
[IPSET_ATTR_SKBQUEUE] = { .type = NLA_U16 },
|
||||
},
|
||||
.me = THIS_MODULE,
|
||||
};
|
||||
|
|
|
@ -28,7 +28,8 @@
|
|||
/* 1 SCTP and UDPLITE support added */
|
||||
/* 2 Counters support added */
|
||||
/* 3 Comments support added */
|
||||
#define IPSET_TYPE_REV_MAX 4 /* Forceadd support added */
|
||||
/* 4 Forceadd support added */
|
||||
#define IPSET_TYPE_REV_MAX 5 /* skbinfo support added */
|
||||
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_AUTHOR("Jozsef Kadlecsik <kadlec@blackhole.kfki.hu>");
|
||||
|
@ -122,7 +123,10 @@ hash_ipport4_uadt(struct ip_set *set, struct nlattr *tb[],
|
|||
!ip_set_optattr_netorder(tb, IPSET_ATTR_PORT_TO) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_TIMEOUT) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_PACKETS) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_BYTES)))
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_BYTES) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBMARK) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBPRIO) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBQUEUE)))
|
||||
return -IPSET_ERR_PROTOCOL;
|
||||
|
||||
if (tb[IPSET_ATTR_LINENO])
|
||||
|
@ -287,6 +291,9 @@ hash_ipport6_uadt(struct ip_set *set, struct nlattr *tb[],
|
|||
!ip_set_optattr_netorder(tb, IPSET_ATTR_TIMEOUT) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_PACKETS) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_BYTES) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBMARK) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBPRIO) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBQUEUE) ||
|
||||
tb[IPSET_ATTR_IP_TO] ||
|
||||
tb[IPSET_ATTR_CIDR]))
|
||||
return -IPSET_ERR_PROTOCOL;
|
||||
|
@ -370,6 +377,9 @@ static struct ip_set_type hash_ipport_type __read_mostly = {
|
|||
[IPSET_ATTR_BYTES] = { .type = NLA_U64 },
|
||||
[IPSET_ATTR_PACKETS] = { .type = NLA_U64 },
|
||||
[IPSET_ATTR_COMMENT] = { .type = NLA_NUL_STRING },
|
||||
[IPSET_ATTR_SKBMARK] = { .type = NLA_U64 },
|
||||
[IPSET_ATTR_SKBPRIO] = { .type = NLA_U32 },
|
||||
[IPSET_ATTR_SKBQUEUE] = { .type = NLA_U16 },
|
||||
},
|
||||
.me = THIS_MODULE,
|
||||
};
|
||||
|
|
|
@ -28,7 +28,8 @@
|
|||
/* 1 SCTP and UDPLITE support added */
|
||||
/* 2 Counters support added */
|
||||
/* 3 Comments support added */
|
||||
#define IPSET_TYPE_REV_MAX 4 /* Forceadd support added */
|
||||
/* 4 Forceadd support added */
|
||||
#define IPSET_TYPE_REV_MAX 5 /* skbinfo support added */
|
||||
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_AUTHOR("Jozsef Kadlecsik <kadlec@blackhole.kfki.hu>");
|
||||
|
@ -124,7 +125,10 @@ hash_ipportip4_uadt(struct ip_set *set, struct nlattr *tb[],
|
|||
!ip_set_optattr_netorder(tb, IPSET_ATTR_PORT_TO) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_TIMEOUT) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_PACKETS) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_BYTES)))
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_BYTES) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBMARK) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBPRIO) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBQUEUE)))
|
||||
return -IPSET_ERR_PROTOCOL;
|
||||
|
||||
if (tb[IPSET_ATTR_LINENO])
|
||||
|
@ -295,6 +299,9 @@ hash_ipportip6_uadt(struct ip_set *set, struct nlattr *tb[],
|
|||
!ip_set_optattr_netorder(tb, IPSET_ATTR_TIMEOUT) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_PACKETS) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_BYTES) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBMARK) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBPRIO) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBQUEUE) ||
|
||||
tb[IPSET_ATTR_IP_TO] ||
|
||||
tb[IPSET_ATTR_CIDR]))
|
||||
return -IPSET_ERR_PROTOCOL;
|
||||
|
@ -382,6 +389,9 @@ static struct ip_set_type hash_ipportip_type __read_mostly = {
|
|||
[IPSET_ATTR_BYTES] = { .type = NLA_U64 },
|
||||
[IPSET_ATTR_PACKETS] = { .type = NLA_U64 },
|
||||
[IPSET_ATTR_COMMENT] = { .type = NLA_NUL_STRING },
|
||||
[IPSET_ATTR_SKBMARK] = { .type = NLA_U64 },
|
||||
[IPSET_ATTR_SKBPRIO] = { .type = NLA_U32 },
|
||||
[IPSET_ATTR_SKBQUEUE] = { .type = NLA_U16 },
|
||||
},
|
||||
.me = THIS_MODULE,
|
||||
};
|
||||
|
|
|
@ -30,7 +30,8 @@
|
|||
/* 3 nomatch flag support added */
|
||||
/* 4 Counters support added */
|
||||
/* 5 Comments support added */
|
||||
#define IPSET_TYPE_REV_MAX 6 /* Forceadd support added */
|
||||
/* 6 Forceadd support added */
|
||||
#define IPSET_TYPE_REV_MAX 7 /* skbinfo support added */
|
||||
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_AUTHOR("Jozsef Kadlecsik <kadlec@blackhole.kfki.hu>");
|
||||
|
@ -179,7 +180,10 @@ hash_ipportnet4_uadt(struct ip_set *set, struct nlattr *tb[],
|
|||
!ip_set_optattr_netorder(tb, IPSET_ATTR_TIMEOUT) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_CADT_FLAGS) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_PACKETS) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_BYTES)))
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_BYTES) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBMARK) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBPRIO) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBQUEUE)))
|
||||
return -IPSET_ERR_PROTOCOL;
|
||||
|
||||
if (tb[IPSET_ATTR_LINENO])
|
||||
|
@ -432,6 +436,9 @@ hash_ipportnet6_uadt(struct ip_set *set, struct nlattr *tb[],
|
|||
!ip_set_optattr_netorder(tb, IPSET_ATTR_CADT_FLAGS) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_PACKETS) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_BYTES) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBMARK) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBPRIO) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBQUEUE) ||
|
||||
tb[IPSET_ATTR_IP_TO] ||
|
||||
tb[IPSET_ATTR_CIDR]))
|
||||
return -IPSET_ERR_PROTOCOL;
|
||||
|
@ -541,6 +548,9 @@ static struct ip_set_type hash_ipportnet_type __read_mostly = {
|
|||
[IPSET_ATTR_BYTES] = { .type = NLA_U64 },
|
||||
[IPSET_ATTR_PACKETS] = { .type = NLA_U64 },
|
||||
[IPSET_ATTR_COMMENT] = { .type = NLA_NUL_STRING },
|
||||
[IPSET_ATTR_SKBMARK] = { .type = NLA_U64 },
|
||||
[IPSET_ATTR_SKBPRIO] = { .type = NLA_U32 },
|
||||
[IPSET_ATTR_SKBQUEUE] = { .type = NLA_U16 },
|
||||
},
|
||||
.me = THIS_MODULE,
|
||||
};
|
||||
|
|
|
@ -27,7 +27,8 @@
|
|||
/* 2 nomatch flag support added */
|
||||
/* 3 Counters support added */
|
||||
/* 4 Comments support added */
|
||||
#define IPSET_TYPE_REV_MAX 5 /* Forceadd support added */
|
||||
/* 5 Forceadd support added */
|
||||
#define IPSET_TYPE_REV_MAX 6 /* skbinfo mapping support added */
|
||||
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_AUTHOR("Jozsef Kadlecsik <kadlec@blackhole.kfki.hu>");
|
||||
|
@ -150,7 +151,10 @@ hash_net4_uadt(struct ip_set *set, struct nlattr *tb[],
|
|||
!ip_set_optattr_netorder(tb, IPSET_ATTR_TIMEOUT) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_CADT_FLAGS) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_PACKETS) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_BYTES)))
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_BYTES) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBMARK) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBPRIO) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBQUEUE)))
|
||||
return -IPSET_ERR_PROTOCOL;
|
||||
|
||||
if (tb[IPSET_ATTR_LINENO])
|
||||
|
@ -318,7 +322,10 @@ hash_net6_uadt(struct ip_set *set, struct nlattr *tb[],
|
|||
!ip_set_optattr_netorder(tb, IPSET_ATTR_TIMEOUT) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_CADT_FLAGS) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_PACKETS) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_BYTES)))
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_BYTES) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBMARK) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBPRIO) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBQUEUE)))
|
||||
return -IPSET_ERR_PROTOCOL;
|
||||
if (unlikely(tb[IPSET_ATTR_IP_TO]))
|
||||
return -IPSET_ERR_HASH_RANGE_UNSUPPORTED;
|
||||
|
@ -377,6 +384,9 @@ static struct ip_set_type hash_net_type __read_mostly = {
|
|||
[IPSET_ATTR_BYTES] = { .type = NLA_U64 },
|
||||
[IPSET_ATTR_PACKETS] = { .type = NLA_U64 },
|
||||
[IPSET_ATTR_COMMENT] = { .type = NLA_NUL_STRING },
|
||||
[IPSET_ATTR_SKBMARK] = { .type = NLA_U64 },
|
||||
[IPSET_ATTR_SKBPRIO] = { .type = NLA_U32 },
|
||||
[IPSET_ATTR_SKBQUEUE] = { .type = NLA_U16 },
|
||||
},
|
||||
.me = THIS_MODULE,
|
||||
};
|
||||
|
|
|
@ -28,7 +28,8 @@
|
|||
/* 2 /0 support added */
|
||||
/* 3 Counters support added */
|
||||
/* 4 Comments support added */
|
||||
#define IPSET_TYPE_REV_MAX 5 /* Forceadd support added */
|
||||
/* 5 Forceadd support added */
|
||||
#define IPSET_TYPE_REV_MAX 6 /* skbinfo support added */
|
||||
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_AUTHOR("Jozsef Kadlecsik <kadlec@blackhole.kfki.hu>");
|
||||
|
@ -281,7 +282,10 @@ hash_netiface4_uadt(struct ip_set *set, struct nlattr *tb[],
|
|||
!ip_set_optattr_netorder(tb, IPSET_ATTR_TIMEOUT) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_CADT_FLAGS) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_PACKETS) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_BYTES)))
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_BYTES) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBMARK) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBPRIO) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBQUEUE)))
|
||||
return -IPSET_ERR_PROTOCOL;
|
||||
|
||||
if (tb[IPSET_ATTR_LINENO])
|
||||
|
@ -514,7 +518,10 @@ hash_netiface6_uadt(struct ip_set *set, struct nlattr *tb[],
|
|||
!ip_set_optattr_netorder(tb, IPSET_ATTR_TIMEOUT) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_CADT_FLAGS) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_PACKETS) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_BYTES)))
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_BYTES) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBMARK) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBPRIO) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBQUEUE)))
|
||||
return -IPSET_ERR_PROTOCOL;
|
||||
if (unlikely(tb[IPSET_ATTR_IP_TO]))
|
||||
return -IPSET_ERR_HASH_RANGE_UNSUPPORTED;
|
||||
|
@ -590,6 +597,9 @@ static struct ip_set_type hash_netiface_type __read_mostly = {
|
|||
[IPSET_ATTR_BYTES] = { .type = NLA_U64 },
|
||||
[IPSET_ATTR_PACKETS] = { .type = NLA_U64 },
|
||||
[IPSET_ATTR_COMMENT] = { .type = NLA_NUL_STRING },
|
||||
[IPSET_ATTR_SKBMARK] = { .type = NLA_U64 },
|
||||
[IPSET_ATTR_SKBPRIO] = { .type = NLA_U32 },
|
||||
[IPSET_ATTR_SKBQUEUE] = { .type = NLA_U16 },
|
||||
},
|
||||
.me = THIS_MODULE,
|
||||
};
|
||||
|
|
|
@ -24,7 +24,8 @@
|
|||
#include <linux/netfilter/ipset/ip_set_hash.h>
|
||||
|
||||
#define IPSET_TYPE_REV_MIN 0
|
||||
#define IPSET_TYPE_REV_MAX 1 /* Forceadd support added */
|
||||
/* 1 Forceadd support added */
|
||||
#define IPSET_TYPE_REV_MAX 2 /* skbinfo support added */
|
||||
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_AUTHOR("Oliver Smith <oliver@8.c.9.b.0.7.4.0.1.0.0.2.ip6.arpa>");
|
||||
|
@ -171,7 +172,10 @@ hash_netnet4_uadt(struct ip_set *set, struct nlattr *tb[],
|
|||
!ip_set_optattr_netorder(tb, IPSET_ATTR_TIMEOUT) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_CADT_FLAGS) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_PACKETS) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_BYTES)))
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_BYTES) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBMARK) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBPRIO) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBQUEUE)))
|
||||
return -IPSET_ERR_PROTOCOL;
|
||||
|
||||
if (tb[IPSET_ATTR_LINENO])
|
||||
|
@ -394,7 +398,10 @@ hash_netnet6_uadt(struct ip_set *set, struct nlattr *tb[],
|
|||
!ip_set_optattr_netorder(tb, IPSET_ATTR_TIMEOUT) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_CADT_FLAGS) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_PACKETS) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_BYTES)))
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_BYTES) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBMARK) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBPRIO) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBQUEUE)))
|
||||
return -IPSET_ERR_PROTOCOL;
|
||||
if (unlikely(tb[IPSET_ATTR_IP_TO] || tb[IPSET_ATTR_IP2_TO]))
|
||||
return -IPSET_ERR_HASH_RANGE_UNSUPPORTED;
|
||||
|
@ -462,6 +469,9 @@ static struct ip_set_type hash_netnet_type __read_mostly = {
|
|||
[IPSET_ATTR_BYTES] = { .type = NLA_U64 },
|
||||
[IPSET_ATTR_PACKETS] = { .type = NLA_U64 },
|
||||
[IPSET_ATTR_COMMENT] = { .type = NLA_NUL_STRING },
|
||||
[IPSET_ATTR_SKBMARK] = { .type = NLA_U64 },
|
||||
[IPSET_ATTR_SKBPRIO] = { .type = NLA_U32 },
|
||||
[IPSET_ATTR_SKBQUEUE] = { .type = NLA_U16 },
|
||||
},
|
||||
.me = THIS_MODULE,
|
||||
};
|
||||
|
|
|
@ -29,7 +29,8 @@
|
|||
/* 3 nomatch flag support added */
|
||||
/* 4 Counters support added */
|
||||
/* 5 Comments support added */
|
||||
#define IPSET_TYPE_REV_MAX 6 /* Forceadd support added */
|
||||
/* 6 Forceadd support added */
|
||||
#define IPSET_TYPE_REV_MAX 7 /* skbinfo support added */
|
||||
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_AUTHOR("Jozsef Kadlecsik <kadlec@blackhole.kfki.hu>");
|
||||
|
@ -172,7 +173,10 @@ hash_netport4_uadt(struct ip_set *set, struct nlattr *tb[],
|
|||
!ip_set_optattr_netorder(tb, IPSET_ATTR_TIMEOUT) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_CADT_FLAGS) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_PACKETS) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_BYTES)))
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_BYTES) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBMARK) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBPRIO) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBQUEUE)))
|
||||
return -IPSET_ERR_PROTOCOL;
|
||||
|
||||
if (tb[IPSET_ATTR_LINENO])
|
||||
|
@ -389,7 +393,10 @@ hash_netport6_uadt(struct ip_set *set, struct nlattr *tb[],
|
|||
!ip_set_optattr_netorder(tb, IPSET_ATTR_TIMEOUT) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_CADT_FLAGS) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_PACKETS) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_BYTES)))
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_BYTES) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBMARK) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBPRIO) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBQUEUE)))
|
||||
return -IPSET_ERR_PROTOCOL;
|
||||
if (unlikely(tb[IPSET_ATTR_IP_TO]))
|
||||
return -IPSET_ERR_HASH_RANGE_UNSUPPORTED;
|
||||
|
@ -489,6 +496,9 @@ static struct ip_set_type hash_netport_type __read_mostly = {
|
|||
[IPSET_ATTR_BYTES] = { .type = NLA_U64 },
|
||||
[IPSET_ATTR_PACKETS] = { .type = NLA_U64 },
|
||||
[IPSET_ATTR_COMMENT] = { .type = NLA_NUL_STRING },
|
||||
[IPSET_ATTR_SKBMARK] = { .type = NLA_U64 },
|
||||
[IPSET_ATTR_SKBPRIO] = { .type = NLA_U32 },
|
||||
[IPSET_ATTR_SKBQUEUE] = { .type = NLA_U16 },
|
||||
},
|
||||
.me = THIS_MODULE,
|
||||
};
|
||||
|
|
|
@ -26,7 +26,8 @@
|
|||
|
||||
#define IPSET_TYPE_REV_MIN 0
|
||||
/* 0 Comments support added */
|
||||
#define IPSET_TYPE_REV_MAX 1 /* Forceadd support added */
|
||||
/* 1 Forceadd support added */
|
||||
#define IPSET_TYPE_REV_MAX 2 /* skbinfo support added */
|
||||
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_AUTHOR("Oliver Smith <oliver@8.c.9.b.0.7.4.0.1.0.0.2.ip6.arpa>");
|
||||
|
@ -189,7 +190,10 @@ hash_netportnet4_uadt(struct ip_set *set, struct nlattr *tb[],
|
|||
!ip_set_optattr_netorder(tb, IPSET_ATTR_TIMEOUT) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_CADT_FLAGS) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_PACKETS) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_BYTES)))
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_BYTES) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBMARK) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBPRIO) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBQUEUE)))
|
||||
return -IPSET_ERR_PROTOCOL;
|
||||
|
||||
if (tb[IPSET_ATTR_LINENO])
|
||||
|
@ -460,7 +464,10 @@ hash_netportnet6_uadt(struct ip_set *set, struct nlattr *tb[],
|
|||
!ip_set_optattr_netorder(tb, IPSET_ATTR_TIMEOUT) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_CADT_FLAGS) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_PACKETS) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_BYTES)))
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_BYTES) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBMARK) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBPRIO) ||
|
||||
!ip_set_optattr_netorder(tb, IPSET_ATTR_SKBQUEUE)))
|
||||
return -IPSET_ERR_PROTOCOL;
|
||||
if (unlikely(tb[IPSET_ATTR_IP_TO] || tb[IPSET_ATTR_IP2_TO]))
|
||||
return -IPSET_ERR_HASH_RANGE_UNSUPPORTED;
|
||||
|
@ -569,6 +576,9 @@ static struct ip_set_type hash_netportnet_type __read_mostly = {
|
|||
[IPSET_ATTR_BYTES] = { .type = NLA_U64 },
|
||||
[IPSET_ATTR_PACKETS] = { .type = NLA_U64 },
|
||||
[IPSET_ATTR_COMMENT] = { .type = NLA_NUL_STRING },
|
||||
[IPSET_ATTR_SKBMARK] = { .type = NLA_U64 },
|
||||
[IPSET_ATTR_SKBPRIO] = { .type = NLA_U32 },
|
||||
[IPSET_ATTR_SKBQUEUE] = { .type = NLA_U16 },
|
||||
},
|
||||
.me = THIS_MODULE,
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue