On Mon, 2016-11-28 at 13:01 -0500, David Miller wrote: > Hmmm, ip6_finish_output2() also does a proper assignment of skb->protocol, > therefore why was commit ae148b085876fa771d9ef2c05f85d4b4bf09ce0d > ("ip6_tunnel: Update skb->protocol to ETH_P_IPV6 in ip6_tnl_xmit()") > necessary at all? I was referring to Stephen bug report.
It appears that Eli changelog was not very precise, because his bug was because of XFRM being involved. xfrm_output() -> xfrm_output_gso() -> skb_gso_segment() So XFRM calls skb_gso_segment() before ip_output() or ip6_finish_output2() had a chance to change skb->protocol