In file included from tc-user.c:8: tc-user.h:45:43: warning: ‘enum tc_tc_dualpi2_drop_overload_enum’ declared inside parameter list will not be visible outside of this definition or declaration 45 | tc_tc_dualpi2_drop_overload_enum_str(enum tc_tc_dualpi2_drop_overload_enum value); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ tc-user.h:47:40: warning: ‘enum tc_tc_dualpi2_drop_early_enum’ declared inside parameter list will not be visible outside of this definition or declaration 47 | tc_tc_dualpi2_drop_early_enum_str(enum tc_tc_dualpi2_drop_early_enum value); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ tc-user.h:49:38: warning: ‘enum tc_tc_dualpi2_ecn_mask_enum’ declared inside parameter list will not be visible outside of this definition or declaration 49 | tc_tc_dualpi2_ecn_mask_enum_str(enum tc_tc_dualpi2_ecn_mask_enum value); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ tc-user.h:51:39: warning: ‘enum tc_tc_dualpi2_split_gso_enum’ declared inside parameter list will not be visible outside of this definition or declaration 51 | tc_tc_dualpi2_split_gso_enum_str(enum tc_tc_dualpi2_split_gso_enum value); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ tc-user.h:178:47: error: field ‘drop_overload’ has incomplete type 178 | enum tc_tc_dualpi2_drop_overload_enum drop_overload; | ^~~~~~~~~~~~~ tc-user.h:179:44: error: field ‘drop_early’ has incomplete type 179 | enum tc_tc_dualpi2_drop_early_enum drop_early; | ^~~~~~~~~~ tc-user.h:181:42: error: field ‘ecn_mask’ has incomplete type 181 | enum tc_tc_dualpi2_ecn_mask_enum ecn_mask; | ^~~~~~~~ tc-user.h:182:43: error: field ‘split_gso’ has incomplete type 182 | enum tc_tc_dualpi2_split_gso_enum split_gso; | ^~~~~~~~~ tc-user.h:2721:89: error: parameter 2 (‘drop_overload’) has incomplete type 2721 | enum tc_tc_dualpi2_drop_overload_enum drop_overload) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ tc-user.h:2730:83: error: parameter 2 (‘drop_early’) has incomplete type 2730 | enum tc_tc_dualpi2_drop_early_enum drop_early) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~ tc-user.h:2748:79: error: parameter 2 (‘ecn_mask’) has incomplete type 2748 | enum tc_tc_dualpi2_ecn_mask_enum ecn_mask) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~ tc-user.h:2757:81: error: parameter 2 (‘split_gso’) has incomplete type 2757 | enum tc_tc_dualpi2_split_gso_enum split_gso) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~ tc-user.h:7126:90: error: parameter 2 (‘drop_overload’) has incomplete type 7126 | enum tc_tc_dualpi2_drop_overload_enum drop_overload) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ tc-user.h:7135:84: error: parameter 2 (‘drop_early’) has incomplete type 7135 | enum tc_tc_dualpi2_drop_early_enum drop_early) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~ tc-user.h:7153:80: error: parameter 2 (‘ecn_mask’) has incomplete type 7153 | enum tc_tc_dualpi2_ecn_mask_enum ecn_mask) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~ tc-user.h:7162:82: error: parameter 2 (‘split_gso’) has incomplete type 7162 | enum tc_tc_dualpi2_split_gso_enum split_gso) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~ tc-user.h:11507:91: error: parameter 2 (‘drop_overload’) has incomplete type 11507 | enum tc_tc_dualpi2_drop_overload_enum drop_overload) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ tc-user.h:11516:85: error: parameter 2 (‘drop_early’) has incomplete type 11516 | enum tc_tc_dualpi2_drop_early_enum drop_early) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~ tc-user.h:11534:81: error: parameter 2 (‘ecn_mask’) has incomplete type 11534 | enum tc_tc_dualpi2_ecn_mask_enum ecn_mask) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~ tc-user.h:11543:83: error: parameter 2 (‘split_gso’) has incomplete type 11543 | enum tc_tc_dualpi2_split_gso_enum split_gso) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~ tc-user.h:15985:89: error: parameter 2 (‘drop_overload’) has incomplete type 15985 | enum tc_tc_dualpi2_drop_overload_enum drop_overload) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ tc-user.h:15994:83: error: parameter 2 (‘drop_early’) has incomplete type 15994 | enum tc_tc_dualpi2_drop_early_enum drop_early) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~ tc-user.h:16012:79: error: parameter 2 (‘ecn_mask’) has incomplete type 16012 | enum tc_tc_dualpi2_ecn_mask_enum ecn_mask) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~ tc-user.h:16021:81: error: parameter 2 (‘split_gso’) has incomplete type 16021 | enum tc_tc_dualpi2_split_gso_enum split_gso) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~ tc-user.c:89:76: error: parameter 1 (‘value’) has incomplete type 89 | tc_tc_dualpi2_drop_overload_enum_str(enum tc_tc_dualpi2_drop_overload_enum value) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ tc-user.c:102:70: error: parameter 1 (‘value’) has incomplete type 102 | tc_tc_dualpi2_drop_early_enum_str(enum tc_tc_dualpi2_drop_early_enum value) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ tc-user.c:116:66: error: parameter 1 (‘value’) has incomplete type 116 | tc_tc_dualpi2_ecn_mask_enum_str(enum tc_tc_dualpi2_ecn_mask_enum value) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ tc-user.c:129:68: error: parameter 1 (‘value’) has incomplete type 129 | tc_tc_dualpi2_split_gso_enum_str(enum tc_tc_dualpi2_split_gso_enum value) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ tc-user.c:217:57: error: ‘TC_A_TC_DUALPI2_ATTRS_MAX’ undeclared here (not in a function); did you mean ‘TCA_TAPRIO_ATTR_MAX’? 217 | const struct ynl_policy_attr tc_tc_dualpi2_attrs_policy[TC_A_TC_DUALPI2_ATTRS_MAX + 1] = { | ^~~~~~~~~~~~~~~~~~~~~~~~~ | TCA_TAPRIO_ATTR_MAX tc-user.c:218:10: error: ‘TC_A_TC_DUALPI2_ATTRS_LIMIT’ undeclared here (not in a function); did you mean ‘TCA_DUALPI2_MEMORY_LIMIT’? 218 | [TC_A_TC_DUALPI2_ATTRS_LIMIT] = { .name = "limit", .type = YNL_PT_U32, }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ | TCA_DUALPI2_MEMORY_LIMIT tc-user.c:219:10: error: ‘TC_A_TC_DUALPI2_ATTRS_MEMORY_LIMIT’ undeclared here (not in a function); did you mean ‘TCA_DUALPI2_MEMORY_LIMIT’? 219 | [TC_A_TC_DUALPI2_ATTRS_MEMORY_LIMIT] = { .name = "memory-limit", .type = YNL_PT_U32, }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | TCA_DUALPI2_MEMORY_LIMIT tc-user.c:220:10: error: ‘TC_A_TC_DUALPI2_ATTRS_TARGET’ undeclared here (not in a function); did you mean ‘TCA_DUALPI2_TARGET’? 220 | [TC_A_TC_DUALPI2_ATTRS_TARGET] = { .name = "target", .type = YNL_PT_U32, }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ | TCA_DUALPI2_TARGET tc-user.c:221:10: error: ‘TC_A_TC_DUALPI2_ATTRS_TUPDATE’ undeclared here (not in a function); did you mean ‘TCA_DUALPI2_TUPDATE’? 221 | [TC_A_TC_DUALPI2_ATTRS_TUPDATE] = { .name = "tupdate", .type = YNL_PT_U32, }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | TCA_DUALPI2_TUPDATE tc-user.c:222:10: error: ‘TC_A_TC_DUALPI2_ATTRS_ALPHA’ undeclared here (not in a function) 222 | [TC_A_TC_DUALPI2_ATTRS_ALPHA] = { .name = "alpha", .type = YNL_PT_U32, }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ tc-user.c:223:10: error: ‘TC_A_TC_DUALPI2_ATTRS_BETA’ undeclared here (not in a function) 223 | [TC_A_TC_DUALPI2_ATTRS_BETA] = { .name = "beta", .type = YNL_PT_U32, }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~ tc-user.c:224:10: error: ‘TC_A_TC_DUALPI2_ATTRS_STEP_THRESH’ undeclared here (not in a function); did you mean ‘TCA_DUALPI2_STEP_THRESH’? 224 | [TC_A_TC_DUALPI2_ATTRS_STEP_THRESH] = { .name = "step-thresh", .type = YNL_PT_U32, }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | TCA_DUALPI2_STEP_THRESH tc-user.c:225:10: error: ‘TC_A_TC_DUALPI2_ATTRS_STEP_PACKETS’ undeclared here (not in a function); did you mean ‘TCA_DUALPI2_STEP_PACKETS’? 225 | [TC_A_TC_DUALPI2_ATTRS_STEP_PACKETS] = { .name = "step-packets", .type = YNL_PT_FLAG, }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | TCA_DUALPI2_STEP_PACKETS tc-user.c:226:10: error: ‘TC_A_TC_DUALPI2_ATTRS_MIN_QLEN_STEP’ undeclared here (not in a function); did you mean ‘TCA_DUALPI2_MIN_QLEN_STEP’? 226 | [TC_A_TC_DUALPI2_ATTRS_MIN_QLEN_STEP] = { .name = "min-qlen-step", .type = YNL_PT_U32, }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | TCA_DUALPI2_MIN_QLEN_STEP tc-user.c:227:10: error: ‘TC_A_TC_DUALPI2_ATTRS_COUPLING’ undeclared here (not in a function); did you mean ‘TCA_DUALPI2_COUPLING’? 227 | [TC_A_TC_DUALPI2_ATTRS_COUPLING] = { .name = "coupling", .type = YNL_PT_U8, }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | TCA_DUALPI2_COUPLING tc-user.c:228:10: error: ‘TC_A_TC_DUALPI2_ATTRS_DROP_OVERLOAD’ undeclared here (not in a function); did you mean ‘TCA_DUALPI2_DROP_OVERLOAD’? 228 | [TC_A_TC_DUALPI2_ATTRS_DROP_OVERLOAD] = { .name = "drop-overload", .type = YNL_PT_U8, }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | TCA_DUALPI2_DROP_OVERLOAD tc-user.c:229:10: error: ‘TC_A_TC_DUALPI2_ATTRS_DROP_EARLY’ undeclared here (not in a function); did you mean ‘TCA_DUALPI2_DROP_EARLY’? 229 | [TC_A_TC_DUALPI2_ATTRS_DROP_EARLY] = { .name = "drop-early", .type = YNL_PT_U8, }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | TCA_DUALPI2_DROP_EARLY tc-user.c:230:10: error: ‘TC_A_TC_DUALPI2_ATTRS_C_PROTECTION’ undeclared here (not in a function); did you mean ‘TCA_DUALPI2_C_PROTECTION’? 230 | [TC_A_TC_DUALPI2_ATTRS_C_PROTECTION] = { .name = "c-protection", .type = YNL_PT_U8, }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | TCA_DUALPI2_C_PROTECTION tc-user.c:231:10: error: ‘TC_A_TC_DUALPI2_ATTRS_ECN_MASK’ undeclared here (not in a function); did you mean ‘TCA_DUALPI2_ECN_MASK’? 231 | [TC_A_TC_DUALPI2_ATTRS_ECN_MASK] = { .name = "ecn-mask", .type = YNL_PT_U8, }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | TCA_DUALPI2_ECN_MASK tc-user.c:232:10: error: ‘TC_A_TC_DUALPI2_ATTRS_SPLIT_GSO’ undeclared here (not in a function); did you mean ‘TCA_DUALPI2_SPLIT_GSO’? 232 | [TC_A_TC_DUALPI2_ATTRS_SPLIT_GSO] = { .name = "split-gso", .type = YNL_PT_U8, }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | TCA_DUALPI2_SPLIT_GSO make[1]: *** [Makefile:51: tc-user.o] Error 1 make[1]: *** Waiting for unfinished jobs.... make: *** [Makefile:25: generated] Error 2 In file included from tc-user.c:8: tc-user.h:45:43: warning: ‘enum tc_tc_dualpi2_drop_overload_enum’ declared inside parameter list will not be visible outside of this definition or declaration 45 | tc_tc_dualpi2_drop_overload_enum_str(enum tc_tc_dualpi2_drop_overload_enum value); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ tc-user.h:47:40: warning: ‘enum tc_tc_dualpi2_drop_early_enum’ declared inside parameter list will not be visible outside of this definition or declaration 47 | tc_tc_dualpi2_drop_early_enum_str(enum tc_tc_dualpi2_drop_early_enum value); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ tc-user.h:49:38: warning: ‘enum tc_tc_dualpi2_ecn_mask_enum’ declared inside parameter list will not be visible outside of this definition or declaration 49 | tc_tc_dualpi2_ecn_mask_enum_str(enum tc_tc_dualpi2_ecn_mask_enum value); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ tc-user.h:51:39: warning: ‘enum tc_tc_dualpi2_split_gso_enum’ declared inside parameter list will not be visible outside of this definition or declaration 51 | tc_tc_dualpi2_split_gso_enum_str(enum tc_tc_dualpi2_split_gso_enum value); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ tc-user.h:178:47: error: field ‘drop_overload’ has incomplete type 178 | enum tc_tc_dualpi2_drop_overload_enum drop_overload; | ^~~~~~~~~~~~~ tc-user.h:179:44: error: field ‘drop_early’ has incomplete type 179 | enum tc_tc_dualpi2_drop_early_enum drop_early; | ^~~~~~~~~~ tc-user.h:181:42: error: field ‘ecn_mask’ has incomplete type 181 | enum tc_tc_dualpi2_ecn_mask_enum ecn_mask; | ^~~~~~~~ tc-user.h:182:43: error: field ‘split_gso’ has incomplete type 182 | enum tc_tc_dualpi2_split_gso_enum split_gso; | ^~~~~~~~~ tc-user.h:2721:89: error: parameter 2 (‘drop_overload’) has incomplete type 2721 | enum tc_tc_dualpi2_drop_overload_enum drop_overload) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ tc-user.h:2730:83: error: parameter 2 (‘drop_early’) has incomplete type 2730 | enum tc_tc_dualpi2_drop_early_enum drop_early) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~ tc-user.h:2748:79: error: parameter 2 (‘ecn_mask’) has incomplete type 2748 | enum tc_tc_dualpi2_ecn_mask_enum ecn_mask) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~ tc-user.h:2757:81: error: parameter 2 (‘split_gso’) has incomplete type 2757 | enum tc_tc_dualpi2_split_gso_enum split_gso) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~ tc-user.h:7126:90: error: parameter 2 (‘drop_overload’) has incomplete type 7126 | enum tc_tc_dualpi2_drop_overload_enum drop_overload) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ tc-user.h:7135:84: error: parameter 2 (‘drop_early’) has incomplete type 7135 | enum tc_tc_dualpi2_drop_early_enum drop_early) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~ tc-user.h:7153:80: error: parameter 2 (‘ecn_mask’) has incomplete type 7153 | enum tc_tc_dualpi2_ecn_mask_enum ecn_mask) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~ tc-user.h:7162:82: error: parameter 2 (‘split_gso’) has incomplete type 7162 | enum tc_tc_dualpi2_split_gso_enum split_gso) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~ tc-user.h:11507:91: error: parameter 2 (‘drop_overload’) has incomplete type 11507 | enum tc_tc_dualpi2_drop_overload_enum drop_overload) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ tc-user.h:11516:85: error: parameter 2 (‘drop_early’) has incomplete type 11516 | enum tc_tc_dualpi2_drop_early_enum drop_early) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~ tc-user.h:11534:81: error: parameter 2 (‘ecn_mask’) has incomplete type 11534 | enum tc_tc_dualpi2_ecn_mask_enum ecn_mask) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~ tc-user.h:11543:83: error: parameter 2 (‘split_gso’) has incomplete type 11543 | enum tc_tc_dualpi2_split_gso_enum split_gso) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~ tc-user.h:15985:89: error: parameter 2 (‘drop_overload’) has incomplete type 15985 | enum tc_tc_dualpi2_drop_overload_enum drop_overload) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ tc-user.h:15994:83: error: parameter 2 (‘drop_early’) has incomplete type 15994 | enum tc_tc_dualpi2_drop_early_enum drop_early) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~ tc-user.h:16012:79: error: parameter 2 (‘ecn_mask’) has incomplete type 16012 | enum tc_tc_dualpi2_ecn_mask_enum ecn_mask) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~ tc-user.h:16021:81: error: parameter 2 (‘split_gso’) has incomplete type 16021 | enum tc_tc_dualpi2_split_gso_enum split_gso) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~ tc-user.c:89:76: error: parameter 1 (‘value’) has incomplete type 89 | tc_tc_dualpi2_drop_overload_enum_str(enum tc_tc_dualpi2_drop_overload_enum value) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ tc-user.c:102:70: error: parameter 1 (‘value’) has incomplete type 102 | tc_tc_dualpi2_drop_early_enum_str(enum tc_tc_dualpi2_drop_early_enum value) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ tc-user.c:116:66: error: parameter 1 (‘value’) has incomplete type 116 | tc_tc_dualpi2_ecn_mask_enum_str(enum tc_tc_dualpi2_ecn_mask_enum value) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ tc-user.c:129:68: error: parameter 1 (‘value’) has incomplete type 129 | tc_tc_dualpi2_split_gso_enum_str(enum tc_tc_dualpi2_split_gso_enum value) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ tc-user.c:217:57: error: ‘TC_A_TC_DUALPI2_ATTRS_MAX’ undeclared here (not in a function); did you mean ‘TCA_TAPRIO_ATTR_MAX’? 217 | const struct ynl_policy_attr tc_tc_dualpi2_attrs_policy[TC_A_TC_DUALPI2_ATTRS_MAX + 1] = { | ^~~~~~~~~~~~~~~~~~~~~~~~~ | TCA_TAPRIO_ATTR_MAX tc-user.c:218:10: error: ‘TC_A_TC_DUALPI2_ATTRS_LIMIT’ undeclared here (not in a function); did you mean ‘TCA_DUALPI2_MEMORY_LIMIT’? 218 | [TC_A_TC_DUALPI2_ATTRS_LIMIT] = { .name = "limit", .type = YNL_PT_U32, }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ | TCA_DUALPI2_MEMORY_LIMIT tc-user.c:219:10: error: ‘TC_A_TC_DUALPI2_ATTRS_MEMORY_LIMIT’ undeclared here (not in a function); did you mean ‘TCA_DUALPI2_MEMORY_LIMIT’? 219 | [TC_A_TC_DUALPI2_ATTRS_MEMORY_LIMIT] = { .name = "memory-limit", .type = YNL_PT_U32, }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | TCA_DUALPI2_MEMORY_LIMIT tc-user.c:220:10: error: ‘TC_A_TC_DUALPI2_ATTRS_TARGET’ undeclared here (not in a function); did you mean ‘TCA_DUALPI2_TARGET’? 220 | [TC_A_TC_DUALPI2_ATTRS_TARGET] = { .name = "target", .type = YNL_PT_U32, }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ | TCA_DUALPI2_TARGET tc-user.c:221:10: error: ‘TC_A_TC_DUALPI2_ATTRS_TUPDATE’ undeclared here (not in a function); did you mean ‘TCA_DUALPI2_TUPDATE’? 221 | [TC_A_TC_DUALPI2_ATTRS_TUPDATE] = { .name = "tupdate", .type = YNL_PT_U32, }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | TCA_DUALPI2_TUPDATE tc-user.c:222:10: error: ‘TC_A_TC_DUALPI2_ATTRS_ALPHA’ undeclared here (not in a function) 222 | [TC_A_TC_DUALPI2_ATTRS_ALPHA] = { .name = "alpha", .type = YNL_PT_U32, }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ tc-user.c:223:10: error: ‘TC_A_TC_DUALPI2_ATTRS_BETA’ undeclared here (not in a function) 223 | [TC_A_TC_DUALPI2_ATTRS_BETA] = { .name = "beta", .type = YNL_PT_U32, }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~ tc-user.c:224:10: error: ‘TC_A_TC_DUALPI2_ATTRS_STEP_THRESH’ undeclared here (not in a function); did you mean ‘TCA_DUALPI2_STEP_THRESH’? 224 | [TC_A_TC_DUALPI2_ATTRS_STEP_THRESH] = { .name = "step-thresh", .type = YNL_PT_U32, }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | TCA_DUALPI2_STEP_THRESH tc-user.c:225:10: error: ‘TC_A_TC_DUALPI2_ATTRS_STEP_PACKETS’ undeclared here (not in a function); did you mean ‘TCA_DUALPI2_STEP_PACKETS’? 225 | [TC_A_TC_DUALPI2_ATTRS_STEP_PACKETS] = { .name = "step-packets", .type = YNL_PT_FLAG, }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | TCA_DUALPI2_STEP_PACKETS tc-user.c:226:10: error: ‘TC_A_TC_DUALPI2_ATTRS_MIN_QLEN_STEP’ undeclared here (not in a function); did you mean ‘TCA_DUALPI2_MIN_QLEN_STEP’? 226 | [TC_A_TC_DUALPI2_ATTRS_MIN_QLEN_STEP] = { .name = "min-qlen-step", .type = YNL_PT_U32, }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | TCA_DUALPI2_MIN_QLEN_STEP tc-user.c:227:10: error: ‘TC_A_TC_DUALPI2_ATTRS_COUPLING’ undeclared here (not in a function); did you mean ‘TCA_DUALPI2_COUPLING’? 227 | [TC_A_TC_DUALPI2_ATTRS_COUPLING] = { .name = "coupling", .type = YNL_PT_U8, }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | TCA_DUALPI2_COUPLING tc-user.c:228:10: error: ‘TC_A_TC_DUALPI2_ATTRS_DROP_OVERLOAD’ undeclared here (not in a function); did you mean ‘TCA_DUALPI2_DROP_OVERLOAD’? 228 | [TC_A_TC_DUALPI2_ATTRS_DROP_OVERLOAD] = { .name = "drop-overload", .type = YNL_PT_U8, }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | TCA_DUALPI2_DROP_OVERLOAD tc-user.c:229:10: error: ‘TC_A_TC_DUALPI2_ATTRS_DROP_EARLY’ undeclared here (not in a function); did you mean ‘TCA_DUALPI2_DROP_EARLY’? 229 | [TC_A_TC_DUALPI2_ATTRS_DROP_EARLY] = { .name = "drop-early", .type = YNL_PT_U8, }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | TCA_DUALPI2_DROP_EARLY tc-user.c:230:10: error: ‘TC_A_TC_DUALPI2_ATTRS_C_PROTECTION’ undeclared here (not in a function); did you mean ‘TCA_DUALPI2_C_PROTECTION’? 230 | [TC_A_TC_DUALPI2_ATTRS_C_PROTECTION] = { .name = "c-protection", .type = YNL_PT_U8, }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | TCA_DUALPI2_C_PROTECTION tc-user.c:231:10: error: ‘TC_A_TC_DUALPI2_ATTRS_ECN_MASK’ undeclared here (not in a function); did you mean ‘TCA_DUALPI2_ECN_MASK’? 231 | [TC_A_TC_DUALPI2_ATTRS_ECN_MASK] = { .name = "ecn-mask", .type = YNL_PT_U8, }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | TCA_DUALPI2_ECN_MASK tc-user.c:232:10: error: ‘TC_A_TC_DUALPI2_ATTRS_SPLIT_GSO’ undeclared here (not in a function); did you mean ‘TCA_DUALPI2_SPLIT_GSO’? 232 | [TC_A_TC_DUALPI2_ATTRS_SPLIT_GSO] = { .name = "split-gso", .type = YNL_PT_U8, }, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | TCA_DUALPI2_SPLIT_GSO make: *** [Makefile:51: tc-user.o] Error 1 make: *** Waiting for unfinished jobs....