Re: [PATCH v4 net-next 2/5] devlink: Implement devlink param multi attribute nested data values

From: Ratheesh Kannoth

Date: Tue Mar 17 2026 - 22:31:59 EST


On 2026-03-17 at 18:52:32, Jiri Pirko (jiri@xxxxxxxxxxx) wrote:
> >+ case DEVLINK_PARAM_TYPE_U32_ARRAY:
> >+ cnt = 0;
> >+ nla_for_each_attr_type(param_data,
> >+ DEVLINK_ATTR_PARAM_VALUE_DATA,
> >+ genlmsg_data(info->genlhdr),
> >+ genlmsg_len(info->genlhdr), rem) {
> >+ if (cnt >= __DEVLINK_PARAM_MAX_ARRAY_SIZE)
> >+ return -EMSGSIZE;
> >+
> >+ if (nla_len(param_data) != sizeof(u32))
> >+ return -EINVAL;
> >+
> >+ value->u32arr.val[cnt] = nla_get_u32(param_data);
>
> Now that we have UINT to be used everywhere for new netlink attributes,
> wouldn't it make sense to have rather UINT array?
We have U8, U16, U32, U64 param types in devlink. So declared as u32 array.
Let me know if you feel strongly about your opinion, will respin

enum devlink_param_type {
DEVLINK_PARAM_TYPE_U8 = DEVLINK_VAR_ATTR_TYPE_U8,
DEVLINK_PARAM_TYPE_U16 = DEVLINK_VAR_ATTR_TYPE_U16,
DEVLINK_PARAM_TYPE_U32 = DEVLINK_VAR_ATTR_TYPE_U32,
DEVLINK_PARAM_TYPE_U64 = DEVLINK_VAR_ATTR_TYPE_U64,
DEVLINK_PARAM_TYPE_STRING = DEVLINK_VAR_ATTR_TYPE_STRING,
DEVLINK_PARAM_TYPE_BOOL = DEVLINK_VAR_ATTR_TYPE_FLAG,
DEVLINK_PARAM_TYPE_U32_ARRAY = DEVLINK_VAR_ATTR_TYPE_U32_ARRAY,
};