diff --git a/tmp/ynl_build-tmp.DsipXh/old-code/devlink-user.c b/tmp/ynl_build-tmp.DsipXh/new-code/devlink-user.c index 3daef6fe162f..8a3ad309f7e5 100644 --- a/tmp/ynl_build-tmp.DsipXh/old-code/devlink-user.c +++ b/tmp/ynl_build-tmp.DsipXh/new-code/devlink-user.c @@ -568,6 +568,16 @@ const struct ynl_policy_nest devlink_dl_rate_tc_bws_nest = { .table = devlink_dl_rate_tc_bws_policy, }; +const struct ynl_policy_attr devlink_dl_parent_dev_policy[DEVLINK_ATTR_MAX + 1] = { + [DEVLINK_ATTR_BUS_NAME] = { .name = "bus-name", .type = YNL_PT_NUL_STR, }, + [DEVLINK_ATTR_DEV_NAME] = { .name = "dev-name", .type = YNL_PT_NUL_STR, }, +}; + +const struct ynl_policy_nest devlink_dl_parent_dev_nest = { + .max_attr = DEVLINK_ATTR_MAX, + .table = devlink_dl_parent_dev_policy, +}; + const struct ynl_policy_attr devlink_dl_dpipe_table_matches_policy[DEVLINK_ATTR_MAX + 1] = { [DEVLINK_ATTR_DPIPE_MATCH] = { .name = "dpipe-match", .type = YNL_PT_NEST, .nest = &devlink_dl_dpipe_match_nest, }, }; @@ -913,6 +923,7 @@ const struct ynl_policy_attr devlink_policy[DEVLINK_ATTR_MAX + 1] = { [DEVLINK_ATTR_RATE_TC_BWS] = { .name = "rate-tc-bws", .type = YNL_PT_NEST, .nest = &devlink_dl_rate_tc_bws_nest, }, [DEVLINK_ATTR_HEALTH_REPORTER_BURST_PERIOD] = { .name = "health-reporter-burst-period", .type = YNL_PT_U64, }, [DEVLINK_ATTR_PARAM_RESET_DEFAULT] = { .name = "param-reset-default", .type = YNL_PT_FLAG, }, + [DEVLINK_ATTR_PARENT_DEV] = { .name = "parent-dev", .type = YNL_PT_NEST, .nest = &devlink_dl_parent_dev_nest, }, }; const struct ynl_policy_nest devlink_nest = { @@ -1535,6 +1546,27 @@ int devlink_dl_rate_tc_bws_put(struct nlmsghdr *nlh, unsigned int attr_type, return 0; } +void devlink_dl_parent_dev_free(struct devlink_dl_parent_dev *obj) +{ + free(obj->bus_name); + free(obj->dev_name); +} + +int devlink_dl_parent_dev_put(struct nlmsghdr *nlh, unsigned int attr_type, + struct devlink_dl_parent_dev *obj) +{ + struct nlattr *nest; + + nest = ynl_attr_nest_start(nlh, attr_type); + if (obj->_len.bus_name) + ynl_attr_put_str(nlh, DEVLINK_ATTR_BUS_NAME, obj->bus_name); + if (obj->_len.dev_name) + ynl_attr_put_str(nlh, DEVLINK_ATTR_DEV_NAME, obj->dev_name); + ynl_attr_nest_end(nlh, nest); + + return 0; +} + void devlink_dl_dpipe_table_matches_free(struct devlink_dl_dpipe_table_matches *obj) { @@ -6769,6 +6801,7 @@ void devlink_rate_set_req_free(struct devlink_rate_set_req *req) for (i = 0; i < req->_count.rate_tc_bws; i++) devlink_dl_rate_tc_bws_free(&req->rate_tc_bws[i]); free(req->rate_tc_bws); + devlink_dl_parent_dev_free(&req->parent_dev); free(req); } @@ -6801,6 +6834,8 @@ int devlink_rate_set(struct ynl_sock *ys, struct devlink_rate_set_req *req) ynl_attr_put_str(nlh, DEVLINK_ATTR_RATE_PARENT_NODE_NAME, req->rate_parent_node_name); for (i = 0; i < req->_count.rate_tc_bws; i++) devlink_dl_rate_tc_bws_put(nlh, DEVLINK_ATTR_RATE_TC_BWS, &req->rate_tc_bws[i]); + if (req->_present.parent_dev) + devlink_dl_parent_dev_put(nlh, DEVLINK_ATTR_PARENT_DEV, &req->parent_dev); err = ynl_exec(ys, nlh, &yrs); if (err < 0) @@ -6822,6 +6857,7 @@ void devlink_rate_new_req_free(struct devlink_rate_new_req *req) for (i = 0; i < req->_count.rate_tc_bws; i++) devlink_dl_rate_tc_bws_free(&req->rate_tc_bws[i]); free(req->rate_tc_bws); + devlink_dl_parent_dev_free(&req->parent_dev); free(req); } @@ -6854,6 +6890,8 @@ int devlink_rate_new(struct ynl_sock *ys, struct devlink_rate_new_req *req) ynl_attr_put_str(nlh, DEVLINK_ATTR_RATE_PARENT_NODE_NAME, req->rate_parent_node_name); for (i = 0; i < req->_count.rate_tc_bws; i++) devlink_dl_rate_tc_bws_put(nlh, DEVLINK_ATTR_RATE_TC_BWS, &req->rate_tc_bws[i]); + if (req->_present.parent_dev) + devlink_dl_parent_dev_put(nlh, DEVLINK_ATTR_PARENT_DEV, &req->parent_dev); err = ynl_exec(ys, nlh, &yrs); if (err < 0) diff --git a/tmp/ynl_build-tmp.DsipXh/old-code/devlink-user.h b/tmp/ynl_build-tmp.DsipXh/new-code/devlink-user.h index f4c76287c3ee..3f14a7291fc9 100644 --- a/tmp/ynl_build-tmp.DsipXh/old-code/devlink-user.h +++ b/tmp/ynl_build-tmp.DsipXh/new-code/devlink-user.h @@ -343,6 +343,16 @@ devlink_dl_rate_tc_bws_set_bw(struct devlink_dl_rate_tc_bws *obj, __u32 bw) obj->bw = bw; } +struct devlink_dl_parent_dev { + struct { + __u32 bus_name; + __u32 dev_name; + } _len; + + char *bus_name; + char *dev_name; +}; + struct devlink_dl_dpipe_table_matches { struct { __u32 dpipe_match; @@ -5022,6 +5032,7 @@ struct devlink_rate_set_req { __u32 rate_tx_max:1; __u32 rate_tx_priority:1; __u32 rate_tx_weight:1; + __u32 parent_dev:1; } _present; struct { __u32 bus_name; @@ -5042,6 +5053,7 @@ struct devlink_rate_set_req { __u32 rate_tx_weight; char *rate_parent_node_name; struct devlink_dl_rate_tc_bws *rate_tc_bws; + struct devlink_dl_parent_dev parent_dev; }; static inline struct devlink_rate_set_req *devlink_rate_set_req_alloc(void) @@ -5131,6 +5143,28 @@ __devlink_rate_set_req_set_rate_tc_bws(struct devlink_rate_set_req *req, req->rate_tc_bws = rate_tc_bws; req->_count.rate_tc_bws = n_rate_tc_bws; } +static inline void +devlink_rate_set_req_set_parent_dev_bus_name(struct devlink_rate_set_req *req, + const char *bus_name) +{ + req->_present.parent_dev = 1; + free(req->parent_dev.bus_name); + req->parent_dev._len.bus_name = strlen(bus_name); + req->parent_dev.bus_name = malloc(req->parent_dev._len.bus_name + 1); + memcpy(req->parent_dev.bus_name, bus_name, req->parent_dev._len.bus_name); + req->parent_dev.bus_name[req->parent_dev._len.bus_name] = 0; +} +static inline void +devlink_rate_set_req_set_parent_dev_dev_name(struct devlink_rate_set_req *req, + const char *dev_name) +{ + req->_present.parent_dev = 1; + free(req->parent_dev.dev_name); + req->parent_dev._len.dev_name = strlen(dev_name); + req->parent_dev.dev_name = malloc(req->parent_dev._len.dev_name + 1); + memcpy(req->parent_dev.dev_name, dev_name, req->parent_dev._len.dev_name); + req->parent_dev.dev_name[req->parent_dev._len.dev_name] = 0; +} /* * Set rate instances. @@ -5145,6 +5179,7 @@ struct devlink_rate_new_req { __u32 rate_tx_max:1; __u32 rate_tx_priority:1; __u32 rate_tx_weight:1; + __u32 parent_dev:1; } _present; struct { __u32 bus_name; @@ -5165,6 +5200,7 @@ struct devlink_rate_new_req { __u32 rate_tx_weight; char *rate_parent_node_name; struct devlink_dl_rate_tc_bws *rate_tc_bws; + struct devlink_dl_parent_dev parent_dev; }; static inline struct devlink_rate_new_req *devlink_rate_new_req_alloc(void) @@ -5254,6 +5290,28 @@ __devlink_rate_new_req_set_rate_tc_bws(struct devlink_rate_new_req *req, req->rate_tc_bws = rate_tc_bws; req->_count.rate_tc_bws = n_rate_tc_bws; } +static inline void +devlink_rate_new_req_set_parent_dev_bus_name(struct devlink_rate_new_req *req, + const char *bus_name) +{ + req->_present.parent_dev = 1; + free(req->parent_dev.bus_name); + req->parent_dev._len.bus_name = strlen(bus_name); + req->parent_dev.bus_name = malloc(req->parent_dev._len.bus_name + 1); + memcpy(req->parent_dev.bus_name, bus_name, req->parent_dev._len.bus_name); + req->parent_dev.bus_name[req->parent_dev._len.bus_name] = 0; +} +static inline void +devlink_rate_new_req_set_parent_dev_dev_name(struct devlink_rate_new_req *req, + const char *dev_name) +{ + req->_present.parent_dev = 1; + free(req->parent_dev.dev_name); + req->parent_dev._len.dev_name = strlen(dev_name); + req->parent_dev.dev_name = malloc(req->parent_dev._len.dev_name + 1); + memcpy(req->parent_dev.dev_name, dev_name, req->parent_dev._len.dev_name); + req->parent_dev.dev_name[req->parent_dev._len.dev_name] = 0; +} /* * Create rate instances.