This series kills the l4proto abstraction in the NAT layer.

Its not needed.  Removing this reduces size both in source and compiled
code without loss in functionality.

The patches remove the l4proto functions one after another,
until they are all gone.

Last patch then cleans up all places that use/define such a struct.

Before:
   text    data     bss     dec     hex filename
  22192    1840    4128   28160    6e00 nf_nat.ko
   8508     936       8    9452    24ec nf_nat_ipv4.ko
  10131     912      12   11055    2b2f nf_nat_ipv6.ko
   4743    1588       0    6331    18bb nf_nat_pptp.ko
   2173    1120       2    3295     cdf nf_nat_proto_gre.ko

After:
   text    data     bss     dec     hex filename
  19709    1856    4128   25693    645d nf_nat.ko
   7067     936       4    8007    1f47 nf_nat_ipv4.ko
   8438     912       8    9358    248e nf_nat_ipv6.ko
   4655    1588       0    6243    1863 nf_nat_pptp.ko

The nf_nat_proto_gre module is removed.  The series depends on patches:

"netfilter: nat: remove unnecessary 'else if' branch"
and
"netfilter: nat: limit port clash resolution attempts"

currently in the patchwork queue.

Florian Westphal (8):
      netfilter: remove NF_NAT_RANGE_PROTO_RANDOM support
      netfilter: nat: un-export nf_nat_l4proto_unique_tuple
      netfilter: nat: remove l4proto->unique_tuple
      netfilter: nat: fold in_range indirection into caller
      netfilter: nat: remove l4proto->in_range
      netfilter: nat: remove l4proto->nlattr_to_range
      netfilter: nat: remove l4proto->manip_pkt
      netfilter: nat: remove nf_nat_l4proto struct

 include/linux/netfilter/nf_conntrack_proto_gre.h |    2 
 include/net/netfilter/nf_nat_l3proto.h           |    7 
 include/net/netfilter/nf_nat_l4proto.h           |   78 ----
 net/ipv4/netfilter/Kconfig                       |    5 
 net/ipv4/netfilter/Makefile                      |    5 
 net/ipv4/netfilter/nf_nat_l3proto_ipv4.c         |   43 --
 net/ipv4/netfilter/nf_nat_pptp.c                 |    2 
 net/ipv6/netfilter/Makefile                      |    2 
 net/ipv6/netfilter/nf_nat_l3proto_ipv6.c         |   43 --
 net/netfilter/Kconfig                            |   15 
 net/netfilter/Makefile                           |    7 
 net/netfilter/nf_conntrack_netlink.c             |    1 
 net/netfilter/nf_nat_core.c                      |  327 +++++++++++---------
 net/netfilter/nf_nat_proto.c                     |  343 +++++++++++++++++++++
 net/ipv4/netfilter/nf_nat_proto_gre.c              |  150 ---------
 net/ipv4/netfilter/nf_nat_proto_icmp.c             |   83 -----
 net/ipv6/netfilter/nf_nat_proto_icmpv6.c           |   90 -----
 net/netfilter/nf_nat_proto_common.c                |  131 --------
 net/netfilter/nf_nat_proto_dccp.c                  |   79 ----
 net/netfilter/nf_nat_proto_sctp.c                  |   74 ----
 net/netfilter/nf_nat_proto_tcp.c                   |   82 -----
 net/netfilter/nf_nat_proto_udp.c                   |  124 -------
 net/netfilter/nf_nat_proto_unknown.c               |   54 ---
 23 files changed, 552 insertions(+), 1195 deletions(-)

Reply via email to