diff --git a/home/nipa/nipa_out/957136/ynl/old-code/ethtool-user.c b/home/nipa/nipa_out/957136/ynl/new-code/ethtool-user.c index 72ccc16eae19..5db047d1891e 100644 --- a/home/nipa/nipa_out/957136/ynl/old-code/ethtool-user.c +++ b/home/nipa/nipa_out/957136/ynl/new-code/ethtool-user.c @@ -9,6 +9,7 @@ #include "ethtool-user.h" #include "ynl.h" #include +#include #include #include @@ -169,6 +170,19 @@ 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] = "unspec", + [1] = "netdev", + [2] = "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 +689,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 = { @@ -5039,6 +5055,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/957136/ynl/old-code/ethtool-user.h b/home/nipa/nipa_out/957136/ynl/new-code/ethtool-user.h index dae56d1efe3a..2475f4a497d0 100644 --- a/home/nipa/nipa_out/957136/ynl/old-code/ethtool-user.h +++ b/home/nipa/nipa_out/957136/ynl/new-code/ethtool-user.h @@ -11,6 +11,7 @@ #include #include #include +#include #include struct ynl_sock; @@ -28,6 +29,7 @@ const char * ethtool_c33_pse_ext_state_str(enum ethtool_c33_pse_ext_state value); const char *ethtool_phy_upstream_type_str(int 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 +4358,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 +4369,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);