diff --git a/home/nipa/nipa_out/959994/ynl/old-code/ethtool-user.c b/home/nipa/nipa_out/959994/ynl/new-code/ethtool-user.c index 1002f0631467..e5a5b883401f 100644 --- a/home/nipa/nipa_out/959994/ynl/old-code/ethtool-user.c +++ b/home/nipa/nipa_out/959994/ynl/new-code/ethtool-user.c @@ -169,6 +169,18 @@ const char *ethtool_tcp_data_split_str(enum ethtool_tcp_data_split value) return ethtool_tcp_data_split_strmap[value]; } +static const char * const ethtool_ts_hwtstamp_source_strmap[] = { + [0] = "netdev", + [1] = "phylib", +}; + +const char *ethtool_ts_hwtstamp_source_str(enum hwtstamp_source value) +{ + if (value < 0 || value >= (int)YNL_ARRAY_SIZE(ethtool_ts_hwtstamp_source_strmap)) + return NULL; + return ethtool_ts_hwtstamp_source_strmap[value]; +} + /* Policies */ const struct ynl_policy_attr ethtool_header_policy[ETHTOOL_A_HEADER_MAX + 1] = { [ETHTOOL_A_HEADER_UNSPEC] = { .name = "unspec", .type = YNL_PT_REJECT, }, @@ -675,6 +687,8 @@ const struct ynl_policy_attr ethtool_tsinfo_policy[ETHTOOL_A_TSINFO_MAX + 1] = { [ETHTOOL_A_TSINFO_PHC_INDEX] = { .name = "phc-index", .type = YNL_PT_U32, }, [ETHTOOL_A_TSINFO_STATS] = { .name = "stats", .type = YNL_PT_NEST, .nest = ðtool_ts_stat_nest, }, [ETHTOOL_A_TSINFO_HWTSTAMP_PROVIDER] = { .name = "hwtstamp-provider", .type = YNL_PT_NEST, .nest = ðtool_ts_hwtstamp_provider_nest, }, + [ETHTOOL_A_TSINFO_HWTSTAMP_SOURCE] = { .name = "hwtstamp-source", .type = YNL_PT_U32, }, + [ETHTOOL_A_TSINFO_HWTSTAMP_PHYINDEX] = { .name = "hwtstamp-phyindex", .type = YNL_PT_U32, }, }; const struct ynl_policy_nest ethtool_tsinfo_nest = { @@ -5076,6 +5090,16 @@ int ethtool_tsinfo_get_rsp_parse(const struct nlmsghdr *nlh, parg.data = &dst->hwtstamp_provider; if (ethtool_ts_hwtstamp_provider_parse(&parg, attr)) return YNL_PARSE_CB_ERROR; + } else if (type == ETHTOOL_A_TSINFO_HWTSTAMP_SOURCE) { + if (ynl_attr_validate(yarg, attr)) + return YNL_PARSE_CB_ERROR; + dst->_present.hwtstamp_source = 1; + dst->hwtstamp_source = ynl_attr_get_u32(attr); + } else if (type == ETHTOOL_A_TSINFO_HWTSTAMP_PHYINDEX) { + if (ynl_attr_validate(yarg, attr)) + return YNL_PARSE_CB_ERROR; + dst->_present.hwtstamp_phyindex = 1; + dst->hwtstamp_phyindex = ynl_attr_get_u32(attr); } } diff --git a/home/nipa/nipa_out/959994/ynl/old-code/ethtool-user.h b/home/nipa/nipa_out/959994/ynl/new-code/ethtool-user.h index f54e2ced7926..f6b1265323e2 100644 --- a/home/nipa/nipa_out/959994/ynl/old-code/ethtool-user.h +++ b/home/nipa/nipa_out/959994/ynl/new-code/ethtool-user.h @@ -28,6 +28,7 @@ const char * ethtool_c33_pse_ext_state_str(enum ethtool_c33_pse_ext_state value); const char *ethtool_phy_upstream_type_str(enum phy_upstream value); const char *ethtool_tcp_data_split_str(enum ethtool_tcp_data_split value); +const char *ethtool_ts_hwtstamp_source_str(enum hwtstamp_source value); /* Common nested types */ struct ethtool_header { @@ -4356,6 +4357,8 @@ struct ethtool_tsinfo_get_rsp { __u32 phc_index:1; __u32 stats:1; __u32 hwtstamp_provider:1; + __u32 hwtstamp_source:1; + __u32 hwtstamp_phyindex:1; } _present; struct ethtool_header header; @@ -4365,6 +4368,8 @@ struct ethtool_tsinfo_get_rsp { __u32 phc_index; struct ethtool_ts_stat stats; struct ethtool_ts_hwtstamp_provider hwtstamp_provider; + enum hwtstamp_source hwtstamp_source; + __u32 hwtstamp_phyindex; }; void ethtool_tsinfo_get_rsp_free(struct ethtool_tsinfo_get_rsp *rsp);