Subject: Re: [PATCH net-next 1/2] net/devlink: Add E-Switch encapsulation control

From: Jiri Pirko <[email-masked]>
Date: Thu, 9 Feb 2017 18:10:53 +0100

Thu, Feb 09, 2017 at 05:23:17PM CET, [email-masked] wrote:
>From: Roi Dayan <[email-masked]>
>
>This is an e-switch global knob to enable/disable HW support for applying
>encapsulation/decapsulation to VF traffic as part of SRIOV e-switch offloading.
>
>The actual encap/decap is carried out (along with the matching and other actions)
>per offloaded e-switch rules, e.g as done when offloading the TC tunnel key action.
>
>The supported mode are enable/disable.
>
>Signed-off-by: Roi Dayan <[email-masked]>
>Reviewed-by: Or Gerlitz <[email-masked]>
>---

[...]

>@@ -1470,11 +1480,23 @@ static int devlink_nl_cmd_eswitch_set_doit(struct sk_buff *skb,
> 	const struct devlink_ops *ops = devlink->ops;
> 	u16 mode;
> 	u8 inline_mode;
>+	bool encap;
> 	int err = 0;
> 
> 	if (!ops)
> 		return -EOPNOTSUPP;
> 
>+	if (info->attrs[DEVLINK_ATTR_ESWITCH_ENCAP]) {
>+		if (!ops->eswitch_encap_set)
>+			return -EOPNOTSUPP;
>+		if (!info->attrs[DEVLINK_ATTR_ESWITCH_MODE])
>+			return -EINVAL;
>+		encap = nla_get_u8(info->attrs[DEVLINK_ATTR_ESWITCH_ENCAP]);
>+		err = ops->eswitch_encap_set(devlink, encap);
>+		if (err)
>+			return err;
>+	}

Please maintain the same order as the attr enum and getters and put this
behind the inline_mode. Thanks.