linux/net/netfilter/ipvs
Jiri Pirko 6aafeef03b netfilter: push reasm skb through instead of original frag skbs
Pushing original fragments through causes several problems. For example
for matching, frags may not be matched correctly. Take following
example:

<example>
On HOSTA do:
ip6tables -I INPUT -p icmpv6 -j DROP
ip6tables -I INPUT -p icmpv6 -m icmp6 --icmpv6-type 128 -j ACCEPT

and on HOSTB you do:
ping6 HOSTA -s2000    (MTU is 1500)

Incoming echo requests will be filtered out on HOSTA. This issue does
not occur with smaller packets than MTU (where fragmentation does not happen)
</example>

As was discussed previously, the only correct solution seems to be to use
reassembled skb instead of separete frags. Doing this has positive side
effects in reducing sk_buff by one pointer (nfct_reasm) and also the reams
dances in ipvs and conntrack can be removed.

Future plan is to remove net/ipv6/netfilter/nf_conntrack_reasm.c
entirely and use code in net/ipv6/reassembly.c instead.

Signed-off-by: Jiri Pirko <jiri@resnulli.us>
Acked-by: Julian Anastasov <ja@ssi.bg>
Signed-off-by: Marcelo Ricardo Leitner <mleitner@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2013-11-11 00:19:35 -05:00
..
ip_vs_app.c ipvs: do not disable bh for long time 2013-04-02 00:23:58 +02:00
ip_vs_conn.c ipvs: drop SCTP connections depending on state 2013-06-26 18:01:46 +09:00
ip_vs_core.c netfilter: push reasm skb through instead of original frag skbs 2013-11-11 00:19:35 -05:00
ip_vs_ctl.c ipvs: avoid rcu_barrier during netns cleanup 2013-10-15 10:36:01 +09:00
ip_vs_dh.c ipvs: provide iph to schedulers 2013-06-26 18:01:45 +09:00
ip_vs_est.c ipvs: stats should not depend on CPU 0 2013-09-18 14:40:20 -05:00
ip_vs_ftp.c ipvs: do not disable bh for long time 2013-04-02 00:23:58 +02:00
ip_vs_lblc.c ipvs: avoid rcu_barrier during netns cleanup 2013-10-15 10:36:01 +09:00
ip_vs_lblcr.c ipvs: avoid rcu_barrier during netns cleanup 2013-10-15 10:36:01 +09:00
ip_vs_lc.c ipvs: provide iph to schedulers 2013-06-26 18:01:45 +09:00
ip_vs_nfct.c ipvs: remove silly double assignment 2012-10-28 22:50:51 +01:00
ip_vs_nq.c ipvs: fix overflow on dest weight multiply 2013-09-18 14:38:53 -05:00
ip_vs_pe.c ipvs: convert services to rcu 2013-04-02 00:23:58 +02:00
ip_vs_pe_sip.c netfilter: push reasm skb through instead of original frag skbs 2013-11-11 00:19:35 -05:00
ip_vs_proto.c ipvs: Trivial changes, use compressed IPv6 address in output 2012-09-28 11:33:52 +09:00
ip_vs_proto_ah_esp.c ipvs: API change to avoid rescan of IPv6 exthdr 2012-09-28 11:34:33 +09:00
ip_vs_proto_sctp.c net: ipvs: sctp: do not recalc sctp csum when ports didn't change 2013-10-30 09:48:16 +09:00
ip_vs_proto_tcp.c ipvs: sloppy TCP and SCTP 2013-06-26 18:01:46 +09:00
ip_vs_proto_udp.c ipvs: convert services to rcu 2013-04-02 00:23:58 +02:00
ip_vs_rr.c ipvs: provide iph to schedulers 2013-06-26 18:01:45 +09:00
ip_vs_sched.c ipvs: convert services to rcu 2013-04-02 00:23:58 +02:00
ip_vs_sed.c ipvs: fix overflow on dest weight multiply 2013-09-18 14:38:53 -05:00
ip_vs_sh.c ipvs: improved SH fallback strategy 2013-10-15 10:54:50 +09:00
ip_vs_sync.c ipvs: add sync_persist_mode flag 2013-06-26 18:01:46 +09:00
ip_vs_wlc.c ipvs: fix overflow on dest weight multiply 2013-09-18 14:38:53 -05:00
ip_vs_wrr.c ipvs: provide iph to schedulers 2013-06-26 18:01:45 +09:00
ip_vs_xmit.c ip: generate unique IP identificator if local fragmentation is allowed 2013-09-19 14:11:15 -04:00
Kconfig ipvs: Complete IPv6 fragment handling for IPVS 2012-09-28 11:34:24 +09:00
Makefile IPVS: sip persistence engine 2010-10-04 22:45:24 +09:00