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