Skip to content

Netfilter/IPVS updates for net-next

Pablo Neira Ayuso netdev netfilter-devel 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest52 patches 2 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/52netfilter: conntrack: remove nlattr_size pointer from l4proto trackersinclude/net/netfilter/nf_conntrack_l4proto.h net/netfilter/nf_conntrack_netlink.c net/netfilter/nf_conntrack_proto.c +3 more+28 -350 replies
2/52netfilter: conntrack: constify list of builtin trackersinclude/net/netfilter/nf_conntrack_l4proto.h net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c net/ipv6/netfilter/nf_conntrack_l3proto_ipv6.c +1 more+13 -130 replies
3/52netfilter: conntrack: l4 protocol trackers can be constinclude/net/netfilter/ipv4/nf_conntrack_ipv4.h include/net/netfilter/ipv6/nf_conntrack_ipv6.h include/net/netfilter/nf_conntrack_l4proto.h +8 more+27 -270 replies
4/52netfilter: mark expected switch fall-throughsnet/netfilter/ipset/ip_set_core.c net/netfilter/ipvs/ip_vs_proto_tcp.c net/netfilter/ipvs/ip_vs_proto_udp.c +3 more+9 -20 replies
5/52netfilter: conntrack: timeouts can be constnet/ipv4/netfilter/nf_conntrack_proto_icmp.c net/ipv6/netfilter/nf_conntrack_proto_icmpv6.c net/netfilter/nf_conntrack_proto_generic.c +4 more+7 -70 replies
6/52netfilter: ipvs: Remove useless ipvsh param of frag_safe_skb_hpinclude/net/ip_vs.h net/netfilter/ipvs/ip_vs_conn.c net/netfilter/ipvs/ip_vs_core.c+8 -90 replies
7/52netfilter: ipset: use nfnl_mutex_is_lockednet/netfilter/ipset/ip_set_core.c+1 -10 replies
8/52netfilter: ipset: add resched points during set listingnet/netfilter/ipset/ip_set_bitmap_gen.h net/netfilter/ipset/ip_set_core.c net/netfilter/ipset/ip_set_hash_gen.h+2 -20 replies
9/52netfilter: nf_conntrack_h323: Remove unwanted comments.net/netfilter/nf_conntrack_h323_asn1.c net/netfilter/nf_conntrack_h323_main.c+13 -710 replies
10/52netfilter: core: make nf_unregister_net_hooks simple wrapper againnet/netfilter/core.c+3 -560 replies
11/52netfilter: core: remove synchronize_net call if nfqueue is usedinclude/net/netfilter/nf_queue.h net/netfilter/core.c net/netfilter/nf_internals.h +2 more+7 -190 replies
12/52netfilter: core: free hooks with call_rcuinclude/linux/netfilter.h net/netfilter/core.c+43 -100 replies
13/52netfilter: reduce size of hook entry point locationsinclude/linux/netfilter.h include/net/netns/netfilter.h net/bridge/br_netfilter_hooks.c +2 more+77 -140 replies
14/52netfilter: add defines for arp/decnet max hooksinclude/linux/netfilter_defs.h include/uapi/linux/netfilter_arp.h include/uapi/linux/netfilter_decnet.h+12 -10 replies
15/52netfilter: reduce hook array sizes to what is neededinclude/net/netns/netfilter.h net/netfilter/core.c+22 -120 replies
16/52netfilter: don't allocate space for decnet hooks unless neededinclude/linux/netfilter.h include/net/netns/netfilter.h net/netfilter/core.c+8 -00 replies
17/52netfilter: don't allocate space for arp/bridge hooks unless neededinclude/linux/netfilter.h include/net/netns/netfilter.h net/Kconfig +5 more+29 -00 replies
18/52netfilter: reduce NF_MAX_HOOKS defineinclude/linux/netfilter_defs.h+7 -30 replies
19/52netfilter: xtables: add and use xt_request_find_table_lockinclude/linux/netfilter/x_tables.h net/ipv4/netfilter/arp_tables.c net/ipv4/netfilter/ip_tables.c +2 more+65 -510 replies
20/52netfilter: core: only allow one nat hook per hook pointinclude/linux/netfilter.h net/ipv4/netfilter/iptable_nat.c net/ipv6/netfilter/ip6table_nat.c +2 more+17 -00 replies
21/52netfilter: nf_tables: reject nat hook registration if prio is before conntracknet/netfilter/nf_tables_api.c+6 -10 replies
22/52netfilter: nf_tables_arp: don't set forward chainnet/ipv4/netfilter/nf_tables_arp.c+0 -10 replies
23/52netfilter: nf_tables: explicit nft_set_pktinfo() call from hook pathinclude/net/netfilter/nf_tables.h include/net/netfilter/nf_tables_ipv4.h include/net/netfilter/nf_tables_ipv6.h +9 more+43 -580 replies
24/52netfilter: nf_tables: add nft_set_is_anonymous() helperinclude/net/netfilter/nf_tables.h net/netfilter/nf_tables_api.c net/netfilter/nft_dynset.c+10 -50 replies
25/52netfilter: core: add nf_remove_net_hooknet/netfilter/core.c+4 -40 replies
26/52netfilter: core: pass hook number, family and device to nf_find_hook_list()net/netfilter/core.c+19 -170 replies
27/52netfilter: core: pass family as parameter to nf_remove_net_hook()net/netfilter/core.c+5 -50 replies
28/52netfilter: core: support for NFPROTO_INET hook registrationnet/netfilter/core.c+44 -90 replies
29/52netfilter: nf_tables_inet: don't use multihook infrastructure anymoreinclude/net/netfilter/nf_tables_ipv4.h include/net/netfilter/nf_tables_ipv6.h net/ipv4/netfilter/nf_tables_ipv4.c +2 more+60 -200 replies
30/52netfilter: nf_tables: remove multihook chains and familiesinclude/net/netfilter/nf_tables.h net/bridge/netfilter/nf_tables_bridge.c net/ipv4/netfilter/nf_tables_arp.c +6 more+49 -780 replies
31/52netfilter: nf_tables: remove hooks from family definitioninclude/net/netfilter/nf_tables.h net/bridge/netfilter/nf_tables_bridge.c net/ipv4/netfilter/nf_tables_arp.c +5 more+37 -430 replies
32/52netfilter: connlimit: split xt_connlimit into front and backendinclude/net/netfilter/nf_conntrack_count.h include/uapi/linux/netfilter/xt_connlimit.h net/netfilter/Kconfig +3 more+420 -3460 replies
33/52netfilter: move checksum indirection to struct nf_ipv6_opsinclude/linux/netfilter.h include/linux/netfilter_ipv4.h include/linux/netfilter_ipv6.h +5 more+44 -270 replies
34/52netfilter: move checksum_partial indirection to struct nf_ipv6_opsinclude/linux/netfilter.h include/linux/netfilter_ipv4.h include/linux/netfilter_ipv6.h +4 more+50 -380 replies
35/52netfilter: remove saveroute indirection in struct nf_afinfoinclude/linux/netfilter.h include/linux/netfilter_ipv4.h include/linux/netfilter_ipv6.h +4 more+60 -630 replies
36/52netfilter: move route indirection to struct nf_ipv6_opsinclude/linux/netfilter.h include/linux/netfilter_ipv4.h include/linux/netfilter_ipv6.h +9 more+68 -580 replies
37/52netfilter: move reroute indirection to struct nf_ipv6_opsinclude/linux/netfilter.h include/linux/netfilter_ipv4.h include/linux/netfilter_ipv6.h +5 more+39 -190 replies
38/52netfilter: remove route_key_size field in struct nf_afinfoinclude/linux/netfilter.h net/ipv4/netfilter.c net/ipv6/netfilter.c +1 more+16 -90 replies
39/52netfilter: remove struct nf_afinfo and its helper functionsinclude/linux/netfilter.h net/bridge/netfilter/nf_tables_bridge.c net/ipv4/netfilter.c +2 more+6 -650 replies
40/52netfilter: meta: secpath supportinclude/uapi/linux/netfilter/nf_tables.h net/netfilter/nft_meta.c+45 -00 replies
41/52netfilter: remove defensive check on malformed packets from raw socketsnet/ipv4/netfilter/iptable_filter.c net/ipv4/netfilter/iptable_mangle.c net/ipv4/netfilter/iptable_raw.c +10 more+3 -1280 replies
42/52netfilter: nf_tables: remove nft_dereference()include/net/netfilter/nf_tables.h net/netfilter/nf_tables_api.c+3 -60 replies
43/52netfilter: nf_conntrack: add IPS_OFFLOAD status bitinclude/uapi/linux/netfilter/nf_conntrack_common.h net/netfilter/nf_conntrack_core.c net/netfilter/nf_conntrack_netlink.c +2 more+50 -60 replies
44/52netfilter: nf_tables: add flow table netlink frontendinclude/net/netfilter/nf_flow_table.h include/net/netfilter/nf_tables.h include/uapi/linux/netfilter/nf_tables.h +1 more+870 -10 replies
45/52netfilter: add generic flow table infrastructureinclude/net/netfilter/nf_flow_table.h net/netfilter/Kconfig net/netfilter/Makefile +1 more+533 -00 replies
46/52netfilter: flow table support for IPv4net/ipv4/netfilter/Kconfig net/ipv4/netfilter/Makefile net/ipv4/netfilter/nf_flow_table_ipv4.c+294 -00 replies
47/52netfilter: flow table support for IPv6include/net/ipv6.h net/ipv6/ip6_output.c net/ipv6/netfilter/Kconfig +2 more+292 -10 replies
48/52netfilter: flow table support for the mixed IPv4/IPv6 familyinclude/net/netfilter/nf_flow_table.h net/ipv4/netfilter/nf_flow_table_ipv4.c net/ipv6/netfilter/nf_flow_table_ipv6.c +3 more+66 -20 replies
49/52netfilter: nf_tables: flow offload expressioninclude/uapi/linux/netfilter/nf_tables.h net/netfilter/Kconfig net/netfilter/Makefile +1 more+283 -00 replies
50/52netfilter: ipset: use swap macro instead of _manually_ swapping valuesnet/netfilter/ipset/ip_set_bitmap_ip.c net/netfilter/ipset/ip_set_bitmap_ipmac.c net/netfilter/ipset/ip_set_bitmap_port.c+6 -180 replies
51/52netfilter: ipset: Fix "don't update counters" mode when counters used at the matchinginclude/linux/netfilter/ipset/ip_set.h include/linux/netfilter/ipset/ip_set_counter.h net/netfilter/ipset/ip_set_bitmap_gen.h +4 more+114 -1280 replies
52/52netfilter: ipset: Missing nfnl_lock()/nfnl_unlock() is added to ip_set_net_exit()net/netfilter/ipset/ip_set_core.c+2 -00 replies

Reviews trailers per patch

4 of 52 patches have a Reviewed-by or Acked-by.

PatchSimon HormanJozsef KadlecsikYi-Hung Wei
1/52
2/52
3/52
4/52
5/52
6/52A-b
7/52A-b
8/52A-b
9/52
10/52
11/52
12/52
13/52
14/52
15/52
16/52
17/52
18/52
19/52
20/52
21/52
22/52
23/52
24/52
25/52
26/52
27/52
28/52
29/52
30/52
31/52
32/52A-b
33/52
34/52
35/52
36/52
37/52
38/52
39/52
40/52
41/52
42/52
43/52
44/52
45/52
46/52
47/52
48/52
49/52
50/52
51/52
52/52

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes. Scroll the table sideways for all 3 reviewers.

Read the v1 thread

Cover letter [PATCH 00/52] Netfilter/IPVS updates for net-next

Hi David,

The following patchset contains Netfilter/IPVS updates for your net-next tree:

1) Free hooks via call_rcu to speed up netns release path, from Florian Westphal.

2) Reduce memory footprint of hook arrays, skip allocation if family is not present - useful in case decnet support is not compiled built-in. Patches from Florian Westphal.

3) Remove defensive check for malformed IPv4 - including ihl field - and IPv6 headers in x_tables and nf_tables.

4) Add generic flow table offload infrastructure for nf_tables, this includes the netlink control plane and support for IPv4, IPv6 and mixed IPv4/IPv6 dataplanes. This comes with NAT support too. This patchset adds the IPS_OFFLOAD conntrack status bit to indicate that this flow has been offloaded.

5) Add secpath matching support for nf_tables, from Florian.

6) Save some code bytes in the fast path for the nf_tables netdev, bridge and inet families.

7) Allow one single NAT hook per point and do not allow to register NAT hooks in nf_tables before the conntrack hook, patches from Florian.

8) Seven patches to remove the struct nf_af_info abstraction, instead we perform direct calls for IPv4 which is faster. IPv6 indirections are still needed to avoid dependencies with the 'ipv6' module, but these now reside in struct nf_ipv6_ops.

9) Seven patches to handle NFPROTO_INET from the Netfilter core, hence we can remove specific code in nf_tables to handle this pseudofamily.

10) No need for synchronize_net() call for nf_queue after conversion to hook arrays. Also from Florian.

11) Call cond_resched_rcu() when dumping large sets in ipset to avoid softlockup. Again from Florian.

12) Pass lockdep_nfnl_is_held() to rcu_dereference_protected(), patch from Florian Westphal.

13) Fix matching of counters in ipset, from Jozsef Kadlecsik.

14) Missing nfnl lock protection in the ip_set_net_exit path, also from Jozsef.

15) Move connlimit code that we can reuse from nf_tables into nf_conncount, from Florian Westhal.

And asorted cleanups:

16) Get rid of nft_dereference(), it only has one single caller.

17) Add nft_set_is_anonymous() helper function.

18) Remove NF_ARP_FORWARD leftover chain definition in nf_tables_arp.

19) Remove unnecessary comments in nf_conntrack_h323_asn1.c From Varsha Rao.

20) Remove useless parameters in frag_safe_skb_hp(), from Gao Feng.

21) Constify layer 4 conntrack protocol definitions, function parameters to register/unregister these protocol trackers, and timeouts. Patches from Florian Westphal.

22) Remove nlattr_size indirection, from Florian Westphal.

23) Add fall-through comments as -Wimplicit-fallthrough needs this, from Gustavo A. R. Silva.

24) Use swap() macro to exchange values in ipset, patch from Gustavo A. R. Silva.

You can pull these changes from:

git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next.git

Thanks!

PS. I will be preparing a second batch with more updates asap.

----------------------------------------------------------------

The following changes since commit f66faae2f80a45feafc04ce63ef744ac4b6e8c05:

Merge branch 'ipv6-ipv4-nexthop-align' (2018-01-07 21:29:41 -0500)

are available in the git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next.git HEAD

for you to fetch changes up to f998b6b10144cd9809da6af02758615f789e8aa1:

netfilter: ipset: Missing nfnl_lock()/nfnl_unlock() is added to ip_set_net_exit() (2018-01-08 18:11:12 +0100)

----------------------------------------------------------------
Florian Westphal (20):
netfilter: conntrack: remove nlattr_size pointer from l4proto trackers
netfilter: conntrack: constify list of builtin trackers
netfilter: conntrack: l4 protocol trackers can be const
netfilter: conntrack: timeouts can be const
netfilter: ipset: use nfnl_mutex_is_locked
netfilter: ipset: add resched points during set listing
netfilter: core: make nf_unregister_net_hooks simple wrapper again
netfilter: core: remove synchronize_net call if nfqueue is used
netfilter: core: free hooks with call_rcu
netfilter: reduce size of hook entry point locations
netfilter: add defines for arp/decnet max hooks
netfilter: reduce hook array sizes to what is needed
netfilter: don't allocate space for decnet hooks unless needed
netfilter: don't allocate space for arp/bridge hooks unless needed
netfilter: reduce NF_MAX_HOOKS define
netfilter: xtables: add and use xt_request_find_table_lock
netfilter: core: only allow one nat hook per hook point
netfilter: nf_tables: reject nat hook registration if prio is before conntrack
netfilter: connlimit: split xt_connlimit into front and backend
netfilter: meta: secpath support

Gao Feng (1):
netfilter: ipvs: Remove useless ipvsh param of frag_safe_skb_hp

Gustavo A. R. Silva (2):
netfilter: mark expected switch fall-throughs
netfilter: ipset: use swap macro instead of _manually_ swapping values

Jozsef Kadlecsik (2):
netfilter: ipset: Fix "don't update counters" mode when counters used at the matching
netfilter: ipset: Missing nfnl_lock()/nfnl_unlock() is added to ip_set_net_exit()

Pablo Neira Ayuso (26):
netfilter: nf_tables_arp: don't set forward chain
netfilter: nf_tables: explicit nft_set_pktinfo() call from hook path
netfilter: nf_tables: add nft_set_is_anonymous() helper
netfilter: core: add nf_remove_net_hook
netfilter: core: pass hook number, family and device to nf_find_hook_list()
netfilter: core: pass family as parameter to nf_remove_net_hook()
netfilter: core: support for NFPROTO_INET hook registration
netfilter: nf_tables_inet: don't use multihook infrastructure anymore
netfilter: nf_tables: remove multihook chains and families
netfilter: nf_tables: remove hooks from family definition
netfilter: move checksum indirection to struct nf_ipv6_ops
netfilter: move checksum_partial indirection to struct nf_ipv6_ops
netfilter: remove saveroute indirection in struct nf_afinfo
netfilter: move route indirection to struct nf_ipv6_ops
netfilter: move reroute indirection to struct nf_ipv6_ops
netfilter: remove route_key_size field in struct nf_afinfo
netfilter: remove struct nf_afinfo and its helper functions
netfilter: remove defensive check on malformed packets from raw sockets
netfilter: nf_tables: remove nft_dereference()
netfilter: nf_conntrack: add IPS_OFFLOAD status bit
netfilter: nf_tables: add flow table netlink frontend
netfilter: add generic flow table infrastructure
netfilter: flow table support for IPv4
netfilter: flow table support for IPv6
netfilter: flow table support for the mixed IPv4/IPv6 family
netfilter: nf_tables: flow offload expression

Varsha Rao (1):
netfilter: nf_conntrack_h323: Remove unwanted comments.

 include/linux/netfilter.h                          | 116 ++-
 include/linux/netfilter/ipset/ip_set.h             |   6 +
 include/linux/netfilter/ipset/ip_set_counter.h     |  25 +-
 include/linux/netfilter/x_tables.h                 |   2 +
 include/linux/netfilter_defs.h                     |  12 +-
 include/linux/netfilter_ipv4.h                     |  46 ++
 include/linux/netfilter_ipv6.h                     |  19 +
 include/net/ip_vs.h                                |   3 +-
 include/net/ipv6.h                                 |   2 +
 include/net/netfilter/ipv4/nf_conntrack_ipv4.h     |  12 +-
 include/net/netfilter/ipv6/nf_conntrack_ipv6.h     |  12 +-
 include/net/netfilter/nf_conntrack_count.h         |  17 +
 include/net/netfilter/nf_conntrack_l4proto.h       |  19 +-
 include/net/netfilter/nf_flow_table.h              | 122 +++
 include/net/netfilter/nf_queue.h                   |   2 +-
 include/net/netfilter/nf_tables.h                  |  81 +-
 include/net/netfilter/nf_tables_ipv4.h             |  27 +-
 include/net/netfilter/nf_tables_ipv6.h             |  29 +-
 include/net/netns/netfilter.h                      |  12 +-
 include/uapi/linux/netfilter/nf_conntrack_common.h |   6 +-
 include/uapi/linux/netfilter/nf_tables.h           |  66 ++
 include/uapi/linux/netfilter/xt_connlimit.h        |   2 +-
 include/uapi/linux/netfilter_arp.h                 |   3 +
 include/uapi/linux/netfilter_decnet.h              |   4 +-
 net/Kconfig                                        |   1 +
 net/bridge/br_netfilter_hooks.c                    |   2 +-
 net/bridge/netfilter/Kconfig                       |   2 +
 net/bridge/netfilter/nf_tables_bridge.c            |  74 +-
 net/ipv4/netfilter.c                               |  62 +-
 net/ipv4/netfilter/Kconfig                         |  10 +
 net/ipv4/netfilter/Makefile                        |   3 +
 net/ipv4/netfilter/arp_tables.c                    |  26 +-
 net/ipv4/netfilter/ip_tables.c                     |  26 +-
 net/ipv4/netfilter/iptable_filter.c                |   6 -
 net/ipv4/netfilter/iptable_mangle.c                |   5 -
 net/ipv4/netfilter/iptable_nat.c                   |   4 +
 net/ipv4/netfilter/iptable_raw.c                   |   6 -
 net/ipv4/netfilter/iptable_security.c              |   6 -
 net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c     |   7 +-
 net/ipv4/netfilter/nf_conntrack_proto_icmp.c       |   4 +-
 net/ipv4/netfilter/nf_flow_table_ipv4.c            | 284 +++++++
 net/ipv4/netfilter/nf_nat_l3proto_ipv4.c           |  10 -
 net/ipv4/netfilter/nf_tables_arp.c                 |  13 +-
 net/ipv4/netfilter/nf_tables_ipv4.c                |  36 +-
 net/ipv4/netfilter/nft_chain_nat_ipv4.c            |   3 +-
 net/ipv4/netfilter/nft_chain_route_ipv4.c          |   8 +-
 net/ipv6/ip6_output.c                              |   3 +-
 net/ipv6/netfilter.c                               |  44 +-
 net/ipv6/netfilter/Kconfig                         |   8 +
 net/ipv6/netfilter/Makefile                        |   3 +
 net/ipv6/netfilter/ip6_tables.c                    |  26 +-
 net/ipv6/netfilter/ip6table_mangle.c               |   8 -
 net/ipv6/netfilter/ip6table_nat.c                  |   4 +
 net/ipv6/netfilter/nf_conntrack_l3proto_ipv6.c     |   7 +-
 net/ipv6/netfilter/nf_conntrack_proto_icmpv6.c     |   4 +-
 net/ipv6/netfilter/nf_flow_table_ipv6.c            | 278 +++++++
 net/ipv6/netfilter/nf_nat_l3proto_ipv6.c           |   8 -
 net/ipv6/netfilter/nf_tables_ipv6.c                |  35 +-
 net/ipv6/netfilter/nft_chain_nat_ipv6.c            |   3 +-
 net/ipv6/netfilter/nft_chain_route_ipv6.c          |   3 +-
 net/ipv6/netfilter/nft_fib_ipv6.c                  |  12 +-
 net/netfilter/Kconfig                              |  31 +
 net/netfilter/Makefile                             |   9 +-
 net/netfilter/core.c                               | 263 ++++---
 net/netfilter/ipset/ip_set_bitmap_gen.h            |  10 +-
 net/netfilter/ipset/ip_set_bitmap_ip.c             |   8 +-
 net/netfilter/ipset/ip_set_bitmap_ipmac.c          |   8 +-
 net/netfilter/ipset/ip_set_bitmap_port.c           |   8 +-
 net/netfilter/ipset/ip_set_core.c                  |  33 +-
 net/netfilter/ipset/ip_set_hash_gen.h              |  38 +-
 net/netfilter/ipset/ip_set_list_set.c              |  21 +-
 net/netfilter/ipvs/ip_vs_conn.c                    |   2 +-
 net/netfilter/ipvs/ip_vs_core.c                    |  12 +-
 net/netfilter/ipvs/ip_vs_proto_tcp.c               |   1 +
 net/netfilter/ipvs/ip_vs_proto_udp.c               |   1 +
 net/netfilter/nf_conncount.c                       | 373 +++++++++
 net/netfilter/nf_conntrack_core.c                  |  20 +
 net/netfilter/nf_conntrack_h323_asn1.c             |  40 +-
 net/netfilter/nf_conntrack_h323_main.c             |  77 +-
 net/netfilter/nf_conntrack_netlink.c               |  17 +-
 net/netfilter/nf_conntrack_proto.c                 |  18 +-
 net/netfilter/nf_conntrack_proto_dccp.c            |  21 +-
 net/netfilter/nf_conntrack_proto_generic.c         |   4 +-
 net/netfilter/nf_conntrack_proto_gre.c             |   4 +-
 net/netfilter/nf_conntrack_proto_sctp.c            |  21 +-
 net/netfilter/nf_conntrack_proto_tcp.c             |  25 +-
 net/netfilter/nf_conntrack_proto_udp.c             |  10 +-
 net/netfilter/nf_conntrack_standalone.c            |  12 +-
 net/netfilter/nf_flow_table.c                      | 429 ++++++++++
 net/netfilter/nf_flow_table_inet.c                 |  48 ++
 net/netfilter/nf_internals.h                       |   2 +-
 net/netfilter/nf_queue.c                           |  98 ++-
 net/netfilter/nf_tables_api.c                      | 868 +++++++++++++++++++--
 net/netfilter/nf_tables_inet.c                     |  39 +-
 net/netfilter/nf_tables_netdev.c                   |  17 +-
 net/netfilter/nfnetlink_queue.c                    |   9 +-
 net/netfilter/nft_cmp.c                            |   2 +
 net/netfilter/nft_compat.c                         |   8 +-
 net/netfilter/nft_dynset.c                         |   2 +-
 net/netfilter/nft_flow_offload.c                   | 264 +++++++
 net/netfilter/nft_meta.c                           |  43 +
 net/netfilter/nft_rt.c                             |  15 +-
 net/netfilter/utils.c                              |  90 +++
 net/netfilter/x_tables.c                           |  38 +-
 net/netfilter/xt_TCPMSS.c                          |   5 +-
 net/netfilter/xt_addrtype.c                        |  15 +-
 net/netfilter/xt_connlimit.c                       | 369 +--------
 net/netfilter/xt_set.c                             | 119 +--
 108 files changed, 3853 insertions(+), 1403 deletions(-)
 create mode 100644 include/net/netfilter/nf_conntrack_count.h
 create mode 100644 include/net/netfilter/nf_flow_table.h
 create mode 100644 net/ipv4/netfilter/nf_flow_table_ipv4.c
 create mode 100644 net/ipv6/netfilter/nf_flow_table_ipv6.c
 create mode 100644 net/netfilter/nf_conncount.c
 create mode 100644 net/netfilter/nf_flow_table.c
 create mode 100644 net/netfilter/nf_flow_table_inet.c
 create mode 100644 net/netfilter/nft_flow_offload.c
 create mode 100644 net/netfilter/utils.c