Re: [PATCH net-next 2/3] net: mpls: Fixups for GSO
From: Jiri Benc <hidden>
Date: 2016-09-26 17:03:06
On Mon, 26 Sep 2016 17:56:22 +0200, Jiri Benc wrote:
After push_mpls, network_header points to the start of MPLS headers. Which I understand was the point of this patch. However, push_mpls also calls invalidate_flow_key. Meaning that, depending on actions, we may end up calling key_extract soon after. And key_extract sets the network header *after* the MPLS headers. That means that on output, for otherwise identical packet, network_header can point before or after MPLS headers based on what actions happened to be executed (recirculation, mainly). If I'm not misreading the code or missing something, this can't be right. mpls_gso_segment does not care, it resets the network_header anyway. What about drivers? What is the correct behavior?
Answering to myself: it breaks skb_mac_gso_segment. Seems we need to fix key_extract to set network_header to the beginning of MPLS headers. I'll prepare a patch. Jiri