From: Yu Watanabe Date: Thu, 12 Dec 2019 07:21:49 +0000 (+0900) Subject: sd-netlink: add attributes for FQ X-Git-Tag: v245-rc1~275^2~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=eb34f4b3d2a9e111b9f13429128af49ed16abbc6;p=thirdparty%2Fsystemd.git sd-netlink: add attributes for FQ --- diff --git a/src/libsystemd/sd-netlink/netlink-types.c b/src/libsystemd/sd-netlink/netlink-types.c index cadaa750afa..636e00de4c2 100644 --- a/src/libsystemd/sd-netlink/netlink-types.c +++ b/src/libsystemd/sd-netlink/netlink-types.c @@ -734,14 +734,18 @@ static const NLTypeSystem rtnl_nexthop_type_system = { .types = rtnl_nexthop_types, }; -static const NLType rtnl_tca_option_data_tbf_types[] = { - [TCA_TBF_PARMS] = { .size = sizeof(struct tc_tbf_qopt) }, - [TCA_TBF_RTAB] = { .size = TC_RTAB_SIZE }, - [TCA_TBF_PTAB] = { .size = TC_RTAB_SIZE }, - [TCA_TBF_RATE64] = { .type = NETLINK_TYPE_U64 }, - [TCA_TBF_PRATE64] = { .type = NETLINK_TYPE_U64 }, - [TCA_TBF_BURST] = { .type = NETLINK_TYPE_U32 }, - [TCA_TBF_PBURST] = { .type = NETLINK_TYPE_U32 }, +static const NLType rtnl_tca_option_data_fq_types[] = { + [TCA_FQ_PLIMIT] = { .type = NETLINK_TYPE_U32 }, + [TCA_FQ_FLOW_PLIMIT] = { .type = NETLINK_TYPE_U32 }, + [TCA_FQ_QUANTUM] = { .type = NETLINK_TYPE_U32 }, + [TCA_FQ_INITIAL_QUANTUM] = { .type = NETLINK_TYPE_U32 }, + [TCA_FQ_RATE_ENABLE] = { .type = NETLINK_TYPE_U32 }, + [TCA_FQ_FLOW_DEFAULT_RATE] = { .type = NETLINK_TYPE_U32 }, + [TCA_FQ_FLOW_MAX_RATE] = { .type = NETLINK_TYPE_U32 }, + [TCA_FQ_BUCKETS_LOG] = { .type = NETLINK_TYPE_U32 }, + [TCA_FQ_FLOW_REFILL_DELAY] = { .type = NETLINK_TYPE_U32 }, + [TCA_FQ_LOW_RATE_THRESHOLD] = { .type = NETLINK_TYPE_U32 }, + [TCA_FQ_CE_THRESHOLD] = { .type = NETLINK_TYPE_U32 }, }; static const NLType rtnl_tca_option_data_fq_codel_types[] = { @@ -756,18 +760,31 @@ static const NLType rtnl_tca_option_data_fq_codel_types[] = { [TCA_FQ_CODEL_MEMORY_LIMIT] = { .type = NETLINK_TYPE_U32 }, }; +static const NLType rtnl_tca_option_data_tbf_types[] = { + [TCA_TBF_PARMS] = { .size = sizeof(struct tc_tbf_qopt) }, + [TCA_TBF_RTAB] = { .size = TC_RTAB_SIZE }, + [TCA_TBF_PTAB] = { .size = TC_RTAB_SIZE }, + [TCA_TBF_RATE64] = { .type = NETLINK_TYPE_U64 }, + [TCA_TBF_PRATE64] = { .type = NETLINK_TYPE_U64 }, + [TCA_TBF_BURST] = { .type = NETLINK_TYPE_U32 }, + [TCA_TBF_PBURST] = { .type = NETLINK_TYPE_U32 }, +}; + static const char* const nl_union_tca_option_data_table[] = { - [NL_UNION_TCA_OPTION_DATA_TBF] = "tbf", + [NL_UNION_TCA_OPTION_DATA_FQ] = "fq", [NL_UNION_TCA_OPTION_DATA_FQ_CODEL] = "fq_codel", + [NL_UNION_TCA_OPTION_DATA_TBF] = "tbf", }; DEFINE_STRING_TABLE_LOOKUP(nl_union_tca_option_data, NLUnionTCAOptionData); static const NLTypeSystem rtnl_tca_option_data_type_systems[] = { - [NL_UNION_TCA_OPTION_DATA_TBF] = { .count = ELEMENTSOF(rtnl_tca_option_data_tbf_types), - .types = rtnl_tca_option_data_tbf_types }, + [NL_UNION_TCA_OPTION_DATA_FQ] = { .count = ELEMENTSOF(rtnl_tca_option_data_fq_types), + .types = rtnl_tca_option_data_fq_types }, [NL_UNION_TCA_OPTION_DATA_FQ_CODEL] = { .count = ELEMENTSOF(rtnl_tca_option_data_fq_codel_types), .types = rtnl_tca_option_data_fq_codel_types }, + [NL_UNION_TCA_OPTION_DATA_TBF] = { .count = ELEMENTSOF(rtnl_tca_option_data_tbf_types), + .types = rtnl_tca_option_data_tbf_types }, }; static const NLTypeSystemUnion rtnl_tca_option_data_type_system_union = { diff --git a/src/libsystemd/sd-netlink/netlink-types.h b/src/libsystemd/sd-netlink/netlink-types.h index 2702409147b..effc8f4f70e 100644 --- a/src/libsystemd/sd-netlink/netlink-types.h +++ b/src/libsystemd/sd-netlink/netlink-types.h @@ -92,8 +92,9 @@ const char *nl_union_link_info_data_to_string(NLUnionLinkInfoData p) _const_; NLUnionLinkInfoData nl_union_link_info_data_from_string(const char *p) _pure_; typedef enum NLUnionTCAOptionData { - NL_UNION_TCA_OPTION_DATA_TBF, + NL_UNION_TCA_OPTION_DATA_FQ, NL_UNION_TCA_OPTION_DATA_FQ_CODEL, + NL_UNION_TCA_OPTION_DATA_TBF, _NL_UNION_TCA_OPTION_DATA_MAX, _NL_UNION_TCA_OPTION_DATA_INVALID = -1, } NLUnionTCAOptionData;