Thu, Feb 09, 2017 at 05:23:17PM CET, [email protected] wrote:
>From: Roi Dayan <[email protected]>
>
>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 protected]>
>Reviewed-by: Or Gerlitz <[email protected]>
>---
[...]
>@@ -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.