net: tun: convert to hw_features
authorMichał Mirosław <mirq-linux@rere.qmqm.pl>
Tue, 19 Apr 2011 06:13:10 +0000 (06:13 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 20 Apr 2011 08:30:45 +0000 (01:30 -0700)
commit882553752196605bf27057e7adb298ecae8058c4
treeb8c0cf62ff19b1982ecb42a8c5e877266453f405
parent47103041e91794acdbc6165da0ae288d844c820b
net: tun: convert to hw_features

This changes offload setting behaviour to what I think is correct:
 - offloads set via ethtool mean what admin wants to use (by default
   he wants 'em all)
 - offloads set via ioctl() mean what userspace is expecting to get
   (this limits which admin wishes are granted)
 - TUN_NOCHECKSUM is ignored, as it might cause broken packets when
   forwarded (ip_summed == CHECKSUM_UNNECESSARY means that checksum
   was verified, not that it can be ignored)

If TUN_NOCHECKSUM is implemented, it should set skb->csum_* and
skb->ip_summed (= CHECKSUM_PARTIAL) for known protocols and let others
be verified by kernel when necessary.

TUN_NOCHECKSUM handling was introduced by commit
f43798c27684ab925adde7d8acc34c78c6e50df8:

    tun: Allow GSO using virtio_net_hdr

Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/tun.c