LGTM,

Acked-by: Jarno Rajahalme <jrajaha...@nicira.com>

  Jarno

> On Dec 19, 2014, at 10:50 AM, Pravin B Shelar <pshe...@nicira.com> wrote:
> 
> Linux stack do not allow GSO for packet with multiple
> encapsulations.  Therefore there was check in MPLS action
> validation to detect such case, But is it not really required
> since we already have check in action execution.
> Removing this check also fixes bug in action copy to no skip
> multiple set actions.
> 
> Signed-off-by: Pravin B Shelar <pshe...@nicira.com>
> Reported-by: Srinivas Neginhal <snegi...@vmware.com>
> Bug #1367702
> ---
> datapath/flow_netlink.c |   13 ++-----------
> 1 files changed, 2 insertions(+), 11 deletions(-)
> 
> diff --git a/datapath/flow_netlink.c b/datapath/flow_netlink.c
> index 4aae305..c611e71 100644
> --- a/datapath/flow_netlink.c
> +++ b/datapath/flow_netlink.c
> @@ -1764,7 +1764,6 @@ static int __ovs_nla_copy_actions(const struct nlattr 
> *attr,
>                  __be16 eth_type, __be16 vlan_tci, bool log)
> {
>    const struct nlattr *a;
> -    bool out_tnl_port = false;
>    int rem, err;
> 
>    if (depth >= SAMPLE_ACTION_DEPTH)
> @@ -1807,7 +1806,6 @@ static int __ovs_nla_copy_actions(const struct nlattr 
> *attr,
>        case OVS_ACTION_ATTR_OUTPUT:
>            if (nla_get_u32(a) >= DP_MAX_PORTS)
>                return -EINVAL;
> -            out_tnl_port = false;
> 
>            break;
> 
> @@ -1843,14 +1841,9 @@ static int __ovs_nla_copy_actions(const struct nlattr 
> *attr,
>        case OVS_ACTION_ATTR_PUSH_MPLS: {
>            const struct ovs_action_push_mpls *mpls = nla_data(a);
> 
> -            /* Networking stack do not allow simultaneous Tunnel
> -             * and MPLS GSO.
> -             */
> -            if (out_tnl_port)
> -                return -EINVAL;
> -
>            if (!eth_p_mpls(mpls->mpls_ethertype))
>                return -EINVAL;
> +
>            /* Prohibit push MPLS other than to a white list
>             * for packets that have a known tag order.
>             */
> @@ -1884,11 +1877,9 @@ static int __ovs_nla_copy_actions(const struct nlattr 
> *attr,
> 
>        case OVS_ACTION_ATTR_SET:
>            err = validate_set(a, key, sfa,
> -                       &out_tnl_port, eth_type, log);
> +                       &skip_copy, eth_type, log);
>            if (err)
>                return err;
> -
> -            skip_copy = out_tnl_port;
>            break;
> 
>        case OVS_ACTION_ATTR_SAMPLE:
> -- 
> 1.7.1
> 
> _______________________________________________
> dev mailing list
> dev@openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to