[PATCH nf-next 0/16] conntrack: remove indirect calls from packet path

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This series gets rid of the remaining indirect calls in the conntrack packet
path (except the conntrack entry points themselves).

To do this, the last remaining modular l4 tracker (GRE) is made built-in.
The second upside is that this allows to remove all the 'dynamic registration'
infrastructure.  While at it, this also moves the l4 sysctl handling into
a single location.

The nat core still contains several indirect calls, those are not addressed
here.

Before this series:
  text	   data	    bss	    dec	    hex	filename
  6281	   1732	      4	   8017	   1f51	nf_conntrack_proto_gre.ko
108356	  20613	    236	 129205	  1f8b5	nf_conntrack.ko

After:
294864  net/netfilter/nf_conntrack.ko
  text	   data	    bss	    dec	    hex	filename
106979	  19557	    240	 126776	  1ef38	nf_conntrack.ko

So even with PROTO_GRE=y, total size is reduced.

Florian Westphal (16):
      netfilter: conntrack: handle builtin l4proto packet functions via direct calls
      netfilter: conntrack: handle icmp pkt_to_tuple helper via direct calls
      netfilter: conntrack: gre: convert rwlock to rcu
      netfilter: conntrack: gre: switch module to be built-in
      netfilter: conntrack: remove net_id
      netfilter: conntrack: remove pkt_to_tuple callback
      netfilter: conntrack: remove invert_tuple callback
      netfilter: conntrack: remove module owner field
      netfilter: conntrack: remove remaining l4proto indirect packet calls
      netfilter: conntrack: remove pernet l4 proto register interface
      netfilter: conntrack: avoid unneeded nf_conntrack_l4proto lookups
      netfilter: conntrack: unify sysctl handling
      netfilter: conntrack: remove sysctl registration helpers
      netfilter: conntrack: remove l4proto init and get_net callbacks
      netfilter: conntrack: remove l4proto destroy hook
      netfilter: conntrack: remove nf_ct_l4proto_find_get

 include/linux/netfilter/nf_conntrack_proto_gre.h |   17 
 include/net/netfilter/ipv4/nf_conntrack_ipv4.h   |    3 
 include/net/netfilter/nf_conntrack.h             |    2 
 include/net/netfilter/nf_conntrack_core.h        |    5 
 include/net/netfilter/nf_conntrack_l4proto.h     |  126 ++++---
 include/net/netns/conntrack.h                    |   32 -
 net/ipv4/netfilter/nf_nat_l3proto_ipv4.c         |    2 
 net/ipv6/netfilter/nf_nat_l3proto_ipv6.c         |    2 
 net/netfilter/Kconfig                            |    2 
 net/netfilter/Makefile                           |    3 
 net/netfilter/nf_conntrack_core.c                |  170 +++++----
 net/netfilter/nf_conntrack_expect.c              |    2 
 net/netfilter/nf_conntrack_netlink.c             |   14 
 net/netfilter/nf_conntrack_pptp.c                |    2 
 net/netfilter/nf_conntrack_proto.c               |  406 +++--------------------
 net/netfilter/nf_conntrack_proto_dccp.c          |  136 +------
 net/netfilter/nf_conntrack_proto_generic.c       |   87 ----
 net/netfilter/nf_conntrack_proto_gre.c           |  208 ++---------
 net/netfilter/nf_conntrack_proto_icmp.c          |   69 ---
 net/netfilter/nf_conntrack_proto_icmpv6.c        |   71 ----
 net/netfilter/nf_conntrack_proto_sctp.c          |  130 -------
 net/netfilter/nf_conntrack_proto_tcp.c           |  162 ---------
 net/netfilter/nf_conntrack_proto_udp.c           |   82 ----
 net/netfilter/nf_conntrack_standalone.c          |  397 +++++++++++++++++++++-
 net/netfilter/nf_flow_table_core.c               |    2 
 net/netfilter/nf_nat_core.c                      |   12 
 net/netfilter/nfnetlink_cttimeout.c              |   19 -
 net/netfilter/nft_ct.c                           |    4 
 net/netfilter/xt_CT.c                            |    2 
 net/openvswitch/conntrack.c                      |    2 
 30 files changed, 808 insertions(+), 1363 deletions(-)




[Index of Archives]     [Netfitler Users]     [LARTC]     [Bugtraq]     [Yosemite Forum]

  Powered by Linux