On Mon, Mar 14, 2016 at 8:00 PM, Simon Horman <simon.hor...@netronome.com> wrote: > Currently output of MPLS packets on tunnel vports is not allowed by Open > vSwitch. This is because historically encapsulation was done in such a way > that the inner_protocol field of the skb needed to hold the inner protocol > for both MPLS and tunnel encapsulation in order for GSO segmentation to be > performed correctly. > > Since b2acd1dc3949 ("openvswitch: Use regular GRE net_device instead of > vport") Open vSwitch makes use of lwt to output to tunnel netdevs which > perform encapsulation. As no drivers expose support for MPLS offloads this > means that GSO packets are segmented in software by validate_xmit_skb(), > which is called from __dev_queue_xmit(), before tunnel encapsulation occurs. > This means that the inner protocol of MPLS is no longer needed by the time > encapsulation occurs and the contention on the inner_protocol field of the > skb no longer occurs. > > Thus it is now safe to output MPLS to tunnel vports. > > Signed-off-by: Simon Horman <simon.hor...@netronome.com>
Reviewed-by: Jesse Gross <je...@kernel.org>