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(-)