On Sun, 13 Jul 2025 12:52:29 +0200 chia-yu.chang@nokia-bell-labs.com wrote:
+/* DUALPI2 */ +enum tc_dualpi2_drop_overload {
- TCA_DUALPI2_DROP_OVERLOAD_OVERFLOW = 0,
- TCA_DUALPI2_DROP_OVERLOAD_DROP = 1,
- __TCA_DUALPI2_DROP_OVERLOAD_MAX,
+}; +#define TCA_DUALPI2_DROP_OVERLOAD_MAX (__TCA_DUALPI2_DROP_OVERLOAD_MAX - 1)
+enum tc_dualpi2_drop_early {
- TCA_DUALPI2_DROP_EARLY_DROP_DEQUEUE = 0,
- TCA_DUALPI2_DROP_EARLY_DROP_ENQUEUE = 1,
- __TCA_DUALPI2_DROP_EARLY_MAX,
+}; +#define TCA_DUALPI2_DROP_EARLY_MAX (__TCA_DUALPI2_DROP_EARLY_MAX - 1)
+enum tc_dualpi2_ecn_mask {
- TCA_DUALPI2_ECN_MASK_L4S_ECT = 1,
- TCA_DUALPI2_ECN_MASK_CLA_ECT = 2,
- TCA_DUALPI2_ECN_MASK_ANY_ECT = 3,
- __TCA_DUALPI2_ECN_MASK_MAX,
+}; +#define TCA_DUALPI2_ECN_MASK_MAX (__TCA_DUALPI2_ECN_MASK_MAX - 1)
+enum tc_dualpi2_split_gso {
- TCA_DUALPI2_SPLIT_GSO_NO_SPLIT_GSO = 0,
- TCA_DUALPI2_SPLIT_GSO_SPLIT_GSO = 1,
- __TCA_DUALPI2_SPLIT_GSO_MAX,
+}; +#define TCA_DUALPI2_SPLIT_GSO_MAX (__TCA_DUALPI2_SPLIT_GSO_MAX - 1)
Looks like you fixed the type name but not the entry names :( Once again, TCA_ stands for TC Attribute. These are not attribute IDs but values. YNL will expect them to be prefixed with TC_DUALPI2, for example:
static const char * const tc_dualpi2_ecn_mask_strmap[] = { [TC_DUALPI2_ECN_MASK_L4S_ECT] = "l4s-ect", [TC_DUALPI2_ECN_MASK_CLA_ECT] = "cla-ect", [TC_DUALPI2_ECN_MASK_ANY_ECT] = "any-ect", };
Only the last enum you're adding in this file, which defines the attributes IDs should use the TCA_ prefix.