linux/net
Herbert Xu 35fc92a9de [NET]: Allow forwarding of ip_summed except CHECKSUM_COMPLETE
Right now Xen has a horrible hack that lets it forward packets with
partial checksums.  One of the reasons that CHECKSUM_PARTIAL and
CHECKSUM_COMPLETE were added is so that we can get rid of this hack
(where it creates two extra bits in the skbuff to essentially mirror
ip_summed without being destroyed by the forwarding code).

I had forgotten that I've already gone through all the deivce drivers
last time around to make sure that they're looking at ip_summed ==
CHECKSUM_PARTIAL rather than ip_summed != 0 on transmit.  In any case,
I've now done that again so it should definitely be safe.

Unfortunately nobody has yet added any code to update CHECKSUM_COMPLETE
values on forward so we I'm setting that to CHECKSUM_NONE.  This should
be safe to remove for bridging but I'd like to check that code path
first.

So here is the patch that lets us get rid of the hack by preserving
ip_summed (mostly) on forwarded packets.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
2007-04-25 22:28:16 -07:00
..
802 [SK_BUFF]: unions of just one member don't get anything done, kill them 2007-04-25 22:26:20 -07:00
8021q [VLAN] vlan_dev: Use skb_reset_network_header(). 2007-04-25 22:26:26 -07:00
appletalk [SK_BUFF]: unions of just one member don't get anything done, kill them 2007-04-25 22:26:20 -07:00
atm [SK_BUFF]: Convert skb->end to sk_buff_data_t 2007-04-25 22:26:29 -07:00
ax25 [SK_BUFF]: Introduce skb_transport_header(skb) 2007-04-25 22:25:31 -07:00
bluetooth [SK_BUFF]: Convert skb->tail to sk_buff_data_t 2007-04-25 22:26:28 -07:00
bridge [NET]: Allow forwarding of ip_summed except CHECKSUM_COMPLETE 2007-04-25 22:28:16 -07:00
core [NET] fib_rules: Add no-operation action 2007-04-25 22:28:14 -07:00
dccp [CCID3]: Use initial RTT sample from SYN exchange 2007-04-25 22:27:04 -07:00
decnet [NET] rules: Unified rules dumping 2007-04-25 22:27:17 -07:00
econet [SK_BUFF]: Convert skb->tail to sk_buff_data_t 2007-04-25 22:26:28 -07:00
ethernet [SK_BUFF]: Introduce skb_reset_mac_header(skb) 2007-04-25 22:24:32 -07:00
ieee80211 [SK_BUFF]: Convert skb->end to sk_buff_data_t 2007-04-25 22:26:29 -07:00
ipv4 [NET]: Allow forwarding of ip_summed except CHECKSUM_COMPLETE 2007-04-25 22:28:16 -07:00
ipv6 [NET]: Allow forwarding of ip_summed except CHECKSUM_COMPLETE 2007-04-25 22:28:16 -07:00
ipx [SK_BUFF]: Introduce skb_reset_transport_header(skb) 2007-04-25 22:25:15 -07:00
irda [SK_BUFF]: Convert skb->tail to sk_buff_data_t 2007-04-25 22:26:28 -07:00
iucv [SK_BUFF]: Introduce skb_reset_transport_header(skb) 2007-04-25 22:25:15 -07:00
key [SK_BUFF]: Introduce skb_reset_transport_header(skb) 2007-04-25 22:25:15 -07:00
lapb [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
llc [SK_BUFF]: unions of just one member don't get anything done, kill them 2007-04-25 22:26:20 -07:00
netfilter [NETFILTER] nfnetlink: netlink_run_queue() already checks for NLM_F_REQUEST 2007-04-25 22:27:46 -07:00
netlabel [NET]: Fix kfree(skb) 2007-02-28 09:42:14 -08:00
netlink [NETLINK]: introduce NLA_BINARY type 2007-04-25 22:28:05 -07:00
netrom [SK_BUFF]: More skb_put related conversions to skb_reset_transport_header 2007-04-25 22:25:59 -07:00
packet [SK_BUFF]: Convert skb->tail to sk_buff_data_t 2007-04-25 22:26:28 -07:00
rose [SK_BUFF]: More skb_put related conversions to skb_reset_transport_header 2007-04-25 22:25:59 -07:00
rxrpc [SK_BUFF]: Introduce udp_hdr(), remove skb->h.uh 2007-04-25 22:25:22 -07:00
sched [NET_SCHED]: qdisc: remove unnecessary memory barriers 2007-04-25 22:27:58 -07:00
sctp [SCTP]: Implement SCTP_MAX_BURST socket option. 2007-04-25 22:28:04 -07:00
sunrpc [NET]: convert network timestamps to ktime_t 2007-04-25 22:23:34 -07:00
tipc [NETLINK]: Introduce nlmsg_hdr() helper 2007-04-25 22:26:34 -07:00
unix [SK_BUFF]: Introduce skb_reset_transport_header(skb) 2007-04-25 22:25:15 -07:00
wanrouter [SK_BUFF]: Introduce skb_reset_mac_header(skb) 2007-04-25 22:24:32 -07:00
x25 [SK_BUFF]: More skb_put related conversions to skb_reset_transport_header 2007-04-25 22:25:59 -07:00
xfrm [NETLINK]: Directly return -EINTR from netlink_dump_start() 2007-04-25 22:27:33 -07:00
compat.c [NET]: Adding SO_TIMESTAMPNS / SCM_TIMESTAMPNS support 2007-04-25 22:24:21 -07:00
Kconfig [NET]: Replace CONFIG_NET_DEBUG with sysctl. 2007-04-25 22:24:05 -07:00
Makefile [S390]: Rewrite of the IUCV base code, part 2 2007-02-08 13:37:42 -08:00
nonet.c [PATCH] Make most file operations structs in fs/ const 2006-03-28 09:16:06 -08:00
socket.c [SOCKET]: Export __sock_recv_timestamp 2007-04-25 22:24:22 -07:00
sysctl_net.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
TUNABLE