Re: [PATCH net-next 1/2] net/devlink: Add E-Switch encapsulation control
flat view
From: Jiri Pirko <jiri@resnulli.us>
Date: 2017-02-09 17:18:24
Thu, Feb 09, 2017 at 05:23:17PM CET, ogerlitz@mellanox.com wrote:
From: Roi Dayan <redacted> 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 <redacted> Reviewed-by: Or Gerlitz <redacted> ---
[...]
quoted hunk ↗ jump to hunk
@@ -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.