This appears to be a mistake, but I didn't follow the GSO stuff very closely, so there could be some non-obvious reason.
[XFRM]: Fix protocol field value for outgoing IPv6 GSO packets Signed-off-by: Patrick McHardy <[EMAIL PROTECTED]> --- commit 8035f60a607630459e4440dbbc5a20f3cfbf97ac tree f1a7061cfd1f923b3991ee8f449cffce86870a3e parent 440848a8e33fc1927bab45bd73f6c8e042ea7abd author Patrick McHardy <[EMAIL PROTECTED]> Tue, 25 Jul 2006 02:02:00 +0200 committer Patrick McHardy <[EMAIL PROTECTED]> Tue, 25 Jul 2006 02:02:00 +0200 net/ipv6/xfrm6_output.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/net/ipv6/xfrm6_output.c b/net/ipv6/xfrm6_output.c index 0eea60e..c8c8b44 100644 --- a/net/ipv6/xfrm6_output.c +++ b/net/ipv6/xfrm6_output.c @@ -125,7 +125,7 @@ static int xfrm6_output_finish(struct sk if (!skb_is_gso(skb)) return xfrm6_output_finish2(skb); - skb->protocol = htons(ETH_P_IP); + skb->protocol = htons(ETH_P_IPV6); segs = skb_gso_segment(skb, 0); kfree_skb(skb); if (unlikely(IS_ERR(segs)))