Skip to content

Commit

Permalink
netlink: specs: devlink: extend health reporter dump attributes by po…
Browse files Browse the repository at this point in the history
…rt index

Allow user to pass port index for health reporter dump request.

Re-generate the related code.

Signed-off-by: Jiri Pirko <jiri@nvidia.com>
Acked-by: Jakub Kicinski <kuba@kernel.org>
Link: https://lore.kernel.org/r/20230811155714.1736405-14-jiri@resnulli.us
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  • Loading branch information
Jiri Pirko authored and Jakub Kicinski committed Aug 14, 2023
1 parent b03f13c commit 0149bca
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 3 deletions.
2 changes: 1 addition & 1 deletion Documentation/netlink/specs/devlink.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -516,7 +516,7 @@ operations:
attributes: *health-reporter-id-attrs
dump:
request:
attributes: *dev-id-attrs
attributes: *port-id-attrs
reply: *health-reporter-get-reply

# TODO: fill in the operations in between
Expand Down
5 changes: 3 additions & 2 deletions net/devlink/netlink_gen.c
Original file line number Diff line number Diff line change
Expand Up @@ -129,9 +129,10 @@ static const struct nla_policy devlink_health_reporter_get_do_nl_policy[DEVLINK_
};

/* DEVLINK_CMD_HEALTH_REPORTER_GET - dump */
static const struct nla_policy devlink_health_reporter_get_dump_nl_policy[DEVLINK_ATTR_DEV_NAME + 1] = {
static const struct nla_policy devlink_health_reporter_get_dump_nl_policy[DEVLINK_ATTR_PORT_INDEX + 1] = {
[DEVLINK_ATTR_BUS_NAME] = { .type = NLA_NUL_STRING, },
[DEVLINK_ATTR_DEV_NAME] = { .type = NLA_NUL_STRING, },
[DEVLINK_ATTR_PORT_INDEX] = { .type = NLA_U32, },
};

/* DEVLINK_CMD_TRAP_GET - do */
Expand Down Expand Up @@ -373,7 +374,7 @@ const struct genl_split_ops devlink_nl_ops[32] = {
.cmd = DEVLINK_CMD_HEALTH_REPORTER_GET,
.dumpit = devlink_nl_health_reporter_get_dumpit,
.policy = devlink_health_reporter_get_dump_nl_policy,
.maxattr = DEVLINK_ATTR_DEV_NAME,
.maxattr = DEVLINK_ATTR_PORT_INDEX,
.flags = GENL_CMD_CAP_DUMP,
},
{
Expand Down
2 changes: 2 additions & 0 deletions tools/net/ynl/generated/devlink-user.c
Original file line number Diff line number Diff line change
Expand Up @@ -2079,6 +2079,8 @@ devlink_health_reporter_get_dump(struct ynl_sock *ys,
mnl_attr_put_strz(nlh, DEVLINK_ATTR_BUS_NAME, req->bus_name);
if (req->_present.dev_name_len)
mnl_attr_put_strz(nlh, DEVLINK_ATTR_DEV_NAME, req->dev_name);
if (req->_present.port_index)
mnl_attr_put_u32(nlh, DEVLINK_ATTR_PORT_INDEX, req->port_index);

err = ynl_exec_dump(ys, nlh, &yds);
if (err < 0)
Expand Down
9 changes: 9 additions & 0 deletions tools/net/ynl/generated/devlink-user.h
Original file line number Diff line number Diff line change
Expand Up @@ -1242,10 +1242,12 @@ struct devlink_health_reporter_get_req_dump {
struct {
__u32 bus_name_len;
__u32 dev_name_len;
__u32 port_index:1;
} _present;

char *bus_name;
char *dev_name;
__u32 port_index;
};

static inline struct devlink_health_reporter_get_req_dump *
Expand Down Expand Up @@ -1276,6 +1278,13 @@ devlink_health_reporter_get_req_dump_set_dev_name(struct devlink_health_reporter
memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
req->dev_name[req->_present.dev_name_len] = 0;
}
static inline void
devlink_health_reporter_get_req_dump_set_port_index(struct devlink_health_reporter_get_req_dump *req,
__u32 port_index)
{
req->_present.port_index = 1;
req->port_index = port_index;
}

struct devlink_health_reporter_get_list {
struct devlink_health_reporter_get_list *next;
Expand Down

0 comments on commit 0149bca

Please sign in to comment.