Currently output of MPLS packets on tunnel vports is not allowed by the
datapath and, moreover, flows that match on MPLS packets and output to
tunnel vports are rejected by the datapath. The flows are rejected
regardless of if they also output to non-tunnel vports which is allowed for
MPLS packets and the following is logged by the kernel.

openvswitch: netlink: Flow actions may not be safe on all matching packets.

This patch addresses the above by allowing output of MPLS packets to tunnel
vports.

My recollection of adding MPLS support to the datapath was that a rather
conservative approach was taken in order to minimise the chance of fallout.
This patch proposes relaxing one restriction which was introduced at that
time.

My limited testing has not isolated any side effects of this change.

Signed-off-by: Simon Horman <simon.hor...@netronome.com>
---
 net/openvswitch/flow_netlink.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/net/openvswitch/flow_netlink.c b/net/openvswitch/flow_netlink.c
index 624e41c4267f..a5d3c0ae8ac8 100644
--- a/net/openvswitch/flow_netlink.c
+++ b/net/openvswitch/flow_netlink.c
@@ -1847,9 +1847,6 @@ static int validate_set(const struct nlattr *a,
                break;
 
        case OVS_KEY_ATTR_TUNNEL:
-               if (eth_p_mpls(eth_type))
-                       return -EINVAL;
-
                if (masked)
                        return -EINVAL; /* Masked tunnel set not supported. */
 
-- 
2.1.4

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to