On Thu, 29 Aug 2024 17:17:04 +0200 Paolo Abeni wrote:
> +static int iavf_verify_handle(struct net_shaper_binding *binding,
> +                           const struct net_shaper_handle *handle,
> +                           struct netlink_ext_ack *extack)
> +{
> +     struct iavf_adapter *adapter = netdev_priv(binding->netdev);
> +     enum net_shaper_scope scope = handle->scope;
> +     int qid = handle->id;
> +
> +     if (scope != NET_SHAPER_SCOPE_QUEUE) {

should be checked by the core. add "mask of supported scopes" to caps

> +             NL_SET_ERR_MSG_FMT(extack, "Invalid shaper handle, unsupported 
> scope %d",
> +                                scope);
> +             return -EOPNOTSUPP;
> +     }
> +
> +     if (qid >= adapter->num_active_queues) {

should be checked by the core..
we prolly want to trim the queue shapers on channel reconfig, 
then, too? :(

> +             NL_SET_ERR_MSG_FMT(extack, "Invalid shaper handle, queued id %d 
> max %d",
> +                                qid, adapter->num_active_queues);
> +             return -EINVAL;
> +     }
> +     return 0;
> +}

> +static int iavf_shaper_group(struct net_shaper_binding *binding,
> +                          int leaves_count,
> +                          const struct net_shaper_handle *leaves_handles,
> +                          const struct net_shaper_info *leaves,
> +                          const struct net_shaper_handle *root_handle,
> +                          const struct net_shaper_info *root,
> +                          struct netlink_ext_ack *extack)
> +{
> +     return -EOPNOTSUPP;

Core should check if op is defined.

Reply via email to