diff --git a/generated/dpll-user.cpp b/generated/dpll-user.cpp index 2ba587e..6d1ac70 100644 --- a/generated/dpll-user.cpp +++ b/generated/dpll-user.cpp @@ -33,8 +33,9 @@ static constexpr std::array dpll_ std::string_view dpll_op_str(int op) { - if (op < 0 || op >= (int)(dpll_op_strmap.size())) + if (op < 0 || op >= (int)(dpll_op_strmap.size())) { return ""; + } return dpll_op_strmap[op]; } @@ -47,8 +48,9 @@ static constexpr std::array dpll_mode_strmap = []() { std::string_view dpll_mode_str(dpll_mode value) { - if (value < 0 || value >= (int)(dpll_mode_strmap.size())) + if (value < 0 || value >= (int)(dpll_mode_strmap.size())) { return ""; + } return dpll_mode_strmap[value]; } @@ -63,8 +65,9 @@ static constexpr std::array dpll_lock_status_strmap = [ std::string_view dpll_lock_status_str(dpll_lock_status value) { - if (value < 0 || value >= (int)(dpll_lock_status_strmap.size())) + if (value < 0 || value >= (int)(dpll_lock_status_strmap.size())) { return ""; + } return dpll_lock_status_strmap[value]; } @@ -79,8 +82,9 @@ static constexpr std::array dpll_lock_status_error_strm std::string_view dpll_lock_status_error_str(dpll_lock_status_error value) { - if (value < 0 || value >= (int)(dpll_lock_status_error_strmap.size())) + if (value < 0 || value >= (int)(dpll_lock_status_error_strmap.size())) { return ""; + } return dpll_lock_status_error_strmap[value]; } @@ -99,8 +103,9 @@ static constexpr std::array dpll_clock_quality_level_st std::string_view dpll_clock_quality_level_str(dpll_clock_quality_level value) { - if (value < 0 || value >= (int)(dpll_clock_quality_level_strmap.size())) + if (value < 0 || value >= (int)(dpll_clock_quality_level_strmap.size())) { return ""; + } return dpll_clock_quality_level_strmap[value]; } @@ -113,8 +118,9 @@ static constexpr std::array dpll_type_strmap = []() { std::string_view dpll_type_str(dpll_type value) { - if (value < 0 || value >= (int)(dpll_type_strmap.size())) + if (value < 0 || value >= (int)(dpll_type_strmap.size())) { return ""; + } return dpll_type_strmap[value]; } @@ -130,8 +136,9 @@ static constexpr std::array dpll_pin_type_strmap = []() std::string_view dpll_pin_type_str(dpll_pin_type value) { - if (value < 0 || value >= (int)(dpll_pin_type_strmap.size())) + if (value < 0 || value >= (int)(dpll_pin_type_strmap.size())) { return ""; + } return dpll_pin_type_strmap[value]; } @@ -144,8 +151,9 @@ static constexpr std::array dpll_pin_direction_strmap = std::string_view dpll_pin_direction_str(dpll_pin_direction value) { - if (value < 0 || value >= (int)(dpll_pin_direction_strmap.size())) + if (value < 0 || value >= (int)(dpll_pin_direction_strmap.size())) { return ""; + } return dpll_pin_direction_strmap[value]; } @@ -159,8 +167,9 @@ static constexpr std::array dpll_pin_state_strmap = []( std::string_view dpll_pin_state_str(dpll_pin_state value) { - if (value < 0 || value >= (int)(dpll_pin_state_strmap.size())) + if (value < 0 || value >= (int)(dpll_pin_state_strmap.size())) { return ""; + } return dpll_pin_state_strmap[value]; } @@ -175,8 +184,9 @@ static constexpr std::array dpll_pin_capabilities_strma std::string_view dpll_pin_capabilities_str(dpll_pin_capabilities value) { value = (dpll_pin_capabilities)(ffs(value) - 1); - if (value < 0 || value >= (int)(dpll_pin_capabilities_strmap.size())) + if (value < 0 || value >= (int)(dpll_pin_capabilities_strmap.size())) { return ""; + } return dpll_pin_capabilities_strmap[value]; } @@ -189,8 +199,9 @@ static constexpr std::array dpll_feature_state_strmap = std::string_view dpll_feature_state_str(dpll_feature_state value) { - if (value < 0 || value >= (int)(dpll_feature_state_strmap.size())) + if (value < 0 || value >= (int)(dpll_feature_state_strmap.size())) { return ""; + } return dpll_feature_state_strmap[value]; } @@ -373,12 +384,14 @@ int dpll_frequency_range_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == DPLL_A_PIN_FREQUENCY_MIN) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->frequency_min = (__u64)ynl_attr_get_u64(attr); } else if (type == DPLL_A_PIN_FREQUENCY_MAX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->frequency_max = (__u64)ynl_attr_get_u64(attr); } } @@ -392,16 +405,21 @@ int dpll_pin_parent_device_put(struct nlmsghdr *nlh, unsigned int attr_type, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - if (obj.parent_id.has_value()) + if (obj.parent_id.has_value()) { ynl_attr_put_u32(nlh, DPLL_A_PIN_PARENT_ID, obj.parent_id.value()); - if (obj.direction.has_value()) + } + if (obj.direction.has_value()) { ynl_attr_put_u32(nlh, DPLL_A_PIN_DIRECTION, obj.direction.value()); - if (obj.prio.has_value()) + } + if (obj.prio.has_value()) { ynl_attr_put_u32(nlh, DPLL_A_PIN_PRIO, obj.prio.value()); - if (obj.state.has_value()) + } + if (obj.state.has_value()) { ynl_attr_put_u32(nlh, DPLL_A_PIN_STATE, obj.state.value()); - if (obj.phase_offset.has_value()) + } + if (obj.phase_offset.has_value()) { ynl_attr_put_s64(nlh, DPLL_A_PIN_PHASE_OFFSET, obj.phase_offset.value()); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -417,24 +435,29 @@ int dpll_pin_parent_device_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == DPLL_A_PIN_PARENT_ID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->parent_id = (__u32)ynl_attr_get_u32(attr); } else if (type == DPLL_A_PIN_DIRECTION) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->direction = (enum dpll_pin_direction)ynl_attr_get_u32(attr); } else if (type == DPLL_A_PIN_PRIO) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->prio = (__u32)ynl_attr_get_u32(attr); } else if (type == DPLL_A_PIN_STATE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->state = (enum dpll_pin_state)ynl_attr_get_u32(attr); } else if (type == DPLL_A_PIN_PHASE_OFFSET) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->phase_offset = (__s64)ynl_attr_get_s64(attr); } } @@ -448,10 +471,12 @@ int dpll_pin_parent_pin_put(struct nlmsghdr *nlh, unsigned int attr_type, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - if (obj.parent_id.has_value()) + if (obj.parent_id.has_value()) { ynl_attr_put_u32(nlh, DPLL_A_PIN_PARENT_ID, obj.parent_id.value()); - if (obj.state.has_value()) + } + if (obj.state.has_value()) { ynl_attr_put_u32(nlh, DPLL_A_PIN_STATE, obj.state.value()); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -467,12 +492,14 @@ int dpll_pin_parent_pin_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == DPLL_A_PIN_PARENT_ID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->parent_id = (__u32)ynl_attr_get_u32(attr); } else if (type == DPLL_A_PIN_STATE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->state = (enum dpll_pin_state)ynl_attr_get_u32(attr); } } @@ -486,10 +513,12 @@ int dpll_reference_sync_put(struct nlmsghdr *nlh, unsigned int attr_type, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - if (obj.id.has_value()) + if (obj.id.has_value()) { ynl_attr_put_u32(nlh, DPLL_A_PIN_ID, obj.id.value()); - if (obj.state.has_value()) + } + if (obj.state.has_value()) { ynl_attr_put_u32(nlh, DPLL_A_PIN_STATE, obj.state.value()); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -505,12 +534,14 @@ int dpll_reference_sync_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == DPLL_A_PIN_ID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->id = (__u32)ynl_attr_get_u32(attr); } else if (type == DPLL_A_PIN_STATE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->state = (enum dpll_pin_state)ynl_attr_get_u32(attr); } } @@ -532,8 +563,9 @@ int dpll_device_id_get_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == DPLL_A_ID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->id = (__u32)ynl_attr_get_u32(attr); } } @@ -553,12 +585,15 @@ dpll_device_id_get(ynl_cpp::ynl_socket& ys, dpll_device_id_get_req& req) ((struct ynl_sock*)ys)->req_policy = &dpll_nest; yrs.yarg.rsp_policy = &dpll_nest; - if (req.module_name.size() > 0) + if (req.module_name.size() > 0) { ynl_attr_put_str(nlh, DPLL_A_MODULE_NAME, req.module_name.data()); - if (req.clock_id.has_value()) + } + if (req.clock_id.has_value()) { ynl_attr_put_u64(nlh, DPLL_A_CLOCK_ID, req.clock_id.value()); - if (req.type.has_value()) + } + if (req.type.has_value()) { ynl_attr_put_u32(nlh, DPLL_A_TYPE, req.type.value()); + } rsp.reset(new dpll_device_id_get_rsp()); yrs.yarg.data = rsp.get(); @@ -566,8 +601,9 @@ dpll_device_id_get(ynl_cpp::ynl_socket& ys, dpll_device_id_get_req& req) yrs.rsp_cmd = DPLL_CMD_DEVICE_ID_GET; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -584,49 +620,59 @@ int dpll_device_get_rsp_parse(const struct nlmsghdr *nlh, dst = (dpll_device_get_rsp*)yarg->data; - if (dst->mode_supported.size() > 0) + if (dst->mode_supported.size() > 0) { return ynl_error_parse(yarg, "attribute already present (dpll.mode-supported)"); + } ynl_attr_for_each(attr, nlh, yarg->ys->family->hdr_len) { unsigned int type = ynl_attr_type(attr); if (type == DPLL_A_ID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->id = (__u32)ynl_attr_get_u32(attr); } else if (type == DPLL_A_MODULE_NAME) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->module_name.assign(ynl_attr_get_str(attr)); } else if (type == DPLL_A_MODE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->mode = (enum dpll_mode)ynl_attr_get_u32(attr); } else if (type == DPLL_A_MODE_SUPPORTED) { n_mode_supported++; } else if (type == DPLL_A_LOCK_STATUS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->lock_status = (enum dpll_lock_status)ynl_attr_get_u32(attr); } else if (type == DPLL_A_LOCK_STATUS_ERROR) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->lock_status_error = (enum dpll_lock_status_error)ynl_attr_get_u32(attr); } else if (type == DPLL_A_TEMP) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->temp = (__s32)ynl_attr_get_s32(attr); } else if (type == DPLL_A_CLOCK_ID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->clock_id = (__u64)ynl_attr_get_u64(attr); } else if (type == DPLL_A_TYPE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->type = (enum dpll_type)ynl_attr_get_u32(attr); } else if (type == DPLL_A_PHASE_OFFSET_MONITOR) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->phase_offset_monitor = (enum dpll_feature_state)ynl_attr_get_u32(attr); } } @@ -657,8 +703,9 @@ dpll_device_get(ynl_cpp::ynl_socket& ys, dpll_device_get_req& req) ((struct ynl_sock*)ys)->req_policy = &dpll_nest; yrs.yarg.rsp_policy = &dpll_nest; - if (req.id.has_value()) + if (req.id.has_value()) { ynl_attr_put_u32(nlh, DPLL_A_ID, req.id.value()); + } rsp.reset(new dpll_device_get_rsp()); yrs.yarg.data = rsp.get(); @@ -666,8 +713,9 @@ dpll_device_get(ynl_cpp::ynl_socket& ys, dpll_device_get_req& req) yrs.rsp_cmd = DPLL_CMD_DEVICE_GET; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -691,8 +739,9 @@ dpll_device_get_dump(ynl_cpp::ynl_socket& ys) nlh = ynl_gemsg_start_dump(ys, ((struct ynl_sock*)ys)->family_id, DPLL_CMD_DEVICE_GET, 1); err = ynl_exec_dump_no_alloc(ys, nlh, &yds); - if (err < 0) + if (err < 0) { return nullptr; + } return ret; } @@ -709,14 +758,17 @@ int dpll_device_set(ynl_cpp::ynl_socket& ys, dpll_device_set_req& req) nlh = ynl_gemsg_start_req(ys, ((struct ynl_sock*)ys)->family_id, DPLL_CMD_DEVICE_SET, 1); ((struct ynl_sock*)ys)->req_policy = &dpll_nest; - if (req.id.has_value()) + if (req.id.has_value()) { ynl_attr_put_u32(nlh, DPLL_A_ID, req.id.value()); - if (req.phase_offset_monitor.has_value()) + } + if (req.phase_offset_monitor.has_value()) { ynl_attr_put_u32(nlh, DPLL_A_PHASE_OFFSET_MONITOR, req.phase_offset_monitor.value()); + } err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return -1; + } return 0; } @@ -735,8 +787,9 @@ int dpll_pin_id_get_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == DPLL_A_PIN_ID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->id = (__u32)ynl_attr_get_u32(attr); } } @@ -756,18 +809,24 @@ dpll_pin_id_get(ynl_cpp::ynl_socket& ys, dpll_pin_id_get_req& req) ((struct ynl_sock*)ys)->req_policy = &dpll_pin_nest; yrs.yarg.rsp_policy = &dpll_pin_nest; - if (req.module_name.size() > 0) + if (req.module_name.size() > 0) { ynl_attr_put_str(nlh, DPLL_A_PIN_MODULE_NAME, req.module_name.data()); - if (req.clock_id.has_value()) + } + if (req.clock_id.has_value()) { ynl_attr_put_u64(nlh, DPLL_A_PIN_CLOCK_ID, req.clock_id.value()); - if (req.board_label.size() > 0) + } + if (req.board_label.size() > 0) { ynl_attr_put_str(nlh, DPLL_A_PIN_BOARD_LABEL, req.board_label.data()); - if (req.panel_label.size() > 0) + } + if (req.panel_label.size() > 0) { ynl_attr_put_str(nlh, DPLL_A_PIN_PANEL_LABEL, req.panel_label.data()); - if (req.package_label.size() > 0) + } + if (req.package_label.size() > 0) { ynl_attr_put_str(nlh, DPLL_A_PIN_PACKAGE_LABEL, req.package_label.data()); - if (req.type.has_value()) + } + if (req.type.has_value()) { ynl_attr_put_u32(nlh, DPLL_A_PIN_TYPE, req.type.value()); + } rsp.reset(new dpll_pin_id_get_rsp()); yrs.yarg.data = rsp.get(); @@ -775,8 +834,9 @@ dpll_pin_id_get(ynl_cpp::ynl_socket& ys, dpll_pin_id_get_req& req) yrs.rsp_cmd = DPLL_CMD_PIN_ID_GET; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -799,79 +859,97 @@ int dpll_pin_get_rsp_parse(const struct nlmsghdr *nlh, dst = (dpll_pin_get_rsp*)yarg->data; parg.ys = yarg->ys; - if (dst->esync_frequency_supported.size() > 0) + if (dst->esync_frequency_supported.size() > 0) { return ynl_error_parse(yarg, "attribute already present (pin.esync-frequency-supported)"); - if (dst->frequency_supported.size() > 0) + } + if (dst->frequency_supported.size() > 0) { return ynl_error_parse(yarg, "attribute already present (pin.frequency-supported)"); - if (dst->parent_device.size() > 0) + } + if (dst->parent_device.size() > 0) { return ynl_error_parse(yarg, "attribute already present (pin.parent-device)"); - if (dst->parent_pin.size() > 0) + } + if (dst->parent_pin.size() > 0) { return ynl_error_parse(yarg, "attribute already present (pin.parent-pin)"); - if (dst->reference_sync.size() > 0) + } + if (dst->reference_sync.size() > 0) { return ynl_error_parse(yarg, "attribute already present (pin.reference-sync)"); + } ynl_attr_for_each(attr, nlh, yarg->ys->family->hdr_len) { unsigned int type = ynl_attr_type(attr); if (type == DPLL_A_PIN_ID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->id = (__u32)ynl_attr_get_u32(attr); } else if (type == DPLL_A_PIN_BOARD_LABEL) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->board_label.assign(ynl_attr_get_str(attr)); } else if (type == DPLL_A_PIN_PANEL_LABEL) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->panel_label.assign(ynl_attr_get_str(attr)); } else if (type == DPLL_A_PIN_PACKAGE_LABEL) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->package_label.assign(ynl_attr_get_str(attr)); } else if (type == DPLL_A_PIN_TYPE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->type = (enum dpll_pin_type)ynl_attr_get_u32(attr); } else if (type == DPLL_A_PIN_FREQUENCY) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->frequency = (__u64)ynl_attr_get_u64(attr); } else if (type == DPLL_A_PIN_FREQUENCY_SUPPORTED) { n_frequency_supported++; } else if (type == DPLL_A_PIN_CAPABILITIES) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->capabilities = (__u32)ynl_attr_get_u32(attr); } else if (type == DPLL_A_PIN_PARENT_DEVICE) { n_parent_device++; } else if (type == DPLL_A_PIN_PARENT_PIN) { n_parent_pin++; } else if (type == DPLL_A_PIN_PHASE_ADJUST_MIN) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->phase_adjust_min = (__s32)ynl_attr_get_s32(attr); } else if (type == DPLL_A_PIN_PHASE_ADJUST_MAX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->phase_adjust_max = (__s32)ynl_attr_get_s32(attr); } else if (type == DPLL_A_PIN_PHASE_ADJUST) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->phase_adjust = (__s32)ynl_attr_get_s32(attr); } else if (type == DPLL_A_PIN_FRACTIONAL_FREQUENCY_OFFSET) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->fractional_frequency_offset = (__s64)ynl_attr_get_sint(attr); } else if (type == DPLL_A_PIN_ESYNC_FREQUENCY) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->esync_frequency = (__u64)ynl_attr_get_u64(attr); } else if (type == DPLL_A_PIN_ESYNC_FREQUENCY_SUPPORTED) { n_esync_frequency_supported++; } else if (type == DPLL_A_PIN_ESYNC_PULSE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->esync_pulse = (__u32)ynl_attr_get_u32(attr); } else if (type == DPLL_A_PIN_REFERENCE_SYNC) { n_reference_sync++; @@ -885,8 +963,9 @@ int dpll_pin_get_rsp_parse(const struct nlmsghdr *nlh, ynl_attr_for_each(attr, nlh, yarg->ys->family->hdr_len) { if (ynl_attr_type(attr) == DPLL_A_PIN_ESYNC_FREQUENCY_SUPPORTED) { parg.data = &dst->esync_frequency_supported[i]; - if (dpll_frequency_range_parse(&parg, attr)) + if (dpll_frequency_range_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } i++; } } @@ -898,8 +977,9 @@ int dpll_pin_get_rsp_parse(const struct nlmsghdr *nlh, ynl_attr_for_each(attr, nlh, yarg->ys->family->hdr_len) { if (ynl_attr_type(attr) == DPLL_A_PIN_FREQUENCY_SUPPORTED) { parg.data = &dst->frequency_supported[i]; - if (dpll_frequency_range_parse(&parg, attr)) + if (dpll_frequency_range_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } i++; } } @@ -911,8 +991,9 @@ int dpll_pin_get_rsp_parse(const struct nlmsghdr *nlh, ynl_attr_for_each(attr, nlh, yarg->ys->family->hdr_len) { if (ynl_attr_type(attr) == DPLL_A_PIN_PARENT_DEVICE) { parg.data = &dst->parent_device[i]; - if (dpll_pin_parent_device_parse(&parg, attr)) + if (dpll_pin_parent_device_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } i++; } } @@ -924,8 +1005,9 @@ int dpll_pin_get_rsp_parse(const struct nlmsghdr *nlh, ynl_attr_for_each(attr, nlh, yarg->ys->family->hdr_len) { if (ynl_attr_type(attr) == DPLL_A_PIN_PARENT_PIN) { parg.data = &dst->parent_pin[i]; - if (dpll_pin_parent_pin_parse(&parg, attr)) + if (dpll_pin_parent_pin_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } i++; } } @@ -937,8 +1019,9 @@ int dpll_pin_get_rsp_parse(const struct nlmsghdr *nlh, ynl_attr_for_each(attr, nlh, yarg->ys->family->hdr_len) { if (ynl_attr_type(attr) == DPLL_A_PIN_REFERENCE_SYNC) { parg.data = &dst->reference_sync[i]; - if (dpll_reference_sync_parse(&parg, attr)) + if (dpll_reference_sync_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } i++; } } @@ -959,8 +1042,9 @@ dpll_pin_get(ynl_cpp::ynl_socket& ys, dpll_pin_get_req& req) ((struct ynl_sock*)ys)->req_policy = &dpll_pin_nest; yrs.yarg.rsp_policy = &dpll_pin_nest; - if (req.id.has_value()) + if (req.id.has_value()) { ynl_attr_put_u32(nlh, DPLL_A_PIN_ID, req.id.value()); + } rsp.reset(new dpll_pin_get_rsp()); yrs.yarg.data = rsp.get(); @@ -968,8 +1052,9 @@ dpll_pin_get(ynl_cpp::ynl_socket& ys, dpll_pin_get_req& req) yrs.rsp_cmd = DPLL_CMD_PIN_GET; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -993,12 +1078,14 @@ dpll_pin_get_dump(ynl_cpp::ynl_socket& ys, dpll_pin_get_req_dump& req) nlh = ynl_gemsg_start_dump(ys, ((struct ynl_sock*)ys)->family_id, DPLL_CMD_PIN_GET, 1); ((struct ynl_sock*)ys)->req_policy = &dpll_pin_nest; - if (req.id.has_value()) + if (req.id.has_value()) { ynl_attr_put_u32(nlh, DPLL_A_PIN_ID, req.id.value()); + } err = ynl_exec_dump_no_alloc(ys, nlh, &yds); - if (err < 0) + if (err < 0) { return nullptr; + } return ret; } @@ -1015,30 +1102,41 @@ int dpll_pin_set(ynl_cpp::ynl_socket& ys, dpll_pin_set_req& req) nlh = ynl_gemsg_start_req(ys, ((struct ynl_sock*)ys)->family_id, DPLL_CMD_PIN_SET, 1); ((struct ynl_sock*)ys)->req_policy = &dpll_pin_nest; - if (req.id.has_value()) + if (req.id.has_value()) { ynl_attr_put_u32(nlh, DPLL_A_PIN_ID, req.id.value()); - if (req.frequency.has_value()) + } + if (req.frequency.has_value()) { ynl_attr_put_u64(nlh, DPLL_A_PIN_FREQUENCY, req.frequency.value()); - if (req.direction.has_value()) + } + if (req.direction.has_value()) { ynl_attr_put_u32(nlh, DPLL_A_PIN_DIRECTION, req.direction.value()); - if (req.prio.has_value()) + } + if (req.prio.has_value()) { ynl_attr_put_u32(nlh, DPLL_A_PIN_PRIO, req.prio.value()); - if (req.state.has_value()) + } + if (req.state.has_value()) { ynl_attr_put_u32(nlh, DPLL_A_PIN_STATE, req.state.value()); - for (unsigned int i = 0; i < req.parent_device.size(); i++) + } + for (unsigned int i = 0; i < req.parent_device.size(); i++) { dpll_pin_parent_device_put(nlh, DPLL_A_PIN_PARENT_DEVICE, req.parent_device[i]); - for (unsigned int i = 0; i < req.parent_pin.size(); i++) + } + for (unsigned int i = 0; i < req.parent_pin.size(); i++) { dpll_pin_parent_pin_put(nlh, DPLL_A_PIN_PARENT_PIN, req.parent_pin[i]); - if (req.phase_adjust.has_value()) + } + if (req.phase_adjust.has_value()) { ynl_attr_put_s32(nlh, DPLL_A_PIN_PHASE_ADJUST, req.phase_adjust.value()); - if (req.esync_frequency.has_value()) + } + if (req.esync_frequency.has_value()) { ynl_attr_put_u64(nlh, DPLL_A_PIN_ESYNC_FREQUENCY, req.esync_frequency.value()); - for (unsigned int i = 0; i < req.reference_sync.size(); i++) + } + for (unsigned int i = 0; i < req.reference_sync.size(); i++) { dpll_reference_sync_put(nlh, DPLL_A_PIN_REFERENCE_SYNC, req.reference_sync[i]); + } err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return -1; + } return 0; } diff --git a/generated/ethtool-user.cpp b/generated/ethtool-user.cpp index 081e895..784369b 100644 --- a/generated/ethtool-user.cpp +++ b/generated/ethtool-user.cpp @@ -75,8 +75,9 @@ static constexpr std::array ethtool_op_strmap = []() { std::string_view ethtool_op_str(int op) { - if (op < 0 || op >= (int)(ethtool_op_strmap.size())) + if (op < 0 || op >= (int)(ethtool_op_strmap.size())) { return ""; + } return ethtool_op_strmap[op]; } @@ -90,8 +91,9 @@ static constexpr std::array ethtool_udp_tunnel_type_str std::string_view ethtool_udp_tunnel_type_str(int value) { - if (value < 0 || value >= (int)(ethtool_udp_tunnel_type_strmap.size())) + if (value < 0 || value >= (int)(ethtool_udp_tunnel_type_strmap.size())) { return ""; + } return ethtool_udp_tunnel_type_strmap[value]; } @@ -102,8 +104,9 @@ static constexpr std::array ethtool_stringset_strmap = std::string_view ethtool_stringset_str(ethtool_stringset value) { - if (value < 0 || value >= (int)(ethtool_stringset_strmap.size())) + if (value < 0 || value >= (int)(ethtool_stringset_strmap.size())) { return ""; + } return ethtool_stringset_strmap[value]; } @@ -118,8 +121,9 @@ static constexpr std::array ethtool_header_flags_strmap std::string_view ethtool_header_flags_str(ethtool_header_flags value) { value = (ethtool_header_flags)(ffs(value) - 1); - if (value < 0 || value >= (int)(ethtool_header_flags_strmap.size())) + if (value < 0 || value >= (int)(ethtool_header_flags_strmap.size())) { return ""; + } return ethtool_header_flags_strmap[value]; } @@ -135,8 +139,9 @@ static constexpr std::array ethtool_module_fw_flash_sta std::string_view ethtool_module_fw_flash_status_str(ethtool_module_fw_flash_status value) { - if (value < 0 || value >= (int)(ethtool_module_fw_flash_status_strmap.size())) + if (value < 0 || value >= (int)(ethtool_module_fw_flash_status_strmap.size())) { return ""; + } return ethtool_module_fw_flash_status_strmap[value]; } @@ -156,8 +161,9 @@ static constexpr std::array ethtool_c33_pse_ext_state_s std::string_view ethtool_c33_pse_ext_state_str(ethtool_c33_pse_ext_state value) { - if (value < 0 || value >= (int)(ethtool_c33_pse_ext_state_strmap.size())) + if (value < 0 || value >= (int)(ethtool_c33_pse_ext_state_strmap.size())) { return ""; + } return ethtool_c33_pse_ext_state_strmap[value]; } @@ -170,8 +176,9 @@ static constexpr std::array ethtool_phy_upstream_type_s std::string_view ethtool_phy_upstream_type_str(phy_upstream value) { - if (value < 0 || value >= (int)(ethtool_phy_upstream_type_strmap.size())) + if (value < 0 || value >= (int)(ethtool_phy_upstream_type_strmap.size())) { return ""; + } return ethtool_phy_upstream_type_strmap[value]; } @@ -185,8 +192,9 @@ static constexpr std::array ethtool_tcp_data_split_strm std::string_view ethtool_tcp_data_split_str(ethtool_tcp_data_split value) { - if (value < 0 || value >= (int)(ethtool_tcp_data_split_strmap.size())) + if (value < 0 || value >= (int)(ethtool_tcp_data_split_strmap.size())) { return ""; + } return ethtool_tcp_data_split_strmap[value]; } @@ -199,8 +207,9 @@ static constexpr std::array ethtool_hwtstamp_source_str std::string_view ethtool_hwtstamp_source_str(hwtstamp_source value) { - if (value < 0 || value >= (int)(ethtool_hwtstamp_source_strmap.size())) + if (value < 0 || value >= (int)(ethtool_hwtstamp_source_strmap.size())) { return ""; + } return ethtool_hwtstamp_source_strmap[value]; } @@ -219,8 +228,9 @@ static constexpr std::array ethtool_pse_event_strmap = std::string_view ethtool_pse_event_str(ethtool_pse_event value) { value = (ethtool_pse_event)(ffs(value) - 1); - if (value < 0 || value >= (int)(ethtool_pse_event_strmap.size())) + if (value < 0 || value >= (int)(ethtool_pse_event_strmap.size())) { return ""; + } return ethtool_pse_event_strmap[value]; } @@ -234,8 +244,9 @@ static constexpr std::array ethtool_input_xfrm_strmap = std::string_view ethtool_input_xfrm_str(int value) { value = (int)(ffs(value) - 1); - if (value < 0 || value >= (int)(ethtool_input_xfrm_strmap.size())) + if (value < 0 || value >= (int)(ethtool_input_xfrm_strmap.size())) { return ""; + } return ethtool_input_xfrm_strmap[value]; } @@ -256,8 +267,9 @@ static constexpr std::array ethtool_rxfh_fields_strmap std::string_view ethtool_rxfh_fields_str(int value) { value = (int)(ffs(value) - 1); - if (value < 0 || value >= (int)(ethtool_rxfh_fields_strmap.size())) + if (value < 0 || value >= (int)(ethtool_rxfh_fields_strmap.size())) { return ""; + } return ethtool_rxfh_fields_strmap[value]; } @@ -1679,14 +1691,18 @@ int ethtool_header_put(struct nlmsghdr *nlh, unsigned int attr_type, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - if (obj.dev_index.has_value()) + if (obj.dev_index.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_HEADER_DEV_INDEX, obj.dev_index.value()); - if (obj.dev_name.size() > 0) + } + if (obj.dev_name.size() > 0) { ynl_attr_put_str(nlh, ETHTOOL_A_HEADER_DEV_NAME, obj.dev_name.data()); - if (obj.flags.has_value()) + } + if (obj.flags.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_HEADER_FLAGS, obj.flags.value()); - if (obj.phy_index.has_value()) + } + if (obj.phy_index.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_HEADER_PHY_INDEX, obj.phy_index.value()); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -1702,20 +1718,24 @@ int ethtool_header_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == ETHTOOL_A_HEADER_DEV_INDEX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->dev_index = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_HEADER_DEV_NAME) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->dev_name.assign(ynl_attr_get_str(attr)); } else if (type == ETHTOOL_A_HEADER_FLAGS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->flags = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_HEADER_PHY_INDEX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->phy_index = (__u32)ynl_attr_get_u32(attr); } } @@ -1729,10 +1749,12 @@ int ethtool_pause_stat_put(struct nlmsghdr *nlh, unsigned int attr_type, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - if (obj.tx_frames.has_value()) + if (obj.tx_frames.has_value()) { ynl_attr_put_u64(nlh, ETHTOOL_A_PAUSE_STAT_TX_FRAMES, obj.tx_frames.value()); - if (obj.rx_frames.has_value()) + } + if (obj.rx_frames.has_value()) { ynl_attr_put_u64(nlh, ETHTOOL_A_PAUSE_STAT_RX_FRAMES, obj.rx_frames.value()); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -1748,12 +1770,14 @@ int ethtool_pause_stat_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == ETHTOOL_A_PAUSE_STAT_TX_FRAMES) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->tx_frames = (__u64)ynl_attr_get_u64(attr); } else if (type == ETHTOOL_A_PAUSE_STAT_RX_FRAMES) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->rx_frames = (__u64)ynl_attr_get_u64(attr); } } @@ -1771,20 +1795,24 @@ int ethtool_ts_stat_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == ETHTOOL_A_TS_STAT_TX_PKTS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->tx_pkts = (__u64)ynl_attr_get_uint(attr); } else if (type == ETHTOOL_A_TS_STAT_TX_LOST) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->tx_lost = (__u64)ynl_attr_get_uint(attr); } else if (type == ETHTOOL_A_TS_STAT_TX_ERR) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->tx_err = (__u64)ynl_attr_get_uint(attr); } else if (type == ETHTOOL_A_TS_STAT_TX_ONESTEP_PKTS_UNCONFIRMED) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->tx_onestep_pkts_unconfirmed = (__u64)ynl_attr_get_uint(attr); } } @@ -1799,10 +1827,12 @@ int ethtool_ts_hwtstamp_provider_put(struct nlmsghdr *nlh, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - if (obj.index.has_value()) + if (obj.index.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_TS_HWTSTAMP_PROVIDER_INDEX, obj.index.value()); - if (obj.qualifier.has_value()) + } + if (obj.qualifier.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_TS_HWTSTAMP_PROVIDER_QUALIFIER, obj.qualifier.value()); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -1818,12 +1848,14 @@ int ethtool_ts_hwtstamp_provider_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == ETHTOOL_A_TS_HWTSTAMP_PROVIDER_INDEX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->index = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_TS_HWTSTAMP_PROVIDER_QUALIFIER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->qualifier = (__u32)ynl_attr_get_u32(attr); } } @@ -1837,12 +1869,15 @@ int ethtool_fec_stat_put(struct nlmsghdr *nlh, unsigned int attr_type, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - if (obj.corrected.size() > 0) + if (obj.corrected.size() > 0) { ynl_attr_put(nlh, ETHTOOL_A_FEC_STAT_CORRECTED, obj.corrected.data(), obj.corrected.size()); - if (obj.uncorr.size() > 0) + } + if (obj.uncorr.size() > 0) { ynl_attr_put(nlh, ETHTOOL_A_FEC_STAT_UNCORR, obj.uncorr.data(), obj.uncorr.size()); - if (obj.corr_bits.size() > 0) + } + if (obj.corr_bits.size() > 0) { ynl_attr_put(nlh, ETHTOOL_A_FEC_STAT_CORR_BITS, obj.corr_bits.data(), obj.corr_bits.size()); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -1858,20 +1893,23 @@ int ethtool_fec_stat_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == ETHTOOL_A_FEC_STAT_CORRECTED) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->corrected.assign(data, data + len); } else if (type == ETHTOOL_A_FEC_STAT_UNCORR) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->uncorr.assign(data, data + len); } else if (type == ETHTOOL_A_FEC_STAT_CORR_BITS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->corr_bits.assign(data, data + len); @@ -1891,12 +1929,14 @@ int ethtool_c33_pse_pw_limit_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == ETHTOOL_A_C33_PSE_PW_LIMIT_MIN) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->min = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_C33_PSE_PW_LIMIT_MAX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->max = (__u32)ynl_attr_get_u32(attr); } } @@ -1910,60 +1950,87 @@ int ethtool_flow_put(struct nlmsghdr *nlh, unsigned int attr_type, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - if (obj.ether.has_value()) + if (obj.ether.has_value()) { ynl_attr_put_uint(nlh, ETHTOOL_A_FLOW_ETHER, obj.ether.value()); - if (obj.ip4.has_value()) + } + if (obj.ip4.has_value()) { ynl_attr_put_uint(nlh, ETHTOOL_A_FLOW_IP4, obj.ip4.value()); - if (obj.ip6.has_value()) + } + if (obj.ip6.has_value()) { ynl_attr_put_uint(nlh, ETHTOOL_A_FLOW_IP6, obj.ip6.value()); - if (obj.tcp4.has_value()) + } + if (obj.tcp4.has_value()) { ynl_attr_put_uint(nlh, ETHTOOL_A_FLOW_TCP4, obj.tcp4.value()); - if (obj.tcp6.has_value()) + } + if (obj.tcp6.has_value()) { ynl_attr_put_uint(nlh, ETHTOOL_A_FLOW_TCP6, obj.tcp6.value()); - if (obj.udp4.has_value()) + } + if (obj.udp4.has_value()) { ynl_attr_put_uint(nlh, ETHTOOL_A_FLOW_UDP4, obj.udp4.value()); - if (obj.udp6.has_value()) + } + if (obj.udp6.has_value()) { ynl_attr_put_uint(nlh, ETHTOOL_A_FLOW_UDP6, obj.udp6.value()); - if (obj.sctp4.has_value()) + } + if (obj.sctp4.has_value()) { ynl_attr_put_uint(nlh, ETHTOOL_A_FLOW_SCTP4, obj.sctp4.value()); - if (obj.sctp6.has_value()) + } + if (obj.sctp6.has_value()) { ynl_attr_put_uint(nlh, ETHTOOL_A_FLOW_SCTP6, obj.sctp6.value()); - if (obj.ah4.has_value()) + } + if (obj.ah4.has_value()) { ynl_attr_put_uint(nlh, ETHTOOL_A_FLOW_AH4, obj.ah4.value()); - if (obj.ah6.has_value()) + } + if (obj.ah6.has_value()) { ynl_attr_put_uint(nlh, ETHTOOL_A_FLOW_AH6, obj.ah6.value()); - if (obj.esp4.has_value()) + } + if (obj.esp4.has_value()) { ynl_attr_put_uint(nlh, ETHTOOL_A_FLOW_ESP4, obj.esp4.value()); - if (obj.esp6.has_value()) + } + if (obj.esp6.has_value()) { ynl_attr_put_uint(nlh, ETHTOOL_A_FLOW_ESP6, obj.esp6.value()); - if (obj.ah_esp4.has_value()) + } + if (obj.ah_esp4.has_value()) { ynl_attr_put_uint(nlh, ETHTOOL_A_FLOW_AH_ESP4, obj.ah_esp4.value()); - if (obj.ah_esp6.has_value()) + } + if (obj.ah_esp6.has_value()) { ynl_attr_put_uint(nlh, ETHTOOL_A_FLOW_AH_ESP6, obj.ah_esp6.value()); - if (obj.gtpu4.has_value()) + } + if (obj.gtpu4.has_value()) { ynl_attr_put_uint(nlh, ETHTOOL_A_FLOW_GTPU4, obj.gtpu4.value()); - if (obj.gtpu6.has_value()) + } + if (obj.gtpu6.has_value()) { ynl_attr_put_uint(nlh, ETHTOOL_A_FLOW_GTPU6, obj.gtpu6.value()); - if (obj.gtpc4.has_value()) + } + if (obj.gtpc4.has_value()) { ynl_attr_put_uint(nlh, ETHTOOL_A_FLOW_GTPC4, obj.gtpc4.value()); - if (obj.gtpc6.has_value()) + } + if (obj.gtpc6.has_value()) { ynl_attr_put_uint(nlh, ETHTOOL_A_FLOW_GTPC6, obj.gtpc6.value()); - if (obj.gtpc_teid4.has_value()) + } + if (obj.gtpc_teid4.has_value()) { ynl_attr_put_uint(nlh, ETHTOOL_A_FLOW_GTPC_TEID4, obj.gtpc_teid4.value()); - if (obj.gtpc_teid6.has_value()) + } + if (obj.gtpc_teid6.has_value()) { ynl_attr_put_uint(nlh, ETHTOOL_A_FLOW_GTPC_TEID6, obj.gtpc_teid6.value()); - if (obj.gtpu_eh4.has_value()) + } + if (obj.gtpu_eh4.has_value()) { ynl_attr_put_uint(nlh, ETHTOOL_A_FLOW_GTPU_EH4, obj.gtpu_eh4.value()); - if (obj.gtpu_eh6.has_value()) + } + if (obj.gtpu_eh6.has_value()) { ynl_attr_put_uint(nlh, ETHTOOL_A_FLOW_GTPU_EH6, obj.gtpu_eh6.value()); - if (obj.gtpu_ul4.has_value()) + } + if (obj.gtpu_ul4.has_value()) { ynl_attr_put_uint(nlh, ETHTOOL_A_FLOW_GTPU_UL4, obj.gtpu_ul4.value()); - if (obj.gtpu_ul6.has_value()) + } + if (obj.gtpu_ul6.has_value()) { ynl_attr_put_uint(nlh, ETHTOOL_A_FLOW_GTPU_UL6, obj.gtpu_ul6.value()); - if (obj.gtpu_dl4.has_value()) + } + if (obj.gtpu_dl4.has_value()) { ynl_attr_put_uint(nlh, ETHTOOL_A_FLOW_GTPU_DL4, obj.gtpu_dl4.value()); - if (obj.gtpu_dl6.has_value()) + } + if (obj.gtpu_dl6.has_value()) { ynl_attr_put_uint(nlh, ETHTOOL_A_FLOW_GTPU_DL6, obj.gtpu_dl6.value()); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -1978,112 +2045,139 @@ int ethtool_flow_parse(struct ynl_parse_arg *yarg, const struct nlattr *nested) unsigned int type = ynl_attr_type(attr); if (type == ETHTOOL_A_FLOW_ETHER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->ether = (__u64)ynl_attr_get_uint(attr); } else if (type == ETHTOOL_A_FLOW_IP4) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->ip4 = (__u64)ynl_attr_get_uint(attr); } else if (type == ETHTOOL_A_FLOW_IP6) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->ip6 = (__u64)ynl_attr_get_uint(attr); } else if (type == ETHTOOL_A_FLOW_TCP4) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->tcp4 = (__u64)ynl_attr_get_uint(attr); } else if (type == ETHTOOL_A_FLOW_TCP6) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->tcp6 = (__u64)ynl_attr_get_uint(attr); } else if (type == ETHTOOL_A_FLOW_UDP4) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->udp4 = (__u64)ynl_attr_get_uint(attr); } else if (type == ETHTOOL_A_FLOW_UDP6) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->udp6 = (__u64)ynl_attr_get_uint(attr); } else if (type == ETHTOOL_A_FLOW_SCTP4) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->sctp4 = (__u64)ynl_attr_get_uint(attr); } else if (type == ETHTOOL_A_FLOW_SCTP6) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->sctp6 = (__u64)ynl_attr_get_uint(attr); } else if (type == ETHTOOL_A_FLOW_AH4) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->ah4 = (__u64)ynl_attr_get_uint(attr); } else if (type == ETHTOOL_A_FLOW_AH6) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->ah6 = (__u64)ynl_attr_get_uint(attr); } else if (type == ETHTOOL_A_FLOW_ESP4) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->esp4 = (__u64)ynl_attr_get_uint(attr); } else if (type == ETHTOOL_A_FLOW_ESP6) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->esp6 = (__u64)ynl_attr_get_uint(attr); } else if (type == ETHTOOL_A_FLOW_AH_ESP4) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->ah_esp4 = (__u64)ynl_attr_get_uint(attr); } else if (type == ETHTOOL_A_FLOW_AH_ESP6) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->ah_esp6 = (__u64)ynl_attr_get_uint(attr); } else if (type == ETHTOOL_A_FLOW_GTPU4) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->gtpu4 = (__u64)ynl_attr_get_uint(attr); } else if (type == ETHTOOL_A_FLOW_GTPU6) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->gtpu6 = (__u64)ynl_attr_get_uint(attr); } else if (type == ETHTOOL_A_FLOW_GTPC4) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->gtpc4 = (__u64)ynl_attr_get_uint(attr); } else if (type == ETHTOOL_A_FLOW_GTPC6) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->gtpc6 = (__u64)ynl_attr_get_uint(attr); } else if (type == ETHTOOL_A_FLOW_GTPC_TEID4) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->gtpc_teid4 = (__u64)ynl_attr_get_uint(attr); } else if (type == ETHTOOL_A_FLOW_GTPC_TEID6) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->gtpc_teid6 = (__u64)ynl_attr_get_uint(attr); } else if (type == ETHTOOL_A_FLOW_GTPU_EH4) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->gtpu_eh4 = (__u64)ynl_attr_get_uint(attr); } else if (type == ETHTOOL_A_FLOW_GTPU_EH6) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->gtpu_eh6 = (__u64)ynl_attr_get_uint(attr); } else if (type == ETHTOOL_A_FLOW_GTPU_UL4) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->gtpu_ul4 = (__u64)ynl_attr_get_uint(attr); } else if (type == ETHTOOL_A_FLOW_GTPU_UL6) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->gtpu_ul6 = (__u64)ynl_attr_get_uint(attr); } else if (type == ETHTOOL_A_FLOW_GTPU_DL4) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->gtpu_dl4 = (__u64)ynl_attr_get_uint(attr); } else if (type == ETHTOOL_A_FLOW_GTPU_DL6) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->gtpu_dl6 = (__u64)ynl_attr_get_uint(attr); } } @@ -2101,28 +2195,34 @@ int ethtool_mm_stat_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == ETHTOOL_A_MM_STAT_REASSEMBLY_ERRORS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->reassembly_errors = (__u64)ynl_attr_get_u64(attr); } else if (type == ETHTOOL_A_MM_STAT_SMD_ERRORS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->smd_errors = (__u64)ynl_attr_get_u64(attr); } else if (type == ETHTOOL_A_MM_STAT_REASSEMBLY_OK) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->reassembly_ok = (__u64)ynl_attr_get_u64(attr); } else if (type == ETHTOOL_A_MM_STAT_RX_FRAG_COUNT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->rx_frag_count = (__u64)ynl_attr_get_u64(attr); } else if (type == ETHTOOL_A_MM_STAT_TX_FRAG_COUNT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->tx_frag_count = (__u64)ynl_attr_get_u64(attr); } else if (type == ETHTOOL_A_MM_STAT_HOLD_COUNT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->hold_count = (__u64)ynl_attr_get_u64(attr); } } @@ -2136,12 +2236,15 @@ int ethtool_irq_moderation_put(struct nlmsghdr *nlh, unsigned int attr_type, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - if (obj.usec.has_value()) + if (obj.usec.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_IRQ_MODERATION_USEC, obj.usec.value()); - if (obj.pkts.has_value()) + } + if (obj.pkts.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_IRQ_MODERATION_PKTS, obj.pkts.value()); - if (obj.comps.has_value()) + } + if (obj.comps.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_IRQ_MODERATION_COMPS, obj.comps.value()); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -2157,16 +2260,19 @@ int ethtool_irq_moderation_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == ETHTOOL_A_IRQ_MODERATION_USEC) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->usec = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_IRQ_MODERATION_PKTS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->pkts = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_IRQ_MODERATION_COMPS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->comps = (__u32)ynl_attr_get_u32(attr); } } @@ -2184,16 +2290,19 @@ int ethtool_cable_result_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == ETHTOOL_A_CABLE_RESULT_PAIR) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->pair = (__u8)ynl_attr_get_u8(attr); } else if (type == ETHTOOL_A_CABLE_RESULT_CODE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->code = (__u8)ynl_attr_get_u8(attr); } else if (type == ETHTOOL_A_CABLE_RESULT_SRC) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->src = (__u32)ynl_attr_get_u32(attr); } } @@ -2211,16 +2320,19 @@ int ethtool_cable_fault_length_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == ETHTOOL_A_CABLE_FAULT_LENGTH_PAIR) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->pair = (__u8)ynl_attr_get_u8(attr); } else if (type == ETHTOOL_A_CABLE_FAULT_LENGTH_CM) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->cm = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_CABLE_FAULT_LENGTH_SRC) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->src = (__u32)ynl_attr_get_u32(attr); } } @@ -2238,16 +2350,19 @@ int ethtool_stats_grp_hist_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == ETHTOOL_A_STATS_GRP_HIST_BKT_LOW) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->hist_bkt_low = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_STATS_GRP_HIST_BKT_HI) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->hist_bkt_hi = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_STATS_GRP_HIST_VAL) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->hist_val = (__u64)ynl_attr_get_u64(attr); } } @@ -2261,12 +2376,15 @@ int ethtool_bitset_bit_put(struct nlmsghdr *nlh, unsigned int attr_type, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - if (obj.index.has_value()) + if (obj.index.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_BITSET_BIT_INDEX, obj.index.value()); - if (obj.name.size() > 0) + } + if (obj.name.size() > 0) { ynl_attr_put_str(nlh, ETHTOOL_A_BITSET_BIT_NAME, obj.name.data()); - if (obj.value) + } + if (obj.value) { ynl_attr_put(nlh, ETHTOOL_A_BITSET_BIT_VALUE, NULL, 0); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -2282,16 +2400,19 @@ int ethtool_bitset_bit_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == ETHTOOL_A_BITSET_BIT_INDEX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->index = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_BITSET_BIT_NAME) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->name.assign(ynl_attr_get_str(attr)); } else if (type == ETHTOOL_A_BITSET_BIT_VALUE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } } @@ -2308,12 +2429,14 @@ int ethtool_tunnel_udp_entry_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == ETHTOOL_A_TUNNEL_UDP_ENTRY_PORT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->port = (__u16)ynl_attr_get_u16(attr); } else if (type == ETHTOOL_A_TUNNEL_UDP_ENTRY_TYPE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->type = (int)ynl_attr_get_u32(attr); } } @@ -2327,10 +2450,12 @@ int ethtool_string_put(struct nlmsghdr *nlh, unsigned int attr_type, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - if (obj.index.has_value()) + if (obj.index.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_STRING_INDEX, obj.index.value()); - if (obj.value.size() > 0) + } + if (obj.value.size() > 0) { ynl_attr_put_str(nlh, ETHTOOL_A_STRING_VALUE, obj.value.data()); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -2346,12 +2471,14 @@ int ethtool_string_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == ETHTOOL_A_STRING_INDEX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->index = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_STRING_VALUE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->value.assign(ynl_attr_get_str(attr)); } } @@ -2365,8 +2492,9 @@ int ethtool_profile_put(struct nlmsghdr *nlh, unsigned int attr_type, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - for (unsigned int i = 0; i < obj.irq_moderation.size(); i++) + for (unsigned int i = 0; i < obj.irq_moderation.size(); i++) { ethtool_irq_moderation_put(nlh, ETHTOOL_A_PROFILE_IRQ_MODERATION, obj.irq_moderation[i]); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -2383,8 +2511,9 @@ int ethtool_profile_parse(struct ynl_parse_arg *yarg, parg.ys = yarg->ys; - if (dst->irq_moderation.size() > 0) + if (dst->irq_moderation.size() > 0) { return ynl_error_parse(yarg, "attribute already present (profile.irq-moderation)"); + } ynl_attr_for_each_nested(attr, nested) { unsigned int type = ynl_attr_type(attr); @@ -2401,8 +2530,9 @@ int ethtool_profile_parse(struct ynl_parse_arg *yarg, ynl_attr_for_each_nested(attr, nested) { if (ynl_attr_type(attr) == ETHTOOL_A_PROFILE_IRQ_MODERATION) { parg.data = &dst->irq_moderation[i]; - if (ethtool_irq_moderation_parse(&parg, attr)) + if (ethtool_irq_moderation_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } i++; } } @@ -2424,21 +2554,25 @@ int ethtool_cable_nest_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == ETHTOOL_A_CABLE_NEST_RESULT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_cable_result_nest; parg.data = &dst->result.emplace(); - if (ethtool_cable_result_parse(&parg, attr)) + if (ethtool_cable_result_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_CABLE_NEST_FAULT_LENGTH) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_cable_fault_length_nest; parg.data = &dst->fault_length.emplace(); - if (ethtool_cable_fault_length_parse(&parg, attr)) + if (ethtool_cable_fault_length_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } } @@ -2458,44 +2592,54 @@ int ethtool_stats_grp_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == ETHTOOL_A_STATS_GRP_ID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->id = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_STATS_GRP_SS_ID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->ss_id = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_STATS_GRP_STAT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->stat = (__u64)ynl_attr_get_u64(attr); } else if (type == ETHTOOL_A_STATS_GRP_HIST_RX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_stats_grp_hist_nest; parg.data = &dst->hist_rx.emplace(); - if (ethtool_stats_grp_hist_parse(&parg, attr)) + if (ethtool_stats_grp_hist_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_STATS_GRP_HIST_TX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_stats_grp_hist_nest; parg.data = &dst->hist_tx.emplace(); - if (ethtool_stats_grp_hist_parse(&parg, attr)) + if (ethtool_stats_grp_hist_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_STATS_GRP_HIST_BKT_LOW) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->hist_bkt_low = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_STATS_GRP_HIST_BKT_HI) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->hist_bkt_hi = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_STATS_GRP_HIST_VAL) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->hist_val = (__u64)ynl_attr_get_u64(attr); } } @@ -2509,8 +2653,9 @@ int ethtool_bitset_bits_put(struct nlmsghdr *nlh, unsigned int attr_type, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - for (unsigned int i = 0; i < obj.bit.size(); i++) + for (unsigned int i = 0; i < obj.bit.size(); i++) { ethtool_bitset_bit_put(nlh, ETHTOOL_A_BITSET_BITS_BIT, obj.bit[i]); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -2527,8 +2672,9 @@ int ethtool_bitset_bits_parse(struct ynl_parse_arg *yarg, parg.ys = yarg->ys; - if (dst->bit.size() > 0) + if (dst->bit.size() > 0) { return ynl_error_parse(yarg, "attribute already present (bitset-bits.bit)"); + } ynl_attr_for_each_nested(attr, nested) { unsigned int type = ynl_attr_type(attr); @@ -2545,8 +2691,9 @@ int ethtool_bitset_bits_parse(struct ynl_parse_arg *yarg, ynl_attr_for_each_nested(attr, nested) { if (ynl_attr_type(attr) == ETHTOOL_A_BITSET_BITS_BIT) { parg.data = &dst->bit[i]; - if (ethtool_bitset_bit_parse(&parg, attr)) + if (ethtool_bitset_bit_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } i++; } } @@ -2561,8 +2708,9 @@ int ethtool_strings_put(struct nlmsghdr *nlh, unsigned int attr_type, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - for (unsigned int i = 0; i < obj.string.size(); i++) + for (unsigned int i = 0; i < obj.string.size(); i++) { ethtool_string_put(nlh, ETHTOOL_A_STRINGS_STRING, obj.string[i]); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -2579,8 +2727,9 @@ int ethtool_strings_parse(struct ynl_parse_arg *yarg, parg.ys = yarg->ys; - if (dst->string.size() > 0) + if (dst->string.size() > 0) { return ynl_error_parse(yarg, "attribute already present (strings.string)"); + } ynl_attr_for_each_nested(attr, nested) { unsigned int type = ynl_attr_type(attr); @@ -2597,8 +2746,9 @@ int ethtool_strings_parse(struct ynl_parse_arg *yarg, ynl_attr_for_each_nested(attr, nested) { if (ynl_attr_type(attr) == ETHTOOL_A_STRINGS_STRING) { parg.data = &dst->string[i]; - if (ethtool_string_parse(&parg, attr)) + if (ethtool_string_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } i++; } } @@ -2613,16 +2763,21 @@ int ethtool_bitset_put(struct nlmsghdr *nlh, unsigned int attr_type, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - if (obj.nomask) + if (obj.nomask) { ynl_attr_put(nlh, ETHTOOL_A_BITSET_NOMASK, NULL, 0); - if (obj.size.has_value()) + } + if (obj.size.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_BITSET_SIZE, obj.size.value()); - if (obj.bits.has_value()) + } + if (obj.bits.has_value()) { ethtool_bitset_bits_put(nlh, ETHTOOL_A_BITSET_BITS, obj.bits.value()); - if (obj.value.size() > 0) + } + if (obj.value.size() > 0) { ynl_attr_put(nlh, ETHTOOL_A_BITSET_VALUE, obj.value.data(), obj.value.size()); - if (obj.mask.size() > 0) + } + if (obj.mask.size() > 0) { ynl_attr_put(nlh, ETHTOOL_A_BITSET_MASK, obj.mask.data(), obj.mask.size()); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -2641,29 +2796,35 @@ int ethtool_bitset_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == ETHTOOL_A_BITSET_NOMASK) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_BITSET_SIZE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->size = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_BITSET_BITS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_bitset_bits_nest; parg.data = &dst->bits.emplace(); - if (ethtool_bitset_bits_parse(&parg, attr)) + if (ethtool_bitset_bits_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_BITSET_VALUE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->value.assign(data, data + len); } else if (type == ETHTOOL_A_BITSET_MASK) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->mask.assign(data, data + len); @@ -2679,12 +2840,15 @@ int ethtool_stringset_put(struct nlmsghdr *nlh, unsigned int attr_type, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - if (obj.id.has_value()) + if (obj.id.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_STRINGSET_ID, obj.id.value()); - if (obj.count.has_value()) + } + if (obj.count.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_STRINGSET_COUNT, obj.count.value()); - for (unsigned int i = 0; i < obj.strings.size(); i++) + } + for (unsigned int i = 0; i < obj.strings.size(); i++) { ethtool_strings_put(nlh, ETHTOOL_A_STRINGSET_STRINGS, obj.strings[i]); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -2701,19 +2865,22 @@ int ethtool_stringset_parse(struct ynl_parse_arg *yarg, parg.ys = yarg->ys; - if (dst->strings.size() > 0) + if (dst->strings.size() > 0) { return ynl_error_parse(yarg, "attribute already present (stringset.strings)"); + } ynl_attr_for_each_nested(attr, nested) { unsigned int type = ynl_attr_type(attr); if (type == ETHTOOL_A_STRINGSET_ID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->id = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_STRINGSET_COUNT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->count = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_STRINGSET_STRINGS) { n_strings++; @@ -2727,8 +2894,9 @@ int ethtool_stringset_parse(struct ynl_parse_arg *yarg, ynl_attr_for_each_nested(attr, nested) { if (ynl_attr_type(attr) == ETHTOOL_A_STRINGSET_STRINGS) { parg.data = &dst->strings[i]; - if (ethtool_strings_parse(&parg, attr)) + if (ethtool_strings_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } i++; } } @@ -2748,24 +2916,28 @@ int ethtool_tunnel_udp_table_parse(struct ynl_parse_arg *yarg, parg.ys = yarg->ys; - if (dst->entry.size() > 0) + if (dst->entry.size() > 0) { return ynl_error_parse(yarg, "attribute already present (tunnel-udp-table.entry)"); + } ynl_attr_for_each_nested(attr, nested) { unsigned int type = ynl_attr_type(attr); if (type == ETHTOOL_A_TUNNEL_UDP_TABLE_SIZE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->size = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_TUNNEL_UDP_TABLE_TYPES) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_bitset_nest; parg.data = &dst->types.emplace(); - if (ethtool_bitset_parse(&parg, attr)) + if (ethtool_bitset_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_TUNNEL_UDP_TABLE_ENTRY) { n_entry++; } @@ -2778,8 +2950,9 @@ int ethtool_tunnel_udp_table_parse(struct ynl_parse_arg *yarg, ynl_attr_for_each_nested(attr, nested) { if (ynl_attr_type(attr) == ETHTOOL_A_TUNNEL_UDP_TABLE_ENTRY) { parg.data = &dst->entry[i]; - if (ethtool_tunnel_udp_entry_parse(&parg, attr)) + if (ethtool_tunnel_udp_entry_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } i++; } } @@ -2794,8 +2967,9 @@ int ethtool_stringsets_put(struct nlmsghdr *nlh, unsigned int attr_type, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - for (unsigned int i = 0; i < obj.stringset.size(); i++) + for (unsigned int i = 0; i < obj.stringset.size(); i++) { ethtool_stringset_put(nlh, ETHTOOL_A_STRINGSETS_STRINGSET, obj.stringset[i]); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -2812,8 +2986,9 @@ int ethtool_stringsets_parse(struct ynl_parse_arg *yarg, parg.ys = yarg->ys; - if (dst->stringset.size() > 0) + if (dst->stringset.size() > 0) { return ynl_error_parse(yarg, "attribute already present (stringsets.stringset)"); + } ynl_attr_for_each_nested(attr, nested) { unsigned int type = ynl_attr_type(attr); @@ -2830,8 +3005,9 @@ int ethtool_stringsets_parse(struct ynl_parse_arg *yarg, ynl_attr_for_each_nested(attr, nested) { if (ynl_attr_type(attr) == ETHTOOL_A_STRINGSETS_STRINGSET) { parg.data = &dst->stringset[i]; - if (ethtool_stringset_parse(&parg, attr)) + if (ethtool_stringset_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } i++; } } @@ -2853,13 +3029,15 @@ int ethtool_tunnel_udp_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == ETHTOOL_A_TUNNEL_UDP_TABLE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_tunnel_udp_table_nest; parg.data = &dst->table.emplace(); - if (ethtool_tunnel_udp_table_parse(&parg, attr)) + if (ethtool_tunnel_udp_table_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } } @@ -2882,21 +3060,25 @@ int ethtool_strset_get_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == ETHTOOL_A_STRSET_HEADER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_header_nest; parg.data = &dst->header.emplace(); - if (ethtool_header_parse(&parg, attr)) + if (ethtool_header_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_STRSET_STRINGSETS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_stringsets_nest; parg.data = &dst->stringsets.emplace(); - if (ethtool_stringsets_parse(&parg, attr)) + if (ethtool_stringsets_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } } @@ -2915,12 +3097,15 @@ ethtool_strset_get(ynl_cpp::ynl_socket& ys, ethtool_strset_get_req& req) ((struct ynl_sock*)ys)->req_policy = ðtool_strset_nest; yrs.yarg.rsp_policy = ðtool_strset_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_STRSET_HEADER, req.header.value()); - if (req.stringsets.has_value()) + } + if (req.stringsets.has_value()) { ethtool_stringsets_put(nlh, ETHTOOL_A_STRSET_STRINGSETS, req.stringsets.value()); - if (req.counts_only) + } + if (req.counts_only) { ynl_attr_put(nlh, ETHTOOL_A_STRSET_COUNTS_ONLY, NULL, 0); + } rsp.reset(new ethtool_strset_get_rsp()); yrs.yarg.data = rsp.get(); @@ -2928,8 +3113,9 @@ ethtool_strset_get(ynl_cpp::ynl_socket& ys, ethtool_strset_get_req& req) yrs.rsp_cmd = ETHTOOL_MSG_STRSET_GET; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -2954,16 +3140,20 @@ ethtool_strset_get_dump(ynl_cpp::ynl_socket& ys, nlh = ynl_gemsg_start_dump(ys, ((struct ynl_sock*)ys)->family_id, ETHTOOL_MSG_STRSET_GET, 1); ((struct ynl_sock*)ys)->req_policy = ðtool_strset_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_STRSET_HEADER, req.header.value()); - if (req.stringsets.has_value()) + } + if (req.stringsets.has_value()) { ethtool_stringsets_put(nlh, ETHTOOL_A_STRSET_STRINGSETS, req.stringsets.value()); - if (req.counts_only) + } + if (req.counts_only) { ynl_attr_put(nlh, ETHTOOL_A_STRSET_COUNTS_ONLY, NULL, 0); + } err = ynl_exec_dump_no_alloc(ys, nlh, &yds); - if (err < 0) + if (err < 0) { return nullptr; + } return ret; } @@ -2984,32 +3174,39 @@ int ethtool_linkinfo_get_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == ETHTOOL_A_LINKINFO_HEADER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_header_nest; parg.data = &dst->header.emplace(); - if (ethtool_header_parse(&parg, attr)) + if (ethtool_header_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_LINKINFO_PORT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->port = (__u8)ynl_attr_get_u8(attr); } else if (type == ETHTOOL_A_LINKINFO_PHYADDR) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->phyaddr = (__u8)ynl_attr_get_u8(attr); } else if (type == ETHTOOL_A_LINKINFO_TP_MDIX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->tp_mdix = (__u8)ynl_attr_get_u8(attr); } else if (type == ETHTOOL_A_LINKINFO_TP_MDIX_CTRL) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->tp_mdix_ctrl = (__u8)ynl_attr_get_u8(attr); } else if (type == ETHTOOL_A_LINKINFO_TRANSCEIVER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->transceiver = (__u8)ynl_attr_get_u8(attr); } } @@ -3029,8 +3226,9 @@ ethtool_linkinfo_get(ynl_cpp::ynl_socket& ys, ethtool_linkinfo_get_req& req) ((struct ynl_sock*)ys)->req_policy = ðtool_linkinfo_nest; yrs.yarg.rsp_policy = ðtool_linkinfo_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_LINKINFO_HEADER, req.header.value()); + } rsp.reset(new ethtool_linkinfo_get_rsp()); yrs.yarg.data = rsp.get(); @@ -3038,8 +3236,9 @@ ethtool_linkinfo_get(ynl_cpp::ynl_socket& ys, ethtool_linkinfo_get_req& req) yrs.rsp_cmd = ETHTOOL_MSG_LINKINFO_GET; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -3064,12 +3263,14 @@ ethtool_linkinfo_get_dump(ynl_cpp::ynl_socket& ys, nlh = ynl_gemsg_start_dump(ys, ((struct ynl_sock*)ys)->family_id, ETHTOOL_MSG_LINKINFO_GET, 1); ((struct ynl_sock*)ys)->req_policy = ðtool_linkinfo_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_LINKINFO_HEADER, req.header.value()); + } err = ynl_exec_dump_no_alloc(ys, nlh, &yds); - if (err < 0) + if (err < 0) { return nullptr; + } return ret; } @@ -3087,22 +3288,29 @@ int ethtool_linkinfo_set(ynl_cpp::ynl_socket& ys, nlh = ynl_gemsg_start_req(ys, ((struct ynl_sock*)ys)->family_id, ETHTOOL_MSG_LINKINFO_SET, 1); ((struct ynl_sock*)ys)->req_policy = ðtool_linkinfo_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_LINKINFO_HEADER, req.header.value()); - if (req.port.has_value()) + } + if (req.port.has_value()) { ynl_attr_put_u8(nlh, ETHTOOL_A_LINKINFO_PORT, req.port.value()); - if (req.phyaddr.has_value()) + } + if (req.phyaddr.has_value()) { ynl_attr_put_u8(nlh, ETHTOOL_A_LINKINFO_PHYADDR, req.phyaddr.value()); - if (req.tp_mdix.has_value()) + } + if (req.tp_mdix.has_value()) { ynl_attr_put_u8(nlh, ETHTOOL_A_LINKINFO_TP_MDIX, req.tp_mdix.value()); - if (req.tp_mdix_ctrl.has_value()) + } + if (req.tp_mdix_ctrl.has_value()) { ynl_attr_put_u8(nlh, ETHTOOL_A_LINKINFO_TP_MDIX_CTRL, req.tp_mdix_ctrl.value()); - if (req.transceiver.has_value()) + } + if (req.transceiver.has_value()) { ynl_attr_put_u8(nlh, ETHTOOL_A_LINKINFO_TRANSCEIVER, req.transceiver.value()); + } err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return -1; + } return 0; } @@ -3123,56 +3331,69 @@ int ethtool_linkmodes_get_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == ETHTOOL_A_LINKMODES_HEADER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_header_nest; parg.data = &dst->header.emplace(); - if (ethtool_header_parse(&parg, attr)) + if (ethtool_header_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_LINKMODES_AUTONEG) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->autoneg = (__u8)ynl_attr_get_u8(attr); } else if (type == ETHTOOL_A_LINKMODES_OURS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_bitset_nest; parg.data = &dst->ours.emplace(); - if (ethtool_bitset_parse(&parg, attr)) + if (ethtool_bitset_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_LINKMODES_PEER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_bitset_nest; parg.data = &dst->peer.emplace(); - if (ethtool_bitset_parse(&parg, attr)) + if (ethtool_bitset_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_LINKMODES_SPEED) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->speed = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_LINKMODES_DUPLEX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->duplex = (__u8)ynl_attr_get_u8(attr); } else if (type == ETHTOOL_A_LINKMODES_MASTER_SLAVE_CFG) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->master_slave_cfg = (__u8)ynl_attr_get_u8(attr); } else if (type == ETHTOOL_A_LINKMODES_MASTER_SLAVE_STATE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->master_slave_state = (__u8)ynl_attr_get_u8(attr); } else if (type == ETHTOOL_A_LINKMODES_LANES) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->lanes = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_LINKMODES_RATE_MATCHING) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->rate_matching = (__u8)ynl_attr_get_u8(attr); } } @@ -3192,8 +3413,9 @@ ethtool_linkmodes_get(ynl_cpp::ynl_socket& ys, ethtool_linkmodes_get_req& req) ((struct ynl_sock*)ys)->req_policy = ðtool_linkmodes_nest; yrs.yarg.rsp_policy = ðtool_linkmodes_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_LINKMODES_HEADER, req.header.value()); + } rsp.reset(new ethtool_linkmodes_get_rsp()); yrs.yarg.data = rsp.get(); @@ -3201,8 +3423,9 @@ ethtool_linkmodes_get(ynl_cpp::ynl_socket& ys, ethtool_linkmodes_get_req& req) yrs.rsp_cmd = ETHTOOL_MSG_LINKMODES_GET; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -3227,12 +3450,14 @@ ethtool_linkmodes_get_dump(ynl_cpp::ynl_socket& ys, nlh = ynl_gemsg_start_dump(ys, ((struct ynl_sock*)ys)->family_id, ETHTOOL_MSG_LINKMODES_GET, 1); ((struct ynl_sock*)ys)->req_policy = ðtool_linkmodes_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_LINKMODES_HEADER, req.header.value()); + } err = ynl_exec_dump_no_alloc(ys, nlh, &yds); - if (err < 0) + if (err < 0) { return nullptr; + } return ret; } @@ -3250,30 +3475,41 @@ int ethtool_linkmodes_set(ynl_cpp::ynl_socket& ys, nlh = ynl_gemsg_start_req(ys, ((struct ynl_sock*)ys)->family_id, ETHTOOL_MSG_LINKMODES_SET, 1); ((struct ynl_sock*)ys)->req_policy = ðtool_linkmodes_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_LINKMODES_HEADER, req.header.value()); - if (req.autoneg.has_value()) + } + if (req.autoneg.has_value()) { ynl_attr_put_u8(nlh, ETHTOOL_A_LINKMODES_AUTONEG, req.autoneg.value()); - if (req.ours.has_value()) + } + if (req.ours.has_value()) { ethtool_bitset_put(nlh, ETHTOOL_A_LINKMODES_OURS, req.ours.value()); - if (req.peer.has_value()) + } + if (req.peer.has_value()) { ethtool_bitset_put(nlh, ETHTOOL_A_LINKMODES_PEER, req.peer.value()); - if (req.speed.has_value()) + } + if (req.speed.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_LINKMODES_SPEED, req.speed.value()); - if (req.duplex.has_value()) + } + if (req.duplex.has_value()) { ynl_attr_put_u8(nlh, ETHTOOL_A_LINKMODES_DUPLEX, req.duplex.value()); - if (req.master_slave_cfg.has_value()) + } + if (req.master_slave_cfg.has_value()) { ynl_attr_put_u8(nlh, ETHTOOL_A_LINKMODES_MASTER_SLAVE_CFG, req.master_slave_cfg.value()); - if (req.master_slave_state.has_value()) + } + if (req.master_slave_state.has_value()) { ynl_attr_put_u8(nlh, ETHTOOL_A_LINKMODES_MASTER_SLAVE_STATE, req.master_slave_state.value()); - if (req.lanes.has_value()) + } + if (req.lanes.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_LINKMODES_LANES, req.lanes.value()); - if (req.rate_matching.has_value()) + } + if (req.rate_matching.has_value()) { ynl_attr_put_u8(nlh, ETHTOOL_A_LINKMODES_RATE_MATCHING, req.rate_matching.value()); + } err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return -1; + } return 0; } @@ -3294,36 +3530,44 @@ int ethtool_linkstate_get_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == ETHTOOL_A_LINKSTATE_HEADER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_header_nest; parg.data = &dst->header.emplace(); - if (ethtool_header_parse(&parg, attr)) + if (ethtool_header_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_LINKSTATE_LINK) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->link = (__u8)ynl_attr_get_u8(attr); } else if (type == ETHTOOL_A_LINKSTATE_SQI) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->sqi = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_LINKSTATE_SQI_MAX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->sqi_max = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_LINKSTATE_EXT_STATE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->ext_state = (__u8)ynl_attr_get_u8(attr); } else if (type == ETHTOOL_A_LINKSTATE_EXT_SUBSTATE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->ext_substate = (__u8)ynl_attr_get_u8(attr); } else if (type == ETHTOOL_A_LINKSTATE_EXT_DOWN_CNT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->ext_down_cnt = (__u32)ynl_attr_get_u32(attr); } } @@ -3343,8 +3587,9 @@ ethtool_linkstate_get(ynl_cpp::ynl_socket& ys, ethtool_linkstate_get_req& req) ((struct ynl_sock*)ys)->req_policy = ðtool_linkstate_nest; yrs.yarg.rsp_policy = ðtool_linkstate_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_LINKSTATE_HEADER, req.header.value()); + } rsp.reset(new ethtool_linkstate_get_rsp()); yrs.yarg.data = rsp.get(); @@ -3352,8 +3597,9 @@ ethtool_linkstate_get(ynl_cpp::ynl_socket& ys, ethtool_linkstate_get_req& req) yrs.rsp_cmd = ETHTOOL_MSG_LINKSTATE_GET; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -3378,12 +3624,14 @@ ethtool_linkstate_get_dump(ynl_cpp::ynl_socket& ys, nlh = ynl_gemsg_start_dump(ys, ((struct ynl_sock*)ys)->family_id, ETHTOOL_MSG_LINKSTATE_GET, 1); ((struct ynl_sock*)ys)->req_policy = ðtool_linkstate_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_LINKSTATE_HEADER, req.header.value()); + } err = ynl_exec_dump_no_alloc(ys, nlh, &yds); - if (err < 0) + if (err < 0) { return nullptr; + } return ret; } @@ -3404,21 +3652,25 @@ int ethtool_debug_get_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == ETHTOOL_A_DEBUG_HEADER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_header_nest; parg.data = &dst->header.emplace(); - if (ethtool_header_parse(&parg, attr)) + if (ethtool_header_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_DEBUG_MSGMASK) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_bitset_nest; parg.data = &dst->msgmask.emplace(); - if (ethtool_bitset_parse(&parg, attr)) + if (ethtool_bitset_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } } @@ -3437,8 +3689,9 @@ ethtool_debug_get(ynl_cpp::ynl_socket& ys, ethtool_debug_get_req& req) ((struct ynl_sock*)ys)->req_policy = ðtool_debug_nest; yrs.yarg.rsp_policy = ðtool_debug_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_DEBUG_HEADER, req.header.value()); + } rsp.reset(new ethtool_debug_get_rsp()); yrs.yarg.data = rsp.get(); @@ -3446,8 +3699,9 @@ ethtool_debug_get(ynl_cpp::ynl_socket& ys, ethtool_debug_get_req& req) yrs.rsp_cmd = ETHTOOL_MSG_DEBUG_GET; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -3472,12 +3726,14 @@ ethtool_debug_get_dump(ynl_cpp::ynl_socket& ys, nlh = ynl_gemsg_start_dump(ys, ((struct ynl_sock*)ys)->family_id, ETHTOOL_MSG_DEBUG_GET, 1); ((struct ynl_sock*)ys)->req_policy = ðtool_debug_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_DEBUG_HEADER, req.header.value()); + } err = ynl_exec_dump_no_alloc(ys, nlh, &yds); - if (err < 0) + if (err < 0) { return nullptr; + } return ret; } @@ -3494,14 +3750,17 @@ int ethtool_debug_set(ynl_cpp::ynl_socket& ys, ethtool_debug_set_req& req) nlh = ynl_gemsg_start_req(ys, ((struct ynl_sock*)ys)->family_id, ETHTOOL_MSG_DEBUG_SET, 1); ((struct ynl_sock*)ys)->req_policy = ðtool_debug_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_DEBUG_HEADER, req.header.value()); - if (req.msgmask.has_value()) + } + if (req.msgmask.has_value()) { ethtool_bitset_put(nlh, ETHTOOL_A_DEBUG_MSGMASK, req.msgmask.value()); + } err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return -1; + } return 0; } @@ -3522,24 +3781,29 @@ int ethtool_wol_get_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == ETHTOOL_A_WOL_HEADER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_header_nest; parg.data = &dst->header.emplace(); - if (ethtool_header_parse(&parg, attr)) + if (ethtool_header_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_WOL_MODES) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_bitset_nest; parg.data = &dst->modes.emplace(); - if (ethtool_bitset_parse(&parg, attr)) + if (ethtool_bitset_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_WOL_SOPASS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->sopass.assign(data, data + len); @@ -3561,8 +3825,9 @@ ethtool_wol_get(ynl_cpp::ynl_socket& ys, ethtool_wol_get_req& req) ((struct ynl_sock*)ys)->req_policy = ðtool_wol_nest; yrs.yarg.rsp_policy = ðtool_wol_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_WOL_HEADER, req.header.value()); + } rsp.reset(new ethtool_wol_get_rsp()); yrs.yarg.data = rsp.get(); @@ -3570,8 +3835,9 @@ ethtool_wol_get(ynl_cpp::ynl_socket& ys, ethtool_wol_get_req& req) yrs.rsp_cmd = ETHTOOL_MSG_WOL_GET; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -3595,12 +3861,14 @@ ethtool_wol_get_dump(ynl_cpp::ynl_socket& ys, ethtool_wol_get_req_dump& req) nlh = ynl_gemsg_start_dump(ys, ((struct ynl_sock*)ys)->family_id, ETHTOOL_MSG_WOL_GET, 1); ((struct ynl_sock*)ys)->req_policy = ðtool_wol_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_WOL_HEADER, req.header.value()); + } err = ynl_exec_dump_no_alloc(ys, nlh, &yds); - if (err < 0) + if (err < 0) { return nullptr; + } return ret; } @@ -3617,16 +3885,20 @@ int ethtool_wol_set(ynl_cpp::ynl_socket& ys, ethtool_wol_set_req& req) nlh = ynl_gemsg_start_req(ys, ((struct ynl_sock*)ys)->family_id, ETHTOOL_MSG_WOL_SET, 1); ((struct ynl_sock*)ys)->req_policy = ðtool_wol_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_WOL_HEADER, req.header.value()); - if (req.modes.has_value()) + } + if (req.modes.has_value()) { ethtool_bitset_put(nlh, ETHTOOL_A_WOL_MODES, req.modes.value()); - if (req.sopass.size() > 0) + } + if (req.sopass.size() > 0) { ynl_attr_put(nlh, ETHTOOL_A_WOL_SOPASS, req.sopass.data(), req.sopass.size()); + } err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return -1; + } return 0; } @@ -3647,45 +3919,55 @@ int ethtool_features_get_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == ETHTOOL_A_FEATURES_HEADER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_header_nest; parg.data = &dst->header.emplace(); - if (ethtool_header_parse(&parg, attr)) + if (ethtool_header_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_FEATURES_HW) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_bitset_nest; parg.data = &dst->hw.emplace(); - if (ethtool_bitset_parse(&parg, attr)) + if (ethtool_bitset_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_FEATURES_WANTED) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_bitset_nest; parg.data = &dst->wanted.emplace(); - if (ethtool_bitset_parse(&parg, attr)) + if (ethtool_bitset_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_FEATURES_ACTIVE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_bitset_nest; parg.data = &dst->active.emplace(); - if (ethtool_bitset_parse(&parg, attr)) + if (ethtool_bitset_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_FEATURES_NOCHANGE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_bitset_nest; parg.data = &dst->nochange.emplace(); - if (ethtool_bitset_parse(&parg, attr)) + if (ethtool_bitset_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } } @@ -3704,8 +3986,9 @@ ethtool_features_get(ynl_cpp::ynl_socket& ys, ethtool_features_get_req& req) ((struct ynl_sock*)ys)->req_policy = ðtool_features_nest; yrs.yarg.rsp_policy = ðtool_features_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_FEATURES_HEADER, req.header.value()); + } rsp.reset(new ethtool_features_get_rsp()); yrs.yarg.data = rsp.get(); @@ -3713,8 +3996,9 @@ ethtool_features_get(ynl_cpp::ynl_socket& ys, ethtool_features_get_req& req) yrs.rsp_cmd = ETHTOOL_MSG_FEATURES_GET; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -3739,12 +4023,14 @@ ethtool_features_get_dump(ynl_cpp::ynl_socket& ys, nlh = ynl_gemsg_start_dump(ys, ((struct ynl_sock*)ys)->family_id, ETHTOOL_MSG_FEATURES_GET, 1); ((struct ynl_sock*)ys)->req_policy = ðtool_features_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_FEATURES_HEADER, req.header.value()); + } err = ynl_exec_dump_no_alloc(ys, nlh, &yds); - if (err < 0) + if (err < 0) { return nullptr; + } return ret; } @@ -3766,45 +4052,55 @@ int ethtool_features_set_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == ETHTOOL_A_FEATURES_HEADER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_header_nest; parg.data = &dst->header.emplace(); - if (ethtool_header_parse(&parg, attr)) + if (ethtool_header_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_FEATURES_HW) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_bitset_nest; parg.data = &dst->hw.emplace(); - if (ethtool_bitset_parse(&parg, attr)) + if (ethtool_bitset_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_FEATURES_WANTED) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_bitset_nest; parg.data = &dst->wanted.emplace(); - if (ethtool_bitset_parse(&parg, attr)) + if (ethtool_bitset_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_FEATURES_ACTIVE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_bitset_nest; parg.data = &dst->active.emplace(); - if (ethtool_bitset_parse(&parg, attr)) + if (ethtool_bitset_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_FEATURES_NOCHANGE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_bitset_nest; parg.data = &dst->nochange.emplace(); - if (ethtool_bitset_parse(&parg, attr)) + if (ethtool_bitset_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } } @@ -3823,16 +4119,21 @@ ethtool_features_set(ynl_cpp::ynl_socket& ys, ethtool_features_set_req& req) ((struct ynl_sock*)ys)->req_policy = ðtool_features_nest; yrs.yarg.rsp_policy = ðtool_features_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_FEATURES_HEADER, req.header.value()); - if (req.hw.has_value()) + } + if (req.hw.has_value()) { ethtool_bitset_put(nlh, ETHTOOL_A_FEATURES_HW, req.hw.value()); - if (req.wanted.has_value()) + } + if (req.wanted.has_value()) { ethtool_bitset_put(nlh, ETHTOOL_A_FEATURES_WANTED, req.wanted.value()); - if (req.active.has_value()) + } + if (req.active.has_value()) { ethtool_bitset_put(nlh, ETHTOOL_A_FEATURES_ACTIVE, req.active.value()); - if (req.nochange.has_value()) + } + if (req.nochange.has_value()) { ethtool_bitset_put(nlh, ETHTOOL_A_FEATURES_NOCHANGE, req.nochange.value()); + } rsp.reset(new ethtool_features_set_rsp()); yrs.yarg.data = rsp.get(); @@ -3840,8 +4141,9 @@ ethtool_features_set(ynl_cpp::ynl_socket& ys, ethtool_features_set_req& req) yrs.rsp_cmd = ETHTOOL_MSG_FEATURES_SET; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -3862,21 +4164,25 @@ int ethtool_privflags_get_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == ETHTOOL_A_PRIVFLAGS_HEADER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_header_nest; parg.data = &dst->header.emplace(); - if (ethtool_header_parse(&parg, attr)) + if (ethtool_header_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_PRIVFLAGS_FLAGS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_bitset_nest; parg.data = &dst->flags.emplace(); - if (ethtool_bitset_parse(&parg, attr)) + if (ethtool_bitset_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } } @@ -3895,8 +4201,9 @@ ethtool_privflags_get(ynl_cpp::ynl_socket& ys, ethtool_privflags_get_req& req) ((struct ynl_sock*)ys)->req_policy = ðtool_privflags_nest; yrs.yarg.rsp_policy = ðtool_privflags_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_PRIVFLAGS_HEADER, req.header.value()); + } rsp.reset(new ethtool_privflags_get_rsp()); yrs.yarg.data = rsp.get(); @@ -3904,8 +4211,9 @@ ethtool_privflags_get(ynl_cpp::ynl_socket& ys, ethtool_privflags_get_req& req) yrs.rsp_cmd = 14; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -3930,12 +4238,14 @@ ethtool_privflags_get_dump(ynl_cpp::ynl_socket& ys, nlh = ynl_gemsg_start_dump(ys, ((struct ynl_sock*)ys)->family_id, ETHTOOL_MSG_PRIVFLAGS_GET, 1); ((struct ynl_sock*)ys)->req_policy = ðtool_privflags_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_PRIVFLAGS_HEADER, req.header.value()); + } err = ynl_exec_dump_no_alloc(ys, nlh, &yds); - if (err < 0) + if (err < 0) { return nullptr; + } return ret; } @@ -3953,14 +4263,17 @@ int ethtool_privflags_set(ynl_cpp::ynl_socket& ys, nlh = ynl_gemsg_start_req(ys, ((struct ynl_sock*)ys)->family_id, ETHTOOL_MSG_PRIVFLAGS_SET, 1); ((struct ynl_sock*)ys)->req_policy = ðtool_privflags_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_PRIVFLAGS_HEADER, req.header.value()); - if (req.flags.has_value()) + } + if (req.flags.has_value()) { ethtool_bitset_put(nlh, ETHTOOL_A_PRIVFLAGS_FLAGS, req.flags.value()); + } err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return -1; + } return 0; } @@ -3981,80 +4294,99 @@ int ethtool_rings_get_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == ETHTOOL_A_RINGS_HEADER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_header_nest; parg.data = &dst->header.emplace(); - if (ethtool_header_parse(&parg, attr)) + if (ethtool_header_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_RINGS_RX_MAX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->rx_max = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_RINGS_RX_MINI_MAX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->rx_mini_max = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_RINGS_RX_JUMBO_MAX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->rx_jumbo_max = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_RINGS_TX_MAX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->tx_max = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_RINGS_RX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->rx = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_RINGS_RX_MINI) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->rx_mini = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_RINGS_RX_JUMBO) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->rx_jumbo = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_RINGS_TX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->tx = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_RINGS_RX_BUF_LEN) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->rx_buf_len = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_RINGS_TCP_DATA_SPLIT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->tcp_data_split = (enum ethtool_tcp_data_split)ynl_attr_get_u8(attr); } else if (type == ETHTOOL_A_RINGS_CQE_SIZE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->cqe_size = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_RINGS_TX_PUSH) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->tx_push = (__u8)ynl_attr_get_u8(attr); } else if (type == ETHTOOL_A_RINGS_RX_PUSH) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->rx_push = (__u8)ynl_attr_get_u8(attr); } else if (type == ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->tx_push_buf_len = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN_MAX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->tx_push_buf_len_max = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_RINGS_HDS_THRESH) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->hds_thresh = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_RINGS_HDS_THRESH_MAX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->hds_thresh_max = (__u32)ynl_attr_get_u32(attr); } } @@ -4074,8 +4406,9 @@ ethtool_rings_get(ynl_cpp::ynl_socket& ys, ethtool_rings_get_req& req) ((struct ynl_sock*)ys)->req_policy = ðtool_rings_nest; yrs.yarg.rsp_policy = ðtool_rings_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_RINGS_HEADER, req.header.value()); + } rsp.reset(new ethtool_rings_get_rsp()); yrs.yarg.data = rsp.get(); @@ -4083,8 +4416,9 @@ ethtool_rings_get(ynl_cpp::ynl_socket& ys, ethtool_rings_get_req& req) yrs.rsp_cmd = 16; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -4109,12 +4443,14 @@ ethtool_rings_get_dump(ynl_cpp::ynl_socket& ys, nlh = ynl_gemsg_start_dump(ys, ((struct ynl_sock*)ys)->family_id, ETHTOOL_MSG_RINGS_GET, 1); ((struct ynl_sock*)ys)->req_policy = ðtool_rings_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_RINGS_HEADER, req.header.value()); + } err = ynl_exec_dump_no_alloc(ys, nlh, &yds); - if (err < 0) + if (err < 0) { return nullptr; + } return ret; } @@ -4131,46 +4467,65 @@ int ethtool_rings_set(ynl_cpp::ynl_socket& ys, ethtool_rings_set_req& req) nlh = ynl_gemsg_start_req(ys, ((struct ynl_sock*)ys)->family_id, ETHTOOL_MSG_RINGS_SET, 1); ((struct ynl_sock*)ys)->req_policy = ðtool_rings_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_RINGS_HEADER, req.header.value()); - if (req.rx_max.has_value()) + } + if (req.rx_max.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_RINGS_RX_MAX, req.rx_max.value()); - if (req.rx_mini_max.has_value()) + } + if (req.rx_mini_max.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_RINGS_RX_MINI_MAX, req.rx_mini_max.value()); - if (req.rx_jumbo_max.has_value()) + } + if (req.rx_jumbo_max.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_RINGS_RX_JUMBO_MAX, req.rx_jumbo_max.value()); - if (req.tx_max.has_value()) + } + if (req.tx_max.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_RINGS_TX_MAX, req.tx_max.value()); - if (req.rx.has_value()) + } + if (req.rx.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_RINGS_RX, req.rx.value()); - if (req.rx_mini.has_value()) + } + if (req.rx_mini.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_RINGS_RX_MINI, req.rx_mini.value()); - if (req.rx_jumbo.has_value()) + } + if (req.rx_jumbo.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_RINGS_RX_JUMBO, req.rx_jumbo.value()); - if (req.tx.has_value()) + } + if (req.tx.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_RINGS_TX, req.tx.value()); - if (req.rx_buf_len.has_value()) + } + if (req.rx_buf_len.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_RINGS_RX_BUF_LEN, req.rx_buf_len.value()); - if (req.tcp_data_split.has_value()) + } + if (req.tcp_data_split.has_value()) { ynl_attr_put_u8(nlh, ETHTOOL_A_RINGS_TCP_DATA_SPLIT, req.tcp_data_split.value()); - if (req.cqe_size.has_value()) + } + if (req.cqe_size.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_RINGS_CQE_SIZE, req.cqe_size.value()); - if (req.tx_push.has_value()) + } + if (req.tx_push.has_value()) { ynl_attr_put_u8(nlh, ETHTOOL_A_RINGS_TX_PUSH, req.tx_push.value()); - if (req.rx_push.has_value()) + } + if (req.rx_push.has_value()) { ynl_attr_put_u8(nlh, ETHTOOL_A_RINGS_RX_PUSH, req.rx_push.value()); - if (req.tx_push_buf_len.has_value()) + } + if (req.tx_push_buf_len.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN, req.tx_push_buf_len.value()); - if (req.tx_push_buf_len_max.has_value()) + } + if (req.tx_push_buf_len_max.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN_MAX, req.tx_push_buf_len_max.value()); - if (req.hds_thresh.has_value()) + } + if (req.hds_thresh.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_RINGS_HDS_THRESH, req.hds_thresh.value()); - if (req.hds_thresh_max.has_value()) + } + if (req.hds_thresh_max.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_RINGS_HDS_THRESH_MAX, req.hds_thresh_max.value()); + } err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return -1; + } return 0; } @@ -4191,44 +4546,54 @@ int ethtool_channels_get_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == ETHTOOL_A_CHANNELS_HEADER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_header_nest; parg.data = &dst->header.emplace(); - if (ethtool_header_parse(&parg, attr)) + if (ethtool_header_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_CHANNELS_RX_MAX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->rx_max = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_CHANNELS_TX_MAX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->tx_max = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_CHANNELS_OTHER_MAX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->other_max = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_CHANNELS_COMBINED_MAX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->combined_max = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_CHANNELS_RX_COUNT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->rx_count = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_CHANNELS_TX_COUNT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->tx_count = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_CHANNELS_OTHER_COUNT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->other_count = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_CHANNELS_COMBINED_COUNT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->combined_count = (__u32)ynl_attr_get_u32(attr); } } @@ -4248,8 +4613,9 @@ ethtool_channels_get(ynl_cpp::ynl_socket& ys, ethtool_channels_get_req& req) ((struct ynl_sock*)ys)->req_policy = ðtool_channels_nest; yrs.yarg.rsp_policy = ðtool_channels_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_CHANNELS_HEADER, req.header.value()); + } rsp.reset(new ethtool_channels_get_rsp()); yrs.yarg.data = rsp.get(); @@ -4257,8 +4623,9 @@ ethtool_channels_get(ynl_cpp::ynl_socket& ys, ethtool_channels_get_req& req) yrs.rsp_cmd = 18; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -4283,12 +4650,14 @@ ethtool_channels_get_dump(ynl_cpp::ynl_socket& ys, nlh = ynl_gemsg_start_dump(ys, ((struct ynl_sock*)ys)->family_id, ETHTOOL_MSG_CHANNELS_GET, 1); ((struct ynl_sock*)ys)->req_policy = ðtool_channels_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_CHANNELS_HEADER, req.header.value()); + } err = ynl_exec_dump_no_alloc(ys, nlh, &yds); - if (err < 0) + if (err < 0) { return nullptr; + } return ret; } @@ -4306,28 +4675,38 @@ int ethtool_channels_set(ynl_cpp::ynl_socket& ys, nlh = ynl_gemsg_start_req(ys, ((struct ynl_sock*)ys)->family_id, ETHTOOL_MSG_CHANNELS_SET, 1); ((struct ynl_sock*)ys)->req_policy = ðtool_channels_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_CHANNELS_HEADER, req.header.value()); - if (req.rx_max.has_value()) + } + if (req.rx_max.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_CHANNELS_RX_MAX, req.rx_max.value()); - if (req.tx_max.has_value()) + } + if (req.tx_max.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_CHANNELS_TX_MAX, req.tx_max.value()); - if (req.other_max.has_value()) + } + if (req.other_max.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_CHANNELS_OTHER_MAX, req.other_max.value()); - if (req.combined_max.has_value()) + } + if (req.combined_max.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_CHANNELS_COMBINED_MAX, req.combined_max.value()); - if (req.rx_count.has_value()) + } + if (req.rx_count.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_CHANNELS_RX_COUNT, req.rx_count.value()); - if (req.tx_count.has_value()) + } + if (req.tx_count.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_CHANNELS_TX_COUNT, req.tx_count.value()); - if (req.other_count.has_value()) + } + if (req.other_count.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_CHANNELS_OTHER_COUNT, req.other_count.value()); - if (req.combined_count.has_value()) + } + if (req.combined_count.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_CHANNELS_COMBINED_COUNT, req.combined_count.value()); + } err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return -1; + } return 0; } @@ -4348,137 +4727,170 @@ int ethtool_coalesce_get_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == ETHTOOL_A_COALESCE_HEADER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_header_nest; parg.data = &dst->header.emplace(); - if (ethtool_header_parse(&parg, attr)) + if (ethtool_header_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_COALESCE_RX_USECS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->rx_usecs = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_COALESCE_RX_MAX_FRAMES) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->rx_max_frames = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_COALESCE_RX_USECS_IRQ) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->rx_usecs_irq = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_COALESCE_RX_MAX_FRAMES_IRQ) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->rx_max_frames_irq = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_COALESCE_TX_USECS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->tx_usecs = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_COALESCE_TX_MAX_FRAMES) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->tx_max_frames = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_COALESCE_TX_USECS_IRQ) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->tx_usecs_irq = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_COALESCE_TX_MAX_FRAMES_IRQ) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->tx_max_frames_irq = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_COALESCE_STATS_BLOCK_USECS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->stats_block_usecs = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_COALESCE_USE_ADAPTIVE_RX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->use_adaptive_rx = (__u8)ynl_attr_get_u8(attr); } else if (type == ETHTOOL_A_COALESCE_USE_ADAPTIVE_TX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->use_adaptive_tx = (__u8)ynl_attr_get_u8(attr); } else if (type == ETHTOOL_A_COALESCE_PKT_RATE_LOW) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->pkt_rate_low = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_COALESCE_RX_USECS_LOW) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->rx_usecs_low = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_COALESCE_RX_MAX_FRAMES_LOW) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->rx_max_frames_low = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_COALESCE_TX_USECS_LOW) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->tx_usecs_low = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_COALESCE_TX_MAX_FRAMES_LOW) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->tx_max_frames_low = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_COALESCE_PKT_RATE_HIGH) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->pkt_rate_high = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_COALESCE_RX_USECS_HIGH) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->rx_usecs_high = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_COALESCE_RX_MAX_FRAMES_HIGH) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->rx_max_frames_high = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_COALESCE_TX_USECS_HIGH) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->tx_usecs_high = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_COALESCE_TX_MAX_FRAMES_HIGH) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->tx_max_frames_high = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_COALESCE_RATE_SAMPLE_INTERVAL) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->rate_sample_interval = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_COALESCE_USE_CQE_MODE_TX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->use_cqe_mode_tx = (__u8)ynl_attr_get_u8(attr); } else if (type == ETHTOOL_A_COALESCE_USE_CQE_MODE_RX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->use_cqe_mode_rx = (__u8)ynl_attr_get_u8(attr); } else if (type == ETHTOOL_A_COALESCE_TX_AGGR_MAX_BYTES) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->tx_aggr_max_bytes = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_COALESCE_TX_AGGR_MAX_FRAMES) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->tx_aggr_max_frames = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_COALESCE_TX_AGGR_TIME_USECS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->tx_aggr_time_usecs = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_COALESCE_RX_PROFILE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_profile_nest; parg.data = &dst->rx_profile.emplace(); - if (ethtool_profile_parse(&parg, attr)) + if (ethtool_profile_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_COALESCE_TX_PROFILE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_profile_nest; parg.data = &dst->tx_profile.emplace(); - if (ethtool_profile_parse(&parg, attr)) + if (ethtool_profile_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } } @@ -4497,8 +4909,9 @@ ethtool_coalesce_get(ynl_cpp::ynl_socket& ys, ethtool_coalesce_get_req& req) ((struct ynl_sock*)ys)->req_policy = ðtool_coalesce_nest; yrs.yarg.rsp_policy = ðtool_coalesce_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_COALESCE_HEADER, req.header.value()); + } rsp.reset(new ethtool_coalesce_get_rsp()); yrs.yarg.data = rsp.get(); @@ -4506,8 +4919,9 @@ ethtool_coalesce_get(ynl_cpp::ynl_socket& ys, ethtool_coalesce_get_req& req) yrs.rsp_cmd = 20; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -4532,12 +4946,14 @@ ethtool_coalesce_get_dump(ynl_cpp::ynl_socket& ys, nlh = ynl_gemsg_start_dump(ys, ((struct ynl_sock*)ys)->family_id, ETHTOOL_MSG_COALESCE_GET, 1); ((struct ynl_sock*)ys)->req_policy = ðtool_coalesce_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_COALESCE_HEADER, req.header.value()); + } err = ynl_exec_dump_no_alloc(ys, nlh, &yds); - if (err < 0) + if (err < 0) { return nullptr; + } return ret; } @@ -4555,70 +4971,101 @@ int ethtool_coalesce_set(ynl_cpp::ynl_socket& ys, nlh = ynl_gemsg_start_req(ys, ((struct ynl_sock*)ys)->family_id, ETHTOOL_MSG_COALESCE_SET, 1); ((struct ynl_sock*)ys)->req_policy = ðtool_coalesce_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_COALESCE_HEADER, req.header.value()); - if (req.rx_usecs.has_value()) + } + if (req.rx_usecs.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_COALESCE_RX_USECS, req.rx_usecs.value()); - if (req.rx_max_frames.has_value()) + } + if (req.rx_max_frames.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_COALESCE_RX_MAX_FRAMES, req.rx_max_frames.value()); - if (req.rx_usecs_irq.has_value()) + } + if (req.rx_usecs_irq.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_COALESCE_RX_USECS_IRQ, req.rx_usecs_irq.value()); - if (req.rx_max_frames_irq.has_value()) + } + if (req.rx_max_frames_irq.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_COALESCE_RX_MAX_FRAMES_IRQ, req.rx_max_frames_irq.value()); - if (req.tx_usecs.has_value()) + } + if (req.tx_usecs.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_COALESCE_TX_USECS, req.tx_usecs.value()); - if (req.tx_max_frames.has_value()) + } + if (req.tx_max_frames.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_COALESCE_TX_MAX_FRAMES, req.tx_max_frames.value()); - if (req.tx_usecs_irq.has_value()) + } + if (req.tx_usecs_irq.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_COALESCE_TX_USECS_IRQ, req.tx_usecs_irq.value()); - if (req.tx_max_frames_irq.has_value()) + } + if (req.tx_max_frames_irq.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_COALESCE_TX_MAX_FRAMES_IRQ, req.tx_max_frames_irq.value()); - if (req.stats_block_usecs.has_value()) + } + if (req.stats_block_usecs.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_COALESCE_STATS_BLOCK_USECS, req.stats_block_usecs.value()); - if (req.use_adaptive_rx.has_value()) + } + if (req.use_adaptive_rx.has_value()) { ynl_attr_put_u8(nlh, ETHTOOL_A_COALESCE_USE_ADAPTIVE_RX, req.use_adaptive_rx.value()); - if (req.use_adaptive_tx.has_value()) + } + if (req.use_adaptive_tx.has_value()) { ynl_attr_put_u8(nlh, ETHTOOL_A_COALESCE_USE_ADAPTIVE_TX, req.use_adaptive_tx.value()); - if (req.pkt_rate_low.has_value()) + } + if (req.pkt_rate_low.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_COALESCE_PKT_RATE_LOW, req.pkt_rate_low.value()); - if (req.rx_usecs_low.has_value()) + } + if (req.rx_usecs_low.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_COALESCE_RX_USECS_LOW, req.rx_usecs_low.value()); - if (req.rx_max_frames_low.has_value()) + } + if (req.rx_max_frames_low.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_COALESCE_RX_MAX_FRAMES_LOW, req.rx_max_frames_low.value()); - if (req.tx_usecs_low.has_value()) + } + if (req.tx_usecs_low.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_COALESCE_TX_USECS_LOW, req.tx_usecs_low.value()); - if (req.tx_max_frames_low.has_value()) + } + if (req.tx_max_frames_low.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_COALESCE_TX_MAX_FRAMES_LOW, req.tx_max_frames_low.value()); - if (req.pkt_rate_high.has_value()) + } + if (req.pkt_rate_high.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_COALESCE_PKT_RATE_HIGH, req.pkt_rate_high.value()); - if (req.rx_usecs_high.has_value()) + } + if (req.rx_usecs_high.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_COALESCE_RX_USECS_HIGH, req.rx_usecs_high.value()); - if (req.rx_max_frames_high.has_value()) + } + if (req.rx_max_frames_high.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_COALESCE_RX_MAX_FRAMES_HIGH, req.rx_max_frames_high.value()); - if (req.tx_usecs_high.has_value()) + } + if (req.tx_usecs_high.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_COALESCE_TX_USECS_HIGH, req.tx_usecs_high.value()); - if (req.tx_max_frames_high.has_value()) + } + if (req.tx_max_frames_high.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_COALESCE_TX_MAX_FRAMES_HIGH, req.tx_max_frames_high.value()); - if (req.rate_sample_interval.has_value()) + } + if (req.rate_sample_interval.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_COALESCE_RATE_SAMPLE_INTERVAL, req.rate_sample_interval.value()); - if (req.use_cqe_mode_tx.has_value()) + } + if (req.use_cqe_mode_tx.has_value()) { ynl_attr_put_u8(nlh, ETHTOOL_A_COALESCE_USE_CQE_MODE_TX, req.use_cqe_mode_tx.value()); - if (req.use_cqe_mode_rx.has_value()) + } + if (req.use_cqe_mode_rx.has_value()) { ynl_attr_put_u8(nlh, ETHTOOL_A_COALESCE_USE_CQE_MODE_RX, req.use_cqe_mode_rx.value()); - if (req.tx_aggr_max_bytes.has_value()) + } + if (req.tx_aggr_max_bytes.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_COALESCE_TX_AGGR_MAX_BYTES, req.tx_aggr_max_bytes.value()); - if (req.tx_aggr_max_frames.has_value()) + } + if (req.tx_aggr_max_frames.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_COALESCE_TX_AGGR_MAX_FRAMES, req.tx_aggr_max_frames.value()); - if (req.tx_aggr_time_usecs.has_value()) + } + if (req.tx_aggr_time_usecs.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_COALESCE_TX_AGGR_TIME_USECS, req.tx_aggr_time_usecs.value()); - if (req.rx_profile.has_value()) + } + if (req.rx_profile.has_value()) { ethtool_profile_put(nlh, ETHTOOL_A_COALESCE_RX_PROFILE, req.rx_profile.value()); - if (req.tx_profile.has_value()) + } + if (req.tx_profile.has_value()) { ethtool_profile_put(nlh, ETHTOOL_A_COALESCE_TX_PROFILE, req.tx_profile.value()); + } err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return -1; + } return 0; } @@ -4639,36 +5086,44 @@ int ethtool_pause_get_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == ETHTOOL_A_PAUSE_HEADER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_header_nest; parg.data = &dst->header.emplace(); - if (ethtool_header_parse(&parg, attr)) + if (ethtool_header_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_PAUSE_AUTONEG) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->autoneg = (__u8)ynl_attr_get_u8(attr); } else if (type == ETHTOOL_A_PAUSE_RX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->rx = (__u8)ynl_attr_get_u8(attr); } else if (type == ETHTOOL_A_PAUSE_TX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->tx = (__u8)ynl_attr_get_u8(attr); } else if (type == ETHTOOL_A_PAUSE_STATS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_pause_stat_nest; parg.data = &dst->stats.emplace(); - if (ethtool_pause_stat_parse(&parg, attr)) + if (ethtool_pause_stat_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_PAUSE_STATS_SRC) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->stats_src = (__u32)ynl_attr_get_u32(attr); } } @@ -4688,8 +5143,9 @@ ethtool_pause_get(ynl_cpp::ynl_socket& ys, ethtool_pause_get_req& req) ((struct ynl_sock*)ys)->req_policy = ðtool_pause_nest; yrs.yarg.rsp_policy = ðtool_pause_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_PAUSE_HEADER, req.header.value()); + } rsp.reset(new ethtool_pause_get_rsp()); yrs.yarg.data = rsp.get(); @@ -4697,8 +5153,9 @@ ethtool_pause_get(ynl_cpp::ynl_socket& ys, ethtool_pause_get_req& req) yrs.rsp_cmd = 22; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -4723,12 +5180,14 @@ ethtool_pause_get_dump(ynl_cpp::ynl_socket& ys, nlh = ynl_gemsg_start_dump(ys, ((struct ynl_sock*)ys)->family_id, ETHTOOL_MSG_PAUSE_GET, 1); ((struct ynl_sock*)ys)->req_policy = ðtool_pause_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_PAUSE_HEADER, req.header.value()); + } err = ynl_exec_dump_no_alloc(ys, nlh, &yds); - if (err < 0) + if (err < 0) { return nullptr; + } return ret; } @@ -4745,22 +5204,29 @@ int ethtool_pause_set(ynl_cpp::ynl_socket& ys, ethtool_pause_set_req& req) nlh = ynl_gemsg_start_req(ys, ((struct ynl_sock*)ys)->family_id, ETHTOOL_MSG_PAUSE_SET, 1); ((struct ynl_sock*)ys)->req_policy = ðtool_pause_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_PAUSE_HEADER, req.header.value()); - if (req.autoneg.has_value()) + } + if (req.autoneg.has_value()) { ynl_attr_put_u8(nlh, ETHTOOL_A_PAUSE_AUTONEG, req.autoneg.value()); - if (req.rx.has_value()) + } + if (req.rx.has_value()) { ynl_attr_put_u8(nlh, ETHTOOL_A_PAUSE_RX, req.rx.value()); - if (req.tx.has_value()) + } + if (req.tx.has_value()) { ynl_attr_put_u8(nlh, ETHTOOL_A_PAUSE_TX, req.tx.value()); - if (req.stats.has_value()) + } + if (req.stats.has_value()) { ethtool_pause_stat_put(nlh, ETHTOOL_A_PAUSE_STATS, req.stats.value()); - if (req.stats_src.has_value()) + } + if (req.stats_src.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_PAUSE_STATS_SRC, req.stats_src.value()); + } err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return -1; + } return 0; } @@ -4781,44 +5247,54 @@ int ethtool_eee_get_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == ETHTOOL_A_EEE_HEADER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_header_nest; parg.data = &dst->header.emplace(); - if (ethtool_header_parse(&parg, attr)) + if (ethtool_header_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_EEE_MODES_OURS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_bitset_nest; parg.data = &dst->modes_ours.emplace(); - if (ethtool_bitset_parse(&parg, attr)) + if (ethtool_bitset_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_EEE_MODES_PEER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_bitset_nest; parg.data = &dst->modes_peer.emplace(); - if (ethtool_bitset_parse(&parg, attr)) + if (ethtool_bitset_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_EEE_ACTIVE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->active = (__u8)ynl_attr_get_u8(attr); } else if (type == ETHTOOL_A_EEE_ENABLED) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->enabled = (__u8)ynl_attr_get_u8(attr); } else if (type == ETHTOOL_A_EEE_TX_LPI_ENABLED) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->tx_lpi_enabled = (__u8)ynl_attr_get_u8(attr); } else if (type == ETHTOOL_A_EEE_TX_LPI_TIMER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->tx_lpi_timer = (__u32)ynl_attr_get_u32(attr); } } @@ -4838,8 +5314,9 @@ ethtool_eee_get(ynl_cpp::ynl_socket& ys, ethtool_eee_get_req& req) ((struct ynl_sock*)ys)->req_policy = ðtool_eee_nest; yrs.yarg.rsp_policy = ðtool_eee_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_EEE_HEADER, req.header.value()); + } rsp.reset(new ethtool_eee_get_rsp()); yrs.yarg.data = rsp.get(); @@ -4847,8 +5324,9 @@ ethtool_eee_get(ynl_cpp::ynl_socket& ys, ethtool_eee_get_req& req) yrs.rsp_cmd = 24; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -4872,12 +5350,14 @@ ethtool_eee_get_dump(ynl_cpp::ynl_socket& ys, ethtool_eee_get_req_dump& req) nlh = ynl_gemsg_start_dump(ys, ((struct ynl_sock*)ys)->family_id, ETHTOOL_MSG_EEE_GET, 1); ((struct ynl_sock*)ys)->req_policy = ðtool_eee_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_EEE_HEADER, req.header.value()); + } err = ynl_exec_dump_no_alloc(ys, nlh, &yds); - if (err < 0) + if (err < 0) { return nullptr; + } return ret; } @@ -4894,24 +5374,32 @@ int ethtool_eee_set(ynl_cpp::ynl_socket& ys, ethtool_eee_set_req& req) nlh = ynl_gemsg_start_req(ys, ((struct ynl_sock*)ys)->family_id, ETHTOOL_MSG_EEE_SET, 1); ((struct ynl_sock*)ys)->req_policy = ðtool_eee_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_EEE_HEADER, req.header.value()); - if (req.modes_ours.has_value()) + } + if (req.modes_ours.has_value()) { ethtool_bitset_put(nlh, ETHTOOL_A_EEE_MODES_OURS, req.modes_ours.value()); - if (req.modes_peer.has_value()) + } + if (req.modes_peer.has_value()) { ethtool_bitset_put(nlh, ETHTOOL_A_EEE_MODES_PEER, req.modes_peer.value()); - if (req.active.has_value()) + } + if (req.active.has_value()) { ynl_attr_put_u8(nlh, ETHTOOL_A_EEE_ACTIVE, req.active.value()); - if (req.enabled.has_value()) + } + if (req.enabled.has_value()) { ynl_attr_put_u8(nlh, ETHTOOL_A_EEE_ENABLED, req.enabled.value()); - if (req.tx_lpi_enabled.has_value()) + } + if (req.tx_lpi_enabled.has_value()) { ynl_attr_put_u8(nlh, ETHTOOL_A_EEE_TX_LPI_ENABLED, req.tx_lpi_enabled.value()); - if (req.tx_lpi_timer.has_value()) + } + if (req.tx_lpi_timer.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_EEE_TX_LPI_TIMER, req.tx_lpi_timer.value()); + } err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return -1; + } return 0; } @@ -4932,64 +5420,79 @@ int ethtool_tsinfo_get_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == ETHTOOL_A_TSINFO_HEADER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_header_nest; parg.data = &dst->header.emplace(); - if (ethtool_header_parse(&parg, attr)) + if (ethtool_header_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_TSINFO_TIMESTAMPING) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_bitset_nest; parg.data = &dst->timestamping.emplace(); - if (ethtool_bitset_parse(&parg, attr)) + if (ethtool_bitset_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_TSINFO_TX_TYPES) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_bitset_nest; parg.data = &dst->tx_types.emplace(); - if (ethtool_bitset_parse(&parg, attr)) + if (ethtool_bitset_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_TSINFO_RX_FILTERS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_bitset_nest; parg.data = &dst->rx_filters.emplace(); - if (ethtool_bitset_parse(&parg, attr)) + if (ethtool_bitset_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_TSINFO_PHC_INDEX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->phc_index = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_TSINFO_STATS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_ts_stat_nest; parg.data = &dst->stats.emplace(); - if (ethtool_ts_stat_parse(&parg, attr)) + if (ethtool_ts_stat_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_TSINFO_HWTSTAMP_PROVIDER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_ts_hwtstamp_provider_nest; parg.data = &dst->hwtstamp_provider.emplace(); - if (ethtool_ts_hwtstamp_provider_parse(&parg, attr)) + 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)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->hwtstamp_source = (enum hwtstamp_source)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_TSINFO_HWTSTAMP_PHYINDEX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->hwtstamp_phyindex = (__u32)ynl_attr_get_u32(attr); } } @@ -5009,10 +5512,12 @@ ethtool_tsinfo_get(ynl_cpp::ynl_socket& ys, ethtool_tsinfo_get_req& req) ((struct ynl_sock*)ys)->req_policy = ðtool_tsinfo_nest; yrs.yarg.rsp_policy = ðtool_tsinfo_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_TSINFO_HEADER, req.header.value()); - if (req.hwtstamp_provider.has_value()) + } + if (req.hwtstamp_provider.has_value()) { ethtool_ts_hwtstamp_provider_put(nlh, ETHTOOL_A_TSINFO_HWTSTAMP_PROVIDER, req.hwtstamp_provider.value()); + } rsp.reset(new ethtool_tsinfo_get_rsp()); yrs.yarg.data = rsp.get(); @@ -5020,8 +5525,9 @@ ethtool_tsinfo_get(ynl_cpp::ynl_socket& ys, ethtool_tsinfo_get_req& req) yrs.rsp_cmd = 26; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -5046,14 +5552,17 @@ ethtool_tsinfo_get_dump(ynl_cpp::ynl_socket& ys, nlh = ynl_gemsg_start_dump(ys, ((struct ynl_sock*)ys)->family_id, ETHTOOL_MSG_TSINFO_GET, 1); ((struct ynl_sock*)ys)->req_policy = ðtool_tsinfo_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_TSINFO_HEADER, req.header.value()); - if (req.hwtstamp_provider.has_value()) + } + if (req.hwtstamp_provider.has_value()) { ethtool_ts_hwtstamp_provider_put(nlh, ETHTOOL_A_TSINFO_HWTSTAMP_PROVIDER, req.hwtstamp_provider.value()); + } err = ynl_exec_dump_no_alloc(ys, nlh, &yds); - if (err < 0) + if (err < 0) { return nullptr; + } return ret; } @@ -5070,12 +5579,14 @@ int ethtool_cable_test_act(ynl_cpp::ynl_socket& ys, nlh = ynl_gemsg_start_req(ys, ((struct ynl_sock*)ys)->family_id, ETHTOOL_MSG_CABLE_TEST_ACT, 1); ((struct ynl_sock*)ys)->req_policy = ðtool_cable_test_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_CABLE_TEST_HEADER, req.header.value()); + } err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return -1; + } return 0; } @@ -5092,12 +5603,14 @@ int ethtool_cable_test_tdr_act(ynl_cpp::ynl_socket& ys, nlh = ynl_gemsg_start_req(ys, ((struct ynl_sock*)ys)->family_id, ETHTOOL_MSG_CABLE_TEST_TDR_ACT, 1); ((struct ynl_sock*)ys)->req_policy = ðtool_cable_test_tdr_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_CABLE_TEST_TDR_HEADER, req.header.value()); + } err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return -1; + } return 0; } @@ -5118,21 +5631,25 @@ int ethtool_tunnel_info_get_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == ETHTOOL_A_TUNNEL_INFO_HEADER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_header_nest; parg.data = &dst->header.emplace(); - if (ethtool_header_parse(&parg, attr)) + if (ethtool_header_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_TUNNEL_INFO_UDP_PORTS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_tunnel_udp_nest; parg.data = &dst->udp_ports.emplace(); - if (ethtool_tunnel_udp_parse(&parg, attr)) + if (ethtool_tunnel_udp_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } } @@ -5152,8 +5669,9 @@ ethtool_tunnel_info_get(ynl_cpp::ynl_socket& ys, ((struct ynl_sock*)ys)->req_policy = ðtool_tunnel_info_nest; yrs.yarg.rsp_policy = ðtool_tunnel_info_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_TUNNEL_INFO_HEADER, req.header.value()); + } rsp.reset(new ethtool_tunnel_info_get_rsp()); yrs.yarg.data = rsp.get(); @@ -5161,8 +5679,9 @@ ethtool_tunnel_info_get(ynl_cpp::ynl_socket& ys, yrs.rsp_cmd = 29; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -5187,12 +5706,14 @@ ethtool_tunnel_info_get_dump(ynl_cpp::ynl_socket& ys, nlh = ynl_gemsg_start_dump(ys, ((struct ynl_sock*)ys)->family_id, ETHTOOL_MSG_TUNNEL_INFO_GET, 1); ((struct ynl_sock*)ys)->req_policy = ðtool_tunnel_info_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_TUNNEL_INFO_HEADER, req.header.value()); + } err = ynl_exec_dump_no_alloc(ys, nlh, &yds); - if (err < 0) + if (err < 0) { return nullptr; + } return ret; } @@ -5213,37 +5734,45 @@ int ethtool_fec_get_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == ETHTOOL_A_FEC_HEADER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_header_nest; parg.data = &dst->header.emplace(); - if (ethtool_header_parse(&parg, attr)) + if (ethtool_header_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_FEC_MODES) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_bitset_nest; parg.data = &dst->modes.emplace(); - if (ethtool_bitset_parse(&parg, attr)) + if (ethtool_bitset_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_FEC_AUTO) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->auto_ = (__u8)ynl_attr_get_u8(attr); } else if (type == ETHTOOL_A_FEC_ACTIVE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->active = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_FEC_STATS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_fec_stat_nest; parg.data = &dst->stats.emplace(); - if (ethtool_fec_stat_parse(&parg, attr)) + if (ethtool_fec_stat_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } } @@ -5262,8 +5791,9 @@ ethtool_fec_get(ynl_cpp::ynl_socket& ys, ethtool_fec_get_req& req) ((struct ynl_sock*)ys)->req_policy = ðtool_fec_nest; yrs.yarg.rsp_policy = ðtool_fec_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_FEC_HEADER, req.header.value()); + } rsp.reset(new ethtool_fec_get_rsp()); yrs.yarg.data = rsp.get(); @@ -5271,8 +5801,9 @@ ethtool_fec_get(ynl_cpp::ynl_socket& ys, ethtool_fec_get_req& req) yrs.rsp_cmd = 30; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -5296,12 +5827,14 @@ ethtool_fec_get_dump(ynl_cpp::ynl_socket& ys, ethtool_fec_get_req_dump& req) nlh = ynl_gemsg_start_dump(ys, ((struct ynl_sock*)ys)->family_id, ETHTOOL_MSG_FEC_GET, 1); ((struct ynl_sock*)ys)->req_policy = ðtool_fec_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_FEC_HEADER, req.header.value()); + } err = ynl_exec_dump_no_alloc(ys, nlh, &yds); - if (err < 0) + if (err < 0) { return nullptr; + } return ret; } @@ -5318,20 +5851,26 @@ int ethtool_fec_set(ynl_cpp::ynl_socket& ys, ethtool_fec_set_req& req) nlh = ynl_gemsg_start_req(ys, ((struct ynl_sock*)ys)->family_id, ETHTOOL_MSG_FEC_SET, 1); ((struct ynl_sock*)ys)->req_policy = ðtool_fec_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_FEC_HEADER, req.header.value()); - if (req.modes.has_value()) + } + if (req.modes.has_value()) { ethtool_bitset_put(nlh, ETHTOOL_A_FEC_MODES, req.modes.value()); - if (req.auto_.has_value()) + } + if (req.auto_.has_value()) { ynl_attr_put_u8(nlh, ETHTOOL_A_FEC_AUTO, req.auto_.value()); - if (req.active.has_value()) + } + if (req.active.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_FEC_ACTIVE, req.active.value()); - if (req.stats.has_value()) + } + if (req.stats.has_value()) { ethtool_fec_stat_put(nlh, ETHTOOL_A_FEC_STATS, req.stats.value()); + } err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return -1; + } return 0; } @@ -5352,16 +5891,19 @@ int ethtool_module_eeprom_get_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == ETHTOOL_A_MODULE_EEPROM_HEADER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_header_nest; parg.data = &dst->header.emplace(); - if (ethtool_header_parse(&parg, attr)) + if (ethtool_header_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_MODULE_EEPROM_DATA) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->data.assign(data, data + len); @@ -5384,18 +5926,24 @@ ethtool_module_eeprom_get(ynl_cpp::ynl_socket& ys, ((struct ynl_sock*)ys)->req_policy = ðtool_module_eeprom_nest; yrs.yarg.rsp_policy = ðtool_module_eeprom_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_MODULE_EEPROM_HEADER, req.header.value()); - if (req.offset.has_value()) + } + if (req.offset.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_MODULE_EEPROM_OFFSET, req.offset.value()); - if (req.length.has_value()) + } + if (req.length.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_MODULE_EEPROM_LENGTH, req.length.value()); - if (req.page.has_value()) + } + if (req.page.has_value()) { ynl_attr_put_u8(nlh, ETHTOOL_A_MODULE_EEPROM_PAGE, req.page.value()); - if (req.bank.has_value()) + } + if (req.bank.has_value()) { ynl_attr_put_u8(nlh, ETHTOOL_A_MODULE_EEPROM_BANK, req.bank.value()); - if (req.i2c_address.has_value()) + } + if (req.i2c_address.has_value()) { ynl_attr_put_u8(nlh, ETHTOOL_A_MODULE_EEPROM_I2C_ADDRESS, req.i2c_address.value()); + } rsp.reset(new ethtool_module_eeprom_get_rsp()); yrs.yarg.data = rsp.get(); @@ -5403,8 +5951,9 @@ ethtool_module_eeprom_get(ynl_cpp::ynl_socket& ys, yrs.rsp_cmd = 32; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -5429,22 +5978,29 @@ ethtool_module_eeprom_get_dump(ynl_cpp::ynl_socket& ys, nlh = ynl_gemsg_start_dump(ys, ((struct ynl_sock*)ys)->family_id, ETHTOOL_MSG_MODULE_EEPROM_GET, 1); ((struct ynl_sock*)ys)->req_policy = ðtool_module_eeprom_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_MODULE_EEPROM_HEADER, req.header.value()); - if (req.offset.has_value()) + } + if (req.offset.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_MODULE_EEPROM_OFFSET, req.offset.value()); - if (req.length.has_value()) + } + if (req.length.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_MODULE_EEPROM_LENGTH, req.length.value()); - if (req.page.has_value()) + } + if (req.page.has_value()) { ynl_attr_put_u8(nlh, ETHTOOL_A_MODULE_EEPROM_PAGE, req.page.value()); - if (req.bank.has_value()) + } + if (req.bank.has_value()) { ynl_attr_put_u8(nlh, ETHTOOL_A_MODULE_EEPROM_BANK, req.bank.value()); - if (req.i2c_address.has_value()) + } + if (req.i2c_address.has_value()) { ynl_attr_put_u8(nlh, ETHTOOL_A_MODULE_EEPROM_I2C_ADDRESS, req.i2c_address.value()); + } err = ynl_exec_dump_no_alloc(ys, nlh, &yds); - if (err < 0) + if (err < 0) { return nullptr; + } return ret; } @@ -5465,32 +6021,39 @@ int ethtool_stats_get_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == ETHTOOL_A_STATS_HEADER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_header_nest; parg.data = &dst->header.emplace(); - if (ethtool_header_parse(&parg, attr)) + if (ethtool_header_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_STATS_GROUPS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_bitset_nest; parg.data = &dst->groups.emplace(); - if (ethtool_bitset_parse(&parg, attr)) + if (ethtool_bitset_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_STATS_GRP) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_stats_grp_nest; parg.data = &dst->grp.emplace(); - if (ethtool_stats_grp_parse(&parg, attr)) + if (ethtool_stats_grp_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_STATS_SRC) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->src = (__u32)ynl_attr_get_u32(attr); } } @@ -5510,10 +6073,12 @@ ethtool_stats_get(ynl_cpp::ynl_socket& ys, ethtool_stats_get_req& req) ((struct ynl_sock*)ys)->req_policy = ðtool_stats_nest; yrs.yarg.rsp_policy = ðtool_stats_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_STATS_HEADER, req.header.value()); - if (req.groups.has_value()) + } + if (req.groups.has_value()) { ethtool_bitset_put(nlh, ETHTOOL_A_STATS_GROUPS, req.groups.value()); + } rsp.reset(new ethtool_stats_get_rsp()); yrs.yarg.data = rsp.get(); @@ -5521,8 +6086,9 @@ ethtool_stats_get(ynl_cpp::ynl_socket& ys, ethtool_stats_get_req& req) yrs.rsp_cmd = 33; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -5547,14 +6113,17 @@ ethtool_stats_get_dump(ynl_cpp::ynl_socket& ys, nlh = ynl_gemsg_start_dump(ys, ((struct ynl_sock*)ys)->family_id, ETHTOOL_MSG_STATS_GET, 1); ((struct ynl_sock*)ys)->req_policy = ðtool_stats_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_STATS_HEADER, req.header.value()); - if (req.groups.has_value()) + } + if (req.groups.has_value()) { ethtool_bitset_put(nlh, ETHTOOL_A_STATS_GROUPS, req.groups.value()); + } err = ynl_exec_dump_no_alloc(ys, nlh, &yds); - if (err < 0) + if (err < 0) { return nullptr; + } return ret; } @@ -5575,16 +6144,19 @@ int ethtool_phc_vclocks_get_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == ETHTOOL_A_PHC_VCLOCKS_HEADER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_header_nest; parg.data = &dst->header.emplace(); - if (ethtool_header_parse(&parg, attr)) + if (ethtool_header_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_PHC_VCLOCKS_NUM) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->num = (__u32)ynl_attr_get_u32(attr); } } @@ -5605,8 +6177,9 @@ ethtool_phc_vclocks_get(ynl_cpp::ynl_socket& ys, ((struct ynl_sock*)ys)->req_policy = ðtool_phc_vclocks_nest; yrs.yarg.rsp_policy = ðtool_phc_vclocks_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_PHC_VCLOCKS_HEADER, req.header.value()); + } rsp.reset(new ethtool_phc_vclocks_get_rsp()); yrs.yarg.data = rsp.get(); @@ -5614,8 +6187,9 @@ ethtool_phc_vclocks_get(ynl_cpp::ynl_socket& ys, yrs.rsp_cmd = 34; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -5640,12 +6214,14 @@ ethtool_phc_vclocks_get_dump(ynl_cpp::ynl_socket& ys, nlh = ynl_gemsg_start_dump(ys, ((struct ynl_sock*)ys)->family_id, ETHTOOL_MSG_PHC_VCLOCKS_GET, 1); ((struct ynl_sock*)ys)->req_policy = ðtool_phc_vclocks_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_PHC_VCLOCKS_HEADER, req.header.value()); + } err = ynl_exec_dump_no_alloc(ys, nlh, &yds); - if (err < 0) + if (err < 0) { return nullptr; + } return ret; } @@ -5666,20 +6242,24 @@ int ethtool_module_get_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == ETHTOOL_A_MODULE_HEADER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_header_nest; parg.data = &dst->header.emplace(); - if (ethtool_header_parse(&parg, attr)) + if (ethtool_header_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_MODULE_POWER_MODE_POLICY) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->power_mode_policy = (__u8)ynl_attr_get_u8(attr); } else if (type == ETHTOOL_A_MODULE_POWER_MODE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->power_mode = (__u8)ynl_attr_get_u8(attr); } } @@ -5699,8 +6279,9 @@ ethtool_module_get(ynl_cpp::ynl_socket& ys, ethtool_module_get_req& req) ((struct ynl_sock*)ys)->req_policy = ðtool_module_nest; yrs.yarg.rsp_policy = ðtool_module_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_MODULE_HEADER, req.header.value()); + } rsp.reset(new ethtool_module_get_rsp()); yrs.yarg.data = rsp.get(); @@ -5708,8 +6289,9 @@ ethtool_module_get(ynl_cpp::ynl_socket& ys, ethtool_module_get_req& req) yrs.rsp_cmd = 35; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -5734,12 +6316,14 @@ ethtool_module_get_dump(ynl_cpp::ynl_socket& ys, nlh = ynl_gemsg_start_dump(ys, ((struct ynl_sock*)ys)->family_id, ETHTOOL_MSG_MODULE_GET, 1); ((struct ynl_sock*)ys)->req_policy = ðtool_module_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_MODULE_HEADER, req.header.value()); + } err = ynl_exec_dump_no_alloc(ys, nlh, &yds); - if (err < 0) + if (err < 0) { return nullptr; + } return ret; } @@ -5756,16 +6340,20 @@ int ethtool_module_set(ynl_cpp::ynl_socket& ys, ethtool_module_set_req& req) nlh = ynl_gemsg_start_req(ys, ((struct ynl_sock*)ys)->family_id, ETHTOOL_MSG_MODULE_SET, 1); ((struct ynl_sock*)ys)->req_policy = ðtool_module_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_MODULE_HEADER, req.header.value()); - if (req.power_mode_policy.has_value()) + } + if (req.power_mode_policy.has_value()) { ynl_attr_put_u8(nlh, ETHTOOL_A_MODULE_POWER_MODE_POLICY, req.power_mode_policy.value()); - if (req.power_mode.has_value()) + } + if (req.power_mode.has_value()) { ynl_attr_put_u8(nlh, ETHTOOL_A_MODULE_POWER_MODE, req.power_mode.value()); + } err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return -1; + } return 0; } @@ -5784,77 +6372,94 @@ int ethtool_pse_get_rsp_parse(const struct nlmsghdr *nlh, dst = (ethtool_pse_get_rsp*)yarg->data; parg.ys = yarg->ys; - if (dst->c33_pse_pw_limit_ranges.size() > 0) + if (dst->c33_pse_pw_limit_ranges.size() > 0) { return ynl_error_parse(yarg, "attribute already present (pse.c33-pse-pw-limit-ranges)"); + } ynl_attr_for_each(attr, nlh, yarg->ys->family->hdr_len) { unsigned int type = ynl_attr_type(attr); if (type == ETHTOOL_A_PSE_HEADER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_header_nest; parg.data = &dst->header.emplace(); - if (ethtool_header_parse(&parg, attr)) + if (ethtool_header_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_PODL_PSE_ADMIN_STATE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->podl_pse_admin_state = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_PODL_PSE_ADMIN_CONTROL) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->podl_pse_admin_control = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_PODL_PSE_PW_D_STATUS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->podl_pse_pw_d_status = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_C33_PSE_ADMIN_STATE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->c33_pse_admin_state = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_C33_PSE_ADMIN_CONTROL) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->c33_pse_admin_control = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_C33_PSE_PW_D_STATUS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->c33_pse_pw_d_status = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_C33_PSE_PW_CLASS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->c33_pse_pw_class = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_C33_PSE_ACTUAL_PW) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->c33_pse_actual_pw = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_C33_PSE_EXT_STATE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->c33_pse_ext_state = (enum ethtool_c33_pse_ext_state)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_C33_PSE_EXT_SUBSTATE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->c33_pse_ext_substate = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_C33_PSE_AVAIL_PW_LIMIT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->c33_pse_avail_pw_limit = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_C33_PSE_PW_LIMIT_RANGES) { n_c33_pse_pw_limit_ranges++; } else if (type == ETHTOOL_A_PSE_PW_D_ID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->pse_pw_d_id = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_PSE_PRIO_MAX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->pse_prio_max = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_PSE_PRIO) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->pse_prio = (__u32)ynl_attr_get_u32(attr); } } @@ -5866,8 +6471,9 @@ int ethtool_pse_get_rsp_parse(const struct nlmsghdr *nlh, ynl_attr_for_each(attr, nlh, yarg->ys->family->hdr_len) { if (ynl_attr_type(attr) == ETHTOOL_A_C33_PSE_PW_LIMIT_RANGES) { parg.data = &dst->c33_pse_pw_limit_ranges[i]; - if (ethtool_c33_pse_pw_limit_parse(&parg, attr)) + if (ethtool_c33_pse_pw_limit_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } i++; } } @@ -5888,8 +6494,9 @@ ethtool_pse_get(ynl_cpp::ynl_socket& ys, ethtool_pse_get_req& req) ((struct ynl_sock*)ys)->req_policy = ðtool_pse_nest; yrs.yarg.rsp_policy = ðtool_pse_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_PSE_HEADER, req.header.value()); + } rsp.reset(new ethtool_pse_get_rsp()); yrs.yarg.data = rsp.get(); @@ -5897,8 +6504,9 @@ ethtool_pse_get(ynl_cpp::ynl_socket& ys, ethtool_pse_get_req& req) yrs.rsp_cmd = 37; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -5922,12 +6530,14 @@ ethtool_pse_get_dump(ynl_cpp::ynl_socket& ys, ethtool_pse_get_req_dump& req) nlh = ynl_gemsg_start_dump(ys, ((struct ynl_sock*)ys)->family_id, ETHTOOL_MSG_PSE_GET, 1); ((struct ynl_sock*)ys)->req_policy = ðtool_pse_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_PSE_HEADER, req.header.value()); + } err = ynl_exec_dump_no_alloc(ys, nlh, &yds); - if (err < 0) + if (err < 0) { return nullptr; + } return ret; } @@ -5943,20 +6553,26 @@ int ethtool_pse_set(ynl_cpp::ynl_socket& ys, ethtool_pse_set_req& req) nlh = ynl_gemsg_start_req(ys, ((struct ynl_sock*)ys)->family_id, ETHTOOL_MSG_PSE_SET, 1); ((struct ynl_sock*)ys)->req_policy = ðtool_pse_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_PSE_HEADER, req.header.value()); - if (req.podl_pse_admin_control.has_value()) + } + if (req.podl_pse_admin_control.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_PODL_PSE_ADMIN_CONTROL, req.podl_pse_admin_control.value()); - if (req.c33_pse_admin_control.has_value()) + } + if (req.c33_pse_admin_control.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_C33_PSE_ADMIN_CONTROL, req.c33_pse_admin_control.value()); - if (req.c33_pse_avail_pw_limit.has_value()) + } + if (req.c33_pse_avail_pw_limit.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_C33_PSE_AVAIL_PW_LIMIT, req.c33_pse_avail_pw_limit.value()); - if (req.pse_prio.has_value()) + } + if (req.pse_prio.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_PSE_PRIO, req.pse_prio.value()); + } err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return -1; + } return 0; } @@ -5977,45 +6593,54 @@ int ethtool_rss_get_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == ETHTOOL_A_RSS_HEADER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_header_nest; parg.data = &dst->header.emplace(); - if (ethtool_header_parse(&parg, attr)) + if (ethtool_header_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_RSS_CONTEXT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->context = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_RSS_HFUNC) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->hfunc = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_RSS_INDIR) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->indir.assign(data, data + len); } else if (type == ETHTOOL_A_RSS_HKEY) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->hkey.assign(data, data + len); } else if (type == ETHTOOL_A_RSS_INPUT_XFRM) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->input_xfrm = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_RSS_FLOW_HASH) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_flow_nest; parg.data = &dst->flow_hash.emplace(); - if (ethtool_flow_parse(&parg, attr)) + if (ethtool_flow_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } } @@ -6034,10 +6659,12 @@ ethtool_rss_get(ynl_cpp::ynl_socket& ys, ethtool_rss_get_req& req) ((struct ynl_sock*)ys)->req_policy = ðtool_rss_nest; yrs.yarg.rsp_policy = ðtool_rss_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_RSS_HEADER, req.header.value()); - if (req.context.has_value()) + } + if (req.context.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_RSS_CONTEXT, req.context.value()); + } rsp.reset(new ethtool_rss_get_rsp()); yrs.yarg.data = rsp.get(); @@ -6045,8 +6672,9 @@ ethtool_rss_get(ynl_cpp::ynl_socket& ys, ethtool_rss_get_req& req) yrs.rsp_cmd = ETHTOOL_MSG_RSS_GET; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -6070,14 +6698,17 @@ ethtool_rss_get_dump(ynl_cpp::ynl_socket& ys, ethtool_rss_get_req_dump& req) nlh = ynl_gemsg_start_dump(ys, ((struct ynl_sock*)ys)->family_id, ETHTOOL_MSG_RSS_GET, 1); ((struct ynl_sock*)ys)->req_policy = ðtool_rss_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_RSS_HEADER, req.header.value()); - if (req.start_context.has_value()) + } + if (req.start_context.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_RSS_START_CONTEXT, req.start_context.value()); + } err = ynl_exec_dump_no_alloc(ys, nlh, &yds); - if (err < 0) + if (err < 0) { return nullptr; + } return ret; } @@ -6099,44 +6730,54 @@ int ethtool_plca_get_cfg_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == ETHTOOL_A_PLCA_HEADER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_header_nest; parg.data = &dst->header.emplace(); - if (ethtool_header_parse(&parg, attr)) + if (ethtool_header_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_PLCA_VERSION) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->version = (__u16)ynl_attr_get_u16(attr); } else if (type == ETHTOOL_A_PLCA_ENABLED) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->enabled = (__u8)ynl_attr_get_u8(attr); } else if (type == ETHTOOL_A_PLCA_STATUS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->status = (__u8)ynl_attr_get_u8(attr); } else if (type == ETHTOOL_A_PLCA_NODE_CNT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->node_cnt = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_PLCA_NODE_ID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->node_id = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_PLCA_TO_TMR) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->to_tmr = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_PLCA_BURST_CNT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->burst_cnt = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_PLCA_BURST_TMR) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->burst_tmr = (__u32)ynl_attr_get_u32(attr); } } @@ -6156,8 +6797,9 @@ ethtool_plca_get_cfg(ynl_cpp::ynl_socket& ys, ethtool_plca_get_cfg_req& req) ((struct ynl_sock*)ys)->req_policy = ðtool_plca_nest; yrs.yarg.rsp_policy = ðtool_plca_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_PLCA_HEADER, req.header.value()); + } rsp.reset(new ethtool_plca_get_cfg_rsp()); yrs.yarg.data = rsp.get(); @@ -6165,8 +6807,9 @@ ethtool_plca_get_cfg(ynl_cpp::ynl_socket& ys, ethtool_plca_get_cfg_req& req) yrs.rsp_cmd = ETHTOOL_MSG_PLCA_GET_CFG; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -6191,12 +6834,14 @@ ethtool_plca_get_cfg_dump(ynl_cpp::ynl_socket& ys, nlh = ynl_gemsg_start_dump(ys, ((struct ynl_sock*)ys)->family_id, ETHTOOL_MSG_PLCA_GET_CFG, 1); ((struct ynl_sock*)ys)->req_policy = ðtool_plca_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_PLCA_HEADER, req.header.value()); + } err = ynl_exec_dump_no_alloc(ys, nlh, &yds); - if (err < 0) + if (err < 0) { return nullptr; + } return ret; } @@ -6214,28 +6859,38 @@ int ethtool_plca_set_cfg(ynl_cpp::ynl_socket& ys, nlh = ynl_gemsg_start_req(ys, ((struct ynl_sock*)ys)->family_id, ETHTOOL_MSG_PLCA_SET_CFG, 1); ((struct ynl_sock*)ys)->req_policy = ðtool_plca_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_PLCA_HEADER, req.header.value()); - if (req.version.has_value()) + } + if (req.version.has_value()) { ynl_attr_put_u16(nlh, ETHTOOL_A_PLCA_VERSION, req.version.value()); - if (req.enabled.has_value()) + } + if (req.enabled.has_value()) { ynl_attr_put_u8(nlh, ETHTOOL_A_PLCA_ENABLED, req.enabled.value()); - if (req.status.has_value()) + } + if (req.status.has_value()) { ynl_attr_put_u8(nlh, ETHTOOL_A_PLCA_STATUS, req.status.value()); - if (req.node_cnt.has_value()) + } + if (req.node_cnt.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_PLCA_NODE_CNT, req.node_cnt.value()); - if (req.node_id.has_value()) + } + if (req.node_id.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_PLCA_NODE_ID, req.node_id.value()); - if (req.to_tmr.has_value()) + } + if (req.to_tmr.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_PLCA_TO_TMR, req.to_tmr.value()); - if (req.burst_cnt.has_value()) + } + if (req.burst_cnt.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_PLCA_BURST_CNT, req.burst_cnt.value()); - if (req.burst_tmr.has_value()) + } + if (req.burst_tmr.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_PLCA_BURST_TMR, req.burst_tmr.value()); + } err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return -1; + } return 0; } @@ -6256,44 +6911,54 @@ int ethtool_plca_get_status_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == ETHTOOL_A_PLCA_HEADER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_header_nest; parg.data = &dst->header.emplace(); - if (ethtool_header_parse(&parg, attr)) + if (ethtool_header_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_PLCA_VERSION) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->version = (__u16)ynl_attr_get_u16(attr); } else if (type == ETHTOOL_A_PLCA_ENABLED) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->enabled = (__u8)ynl_attr_get_u8(attr); } else if (type == ETHTOOL_A_PLCA_STATUS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->status = (__u8)ynl_attr_get_u8(attr); } else if (type == ETHTOOL_A_PLCA_NODE_CNT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->node_cnt = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_PLCA_NODE_ID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->node_id = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_PLCA_TO_TMR) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->to_tmr = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_PLCA_BURST_CNT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->burst_cnt = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_PLCA_BURST_TMR) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->burst_tmr = (__u32)ynl_attr_get_u32(attr); } } @@ -6314,8 +6979,9 @@ ethtool_plca_get_status(ynl_cpp::ynl_socket& ys, ((struct ynl_sock*)ys)->req_policy = ðtool_plca_nest; yrs.yarg.rsp_policy = ðtool_plca_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_PLCA_HEADER, req.header.value()); + } rsp.reset(new ethtool_plca_get_status_rsp()); yrs.yarg.data = rsp.get(); @@ -6323,8 +6989,9 @@ ethtool_plca_get_status(ynl_cpp::ynl_socket& ys, yrs.rsp_cmd = 40; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -6349,12 +7016,14 @@ ethtool_plca_get_status_dump(ynl_cpp::ynl_socket& ys, nlh = ynl_gemsg_start_dump(ys, ((struct ynl_sock*)ys)->family_id, ETHTOOL_MSG_PLCA_GET_STATUS, 1); ((struct ynl_sock*)ys)->req_policy = ðtool_plca_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_PLCA_HEADER, req.header.value()); + } err = ynl_exec_dump_no_alloc(ys, nlh, &yds); - if (err < 0) + if (err < 0) { return nullptr; + } return ret; } @@ -6375,53 +7044,65 @@ int ethtool_mm_get_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == ETHTOOL_A_MM_HEADER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_header_nest; parg.data = &dst->header.emplace(); - if (ethtool_header_parse(&parg, attr)) + if (ethtool_header_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_MM_PMAC_ENABLED) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->pmac_enabled = (__u8)ynl_attr_get_u8(attr); } else if (type == ETHTOOL_A_MM_TX_ENABLED) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->tx_enabled = (__u8)ynl_attr_get_u8(attr); } else if (type == ETHTOOL_A_MM_TX_ACTIVE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->tx_active = (__u8)ynl_attr_get_u8(attr); } else if (type == ETHTOOL_A_MM_TX_MIN_FRAG_SIZE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->tx_min_frag_size = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_MM_RX_MIN_FRAG_SIZE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->rx_min_frag_size = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_MM_VERIFY_ENABLED) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->verify_enabled = (__u8)ynl_attr_get_u8(attr); } else if (type == ETHTOOL_A_MM_VERIFY_TIME) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->verify_time = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_MM_MAX_VERIFY_TIME) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->max_verify_time = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_MM_STATS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_mm_stat_nest; parg.data = &dst->stats.emplace(); - if (ethtool_mm_stat_parse(&parg, attr)) + if (ethtool_mm_stat_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } } @@ -6440,8 +7121,9 @@ ethtool_mm_get(ynl_cpp::ynl_socket& ys, ethtool_mm_get_req& req) ((struct ynl_sock*)ys)->req_policy = ðtool_mm_nest; yrs.yarg.rsp_policy = ðtool_mm_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_MM_HEADER, req.header.value()); + } rsp.reset(new ethtool_mm_get_rsp()); yrs.yarg.data = rsp.get(); @@ -6449,8 +7131,9 @@ ethtool_mm_get(ynl_cpp::ynl_socket& ys, ethtool_mm_get_req& req) yrs.rsp_cmd = ETHTOOL_MSG_MM_GET; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -6474,12 +7157,14 @@ ethtool_mm_get_dump(ynl_cpp::ynl_socket& ys, ethtool_mm_get_req_dump& req) nlh = ynl_gemsg_start_dump(ys, ((struct ynl_sock*)ys)->family_id, ETHTOOL_MSG_MM_GET, 1); ((struct ynl_sock*)ys)->req_policy = ðtool_mm_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_MM_HEADER, req.header.value()); + } err = ynl_exec_dump_no_alloc(ys, nlh, &yds); - if (err < 0) + if (err < 0) { return nullptr; + } return ret; } @@ -6496,22 +7181,29 @@ int ethtool_mm_set(ynl_cpp::ynl_socket& ys, ethtool_mm_set_req& req) nlh = ynl_gemsg_start_req(ys, ((struct ynl_sock*)ys)->family_id, ETHTOOL_MSG_MM_SET, 1); ((struct ynl_sock*)ys)->req_policy = ðtool_mm_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_MM_HEADER, req.header.value()); - if (req.verify_enabled.has_value()) + } + if (req.verify_enabled.has_value()) { ynl_attr_put_u8(nlh, ETHTOOL_A_MM_VERIFY_ENABLED, req.verify_enabled.value()); - if (req.verify_time.has_value()) + } + if (req.verify_time.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_MM_VERIFY_TIME, req.verify_time.value()); - if (req.tx_enabled.has_value()) + } + if (req.tx_enabled.has_value()) { ynl_attr_put_u8(nlh, ETHTOOL_A_MM_TX_ENABLED, req.tx_enabled.value()); - if (req.pmac_enabled.has_value()) + } + if (req.pmac_enabled.has_value()) { ynl_attr_put_u8(nlh, ETHTOOL_A_MM_PMAC_ENABLED, req.pmac_enabled.value()); - if (req.tx_min_frag_size.has_value()) + } + if (req.tx_min_frag_size.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_MM_TX_MIN_FRAG_SIZE, req.tx_min_frag_size.value()); + } err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return -1; + } return 0; } @@ -6528,16 +7220,20 @@ int ethtool_module_fw_flash_act(ynl_cpp::ynl_socket& ys, nlh = ynl_gemsg_start_req(ys, ((struct ynl_sock*)ys)->family_id, ETHTOOL_MSG_MODULE_FW_FLASH_ACT, 1); ((struct ynl_sock*)ys)->req_policy = ðtool_module_fw_flash_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_MODULE_FW_FLASH_HEADER, req.header.value()); - if (req.file_name.size() > 0) + } + if (req.file_name.size() > 0) { ynl_attr_put_str(nlh, ETHTOOL_A_MODULE_FW_FLASH_FILE_NAME, req.file_name.data()); - if (req.password.has_value()) + } + if (req.password.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_MODULE_FW_FLASH_PASSWORD, req.password.value()); + } err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return -1; + } return 0; } @@ -6558,40 +7254,49 @@ int ethtool_phy_get_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == ETHTOOL_A_PHY_HEADER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_header_nest; parg.data = &dst->header.emplace(); - if (ethtool_header_parse(&parg, attr)) + if (ethtool_header_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_PHY_INDEX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->index = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_PHY_DRVNAME) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->drvname.assign(ynl_attr_get_str(attr)); } else if (type == ETHTOOL_A_PHY_NAME) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->name.assign(ynl_attr_get_str(attr)); } else if (type == ETHTOOL_A_PHY_UPSTREAM_TYPE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->upstream_type = (enum phy_upstream)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_PHY_UPSTREAM_INDEX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->upstream_index = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_PHY_UPSTREAM_SFP_NAME) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->upstream_sfp_name.assign(ynl_attr_get_str(attr)); } else if (type == ETHTOOL_A_PHY_DOWNSTREAM_SFP_NAME) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->downstream_sfp_name.assign(ynl_attr_get_str(attr)); } } @@ -6611,8 +7316,9 @@ ethtool_phy_get(ynl_cpp::ynl_socket& ys, ethtool_phy_get_req& req) ((struct ynl_sock*)ys)->req_policy = ðtool_phy_nest; yrs.yarg.rsp_policy = ðtool_phy_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_PHY_HEADER, req.header.value()); + } rsp.reset(new ethtool_phy_get_rsp()); yrs.yarg.data = rsp.get(); @@ -6620,8 +7326,9 @@ ethtool_phy_get(ynl_cpp::ynl_socket& ys, ethtool_phy_get_req& req) yrs.rsp_cmd = ETHTOOL_MSG_PHY_GET; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -6645,12 +7352,14 @@ ethtool_phy_get_dump(ynl_cpp::ynl_socket& ys, ethtool_phy_get_req_dump& req) nlh = ynl_gemsg_start_dump(ys, ((struct ynl_sock*)ys)->family_id, ETHTOOL_MSG_PHY_GET, 1); ((struct ynl_sock*)ys)->req_policy = ðtool_phy_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_PHY_HEADER, req.header.value()); + } err = ynl_exec_dump_no_alloc(ys, nlh, &yds); - if (err < 0) + if (err < 0) { return nullptr; + } return ret; } @@ -6672,45 +7381,55 @@ int ethtool_tsconfig_get_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == ETHTOOL_A_TSCONFIG_HEADER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_header_nest; parg.data = &dst->header.emplace(); - if (ethtool_header_parse(&parg, attr)) + if (ethtool_header_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_TSCONFIG_HWTSTAMP_PROVIDER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_ts_hwtstamp_provider_nest; parg.data = &dst->hwtstamp_provider.emplace(); - if (ethtool_ts_hwtstamp_provider_parse(&parg, attr)) + if (ethtool_ts_hwtstamp_provider_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_TSCONFIG_TX_TYPES) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_bitset_nest; parg.data = &dst->tx_types.emplace(); - if (ethtool_bitset_parse(&parg, attr)) + if (ethtool_bitset_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_TSCONFIG_RX_FILTERS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_bitset_nest; parg.data = &dst->rx_filters.emplace(); - if (ethtool_bitset_parse(&parg, attr)) + if (ethtool_bitset_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_TSCONFIG_HWTSTAMP_FLAGS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_bitset_nest; parg.data = &dst->hwtstamp_flags.emplace(); - if (ethtool_bitset_parse(&parg, attr)) + if (ethtool_bitset_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } } @@ -6729,8 +7448,9 @@ ethtool_tsconfig_get(ynl_cpp::ynl_socket& ys, ethtool_tsconfig_get_req& req) ((struct ynl_sock*)ys)->req_policy = ðtool_tsconfig_nest; yrs.yarg.rsp_policy = ðtool_tsconfig_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_TSCONFIG_HEADER, req.header.value()); + } rsp.reset(new ethtool_tsconfig_get_rsp()); yrs.yarg.data = rsp.get(); @@ -6738,8 +7458,9 @@ ethtool_tsconfig_get(ynl_cpp::ynl_socket& ys, ethtool_tsconfig_get_req& req) yrs.rsp_cmd = 47; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -6764,12 +7485,14 @@ ethtool_tsconfig_get_dump(ynl_cpp::ynl_socket& ys, nlh = ynl_gemsg_start_dump(ys, ((struct ynl_sock*)ys)->family_id, ETHTOOL_MSG_TSCONFIG_GET, 1); ((struct ynl_sock*)ys)->req_policy = ðtool_tsconfig_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_TSCONFIG_HEADER, req.header.value()); + } err = ynl_exec_dump_no_alloc(ys, nlh, &yds); - if (err < 0) + if (err < 0) { return nullptr; + } return ret; } @@ -6790,45 +7513,55 @@ int ethtool_tsconfig_set_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == ETHTOOL_A_TSCONFIG_HEADER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_header_nest; parg.data = &dst->header.emplace(); - if (ethtool_header_parse(&parg, attr)) + if (ethtool_header_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_TSCONFIG_HWTSTAMP_PROVIDER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_ts_hwtstamp_provider_nest; parg.data = &dst->hwtstamp_provider.emplace(); - if (ethtool_ts_hwtstamp_provider_parse(&parg, attr)) + if (ethtool_ts_hwtstamp_provider_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_TSCONFIG_TX_TYPES) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_bitset_nest; parg.data = &dst->tx_types.emplace(); - if (ethtool_bitset_parse(&parg, attr)) + if (ethtool_bitset_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_TSCONFIG_RX_FILTERS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_bitset_nest; parg.data = &dst->rx_filters.emplace(); - if (ethtool_bitset_parse(&parg, attr)) + if (ethtool_bitset_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_TSCONFIG_HWTSTAMP_FLAGS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_bitset_nest; parg.data = &dst->hwtstamp_flags.emplace(); - if (ethtool_bitset_parse(&parg, attr)) + if (ethtool_bitset_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } } @@ -6847,16 +7580,21 @@ ethtool_tsconfig_set(ynl_cpp::ynl_socket& ys, ethtool_tsconfig_set_req& req) ((struct ynl_sock*)ys)->req_policy = ðtool_tsconfig_nest; yrs.yarg.rsp_policy = ðtool_tsconfig_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_TSCONFIG_HEADER, req.header.value()); - if (req.hwtstamp_provider.has_value()) + } + if (req.hwtstamp_provider.has_value()) { ethtool_ts_hwtstamp_provider_put(nlh, ETHTOOL_A_TSCONFIG_HWTSTAMP_PROVIDER, req.hwtstamp_provider.value()); - if (req.tx_types.has_value()) + } + if (req.tx_types.has_value()) { ethtool_bitset_put(nlh, ETHTOOL_A_TSCONFIG_TX_TYPES, req.tx_types.value()); - if (req.rx_filters.has_value()) + } + if (req.rx_filters.has_value()) { ethtool_bitset_put(nlh, ETHTOOL_A_TSCONFIG_RX_FILTERS, req.rx_filters.value()); - if (req.hwtstamp_flags.has_value()) + } + if (req.hwtstamp_flags.has_value()) { ethtool_bitset_put(nlh, ETHTOOL_A_TSCONFIG_HWTSTAMP_FLAGS, req.hwtstamp_flags.value()); + } rsp.reset(new ethtool_tsconfig_set_rsp()); yrs.yarg.data = rsp.get(); @@ -6864,8 +7602,9 @@ ethtool_tsconfig_set(ynl_cpp::ynl_socket& ys, ethtool_tsconfig_set_req& req) yrs.rsp_cmd = 48; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -6881,24 +7620,32 @@ int ethtool_rss_set(ynl_cpp::ynl_socket& ys, ethtool_rss_set_req& req) nlh = ynl_gemsg_start_req(ys, ((struct ynl_sock*)ys)->family_id, ETHTOOL_MSG_RSS_SET, 1); ((struct ynl_sock*)ys)->req_policy = ðtool_rss_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_RSS_HEADER, req.header.value()); - if (req.context.has_value()) + } + if (req.context.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_RSS_CONTEXT, req.context.value()); - if (req.hfunc.has_value()) + } + if (req.hfunc.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_RSS_HFUNC, req.hfunc.value()); - if (req.indir.size() > 0) + } + if (req.indir.size() > 0) { ynl_attr_put(nlh, ETHTOOL_A_RSS_INDIR, req.indir.data(), req.indir.size()); - if (req.hkey.size() > 0) + } + if (req.hkey.size() > 0) { ynl_attr_put(nlh, ETHTOOL_A_RSS_HKEY, req.hkey.data(), req.hkey.size()); - if (req.input_xfrm.has_value()) + } + if (req.input_xfrm.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_RSS_INPUT_XFRM, req.input_xfrm.value()); - if (req.flow_hash.has_value()) + } + if (req.flow_hash.has_value()) { ethtool_flow_put(nlh, ETHTOOL_A_RSS_FLOW_HASH, req.flow_hash.value()); + } err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return -1; + } return 0; } @@ -6919,36 +7666,43 @@ int ethtool_rss_create_act_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == ETHTOOL_A_RSS_HEADER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_header_nest; parg.data = &dst->header.emplace(); - if (ethtool_header_parse(&parg, attr)) + if (ethtool_header_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_RSS_CONTEXT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->context = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_RSS_HFUNC) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->hfunc = (__u32)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_RSS_INDIR) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->indir.assign(data, data + len); } else if (type == ETHTOOL_A_RSS_HKEY) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->hkey.assign(data, data + len); } else if (type == ETHTOOL_A_RSS_INPUT_XFRM) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->input_xfrm = (__u32)ynl_attr_get_u32(attr); } } @@ -6969,18 +7723,24 @@ ethtool_rss_create_act(ynl_cpp::ynl_socket& ys, ((struct ynl_sock*)ys)->req_policy = ðtool_rss_nest; yrs.yarg.rsp_policy = ðtool_rss_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_RSS_HEADER, req.header.value()); - if (req.context.has_value()) + } + if (req.context.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_RSS_CONTEXT, req.context.value()); - if (req.hfunc.has_value()) + } + if (req.hfunc.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_RSS_HFUNC, req.hfunc.value()); - if (req.indir.size() > 0) + } + if (req.indir.size() > 0) { ynl_attr_put(nlh, ETHTOOL_A_RSS_INDIR, req.indir.data(), req.indir.size()); - if (req.hkey.size() > 0) + } + if (req.hkey.size() > 0) { ynl_attr_put(nlh, ETHTOOL_A_RSS_HKEY, req.hkey.data(), req.hkey.size()); - if (req.input_xfrm.has_value()) + } + if (req.input_xfrm.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_RSS_INPUT_XFRM, req.input_xfrm.value()); + } rsp.reset(new ethtool_rss_create_act_rsp()); yrs.yarg.data = rsp.get(); @@ -6988,8 +7748,9 @@ ethtool_rss_create_act(ynl_cpp::ynl_socket& ys, yrs.rsp_cmd = 51; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -7007,14 +7768,17 @@ int ethtool_rss_delete_act(ynl_cpp::ynl_socket& ys, nlh = ynl_gemsg_start_req(ys, ((struct ynl_sock*)ys)->family_id, ETHTOOL_MSG_RSS_DELETE_ACT, 1); ((struct ynl_sock*)ys)->req_policy = ðtool_rss_nest; - if (req.header.has_value()) + if (req.header.has_value()) { ethtool_header_put(nlh, ETHTOOL_A_RSS_HEADER, req.header.value()); - if (req.context.has_value()) + } + if (req.context.has_value()) { ynl_attr_put_u32(nlh, ETHTOOL_A_RSS_CONTEXT, req.context.value()); + } err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return -1; + } return 0; } @@ -7034,16 +7798,19 @@ int ethtool_cable_test_ntf_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == ETHTOOL_A_CABLE_TEST_NTF_HEADER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_header_nest; parg.data = &dst->header.emplace(); - if (ethtool_header_parse(&parg, attr)) + if (ethtool_header_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_CABLE_TEST_NTF_STATUS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->status = (__u8)ynl_attr_get_u8(attr); } } @@ -7066,25 +7833,30 @@ int ethtool_cable_test_tdr_ntf_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == ETHTOOL_A_CABLE_TEST_TDR_NTF_HEADER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_header_nest; parg.data = &dst->header.emplace(); - if (ethtool_header_parse(&parg, attr)) + if (ethtool_header_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_CABLE_TEST_TDR_NTF_STATUS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->status = (__u8)ynl_attr_get_u8(attr); } else if (type == ETHTOOL_A_CABLE_TEST_TDR_NTF_NEST) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_cable_nest_nest; parg.data = &dst->nest.emplace(); - if (ethtool_cable_nest_parse(&parg, attr)) + if (ethtool_cable_nest_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } } @@ -7106,28 +7878,34 @@ int ethtool_module_fw_flash_ntf_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == ETHTOOL_A_MODULE_FW_FLASH_HEADER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_header_nest; parg.data = &dst->header.emplace(); - if (ethtool_header_parse(&parg, attr)) + if (ethtool_header_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_MODULE_FW_FLASH_STATUS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->status = (enum ethtool_module_fw_flash_status)ynl_attr_get_u32(attr); } else if (type == ETHTOOL_A_MODULE_FW_FLASH_STATUS_MSG) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->status_msg.assign(ynl_attr_get_str(attr)); } else if (type == ETHTOOL_A_MODULE_FW_FLASH_DONE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->done = (__u64)ynl_attr_get_uint(attr); } else if (type == ETHTOOL_A_MODULE_FW_FLASH_TOTAL) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->total = (__u64)ynl_attr_get_uint(attr); } } @@ -7150,16 +7928,19 @@ int ethtool_pse_ntf_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == ETHTOOL_A_PSE_NTF_HEADER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_header_nest; parg.data = &dst->header.emplace(); - if (ethtool_header_parse(&parg, attr)) + if (ethtool_header_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_PSE_NTF_EVENTS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->events = (__u64)ynl_attr_get_uint(attr); } } @@ -7182,16 +7963,19 @@ int ethtool_rss_delete_ntf_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == ETHTOOL_A_RSS_HEADER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = ðtool_header_nest; parg.data = &dst->header.emplace(); - if (ethtool_header_parse(&parg, attr)) + if (ethtool_header_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == ETHTOOL_A_RSS_CONTEXT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->context = (__u32)ynl_attr_get_u32(attr); } } diff --git a/generated/fou-user.cpp b/generated/fou-user.cpp index 81af38a..36dcd45 100644 --- a/generated/fou-user.cpp +++ b/generated/fou-user.cpp @@ -24,8 +24,9 @@ static constexpr std::array fou_op_strmap = [ std::string_view fou_op_str(int op) { - if (op < 0 || op >= (int)(fou_op_strmap.size())) + if (op < 0 || op >= (int)(fou_op_strmap.size())) { return ""; + } return fou_op_strmap[op]; } @@ -39,8 +40,9 @@ static constexpr std::array fou_encap_type_strmap = []( std::string_view fou_encap_type_str(int value) { - if (value < 0 || value >= (int)(fou_encap_type_strmap.size())) + if (value < 0 || value >= (int)(fou_encap_type_strmap.size())) { return ""; + } return fou_encap_type_strmap[value]; } @@ -91,30 +93,41 @@ int fou_add(ynl_cpp::ynl_socket& ys, fou_add_req& req) nlh = ynl_gemsg_start_req(ys, ((struct ynl_sock*)ys)->family_id, FOU_CMD_ADD, 1); ((struct ynl_sock*)ys)->req_policy = &fou_nest; - if (req.port.has_value()) + if (req.port.has_value()) { ynl_attr_put_u16(nlh, FOU_ATTR_PORT, req.port.value()); - if (req.ipproto.has_value()) + } + if (req.ipproto.has_value()) { ynl_attr_put_u8(nlh, FOU_ATTR_IPPROTO, req.ipproto.value()); - if (req.type.has_value()) + } + if (req.type.has_value()) { ynl_attr_put_u8(nlh, FOU_ATTR_TYPE, req.type.value()); - if (req.remcsum_nopartial) + } + if (req.remcsum_nopartial) { ynl_attr_put(nlh, FOU_ATTR_REMCSUM_NOPARTIAL, NULL, 0); - if (req.local_v4.has_value()) + } + if (req.local_v4.has_value()) { ynl_attr_put_u32(nlh, FOU_ATTR_LOCAL_V4, req.local_v4.value()); - if (req.peer_v4.has_value()) + } + if (req.peer_v4.has_value()) { ynl_attr_put_u32(nlh, FOU_ATTR_PEER_V4, req.peer_v4.value()); - if (req.local_v6.size() > 0) + } + if (req.local_v6.size() > 0) { ynl_attr_put(nlh, FOU_ATTR_LOCAL_V6, req.local_v6.data(), req.local_v6.size()); - if (req.peer_v6.size() > 0) + } + if (req.peer_v6.size() > 0) { ynl_attr_put(nlh, FOU_ATTR_PEER_V6, req.peer_v6.data(), req.peer_v6.size()); - if (req.peer_port.has_value()) + } + if (req.peer_port.has_value()) { ynl_attr_put_u16(nlh, FOU_ATTR_PEER_PORT, req.peer_port.value()); - if (req.ifindex.has_value()) + } + if (req.ifindex.has_value()) { ynl_attr_put_s32(nlh, FOU_ATTR_IFINDEX, req.ifindex.value()); + } err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return -1; + } return 0; } @@ -130,26 +143,35 @@ int fou_del(ynl_cpp::ynl_socket& ys, fou_del_req& req) nlh = ynl_gemsg_start_req(ys, ((struct ynl_sock*)ys)->family_id, FOU_CMD_DEL, 1); ((struct ynl_sock*)ys)->req_policy = &fou_nest; - if (req.af.has_value()) + if (req.af.has_value()) { ynl_attr_put_u8(nlh, FOU_ATTR_AF, req.af.value()); - if (req.ifindex.has_value()) + } + if (req.ifindex.has_value()) { ynl_attr_put_s32(nlh, FOU_ATTR_IFINDEX, req.ifindex.value()); - if (req.port.has_value()) + } + if (req.port.has_value()) { ynl_attr_put_u16(nlh, FOU_ATTR_PORT, req.port.value()); - if (req.peer_port.has_value()) + } + if (req.peer_port.has_value()) { ynl_attr_put_u16(nlh, FOU_ATTR_PEER_PORT, req.peer_port.value()); - if (req.local_v4.has_value()) + } + if (req.local_v4.has_value()) { ynl_attr_put_u32(nlh, FOU_ATTR_LOCAL_V4, req.local_v4.value()); - if (req.peer_v4.has_value()) + } + if (req.peer_v4.has_value()) { ynl_attr_put_u32(nlh, FOU_ATTR_PEER_V4, req.peer_v4.value()); - if (req.local_v6.size() > 0) + } + if (req.local_v6.size() > 0) { ynl_attr_put(nlh, FOU_ATTR_LOCAL_V6, req.local_v6.data(), req.local_v6.size()); - if (req.peer_v6.size() > 0) + } + if (req.peer_v6.size() > 0) { ynl_attr_put(nlh, FOU_ATTR_PEER_V6, req.peer_v6.data(), req.peer_v6.size()); + } err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return -1; + } return 0; } @@ -167,47 +189,57 @@ int fou_get_rsp_parse(const struct nlmsghdr *nlh, struct ynl_parse_arg *yarg) unsigned int type = ynl_attr_type(attr); if (type == FOU_ATTR_PORT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->port = (__u16)ynl_attr_get_u16(attr); } else if (type == FOU_ATTR_IPPROTO) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->ipproto = (__u8)ynl_attr_get_u8(attr); } else if (type == FOU_ATTR_TYPE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->type = (__u8)ynl_attr_get_u8(attr); } else if (type == FOU_ATTR_REMCSUM_NOPARTIAL) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == FOU_ATTR_LOCAL_V4) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->local_v4 = (__u32)ynl_attr_get_u32(attr); } else if (type == FOU_ATTR_PEER_V4) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->peer_v4 = (__u32)ynl_attr_get_u32(attr); } else if (type == FOU_ATTR_LOCAL_V6) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->local_v6.assign(data, data + len); } else if (type == FOU_ATTR_PEER_V6) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->peer_v6.assign(data, data + len); } else if (type == FOU_ATTR_PEER_PORT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->peer_port = (__u16)ynl_attr_get_u16(attr); } else if (type == FOU_ATTR_IFINDEX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->ifindex = (__s32)ynl_attr_get_s32(attr); } } @@ -226,22 +258,30 @@ std::unique_ptr fou_get(ynl_cpp::ynl_socket& ys, fou_get_req& req) ((struct ynl_sock*)ys)->req_policy = &fou_nest; yrs.yarg.rsp_policy = &fou_nest; - if (req.af.has_value()) + if (req.af.has_value()) { ynl_attr_put_u8(nlh, FOU_ATTR_AF, req.af.value()); - if (req.ifindex.has_value()) + } + if (req.ifindex.has_value()) { ynl_attr_put_s32(nlh, FOU_ATTR_IFINDEX, req.ifindex.value()); - if (req.port.has_value()) + } + if (req.port.has_value()) { ynl_attr_put_u16(nlh, FOU_ATTR_PORT, req.port.value()); - if (req.peer_port.has_value()) + } + if (req.peer_port.has_value()) { ynl_attr_put_u16(nlh, FOU_ATTR_PEER_PORT, req.peer_port.value()); - if (req.local_v4.has_value()) + } + if (req.local_v4.has_value()) { ynl_attr_put_u32(nlh, FOU_ATTR_LOCAL_V4, req.local_v4.value()); - if (req.peer_v4.has_value()) + } + if (req.peer_v4.has_value()) { ynl_attr_put_u32(nlh, FOU_ATTR_PEER_V4, req.peer_v4.value()); - if (req.local_v6.size() > 0) + } + if (req.local_v6.size() > 0) { ynl_attr_put(nlh, FOU_ATTR_LOCAL_V6, req.local_v6.data(), req.local_v6.size()); - if (req.peer_v6.size() > 0) + } + if (req.peer_v6.size() > 0) { ynl_attr_put(nlh, FOU_ATTR_PEER_V6, req.peer_v6.data(), req.peer_v6.size()); + } rsp.reset(new fou_get_rsp()); yrs.yarg.data = rsp.get(); @@ -249,8 +289,9 @@ std::unique_ptr fou_get(ynl_cpp::ynl_socket& ys, fou_get_req& req) yrs.rsp_cmd = FOU_CMD_GET; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -273,8 +314,9 @@ std::unique_ptr fou_get_dump(ynl_cpp::ynl_socket& ys) nlh = ynl_gemsg_start_dump(ys, ((struct ynl_sock*)ys)->family_id, FOU_CMD_GET, 1); err = ynl_exec_dump_no_alloc(ys, nlh, &yds); - if (err < 0) + if (err < 0) { return nullptr; + } return ret; } diff --git a/generated/handshake-user.cpp b/generated/handshake-user.cpp index 01d0eea..ba56dd0 100644 --- a/generated/handshake-user.cpp +++ b/generated/handshake-user.cpp @@ -24,8 +24,9 @@ static constexpr std::array handshake_ std::string_view handshake_op_str(int op) { - if (op < 0 || op >= (int)(handshake_op_strmap.size())) + if (op < 0 || op >= (int)(handshake_op_strmap.size())) { return ""; + } return handshake_op_strmap[op]; } @@ -39,8 +40,9 @@ static constexpr std::array handshake_handler_class_str std::string_view handshake_handler_class_str(handshake_handler_class value) { - if (value < 0 || value >= (int)(handshake_handler_class_strmap.size())) + if (value < 0 || value >= (int)(handshake_handler_class_strmap.size())) { return ""; + } return handshake_handler_class_strmap[value]; } @@ -54,8 +56,9 @@ static constexpr std::array handshake_msg_type_strmap = std::string_view handshake_msg_type_str(handshake_msg_type value) { - if (value < 0 || value >= (int)(handshake_msg_type_strmap.size())) + if (value < 0 || value >= (int)(handshake_msg_type_strmap.size())) { return ""; + } return handshake_msg_type_strmap[value]; } @@ -70,8 +73,9 @@ static constexpr std::array handshake_auth_strmap = []( std::string_view handshake_auth_str(handshake_auth value) { - if (value < 0 || value >= (int)(handshake_auth_strmap.size())) + if (value < 0 || value >= (int)(handshake_auth_strmap.size())) { return ""; + } return handshake_auth_strmap[value]; } @@ -146,12 +150,14 @@ int handshake_x509_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == HANDSHAKE_A_X509_CERT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->cert = (__s32)ynl_attr_get_s32(attr); } else if (type == HANDSHAKE_A_X509_PRIVKEY) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->privkey = (__s32)ynl_attr_get_s32(attr); } } @@ -174,41 +180,49 @@ int handshake_accept_rsp_parse(const struct nlmsghdr *nlh, dst = (handshake_accept_rsp*)yarg->data; parg.ys = yarg->ys; - if (dst->certificate.size() > 0) + if (dst->certificate.size() > 0) { return ynl_error_parse(yarg, "attribute already present (accept.certificate)"); - if (dst->peer_identity.size() > 0) + } + if (dst->peer_identity.size() > 0) { return ynl_error_parse(yarg, "attribute already present (accept.peer-identity)"); + } ynl_attr_for_each(attr, nlh, yarg->ys->family->hdr_len) { unsigned int type = ynl_attr_type(attr); if (type == HANDSHAKE_A_ACCEPT_SOCKFD) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->sockfd = (__s32)ynl_attr_get_s32(attr); } else if (type == HANDSHAKE_A_ACCEPT_MESSAGE_TYPE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->message_type = (enum handshake_msg_type)ynl_attr_get_u32(attr); } else if (type == HANDSHAKE_A_ACCEPT_TIMEOUT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->timeout = (__u32)ynl_attr_get_u32(attr); } else if (type == HANDSHAKE_A_ACCEPT_AUTH_MODE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->auth_mode = (enum handshake_auth)ynl_attr_get_u32(attr); } else if (type == HANDSHAKE_A_ACCEPT_PEER_IDENTITY) { n_peer_identity++; } else if (type == HANDSHAKE_A_ACCEPT_CERTIFICATE) { n_certificate++; } else if (type == HANDSHAKE_A_ACCEPT_PEERNAME) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->peername.assign(ynl_attr_get_str(attr)); } else if (type == HANDSHAKE_A_ACCEPT_KEYRING) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->keyring = (__u32)ynl_attr_get_u32(attr); } } @@ -220,8 +234,9 @@ int handshake_accept_rsp_parse(const struct nlmsghdr *nlh, ynl_attr_for_each(attr, nlh, yarg->ys->family->hdr_len) { if (ynl_attr_type(attr) == HANDSHAKE_A_ACCEPT_CERTIFICATE) { parg.data = &dst->certificate[i]; - if (handshake_x509_parse(&parg, attr)) + if (handshake_x509_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } i++; } } @@ -252,8 +267,9 @@ handshake_accept(ynl_cpp::ynl_socket& ys, handshake_accept_req& req) ((struct ynl_sock*)ys)->req_policy = &handshake_accept_nest; yrs.yarg.rsp_policy = &handshake_accept_nest; - if (req.handler_class.has_value()) + if (req.handler_class.has_value()) { ynl_attr_put_u32(nlh, HANDSHAKE_A_ACCEPT_HANDLER_CLASS, req.handler_class.value()); + } rsp.reset(new handshake_accept_rsp()); yrs.yarg.data = rsp.get(); @@ -261,8 +277,9 @@ handshake_accept(ynl_cpp::ynl_socket& ys, handshake_accept_req& req) yrs.rsp_cmd = HANDSHAKE_CMD_ACCEPT; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -279,16 +296,20 @@ int handshake_done(ynl_cpp::ynl_socket& ys, handshake_done_req& req) nlh = ynl_gemsg_start_req(ys, ((struct ynl_sock*)ys)->family_id, HANDSHAKE_CMD_DONE, 1); ((struct ynl_sock*)ys)->req_policy = &handshake_done_nest; - if (req.status.has_value()) + if (req.status.has_value()) { ynl_attr_put_u32(nlh, HANDSHAKE_A_DONE_STATUS, req.status.value()); - if (req.sockfd.has_value()) + } + if (req.sockfd.has_value()) { ynl_attr_put_s32(nlh, HANDSHAKE_A_DONE_SOCKFD, req.sockfd.value()); - for (unsigned int i = 0; i < req.remote_auth.size(); i++) + } + for (unsigned int i = 0; i < req.remote_auth.size(); i++) { ynl_attr_put_u32(nlh, HANDSHAKE_A_DONE_REMOTE_AUTH, req.remote_auth[i]); + } err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return -1; + } return 0; } diff --git a/generated/lockd-user.cpp b/generated/lockd-user.cpp index e59f7d1..d1edf5b 100644 --- a/generated/lockd-user.cpp +++ b/generated/lockd-user.cpp @@ -23,8 +23,9 @@ static constexpr std::array lockd_op std::string_view lockd_op_str(int op) { - if (op < 0 || op >= (int)(lockd_op_strmap.size())) + if (op < 0 || op >= (int)(lockd_op_strmap.size())) { return ""; + } return lockd_op_strmap[op]; } @@ -57,16 +58,20 @@ int lockd_server_set(ynl_cpp::ynl_socket& ys, lockd_server_set_req& req) nlh = ynl_gemsg_start_req(ys, ((struct ynl_sock*)ys)->family_id, LOCKD_CMD_SERVER_SET, 1); ((struct ynl_sock*)ys)->req_policy = &lockd_server_nest; - if (req.gracetime.has_value()) + if (req.gracetime.has_value()) { ynl_attr_put_u32(nlh, LOCKD_A_SERVER_GRACETIME, req.gracetime.value()); - if (req.tcp_port.has_value()) + } + if (req.tcp_port.has_value()) { ynl_attr_put_u16(nlh, LOCKD_A_SERVER_TCP_PORT, req.tcp_port.value()); - if (req.udp_port.has_value()) + } + if (req.udp_port.has_value()) { ynl_attr_put_u16(nlh, LOCKD_A_SERVER_UDP_PORT, req.udp_port.value()); + } err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return -1; + } return 0; } @@ -85,16 +90,19 @@ int lockd_server_get_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == LOCKD_A_SERVER_GRACETIME) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->gracetime = (__u32)ynl_attr_get_u32(attr); } else if (type == LOCKD_A_SERVER_TCP_PORT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->tcp_port = (__u16)ynl_attr_get_u16(attr); } else if (type == LOCKD_A_SERVER_UDP_PORT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->udp_port = (__u16)ynl_attr_get_u16(attr); } } @@ -119,8 +127,9 @@ std::unique_ptr lockd_server_get(ynl_cpp::ynl_socket& ys) yrs.rsp_cmd = LOCKD_CMD_SERVER_GET; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } diff --git a/generated/mptcp_pm-user.cpp b/generated/mptcp_pm-user.cpp index 2dab26b..ad905ba 100644 --- a/generated/mptcp_pm-user.cpp +++ b/generated/mptcp_pm-user.cpp @@ -32,8 +32,9 @@ static constexpr std::array std::string_view mptcp_pm_op_str(int op) { - if (op < 0 || op >= (int)(mptcp_pm_op_strmap.size())) + if (op < 0 || op >= (int)(mptcp_pm_op_strmap.size())) { return ""; + } return mptcp_pm_op_strmap[op]; } @@ -55,8 +56,9 @@ static constexpr std::array mptcp_pm_event_type_strmap std::string_view mptcp_pm_event_type_str(mptcp_event_type value) { - if (value < 0 || value >= (int)(mptcp_pm_event_type_strmap.size())) + if (value < 0 || value >= (int)(mptcp_pm_event_type_strmap.size())) { return ""; + } return mptcp_pm_event_type_strmap[value]; } @@ -133,20 +135,27 @@ int mptcp_pm_address_put(struct nlmsghdr *nlh, unsigned int attr_type, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - if (obj.family.has_value()) + if (obj.family.has_value()) { ynl_attr_put_u16(nlh, MPTCP_PM_ADDR_ATTR_FAMILY, obj.family.value()); - if (obj.id.has_value()) + } + if (obj.id.has_value()) { ynl_attr_put_u8(nlh, MPTCP_PM_ADDR_ATTR_ID, obj.id.value()); - if (obj.addr4.has_value()) + } + if (obj.addr4.has_value()) { ynl_attr_put_u32(nlh, MPTCP_PM_ADDR_ATTR_ADDR4, obj.addr4.value()); - if (obj.addr6.size() > 0) + } + if (obj.addr6.size() > 0) { ynl_attr_put(nlh, MPTCP_PM_ADDR_ATTR_ADDR6, obj.addr6.data(), obj.addr6.size()); - if (obj.port.has_value()) + } + if (obj.port.has_value()) { ynl_attr_put_u16(nlh, MPTCP_PM_ADDR_ATTR_PORT, obj.port.value()); - if (obj.flags.has_value()) + } + if (obj.flags.has_value()) { ynl_attr_put_u32(nlh, MPTCP_PM_ADDR_ATTR_FLAGS, obj.flags.value()); - if (obj.if_idx.has_value()) + } + if (obj.if_idx.has_value()) { ynl_attr_put_s32(nlh, MPTCP_PM_ADDR_ATTR_IF_IDX, obj.if_idx.value()); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -162,34 +171,41 @@ int mptcp_pm_address_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == MPTCP_PM_ADDR_ATTR_FAMILY) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->family = (__u16)ynl_attr_get_u16(attr); } else if (type == MPTCP_PM_ADDR_ATTR_ID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->id = (__u8)ynl_attr_get_u8(attr); } else if (type == MPTCP_PM_ADDR_ATTR_ADDR4) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->addr4 = (__u32)ynl_attr_get_u32(attr); } else if (type == MPTCP_PM_ADDR_ATTR_ADDR6) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->addr6.assign(data, data + len); } else if (type == MPTCP_PM_ADDR_ATTR_PORT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->port = (__u16)ynl_attr_get_u16(attr); } else if (type == MPTCP_PM_ADDR_ATTR_FLAGS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->flags = (__u32)ynl_attr_get_u32(attr); } else if (type == MPTCP_PM_ADDR_ATTR_IF_IDX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->if_idx = (__s32)ynl_attr_get_s32(attr); } } @@ -208,12 +224,14 @@ int mptcp_pm_add_addr(ynl_cpp::ynl_socket& ys, mptcp_pm_add_addr_req& req) nlh = ynl_gemsg_start_req(ys, ((struct ynl_sock*)ys)->family_id, MPTCP_PM_CMD_ADD_ADDR, 1); ((struct ynl_sock*)ys)->req_policy = &mptcp_pm_endpoint_nest; - if (req.addr.has_value()) + if (req.addr.has_value()) { mptcp_pm_address_put(nlh, MPTCP_PM_ENDPOINT_ADDR, req.addr.value()); + } err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return -1; + } return 0; } @@ -229,12 +247,14 @@ int mptcp_pm_del_addr(ynl_cpp::ynl_socket& ys, mptcp_pm_del_addr_req& req) nlh = ynl_gemsg_start_req(ys, ((struct ynl_sock*)ys)->family_id, MPTCP_PM_CMD_DEL_ADDR, 1); ((struct ynl_sock*)ys)->req_policy = &mptcp_pm_endpoint_nest; - if (req.addr.has_value()) + if (req.addr.has_value()) { mptcp_pm_address_put(nlh, MPTCP_PM_ENDPOINT_ADDR, req.addr.value()); + } err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return -1; + } return 0; } @@ -255,13 +275,15 @@ int mptcp_pm_get_addr_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == MPTCP_PM_ATTR_ADDR) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &mptcp_pm_address_nest; parg.data = &dst->addr.emplace(); - if (mptcp_pm_address_parse(&parg, attr)) + if (mptcp_pm_address_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } } @@ -280,10 +302,12 @@ mptcp_pm_get_addr(ynl_cpp::ynl_socket& ys, mptcp_pm_get_addr_req& req) ((struct ynl_sock*)ys)->req_policy = &mptcp_pm_attr_nest; yrs.yarg.rsp_policy = &mptcp_pm_attr_nest; - if (req.addr.has_value()) + if (req.addr.has_value()) { mptcp_pm_address_put(nlh, MPTCP_PM_ATTR_ADDR, req.addr.value()); - if (req.token.has_value()) + } + if (req.token.has_value()) { ynl_attr_put_u32(nlh, MPTCP_PM_ATTR_TOKEN, req.token.value()); + } rsp.reset(new mptcp_pm_get_addr_rsp()); yrs.yarg.data = rsp.get(); @@ -291,8 +315,9 @@ mptcp_pm_get_addr(ynl_cpp::ynl_socket& ys, mptcp_pm_get_addr_req& req) yrs.rsp_cmd = MPTCP_PM_CMD_GET_ADDR; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -316,8 +341,9 @@ mptcp_pm_get_addr_dump(ynl_cpp::ynl_socket& ys) nlh = ynl_gemsg_start_dump(ys, ((struct ynl_sock*)ys)->family_id, MPTCP_PM_CMD_GET_ADDR, 1); err = ynl_exec_dump_no_alloc(ys, nlh, &yds); - if (err < 0) + if (err < 0) { return nullptr; + } return ret; } @@ -334,12 +360,14 @@ int mptcp_pm_flush_addrs(ynl_cpp::ynl_socket& ys, nlh = ynl_gemsg_start_req(ys, ((struct ynl_sock*)ys)->family_id, MPTCP_PM_CMD_FLUSH_ADDRS, 1); ((struct ynl_sock*)ys)->req_policy = &mptcp_pm_endpoint_nest; - if (req.addr.has_value()) + if (req.addr.has_value()) { mptcp_pm_address_put(nlh, MPTCP_PM_ENDPOINT_ADDR, req.addr.value()); + } err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return -1; + } return 0; } @@ -355,14 +383,17 @@ int mptcp_pm_set_limits(ynl_cpp::ynl_socket& ys, mptcp_pm_set_limits_req& req) nlh = ynl_gemsg_start_req(ys, ((struct ynl_sock*)ys)->family_id, MPTCP_PM_CMD_SET_LIMITS, 1); ((struct ynl_sock*)ys)->req_policy = &mptcp_pm_attr_nest; - if (req.rcv_add_addrs.has_value()) + if (req.rcv_add_addrs.has_value()) { ynl_attr_put_u32(nlh, MPTCP_PM_ATTR_RCV_ADD_ADDRS, req.rcv_add_addrs.value()); - if (req.subflows.has_value()) + } + if (req.subflows.has_value()) { ynl_attr_put_u32(nlh, MPTCP_PM_ATTR_SUBFLOWS, req.subflows.value()); + } err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return -1; + } return 0; } @@ -381,12 +412,14 @@ int mptcp_pm_get_limits_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == MPTCP_PM_ATTR_RCV_ADD_ADDRS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->rcv_add_addrs = (__u32)ynl_attr_get_u32(attr); } else if (type == MPTCP_PM_ATTR_SUBFLOWS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->subflows = (__u32)ynl_attr_get_u32(attr); } } @@ -406,10 +439,12 @@ mptcp_pm_get_limits(ynl_cpp::ynl_socket& ys, mptcp_pm_get_limits_req& req) ((struct ynl_sock*)ys)->req_policy = &mptcp_pm_attr_nest; yrs.yarg.rsp_policy = &mptcp_pm_attr_nest; - if (req.rcv_add_addrs.has_value()) + if (req.rcv_add_addrs.has_value()) { ynl_attr_put_u32(nlh, MPTCP_PM_ATTR_RCV_ADD_ADDRS, req.rcv_add_addrs.value()); - if (req.subflows.has_value()) + } + if (req.subflows.has_value()) { ynl_attr_put_u32(nlh, MPTCP_PM_ATTR_SUBFLOWS, req.subflows.value()); + } rsp.reset(new mptcp_pm_get_limits_rsp()); yrs.yarg.data = rsp.get(); @@ -417,8 +452,9 @@ mptcp_pm_get_limits(ynl_cpp::ynl_socket& ys, mptcp_pm_get_limits_req& req) yrs.rsp_cmd = MPTCP_PM_CMD_GET_LIMITS; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -434,16 +470,20 @@ int mptcp_pm_set_flags(ynl_cpp::ynl_socket& ys, mptcp_pm_set_flags_req& req) nlh = ynl_gemsg_start_req(ys, ((struct ynl_sock*)ys)->family_id, MPTCP_PM_CMD_SET_FLAGS, 1); ((struct ynl_sock*)ys)->req_policy = &mptcp_pm_attr_nest; - if (req.addr.has_value()) + if (req.addr.has_value()) { mptcp_pm_address_put(nlh, MPTCP_PM_ATTR_ADDR, req.addr.value()); - if (req.token.has_value()) + } + if (req.token.has_value()) { ynl_attr_put_u32(nlh, MPTCP_PM_ATTR_TOKEN, req.token.value()); - if (req.addr_remote.has_value()) + } + if (req.addr_remote.has_value()) { mptcp_pm_address_put(nlh, MPTCP_PM_ATTR_ADDR_REMOTE, req.addr_remote.value()); + } err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return -1; + } return 0; } @@ -459,14 +499,17 @@ int mptcp_pm_announce(ynl_cpp::ynl_socket& ys, mptcp_pm_announce_req& req) nlh = ynl_gemsg_start_req(ys, ((struct ynl_sock*)ys)->family_id, MPTCP_PM_CMD_ANNOUNCE, 1); ((struct ynl_sock*)ys)->req_policy = &mptcp_pm_attr_nest; - if (req.addr.has_value()) + if (req.addr.has_value()) { mptcp_pm_address_put(nlh, MPTCP_PM_ATTR_ADDR, req.addr.value()); - if (req.token.has_value()) + } + if (req.token.has_value()) { ynl_attr_put_u32(nlh, MPTCP_PM_ATTR_TOKEN, req.token.value()); + } err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return -1; + } return 0; } @@ -482,14 +525,17 @@ int mptcp_pm_remove(ynl_cpp::ynl_socket& ys, mptcp_pm_remove_req& req) nlh = ynl_gemsg_start_req(ys, ((struct ynl_sock*)ys)->family_id, MPTCP_PM_CMD_REMOVE, 1); ((struct ynl_sock*)ys)->req_policy = &mptcp_pm_attr_nest; - if (req.token.has_value()) + if (req.token.has_value()) { ynl_attr_put_u32(nlh, MPTCP_PM_ATTR_TOKEN, req.token.value()); - if (req.loc_id.has_value()) + } + if (req.loc_id.has_value()) { ynl_attr_put_u8(nlh, MPTCP_PM_ATTR_LOC_ID, req.loc_id.value()); + } err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return -1; + } return 0; } @@ -506,16 +552,20 @@ int mptcp_pm_subflow_create(ynl_cpp::ynl_socket& ys, nlh = ynl_gemsg_start_req(ys, ((struct ynl_sock*)ys)->family_id, MPTCP_PM_CMD_SUBFLOW_CREATE, 1); ((struct ynl_sock*)ys)->req_policy = &mptcp_pm_attr_nest; - if (req.addr.has_value()) + if (req.addr.has_value()) { mptcp_pm_address_put(nlh, MPTCP_PM_ATTR_ADDR, req.addr.value()); - if (req.token.has_value()) + } + if (req.token.has_value()) { ynl_attr_put_u32(nlh, MPTCP_PM_ATTR_TOKEN, req.token.value()); - if (req.addr_remote.has_value()) + } + if (req.addr_remote.has_value()) { mptcp_pm_address_put(nlh, MPTCP_PM_ATTR_ADDR_REMOTE, req.addr_remote.value()); + } err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return -1; + } return 0; } @@ -532,16 +582,20 @@ int mptcp_pm_subflow_destroy(ynl_cpp::ynl_socket& ys, nlh = ynl_gemsg_start_req(ys, ((struct ynl_sock*)ys)->family_id, MPTCP_PM_CMD_SUBFLOW_DESTROY, 1); ((struct ynl_sock*)ys)->req_policy = &mptcp_pm_attr_nest; - if (req.addr.has_value()) + if (req.addr.has_value()) { mptcp_pm_address_put(nlh, MPTCP_PM_ATTR_ADDR, req.addr.value()); - if (req.token.has_value()) + } + if (req.token.has_value()) { ynl_attr_put_u32(nlh, MPTCP_PM_ATTR_TOKEN, req.token.value()); - if (req.addr_remote.has_value()) + } + if (req.addr_remote.has_value()) { mptcp_pm_address_put(nlh, MPTCP_PM_ATTR_ADDR_REMOTE, req.addr_remote.value()); + } err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return -1; + } return 0; } diff --git a/generated/net_shaper-user.cpp b/generated/net_shaper-user.cpp index 8a417bd..facf7a8 100644 --- a/generated/net_shaper-user.cpp +++ b/generated/net_shaper-user.cpp @@ -26,8 +26,9 @@ static constexpr std::array net_sh std::string_view net_shaper_op_str(int op) { - if (op < 0 || op >= (int)(net_shaper_op_strmap.size())) + if (op < 0 || op >= (int)(net_shaper_op_strmap.size())) { return ""; + } return net_shaper_op_strmap[op]; } @@ -42,8 +43,9 @@ static constexpr std::array net_shaper_scope_strmap = [ std::string_view net_shaper_scope_str(net_shaper_scope value) { - if (value < 0 || value >= (int)(net_shaper_scope_strmap.size())) + if (value < 0 || value >= (int)(net_shaper_scope_strmap.size())) { return ""; + } return net_shaper_scope_strmap[value]; } @@ -56,8 +58,9 @@ static constexpr std::array net_shaper_metric_strmap = std::string_view net_shaper_metric_str(net_shaper_metric value) { - if (value < 0 || value >= (int)(net_shaper_metric_strmap.size())) + if (value < 0 || value >= (int)(net_shaper_metric_strmap.size())) { return ""; + } return net_shaper_metric_strmap[value]; } @@ -163,10 +166,12 @@ int net_shaper_handle_put(struct nlmsghdr *nlh, unsigned int attr_type, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - if (obj.scope.has_value()) + if (obj.scope.has_value()) { ynl_attr_put_u32(nlh, NET_SHAPER_A_HANDLE_SCOPE, obj.scope.value()); - if (obj.id.has_value()) + } + if (obj.id.has_value()) { ynl_attr_put_u32(nlh, NET_SHAPER_A_HANDLE_ID, obj.id.value()); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -182,12 +187,14 @@ int net_shaper_handle_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == NET_SHAPER_A_HANDLE_SCOPE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->scope = (enum net_shaper_scope)ynl_attr_get_u32(attr); } else if (type == NET_SHAPER_A_HANDLE_ID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->id = (__u32)ynl_attr_get_u32(attr); } } @@ -201,12 +208,15 @@ int net_shaper_leaf_info_put(struct nlmsghdr *nlh, unsigned int attr_type, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - if (obj.handle.has_value()) + if (obj.handle.has_value()) { net_shaper_handle_put(nlh, NET_SHAPER_A_HANDLE, obj.handle.value()); - if (obj.priority.has_value()) + } + if (obj.priority.has_value()) { ynl_attr_put_u32(nlh, NET_SHAPER_A_PRIORITY, obj.priority.value()); - if (obj.weight.has_value()) + } + if (obj.weight.has_value()) { ynl_attr_put_u32(nlh, NET_SHAPER_A_WEIGHT, obj.weight.value()); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -228,48 +238,59 @@ int net_shaper_get_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == NET_SHAPER_A_IFINDEX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->ifindex = (__u32)ynl_attr_get_u32(attr); } else if (type == NET_SHAPER_A_PARENT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &net_shaper_handle_nest; parg.data = &dst->parent.emplace(); - if (net_shaper_handle_parse(&parg, attr)) + if (net_shaper_handle_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NET_SHAPER_A_HANDLE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &net_shaper_handle_nest; parg.data = &dst->handle.emplace(); - if (net_shaper_handle_parse(&parg, attr)) + if (net_shaper_handle_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NET_SHAPER_A_METRIC) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->metric = (enum net_shaper_metric)ynl_attr_get_u32(attr); } else if (type == NET_SHAPER_A_BW_MIN) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->bw_min = (__u64)ynl_attr_get_uint(attr); } else if (type == NET_SHAPER_A_BW_MAX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->bw_max = (__u64)ynl_attr_get_uint(attr); } else if (type == NET_SHAPER_A_BURST) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->burst = (__u64)ynl_attr_get_uint(attr); } else if (type == NET_SHAPER_A_PRIORITY) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->priority = (__u32)ynl_attr_get_u32(attr); } else if (type == NET_SHAPER_A_WEIGHT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->weight = (__u32)ynl_attr_get_u32(attr); } } @@ -289,10 +310,12 @@ net_shaper_get(ynl_cpp::ynl_socket& ys, net_shaper_get_req& req) ((struct ynl_sock*)ys)->req_policy = &net_shaper_net_shaper_nest; yrs.yarg.rsp_policy = &net_shaper_net_shaper_nest; - if (req.ifindex.has_value()) + if (req.ifindex.has_value()) { ynl_attr_put_u32(nlh, NET_SHAPER_A_IFINDEX, req.ifindex.value()); - if (req.handle.has_value()) + } + if (req.handle.has_value()) { net_shaper_handle_put(nlh, NET_SHAPER_A_HANDLE, req.handle.value()); + } rsp.reset(new net_shaper_get_rsp()); yrs.yarg.data = rsp.get(); @@ -300,8 +323,9 @@ net_shaper_get(ynl_cpp::ynl_socket& ys, net_shaper_get_req& req) yrs.rsp_cmd = NET_SHAPER_CMD_GET; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -325,12 +349,14 @@ net_shaper_get_dump(ynl_cpp::ynl_socket& ys, net_shaper_get_req_dump& req) nlh = ynl_gemsg_start_dump(ys, ((struct ynl_sock*)ys)->family_id, NET_SHAPER_CMD_GET, 1); ((struct ynl_sock*)ys)->req_policy = &net_shaper_net_shaper_nest; - if (req.ifindex.has_value()) + if (req.ifindex.has_value()) { ynl_attr_put_u32(nlh, NET_SHAPER_A_IFINDEX, req.ifindex.value()); + } err = ynl_exec_dump_no_alloc(ys, nlh, &yds); - if (err < 0) + if (err < 0) { return nullptr; + } return ret; } @@ -346,26 +372,35 @@ int net_shaper_set(ynl_cpp::ynl_socket& ys, net_shaper_set_req& req) nlh = ynl_gemsg_start_req(ys, ((struct ynl_sock*)ys)->family_id, NET_SHAPER_CMD_SET, 1); ((struct ynl_sock*)ys)->req_policy = &net_shaper_net_shaper_nest; - if (req.ifindex.has_value()) + if (req.ifindex.has_value()) { ynl_attr_put_u32(nlh, NET_SHAPER_A_IFINDEX, req.ifindex.value()); - if (req.handle.has_value()) + } + if (req.handle.has_value()) { net_shaper_handle_put(nlh, NET_SHAPER_A_HANDLE, req.handle.value()); - if (req.metric.has_value()) + } + if (req.metric.has_value()) { ynl_attr_put_u32(nlh, NET_SHAPER_A_METRIC, req.metric.value()); - if (req.bw_min.has_value()) + } + if (req.bw_min.has_value()) { ynl_attr_put_uint(nlh, NET_SHAPER_A_BW_MIN, req.bw_min.value()); - if (req.bw_max.has_value()) + } + if (req.bw_max.has_value()) { ynl_attr_put_uint(nlh, NET_SHAPER_A_BW_MAX, req.bw_max.value()); - if (req.burst.has_value()) + } + if (req.burst.has_value()) { ynl_attr_put_uint(nlh, NET_SHAPER_A_BURST, req.burst.value()); - if (req.priority.has_value()) + } + if (req.priority.has_value()) { ynl_attr_put_u32(nlh, NET_SHAPER_A_PRIORITY, req.priority.value()); - if (req.weight.has_value()) + } + if (req.weight.has_value()) { ynl_attr_put_u32(nlh, NET_SHAPER_A_WEIGHT, req.weight.value()); + } err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return -1; + } return 0; } @@ -381,14 +416,17 @@ int net_shaper_delete(ynl_cpp::ynl_socket& ys, net_shaper_delete_req& req) nlh = ynl_gemsg_start_req(ys, ((struct ynl_sock*)ys)->family_id, NET_SHAPER_CMD_DELETE, 1); ((struct ynl_sock*)ys)->req_policy = &net_shaper_net_shaper_nest; - if (req.ifindex.has_value()) + if (req.ifindex.has_value()) { ynl_attr_put_u32(nlh, NET_SHAPER_A_IFINDEX, req.ifindex.value()); - if (req.handle.has_value()) + } + if (req.handle.has_value()) { net_shaper_handle_put(nlh, NET_SHAPER_A_HANDLE, req.handle.value()); + } err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return -1; + } return 0; } @@ -409,17 +447,20 @@ int net_shaper_group_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == NET_SHAPER_A_IFINDEX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->ifindex = (__u32)ynl_attr_get_u32(attr); } else if (type == NET_SHAPER_A_HANDLE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &net_shaper_handle_nest; parg.data = &dst->handle.emplace(); - if (net_shaper_handle_parse(&parg, attr)) + if (net_shaper_handle_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } } @@ -438,26 +479,36 @@ net_shaper_group(ynl_cpp::ynl_socket& ys, net_shaper_group_req& req) ((struct ynl_sock*)ys)->req_policy = &net_shaper_net_shaper_nest; yrs.yarg.rsp_policy = &net_shaper_net_shaper_nest; - if (req.ifindex.has_value()) + if (req.ifindex.has_value()) { ynl_attr_put_u32(nlh, NET_SHAPER_A_IFINDEX, req.ifindex.value()); - if (req.parent.has_value()) + } + if (req.parent.has_value()) { net_shaper_handle_put(nlh, NET_SHAPER_A_PARENT, req.parent.value()); - if (req.handle.has_value()) + } + if (req.handle.has_value()) { net_shaper_handle_put(nlh, NET_SHAPER_A_HANDLE, req.handle.value()); - if (req.metric.has_value()) + } + if (req.metric.has_value()) { ynl_attr_put_u32(nlh, NET_SHAPER_A_METRIC, req.metric.value()); - if (req.bw_min.has_value()) + } + if (req.bw_min.has_value()) { ynl_attr_put_uint(nlh, NET_SHAPER_A_BW_MIN, req.bw_min.value()); - if (req.bw_max.has_value()) + } + if (req.bw_max.has_value()) { ynl_attr_put_uint(nlh, NET_SHAPER_A_BW_MAX, req.bw_max.value()); - if (req.burst.has_value()) + } + if (req.burst.has_value()) { ynl_attr_put_uint(nlh, NET_SHAPER_A_BURST, req.burst.value()); - if (req.priority.has_value()) + } + if (req.priority.has_value()) { ynl_attr_put_u32(nlh, NET_SHAPER_A_PRIORITY, req.priority.value()); - if (req.weight.has_value()) + } + if (req.weight.has_value()) { ynl_attr_put_u32(nlh, NET_SHAPER_A_WEIGHT, req.weight.value()); - for (unsigned int i = 0; i < req.leaves.size(); i++) + } + for (unsigned int i = 0; i < req.leaves.size(); i++) { net_shaper_leaf_info_put(nlh, NET_SHAPER_A_LEAVES, req.leaves[i]); + } rsp.reset(new net_shaper_group_rsp()); yrs.yarg.data = rsp.get(); @@ -465,8 +516,9 @@ net_shaper_group(ynl_cpp::ynl_socket& ys, net_shaper_group_req& req) yrs.rsp_cmd = NET_SHAPER_CMD_GROUP; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -485,37 +537,47 @@ int net_shaper_cap_get_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == NET_SHAPER_A_CAPS_IFINDEX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->ifindex = (__u32)ynl_attr_get_u32(attr); } else if (type == NET_SHAPER_A_CAPS_SCOPE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->scope = (enum net_shaper_scope)ynl_attr_get_u32(attr); } else if (type == NET_SHAPER_A_CAPS_SUPPORT_METRIC_BPS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NET_SHAPER_A_CAPS_SUPPORT_METRIC_PPS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NET_SHAPER_A_CAPS_SUPPORT_NESTING) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NET_SHAPER_A_CAPS_SUPPORT_BW_MIN) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NET_SHAPER_A_CAPS_SUPPORT_BW_MAX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NET_SHAPER_A_CAPS_SUPPORT_BURST) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NET_SHAPER_A_CAPS_SUPPORT_PRIORITY) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NET_SHAPER_A_CAPS_SUPPORT_WEIGHT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } } @@ -534,10 +596,12 @@ net_shaper_cap_get(ynl_cpp::ynl_socket& ys, net_shaper_cap_get_req& req) ((struct ynl_sock*)ys)->req_policy = &net_shaper_caps_nest; yrs.yarg.rsp_policy = &net_shaper_caps_nest; - if (req.ifindex.has_value()) + if (req.ifindex.has_value()) { ynl_attr_put_u32(nlh, NET_SHAPER_A_CAPS_IFINDEX, req.ifindex.value()); - if (req.scope.has_value()) + } + if (req.scope.has_value()) { ynl_attr_put_u32(nlh, NET_SHAPER_A_CAPS_SCOPE, req.scope.value()); + } rsp.reset(new net_shaper_cap_get_rsp()); yrs.yarg.data = rsp.get(); @@ -545,8 +609,9 @@ net_shaper_cap_get(ynl_cpp::ynl_socket& ys, net_shaper_cap_get_req& req) yrs.rsp_cmd = NET_SHAPER_CMD_CAP_GET; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -571,12 +636,14 @@ net_shaper_cap_get_dump(ynl_cpp::ynl_socket& ys, nlh = ynl_gemsg_start_dump(ys, ((struct ynl_sock*)ys)->family_id, NET_SHAPER_CMD_CAP_GET, 1); ((struct ynl_sock*)ys)->req_policy = &net_shaper_caps_nest; - if (req.ifindex.has_value()) + if (req.ifindex.has_value()) { ynl_attr_put_u32(nlh, NET_SHAPER_A_CAPS_IFINDEX, req.ifindex.value()); + } err = ynl_exec_dump_no_alloc(ys, nlh, &yds); - if (err < 0) + if (err < 0) { return nullptr; + } return ret; } diff --git a/generated/netdev-user.cpp b/generated/netdev-user.cpp index 7e5f3d5..e46e2da 100644 --- a/generated/netdev-user.cpp +++ b/generated/netdev-user.cpp @@ -36,8 +36,9 @@ static constexpr std::array netdev_op_ std::string_view netdev_op_str(int op) { - if (op < 0 || op >= (int)(netdev_op_strmap.size())) + if (op < 0 || op >= (int)(netdev_op_strmap.size())) { return ""; + } return netdev_op_strmap[op]; } @@ -56,8 +57,9 @@ static constexpr std::array netdev_xdp_act_strmap = []( std::string_view netdev_xdp_act_str(netdev_xdp_act value) { value = (netdev_xdp_act)(ffs(value) - 1); - if (value < 0 || value >= (int)(netdev_xdp_act_strmap.size())) + if (value < 0 || value >= (int)(netdev_xdp_act_strmap.size())) { return ""; + } return netdev_xdp_act_strmap[value]; } @@ -72,8 +74,9 @@ static constexpr std::array netdev_xdp_rx_metadata_strm std::string_view netdev_xdp_rx_metadata_str(netdev_xdp_rx_metadata value) { value = (netdev_xdp_rx_metadata)(ffs(value) - 1); - if (value < 0 || value >= (int)(netdev_xdp_rx_metadata_strmap.size())) + if (value < 0 || value >= (int)(netdev_xdp_rx_metadata_strmap.size())) { return ""; + } return netdev_xdp_rx_metadata_strmap[value]; } @@ -88,8 +91,9 @@ static constexpr std::array netdev_xsk_flags_strmap = [ std::string_view netdev_xsk_flags_str(netdev_xsk_flags value) { value = (netdev_xsk_flags)(ffs(value) - 1); - if (value < 0 || value >= (int)(netdev_xsk_flags_strmap.size())) + if (value < 0 || value >= (int)(netdev_xsk_flags_strmap.size())) { return ""; + } return netdev_xsk_flags_strmap[value]; } @@ -102,8 +106,9 @@ static constexpr std::array netdev_queue_type_strmap = std::string_view netdev_queue_type_str(netdev_queue_type value) { - if (value < 0 || value >= (int)(netdev_queue_type_strmap.size())) + if (value < 0 || value >= (int)(netdev_queue_type_strmap.size())) { return ""; + } return netdev_queue_type_strmap[value]; } @@ -116,8 +121,9 @@ static constexpr std::array netdev_qstats_scope_strmap std::string_view netdev_qstats_scope_str(netdev_qstats_scope value) { value = (netdev_qstats_scope)(ffs(value) - 1); - if (value < 0 || value >= (int)(netdev_qstats_scope_strmap.size())) + if (value < 0 || value >= (int)(netdev_qstats_scope_strmap.size())) { return ""; + } return netdev_qstats_scope_strmap[value]; } @@ -130,8 +136,9 @@ static constexpr std::array netdev_napi_threaded_strmap std::string_view netdev_napi_threaded_str(netdev_napi_threaded value) { - if (value < 0 || value >= (int)(netdev_napi_threaded_strmap.size())) + if (value < 0 || value >= (int)(netdev_napi_threaded_strmap.size())) { return ""; + } return netdev_napi_threaded_strmap[value]; } @@ -431,10 +438,12 @@ int netdev_page_pool_info_put(struct nlmsghdr *nlh, unsigned int attr_type, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - if (obj.id.has_value()) + if (obj.id.has_value()) { ynl_attr_put_uint(nlh, NETDEV_A_PAGE_POOL_ID, obj.id.value()); - if (obj.ifindex.has_value()) + } + if (obj.ifindex.has_value()) { ynl_attr_put_u32(nlh, NETDEV_A_PAGE_POOL_IFINDEX, obj.ifindex.value()); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -450,12 +459,14 @@ int netdev_page_pool_info_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == NETDEV_A_PAGE_POOL_ID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->id = (__u64)ynl_attr_get_uint(attr); } else if (type == NETDEV_A_PAGE_POOL_IFINDEX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->ifindex = (__u32)ynl_attr_get_u32(attr); } } @@ -482,10 +493,12 @@ int netdev_queue_id_put(struct nlmsghdr *nlh, unsigned int attr_type, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - if (obj.id.has_value()) + if (obj.id.has_value()) { ynl_attr_put_u32(nlh, NETDEV_A_QUEUE_ID, obj.id.value()); - if (obj.type.has_value()) + } + if (obj.type.has_value()) { ynl_attr_put_u32(nlh, NETDEV_A_QUEUE_TYPE, obj.type.value()); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -505,24 +518,29 @@ int netdev_dev_get_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == NETDEV_A_DEV_IFINDEX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->ifindex = (__u32)ynl_attr_get_u32(attr); } else if (type == NETDEV_A_DEV_XDP_FEATURES) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->xdp_features = (__u64)ynl_attr_get_u64(attr); } else if (type == NETDEV_A_DEV_XDP_ZC_MAX_SEGS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->xdp_zc_max_segs = (__u32)ynl_attr_get_u32(attr); } else if (type == NETDEV_A_DEV_XDP_RX_METADATA_FEATURES) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->xdp_rx_metadata_features = (__u64)ynl_attr_get_u64(attr); } else if (type == NETDEV_A_DEV_XSK_FEATURES) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->xsk_features = (__u64)ynl_attr_get_u64(attr); } } @@ -542,8 +560,9 @@ netdev_dev_get(ynl_cpp::ynl_socket& ys, netdev_dev_get_req& req) ((struct ynl_sock*)ys)->req_policy = &netdev_dev_nest; yrs.yarg.rsp_policy = &netdev_dev_nest; - if (req.ifindex.has_value()) + if (req.ifindex.has_value()) { ynl_attr_put_u32(nlh, NETDEV_A_DEV_IFINDEX, req.ifindex.value()); + } rsp.reset(new netdev_dev_get_rsp()); yrs.yarg.data = rsp.get(); @@ -551,8 +570,9 @@ netdev_dev_get(ynl_cpp::ynl_socket& ys, netdev_dev_get_req& req) yrs.rsp_cmd = NETDEV_CMD_DEV_GET; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -576,8 +596,9 @@ netdev_dev_get_dump(ynl_cpp::ynl_socket& ys) nlh = ynl_gemsg_start_dump(ys, ((struct ynl_sock*)ys)->family_id, NETDEV_CMD_DEV_GET, 1); err = ynl_exec_dump_no_alloc(ys, nlh, &yds); - if (err < 0) + if (err < 0) { return nullptr; + } return ret; } @@ -599,41 +620,50 @@ int netdev_page_pool_get_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == NETDEV_A_PAGE_POOL_ID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->id = (__u64)ynl_attr_get_uint(attr); } else if (type == NETDEV_A_PAGE_POOL_IFINDEX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->ifindex = (__u32)ynl_attr_get_u32(attr); } else if (type == NETDEV_A_PAGE_POOL_NAPI_ID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->napi_id = (__u64)ynl_attr_get_uint(attr); } else if (type == NETDEV_A_PAGE_POOL_INFLIGHT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->inflight = (__u64)ynl_attr_get_uint(attr); } else if (type == NETDEV_A_PAGE_POOL_INFLIGHT_MEM) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->inflight_mem = (__u64)ynl_attr_get_uint(attr); } else if (type == NETDEV_A_PAGE_POOL_DETACH_TIME) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->detach_time = (__u64)ynl_attr_get_uint(attr); } else if (type == NETDEV_A_PAGE_POOL_DMABUF) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->dmabuf = (__u32)ynl_attr_get_u32(attr); } else if (type == NETDEV_A_PAGE_POOL_IO_URING) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &netdev_io_uring_provider_info_nest; parg.data = &dst->io_uring.emplace(); - if (netdev_io_uring_provider_info_parse(&parg, attr)) + if (netdev_io_uring_provider_info_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } } @@ -652,8 +682,9 @@ netdev_page_pool_get(ynl_cpp::ynl_socket& ys, netdev_page_pool_get_req& req) ((struct ynl_sock*)ys)->req_policy = &netdev_page_pool_nest; yrs.yarg.rsp_policy = &netdev_page_pool_nest; - if (req.id.has_value()) + if (req.id.has_value()) { ynl_attr_put_uint(nlh, NETDEV_A_PAGE_POOL_ID, req.id.value()); + } rsp.reset(new netdev_page_pool_get_rsp()); yrs.yarg.data = rsp.get(); @@ -661,8 +692,9 @@ netdev_page_pool_get(ynl_cpp::ynl_socket& ys, netdev_page_pool_get_req& req) yrs.rsp_cmd = NETDEV_CMD_PAGE_POOL_GET; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -686,8 +718,9 @@ netdev_page_pool_get_dump(ynl_cpp::ynl_socket& ys) nlh = ynl_gemsg_start_dump(ys, ((struct ynl_sock*)ys)->family_id, NETDEV_CMD_PAGE_POOL_GET, 1); err = ynl_exec_dump_no_alloc(ys, nlh, &yds); - if (err < 0) + if (err < 0) { return nullptr; + } return ret; } @@ -709,56 +742,69 @@ int netdev_page_pool_stats_get_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == NETDEV_A_PAGE_POOL_STATS_INFO) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &netdev_page_pool_info_nest; parg.data = &dst->info.emplace(); - if (netdev_page_pool_info_parse(&parg, attr)) + if (netdev_page_pool_info_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NETDEV_A_PAGE_POOL_STATS_ALLOC_FAST) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->alloc_fast = (__u64)ynl_attr_get_uint(attr); } else if (type == NETDEV_A_PAGE_POOL_STATS_ALLOC_SLOW) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->alloc_slow = (__u64)ynl_attr_get_uint(attr); } else if (type == NETDEV_A_PAGE_POOL_STATS_ALLOC_SLOW_HIGH_ORDER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->alloc_slow_high_order = (__u64)ynl_attr_get_uint(attr); } else if (type == NETDEV_A_PAGE_POOL_STATS_ALLOC_EMPTY) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->alloc_empty = (__u64)ynl_attr_get_uint(attr); } else if (type == NETDEV_A_PAGE_POOL_STATS_ALLOC_REFILL) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->alloc_refill = (__u64)ynl_attr_get_uint(attr); } else if (type == NETDEV_A_PAGE_POOL_STATS_ALLOC_WAIVE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->alloc_waive = (__u64)ynl_attr_get_uint(attr); } else if (type == NETDEV_A_PAGE_POOL_STATS_RECYCLE_CACHED) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->recycle_cached = (__u64)ynl_attr_get_uint(attr); } else if (type == NETDEV_A_PAGE_POOL_STATS_RECYCLE_CACHE_FULL) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->recycle_cache_full = (__u64)ynl_attr_get_uint(attr); } else if (type == NETDEV_A_PAGE_POOL_STATS_RECYCLE_RING) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->recycle_ring = (__u64)ynl_attr_get_uint(attr); } else if (type == NETDEV_A_PAGE_POOL_STATS_RECYCLE_RING_FULL) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->recycle_ring_full = (__u64)ynl_attr_get_uint(attr); } else if (type == NETDEV_A_PAGE_POOL_STATS_RECYCLE_RELEASED_REFCNT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->recycle_released_refcnt = (__u64)ynl_attr_get_uint(attr); } } @@ -779,8 +825,9 @@ netdev_page_pool_stats_get(ynl_cpp::ynl_socket& ys, ((struct ynl_sock*)ys)->req_policy = &netdev_page_pool_stats_nest; yrs.yarg.rsp_policy = &netdev_page_pool_stats_nest; - if (req.info.has_value()) + if (req.info.has_value()) { netdev_page_pool_info_put(nlh, NETDEV_A_PAGE_POOL_STATS_INFO, req.info.value()); + } rsp.reset(new netdev_page_pool_stats_get_rsp()); yrs.yarg.data = rsp.get(); @@ -788,8 +835,9 @@ netdev_page_pool_stats_get(ynl_cpp::ynl_socket& ys, yrs.rsp_cmd = NETDEV_CMD_PAGE_POOL_STATS_GET; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -813,8 +861,9 @@ netdev_page_pool_stats_get_dump(ynl_cpp::ynl_socket& ys) nlh = ynl_gemsg_start_dump(ys, ((struct ynl_sock*)ys)->family_id, NETDEV_CMD_PAGE_POOL_STATS_GET, 1); err = ynl_exec_dump_no_alloc(ys, nlh, &yds); - if (err < 0) + if (err < 0) { return nullptr; + } return ret; } @@ -835,41 +884,50 @@ int netdev_queue_get_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == NETDEV_A_QUEUE_ID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->id = (__u32)ynl_attr_get_u32(attr); } else if (type == NETDEV_A_QUEUE_TYPE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->type = (enum netdev_queue_type)ynl_attr_get_u32(attr); } else if (type == NETDEV_A_QUEUE_NAPI_ID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->napi_id = (__u32)ynl_attr_get_u32(attr); } else if (type == NETDEV_A_QUEUE_IFINDEX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->ifindex = (__u32)ynl_attr_get_u32(attr); } else if (type == NETDEV_A_QUEUE_DMABUF) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->dmabuf = (__u32)ynl_attr_get_u32(attr); } else if (type == NETDEV_A_QUEUE_IO_URING) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &netdev_io_uring_provider_info_nest; parg.data = &dst->io_uring.emplace(); - if (netdev_io_uring_provider_info_parse(&parg, attr)) + if (netdev_io_uring_provider_info_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NETDEV_A_QUEUE_XSK) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &netdev_xsk_info_nest; parg.data = &dst->xsk.emplace(); - if (netdev_xsk_info_parse(&parg, attr)) + if (netdev_xsk_info_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } } @@ -888,12 +946,15 @@ netdev_queue_get(ynl_cpp::ynl_socket& ys, netdev_queue_get_req& req) ((struct ynl_sock*)ys)->req_policy = &netdev_queue_nest; yrs.yarg.rsp_policy = &netdev_queue_nest; - if (req.ifindex.has_value()) + if (req.ifindex.has_value()) { ynl_attr_put_u32(nlh, NETDEV_A_QUEUE_IFINDEX, req.ifindex.value()); - if (req.type.has_value()) + } + if (req.type.has_value()) { ynl_attr_put_u32(nlh, NETDEV_A_QUEUE_TYPE, req.type.value()); - if (req.id.has_value()) + } + if (req.id.has_value()) { ynl_attr_put_u32(nlh, NETDEV_A_QUEUE_ID, req.id.value()); + } rsp.reset(new netdev_queue_get_rsp()); yrs.yarg.data = rsp.get(); @@ -901,8 +962,9 @@ netdev_queue_get(ynl_cpp::ynl_socket& ys, netdev_queue_get_req& req) yrs.rsp_cmd = NETDEV_CMD_QUEUE_GET; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -926,12 +988,14 @@ netdev_queue_get_dump(ynl_cpp::ynl_socket& ys, netdev_queue_get_req_dump& req) nlh = ynl_gemsg_start_dump(ys, ((struct ynl_sock*)ys)->family_id, NETDEV_CMD_QUEUE_GET, 1); ((struct ynl_sock*)ys)->req_policy = &netdev_queue_nest; - if (req.ifindex.has_value()) + if (req.ifindex.has_value()) { ynl_attr_put_u32(nlh, NETDEV_A_QUEUE_IFINDEX, req.ifindex.value()); + } err = ynl_exec_dump_no_alloc(ys, nlh, &yds); - if (err < 0) + if (err < 0) { return nullptr; + } return ret; } @@ -950,36 +1014,44 @@ int netdev_napi_get_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == NETDEV_A_NAPI_ID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->id = (__u32)ynl_attr_get_u32(attr); } else if (type == NETDEV_A_NAPI_IFINDEX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->ifindex = (__u32)ynl_attr_get_u32(attr); } else if (type == NETDEV_A_NAPI_IRQ) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->irq = (__u32)ynl_attr_get_u32(attr); } else if (type == NETDEV_A_NAPI_PID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->pid = (__u32)ynl_attr_get_u32(attr); } else if (type == NETDEV_A_NAPI_DEFER_HARD_IRQS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->defer_hard_irqs = (__u32)ynl_attr_get_u32(attr); } else if (type == NETDEV_A_NAPI_GRO_FLUSH_TIMEOUT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->gro_flush_timeout = (__u64)ynl_attr_get_uint(attr); } else if (type == NETDEV_A_NAPI_IRQ_SUSPEND_TIMEOUT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->irq_suspend_timeout = (__u64)ynl_attr_get_uint(attr); } else if (type == NETDEV_A_NAPI_THREADED) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->threaded = (enum netdev_napi_threaded)ynl_attr_get_u32(attr); } } @@ -999,8 +1071,9 @@ netdev_napi_get(ynl_cpp::ynl_socket& ys, netdev_napi_get_req& req) ((struct ynl_sock*)ys)->req_policy = &netdev_napi_nest; yrs.yarg.rsp_policy = &netdev_napi_nest; - if (req.id.has_value()) + if (req.id.has_value()) { ynl_attr_put_u32(nlh, NETDEV_A_NAPI_ID, req.id.value()); + } rsp.reset(new netdev_napi_get_rsp()); yrs.yarg.data = rsp.get(); @@ -1008,8 +1081,9 @@ netdev_napi_get(ynl_cpp::ynl_socket& ys, netdev_napi_get_req& req) yrs.rsp_cmd = NETDEV_CMD_NAPI_GET; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -1033,12 +1107,14 @@ netdev_napi_get_dump(ynl_cpp::ynl_socket& ys, netdev_napi_get_req_dump& req) nlh = ynl_gemsg_start_dump(ys, ((struct ynl_sock*)ys)->family_id, NETDEV_CMD_NAPI_GET, 1); ((struct ynl_sock*)ys)->req_policy = &netdev_napi_nest; - if (req.ifindex.has_value()) + if (req.ifindex.has_value()) { ynl_attr_put_u32(nlh, NETDEV_A_NAPI_IFINDEX, req.ifindex.value()); + } err = ynl_exec_dump_no_alloc(ys, nlh, &yds); - if (err < 0) + if (err < 0) { return nullptr; + } return ret; } @@ -1057,32 +1133,39 @@ int netdev_qstats_get_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == NETDEV_A_QSTATS_IFINDEX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->ifindex = (__u32)ynl_attr_get_u32(attr); } else if (type == NETDEV_A_QSTATS_QUEUE_TYPE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->queue_type = (enum netdev_queue_type)ynl_attr_get_u32(attr); } else if (type == NETDEV_A_QSTATS_QUEUE_ID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->queue_id = (__u32)ynl_attr_get_u32(attr); } else if (type == NETDEV_A_QSTATS_RX_PACKETS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->rx_packets = (__u64)ynl_attr_get_uint(attr); } else if (type == NETDEV_A_QSTATS_RX_BYTES) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->rx_bytes = (__u64)ynl_attr_get_uint(attr); } else if (type == NETDEV_A_QSTATS_TX_PACKETS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->tx_packets = (__u64)ynl_attr_get_uint(attr); } else if (type == NETDEV_A_QSTATS_TX_BYTES) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->tx_bytes = (__u64)ynl_attr_get_uint(attr); } } @@ -1108,14 +1191,17 @@ netdev_qstats_get_dump(ynl_cpp::ynl_socket& ys, netdev_qstats_get_req& req) nlh = ynl_gemsg_start_dump(ys, ((struct ynl_sock*)ys)->family_id, NETDEV_CMD_QSTATS_GET, 1); ((struct ynl_sock*)ys)->req_policy = &netdev_qstats_nest; - if (req.ifindex.has_value()) + if (req.ifindex.has_value()) { ynl_attr_put_u32(nlh, NETDEV_A_QSTATS_IFINDEX, req.ifindex.value()); - if (req.scope.has_value()) + } + if (req.scope.has_value()) { ynl_attr_put_uint(nlh, NETDEV_A_QSTATS_SCOPE, req.scope.value()); + } err = ynl_exec_dump_no_alloc(ys, nlh, &yds); - if (err < 0) + if (err < 0) { return nullptr; + } return ret; } @@ -1134,8 +1220,9 @@ int netdev_bind_rx_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == NETDEV_A_DMABUF_ID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->id = (__u32)ynl_attr_get_u32(attr); } } @@ -1155,12 +1242,15 @@ netdev_bind_rx(ynl_cpp::ynl_socket& ys, netdev_bind_rx_req& req) ((struct ynl_sock*)ys)->req_policy = &netdev_dmabuf_nest; yrs.yarg.rsp_policy = &netdev_dmabuf_nest; - if (req.ifindex.has_value()) + if (req.ifindex.has_value()) { ynl_attr_put_u32(nlh, NETDEV_A_DMABUF_IFINDEX, req.ifindex.value()); - if (req.fd.has_value()) + } + if (req.fd.has_value()) { ynl_attr_put_u32(nlh, NETDEV_A_DMABUF_FD, req.fd.value()); - for (unsigned int i = 0; i < req.queues.size(); i++) + } + for (unsigned int i = 0; i < req.queues.size(); i++) { netdev_queue_id_put(nlh, NETDEV_A_DMABUF_QUEUES, req.queues[i]); + } rsp.reset(new netdev_bind_rx_rsp()); yrs.yarg.data = rsp.get(); @@ -1168,8 +1258,9 @@ netdev_bind_rx(ynl_cpp::ynl_socket& ys, netdev_bind_rx_req& req) yrs.rsp_cmd = NETDEV_CMD_BIND_RX; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -1185,20 +1276,26 @@ int netdev_napi_set(ynl_cpp::ynl_socket& ys, netdev_napi_set_req& req) nlh = ynl_gemsg_start_req(ys, ((struct ynl_sock*)ys)->family_id, NETDEV_CMD_NAPI_SET, 1); ((struct ynl_sock*)ys)->req_policy = &netdev_napi_nest; - if (req.id.has_value()) + if (req.id.has_value()) { ynl_attr_put_u32(nlh, NETDEV_A_NAPI_ID, req.id.value()); - if (req.defer_hard_irqs.has_value()) + } + if (req.defer_hard_irqs.has_value()) { ynl_attr_put_u32(nlh, NETDEV_A_NAPI_DEFER_HARD_IRQS, req.defer_hard_irqs.value()); - if (req.gro_flush_timeout.has_value()) + } + if (req.gro_flush_timeout.has_value()) { ynl_attr_put_uint(nlh, NETDEV_A_NAPI_GRO_FLUSH_TIMEOUT, req.gro_flush_timeout.value()); - if (req.irq_suspend_timeout.has_value()) + } + if (req.irq_suspend_timeout.has_value()) { ynl_attr_put_uint(nlh, NETDEV_A_NAPI_IRQ_SUSPEND_TIMEOUT, req.irq_suspend_timeout.value()); - if (req.threaded.has_value()) + } + if (req.threaded.has_value()) { ynl_attr_put_u32(nlh, NETDEV_A_NAPI_THREADED, req.threaded.value()); + } err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return -1; + } return 0; } @@ -1217,8 +1314,9 @@ int netdev_bind_tx_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == NETDEV_A_DMABUF_ID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->id = (__u32)ynl_attr_get_u32(attr); } } @@ -1238,10 +1336,12 @@ netdev_bind_tx(ynl_cpp::ynl_socket& ys, netdev_bind_tx_req& req) ((struct ynl_sock*)ys)->req_policy = &netdev_dmabuf_nest; yrs.yarg.rsp_policy = &netdev_dmabuf_nest; - if (req.ifindex.has_value()) + if (req.ifindex.has_value()) { ynl_attr_put_u32(nlh, NETDEV_A_DMABUF_IFINDEX, req.ifindex.value()); - if (req.fd.has_value()) + } + if (req.fd.has_value()) { ynl_attr_put_u32(nlh, NETDEV_A_DMABUF_FD, req.fd.value()); + } rsp.reset(new netdev_bind_tx_rsp()); yrs.yarg.data = rsp.get(); @@ -1249,8 +1349,9 @@ netdev_bind_tx(ynl_cpp::ynl_socket& ys, netdev_bind_tx_req& req) yrs.rsp_cmd = NETDEV_CMD_BIND_TX; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } diff --git a/generated/nfsd-user.cpp b/generated/nfsd-user.cpp index 132a92a..b3875a9 100644 --- a/generated/nfsd-user.cpp +++ b/generated/nfsd-user.cpp @@ -30,8 +30,9 @@ static constexpr std::array nfsd_o std::string_view nfsd_op_str(int op) { - if (op < 0 || op >= (int)(nfsd_op_strmap.size())) + if (op < 0 || op >= (int)(nfsd_op_strmap.size())) { return ""; + } return nfsd_op_strmap[op]; } @@ -169,12 +170,15 @@ int nfsd_version_put(struct nlmsghdr *nlh, unsigned int attr_type, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - if (obj.major.has_value()) + if (obj.major.has_value()) { ynl_attr_put_u32(nlh, NFSD_A_VERSION_MAJOR, obj.major.value()); - if (obj.minor.has_value()) + } + if (obj.minor.has_value()) { ynl_attr_put_u32(nlh, NFSD_A_VERSION_MINOR, obj.minor.value()); - if (obj.enabled) + } + if (obj.enabled) { ynl_attr_put(nlh, NFSD_A_VERSION_ENABLED, NULL, 0); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -189,16 +193,19 @@ int nfsd_version_parse(struct ynl_parse_arg *yarg, const struct nlattr *nested) unsigned int type = ynl_attr_type(attr); if (type == NFSD_A_VERSION_MAJOR) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->major = (__u32)ynl_attr_get_u32(attr); } else if (type == NFSD_A_VERSION_MINOR) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->minor = (__u32)ynl_attr_get_u32(attr); } else if (type == NFSD_A_VERSION_ENABLED) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } } @@ -211,10 +218,12 @@ int nfsd_sock_put(struct nlmsghdr *nlh, unsigned int attr_type, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - if (obj.addr.size() > 0) + if (obj.addr.size() > 0) { ynl_attr_put(nlh, NFSD_A_SOCK_ADDR, obj.addr.data(), obj.addr.size()); - if (obj.transport_name.size() > 0) + } + if (obj.transport_name.size() > 0) { ynl_attr_put_str(nlh, NFSD_A_SOCK_TRANSPORT_NAME, obj.transport_name.data()); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -229,14 +238,16 @@ int nfsd_sock_parse(struct ynl_parse_arg *yarg, const struct nlattr *nested) unsigned int type = ynl_attr_type(attr); if (type == NFSD_A_SOCK_ADDR) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->addr.assign(data, data + len); } else if (type == NFSD_A_SOCK_TRANSPORT_NAME) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->transport_name.assign(ynl_attr_get_str(attr)); } } @@ -256,63 +267,76 @@ int nfsd_rpc_status_get_rsp_parse(const struct nlmsghdr *nlh, dst = (nfsd_rpc_status_get_rsp*)yarg->data; - if (dst->compound_ops.size() > 0) + if (dst->compound_ops.size() > 0) { return ynl_error_parse(yarg, "attribute already present (rpc-status.compound-ops)"); + } ynl_attr_for_each(attr, nlh, yarg->ys->family->hdr_len) { unsigned int type = ynl_attr_type(attr); if (type == NFSD_A_RPC_STATUS_XID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->xid = (__u32)ynl_attr_get_u32(attr); } else if (type == NFSD_A_RPC_STATUS_FLAGS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->flags = (__u32)ynl_attr_get_u32(attr); } else if (type == NFSD_A_RPC_STATUS_PROG) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->prog = (__u32)ynl_attr_get_u32(attr); } else if (type == NFSD_A_RPC_STATUS_VERSION) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->version = (__u8)ynl_attr_get_u8(attr); } else if (type == NFSD_A_RPC_STATUS_PROC) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->proc = (__u32)ynl_attr_get_u32(attr); } else if (type == NFSD_A_RPC_STATUS_SERVICE_TIME) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->service_time = (__s64)ynl_attr_get_s64(attr); } else if (type == NFSD_A_RPC_STATUS_SADDR4) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->saddr4 = (__u32)ynl_attr_get_u32(attr); } else if (type == NFSD_A_RPC_STATUS_DADDR4) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->daddr4 = (__u32)ynl_attr_get_u32(attr); } else if (type == NFSD_A_RPC_STATUS_SADDR6) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->saddr6.assign(data, data + len); } else if (type == NFSD_A_RPC_STATUS_DADDR6) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->daddr6.assign(data, data + len); } else if (type == NFSD_A_RPC_STATUS_SPORT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->sport = (__u16)ynl_attr_get_u16(attr); } else if (type == NFSD_A_RPC_STATUS_DPORT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->dport = (__u16)ynl_attr_get_u16(attr); } else if (type == NFSD_A_RPC_STATUS_COMPOUND_OPS) { n_compound_ops++; @@ -351,8 +375,9 @@ nfsd_rpc_status_get_dump(ynl_cpp::ynl_socket& ys) nlh = ynl_gemsg_start_dump(ys, ((struct ynl_sock*)ys)->family_id, NFSD_CMD_RPC_STATUS_GET, 1); err = ynl_exec_dump_no_alloc(ys, nlh, &yds); - if (err < 0) + if (err < 0) { return nullptr; + } return ret; } @@ -368,18 +393,23 @@ int nfsd_threads_set(ynl_cpp::ynl_socket& ys, nfsd_threads_set_req& req) nlh = ynl_gemsg_start_req(ys, ((struct ynl_sock*)ys)->family_id, NFSD_CMD_THREADS_SET, 1); ((struct ynl_sock*)ys)->req_policy = &nfsd_server_nest; - for (unsigned int i = 0; i < req.threads.size(); i++) + for (unsigned int i = 0; i < req.threads.size(); i++) { ynl_attr_put_u32(nlh, NFSD_A_SERVER_THREADS, req.threads[i]); - if (req.gracetime.has_value()) + } + if (req.gracetime.has_value()) { ynl_attr_put_u32(nlh, NFSD_A_SERVER_GRACETIME, req.gracetime.value()); - if (req.leasetime.has_value()) + } + if (req.leasetime.has_value()) { ynl_attr_put_u32(nlh, NFSD_A_SERVER_LEASETIME, req.leasetime.value()); - if (req.scope.size() > 0) + } + if (req.scope.size() > 0) { ynl_attr_put_str(nlh, NFSD_A_SERVER_SCOPE, req.scope.data()); + } err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return -1; + } return 0; } @@ -396,8 +426,9 @@ int nfsd_threads_get_rsp_parse(const struct nlmsghdr *nlh, dst = (nfsd_threads_get_rsp*)yarg->data; - if (dst->threads.size() > 0) + if (dst->threads.size() > 0) { return ynl_error_parse(yarg, "attribute already present (server.threads)"); + } ynl_attr_for_each(attr, nlh, yarg->ys->family->hdr_len) { unsigned int type = ynl_attr_type(attr); @@ -405,16 +436,19 @@ int nfsd_threads_get_rsp_parse(const struct nlmsghdr *nlh, if (type == NFSD_A_SERVER_THREADS) { n_threads++; } else if (type == NFSD_A_SERVER_GRACETIME) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->gracetime = (__u32)ynl_attr_get_u32(attr); } else if (type == NFSD_A_SERVER_LEASETIME) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->leasetime = (__u32)ynl_attr_get_u32(attr); } else if (type == NFSD_A_SERVER_SCOPE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->scope.assign(ynl_attr_get_str(attr)); } } @@ -450,8 +484,9 @@ std::unique_ptr nfsd_threads_get(ynl_cpp::ynl_socket& ys) yrs.rsp_cmd = NFSD_CMD_THREADS_GET; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -467,12 +502,14 @@ int nfsd_version_set(ynl_cpp::ynl_socket& ys, nfsd_version_set_req& req) nlh = ynl_gemsg_start_req(ys, ((struct ynl_sock*)ys)->family_id, NFSD_CMD_VERSION_SET, 1); ((struct ynl_sock*)ys)->req_policy = &nfsd_server_proto_nest; - for (unsigned int i = 0; i < req.version.size(); i++) + for (unsigned int i = 0; i < req.version.size(); i++) { nfsd_version_put(nlh, NFSD_A_SERVER_PROTO_VERSION, req.version[i]); + } err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return -1; + } return 0; } @@ -491,8 +528,9 @@ int nfsd_version_get_rsp_parse(const struct nlmsghdr *nlh, dst = (nfsd_version_get_rsp*)yarg->data; parg.ys = yarg->ys; - if (dst->version.size() > 0) + if (dst->version.size() > 0) { return ynl_error_parse(yarg, "attribute already present (server-proto.version)"); + } ynl_attr_for_each(attr, nlh, yarg->ys->family->hdr_len) { unsigned int type = ynl_attr_type(attr); @@ -509,8 +547,9 @@ int nfsd_version_get_rsp_parse(const struct nlmsghdr *nlh, ynl_attr_for_each(attr, nlh, yarg->ys->family->hdr_len) { if (ynl_attr_type(attr) == NFSD_A_SERVER_PROTO_VERSION) { parg.data = &dst->version[i]; - if (nfsd_version_parse(&parg, attr)) + if (nfsd_version_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } i++; } } @@ -536,8 +575,9 @@ std::unique_ptr nfsd_version_get(ynl_cpp::ynl_socket& ys) yrs.rsp_cmd = NFSD_CMD_VERSION_GET; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -553,12 +593,14 @@ int nfsd_listener_set(ynl_cpp::ynl_socket& ys, nfsd_listener_set_req& req) nlh = ynl_gemsg_start_req(ys, ((struct ynl_sock*)ys)->family_id, NFSD_CMD_LISTENER_SET, 1); ((struct ynl_sock*)ys)->req_policy = &nfsd_server_sock_nest; - for (unsigned int i = 0; i < req.addr.size(); i++) + for (unsigned int i = 0; i < req.addr.size(); i++) { nfsd_sock_put(nlh, NFSD_A_SERVER_SOCK_ADDR, req.addr[i]); + } err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return -1; + } return 0; } @@ -577,8 +619,9 @@ int nfsd_listener_get_rsp_parse(const struct nlmsghdr *nlh, dst = (nfsd_listener_get_rsp*)yarg->data; parg.ys = yarg->ys; - if (dst->addr.size() > 0) + if (dst->addr.size() > 0) { return ynl_error_parse(yarg, "attribute already present (server-sock.addr)"); + } ynl_attr_for_each(attr, nlh, yarg->ys->family->hdr_len) { unsigned int type = ynl_attr_type(attr); @@ -595,8 +638,9 @@ int nfsd_listener_get_rsp_parse(const struct nlmsghdr *nlh, ynl_attr_for_each(attr, nlh, yarg->ys->family->hdr_len) { if (ynl_attr_type(attr) == NFSD_A_SERVER_SOCK_ADDR) { parg.data = &dst->addr[i]; - if (nfsd_sock_parse(&parg, attr)) + if (nfsd_sock_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } i++; } } @@ -623,8 +667,9 @@ nfsd_listener_get(ynl_cpp::ynl_socket& ys) yrs.rsp_cmd = NFSD_CMD_LISTENER_GET; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -640,12 +685,14 @@ int nfsd_pool_mode_set(ynl_cpp::ynl_socket& ys, nfsd_pool_mode_set_req& req) nlh = ynl_gemsg_start_req(ys, ((struct ynl_sock*)ys)->family_id, NFSD_CMD_POOL_MODE_SET, 1); ((struct ynl_sock*)ys)->req_policy = &nfsd_pool_mode_nest; - if (req.mode.size() > 0) + if (req.mode.size() > 0) { ynl_attr_put_str(nlh, NFSD_A_POOL_MODE_MODE, req.mode.data()); + } err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return -1; + } return 0; } @@ -664,12 +711,14 @@ int nfsd_pool_mode_get_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == NFSD_A_POOL_MODE_MODE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->mode.assign(ynl_attr_get_str(attr)); } else if (type == NFSD_A_POOL_MODE_NPOOLS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->npools = (__u32)ynl_attr_get_u32(attr); } } @@ -695,8 +744,9 @@ nfsd_pool_mode_get(ynl_cpp::ynl_socket& ys) yrs.rsp_cmd = NFSD_CMD_POOL_MODE_GET; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } diff --git a/generated/nl80211-user.cpp b/generated/nl80211-user.cpp index c13327d..856367e 100644 --- a/generated/nl80211-user.cpp +++ b/generated/nl80211-user.cpp @@ -24,8 +24,9 @@ static constexpr std::array= (int)(nl80211_op_strmap.size())) + if (op < 0 || op >= (int)(nl80211_op_strmap.size())) { return ""; + } return nl80211_op_strmap[op]; } @@ -192,8 +193,9 @@ static constexpr std::array nl80211_commands_strmap = std::string_view nl80211_commands_str(nl80211_commands value) { - if (value < 0 || value >= (int)(nl80211_commands_strmap.size())) + if (value < 0 || value >= (int)(nl80211_commands_strmap.size())) { return ""; + } return nl80211_commands_strmap[value]; } @@ -237,8 +239,9 @@ static constexpr std::array nl80211_feature_flags_strm std::string_view nl80211_feature_flags_str(nl80211_feature_flags value) { value = (nl80211_feature_flags)(ffs(value) - 1); - if (value < 0 || value >= (int)(nl80211_feature_flags_strmap.size())) + if (value < 0 || value >= (int)(nl80211_feature_flags_strmap.size())) { return ""; + } return nl80211_feature_flags_strmap[value]; } @@ -253,8 +256,9 @@ static constexpr std::array nl80211_channel_type_strmap std::string_view nl80211_channel_type_str(nl80211_channel_type value) { - if (value < 0 || value >= (int)(nl80211_channel_type_strmap.size())) + if (value < 0 || value >= (int)(nl80211_channel_type_strmap.size())) { return ""; + } return nl80211_channel_type_strmap[value]; } @@ -267,8 +271,9 @@ static constexpr std::array nl80211_protocol_features_s std::string_view nl80211_protocol_features_str(nl80211_protocol_features value) { value = (nl80211_protocol_features)(ffs(value) - 1); - if (value < 0 || value >= (int)(nl80211_protocol_features_strmap.size())) + if (value < 0 || value >= (int)(nl80211_protocol_features_strmap.size())) { return ""; + } return nl80211_protocol_features_strmap[value]; } @@ -1427,41 +1432,53 @@ int nl80211_supported_iftypes_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == NL80211_IFTYPE_ADHOC) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_IFTYPE_STATION) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_IFTYPE_AP) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_IFTYPE_AP_VLAN) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_IFTYPE_WDS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_IFTYPE_MONITOR) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_IFTYPE_MESH_POINT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_IFTYPE_P2P_CLIENT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_IFTYPE_P2P_GO) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_IFTYPE_P2P_DEVICE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_IFTYPE_OCB) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_IFTYPE_NAN) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } } @@ -1478,65 +1495,85 @@ int nl80211_wowlan_triggers_attrs_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == NL80211_WOWLAN_TRIG_ANY) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_WOWLAN_TRIG_DISCONNECT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_WOWLAN_TRIG_MAGIC_PKT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_WOWLAN_TRIG_PKT_PATTERN) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_WOWLAN_TRIG_GTK_REKEY_SUPPORTED) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_WOWLAN_TRIG_GTK_REKEY_FAILURE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_WOWLAN_TRIG_EAP_IDENT_REQUEST) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_WOWLAN_TRIG_4WAY_HANDSHAKE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_WOWLAN_TRIG_RFKILL_RELEASE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211_LEN) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023_LEN) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_WOWLAN_TRIG_TCP_CONNECTION) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_WOWLAN_TRIG_WAKEUP_TCP_MATCH) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_WOWLAN_TRIG_WAKEUP_TCP_CONNLOST) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_WOWLAN_TRIG_WAKEUP_TCP_NOMORETOKENS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_WOWLAN_TRIG_NET_DETECT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_WOWLAN_TRIG_NET_DETECT_RESULTS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_WOWLAN_TRIG_UNPROTECTED_DEAUTH_DISASSOC) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } } @@ -1553,48 +1590,59 @@ int nl80211_txq_stats_attrs_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == NL80211_TXQ_STATS_BACKLOG_BYTES) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->backlog_bytes = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_TXQ_STATS_BACKLOG_PACKETS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->backlog_packets = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_TXQ_STATS_FLOWS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->flows = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_TXQ_STATS_DROPS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->drops = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_TXQ_STATS_ECN_MARKS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->ecn_marks = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_TXQ_STATS_OVERLIMIT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->overlimit = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_TXQ_STATS_OVERMEMORY) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->overmemory = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_TXQ_STATS_COLLISIONS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->collisions = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_TXQ_STATS_TX_BYTES) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->tx_bytes = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_TXQ_STATS_TX_PACKETS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->tx_packets = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_TXQ_STATS_MAX_FLOWS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->max_flows = (__u32)ynl_attr_get_u32(attr); } } @@ -1612,8 +1660,9 @@ int nl80211_frame_type_attrs_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == NL80211_ATTR_FRAME_TYPE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->frame_type = (__u16)ynl_attr_get_u16(attr); } } @@ -1637,17 +1686,20 @@ int nl80211_iface_limit_attributes_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == NL80211_IFACE_LIMIT_MAX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->max = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_IFACE_LIMIT_TYPES) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &nl80211_supported_iftypes_nest; parg.data = &dst->types.emplace(); - if (nl80211_supported_iftypes_parse(&parg, attr)) + if (nl80211_supported_iftypes_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } } @@ -1666,20 +1718,24 @@ int nl80211_sar_specs_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == NL80211_SAR_ATTR_SPECS_POWER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->power = (__s32)ynl_attr_get_s32(attr); } else if (type == NL80211_SAR_ATTR_SPECS_RANGE_INDEX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->range_index = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_SAR_ATTR_SPECS_START_FREQ) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->start_freq = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_SAR_ATTR_SPECS_END_FREQ) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->end_freq = (__u32)ynl_attr_get_u32(attr); } } @@ -1699,12 +1755,14 @@ int nl80211_bitrate_attrs_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == NL80211_BITRATE_ATTR_RATE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->rate = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_BITRATE_ATTR_2GHZ_SHORTPREAMBLE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } } @@ -1723,68 +1781,79 @@ int nl80211_iftype_data_attrs_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == NL80211_BAND_IFTYPE_ATTR_IFTYPES) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->iftypes.assign(data, data + len); } else if (type == NL80211_BAND_IFTYPE_ATTR_HE_CAP_MAC) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->he_cap_mac.assign(data, data + len); } else if (type == NL80211_BAND_IFTYPE_ATTR_HE_CAP_PHY) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->he_cap_phy.assign(data, data + len); } else if (type == NL80211_BAND_IFTYPE_ATTR_HE_CAP_MCS_SET) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->he_cap_mcs_set.assign(data, data + len); } else if (type == NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->he_cap_ppe.assign(data, data + len); } else if (type == NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->he_6ghz_capa.assign(data, data + len); } else if (type == NL80211_BAND_IFTYPE_ATTR_VENDOR_ELEMS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->vendor_elems.assign(data, data + len); } else if (type == NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MAC) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->eht_cap_mac.assign(data, data + len); } else if (type == NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PHY) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->eht_cap_phy.assign(data, data + len); } else if (type == NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MCS_SET) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->eht_cap_mcs_set.assign(data, data + len); } else if (type == NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PPE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->eht_cap_ppe.assign(data, data + len); @@ -1806,20 +1875,24 @@ int nl80211_wmm_attrs_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == NL80211_WMMR_CW_MIN) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->cw_min = (__u16)ynl_attr_get_u16(attr); } else if (type == NL80211_WMMR_CW_MAX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->cw_max = (__u16)ynl_attr_get_u16(attr); } else if (type == NL80211_WMMR_AIFSN) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->aifsn = (__u8)ynl_attr_get_u8(attr); } else if (type == NL80211_WMMR_TXOP) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->txop = (__u16)ynl_attr_get_u16(attr); } } @@ -1840,109 +1913,135 @@ int nl80211_iftype_attrs_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == NL80211_IFTYPE_UNSPECIFIED) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &nl80211_frame_type_attrs_nest; parg.data = &dst->unspecified.emplace(); - if (nl80211_frame_type_attrs_parse(&parg, attr)) + if (nl80211_frame_type_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_IFTYPE_ADHOC) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &nl80211_frame_type_attrs_nest; parg.data = &dst->adhoc.emplace(); - if (nl80211_frame_type_attrs_parse(&parg, attr)) + if (nl80211_frame_type_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_IFTYPE_STATION) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &nl80211_frame_type_attrs_nest; parg.data = &dst->station.emplace(); - if (nl80211_frame_type_attrs_parse(&parg, attr)) + if (nl80211_frame_type_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_IFTYPE_AP) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &nl80211_frame_type_attrs_nest; parg.data = &dst->ap.emplace(); - if (nl80211_frame_type_attrs_parse(&parg, attr)) + if (nl80211_frame_type_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_IFTYPE_AP_VLAN) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &nl80211_frame_type_attrs_nest; parg.data = &dst->ap_vlan.emplace(); - if (nl80211_frame_type_attrs_parse(&parg, attr)) + if (nl80211_frame_type_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_IFTYPE_WDS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &nl80211_frame_type_attrs_nest; parg.data = &dst->wds.emplace(); - if (nl80211_frame_type_attrs_parse(&parg, attr)) + if (nl80211_frame_type_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_IFTYPE_MONITOR) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &nl80211_frame_type_attrs_nest; parg.data = &dst->monitor.emplace(); - if (nl80211_frame_type_attrs_parse(&parg, attr)) + if (nl80211_frame_type_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_IFTYPE_MESH_POINT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &nl80211_frame_type_attrs_nest; parg.data = &dst->mesh_point.emplace(); - if (nl80211_frame_type_attrs_parse(&parg, attr)) + if (nl80211_frame_type_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_IFTYPE_P2P_CLIENT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &nl80211_frame_type_attrs_nest; parg.data = &dst->p2p_client.emplace(); - if (nl80211_frame_type_attrs_parse(&parg, attr)) + if (nl80211_frame_type_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_IFTYPE_P2P_GO) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &nl80211_frame_type_attrs_nest; parg.data = &dst->p2p_go.emplace(); - if (nl80211_frame_type_attrs_parse(&parg, attr)) + if (nl80211_frame_type_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_IFTYPE_P2P_DEVICE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &nl80211_frame_type_attrs_nest; parg.data = &dst->p2p_device.emplace(); - if (nl80211_frame_type_attrs_parse(&parg, attr)) + if (nl80211_frame_type_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_IFTYPE_OCB) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &nl80211_frame_type_attrs_nest; parg.data = &dst->ocb.emplace(); - if (nl80211_frame_type_attrs_parse(&parg, attr)) + if (nl80211_frame_type_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_IFTYPE_NAN) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &nl80211_frame_type_attrs_nest; parg.data = &dst->nan.emplace(); - if (nl80211_frame_type_attrs_parse(&parg, attr)) + if (nl80211_frame_type_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } } @@ -1963,8 +2062,9 @@ int nl80211_if_combination_attributes_parse(struct ynl_parse_arg *yarg, parg.ys = yarg->ys; dst->idx = idx; - if (dst->limits.size() > 0) + if (dst->limits.size() > 0) { return ynl_error_parse(yarg, "attribute already present (if-combination-attributes.limits)"); + } ynl_attr_for_each_nested(attr, nested) { unsigned int type = ynl_attr_type(attr); @@ -1974,27 +2074,33 @@ int nl80211_if_combination_attributes_parse(struct ynl_parse_arg *yarg, attr_limits = attr; } else if (type == NL80211_IFACE_COMB_MAXNUM) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->maxnum = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_IFACE_COMB_STA_AP_BI_MATCH) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_IFACE_COMB_NUM_CHANNELS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->num_channels = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_IFACE_COMB_RADAR_DETECT_WIDTHS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->radar_detect_widths = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_IFACE_COMB_RADAR_DETECT_REGIONS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->radar_detect_regions = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_IFACE_COMB_BI_MIN_GCD) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->bi_min_gcd = (__u32)ynl_attr_get_u32(attr); } } @@ -2005,8 +2111,9 @@ int nl80211_if_combination_attributes_parse(struct ynl_parse_arg *yarg, parg.rsp_policy = &nl80211_iface_limit_attributes_nest; ynl_attr_for_each_nested(attr, attr_limits) { parg.data = &dst->limits[i]; - if (nl80211_iface_limit_attributes_parse(&parg, attr, ynl_attr_type(attr))) + if (nl80211_iface_limit_attributes_parse(&parg, attr, ynl_attr_type(attr))) { return YNL_PARSE_CB_ERROR; + } i++; } } @@ -2026,15 +2133,17 @@ int nl80211_sar_attributes_parse(struct ynl_parse_arg *yarg, parg.ys = yarg->ys; - if (dst->specs.size() > 0) + if (dst->specs.size() > 0) { return ynl_error_parse(yarg, "attribute already present (sar-attributes.specs)"); + } ynl_attr_for_each_nested(attr, nested) { unsigned int type = ynl_attr_type(attr); if (type == NL80211_SAR_ATTR_TYPE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->type = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_SAR_ATTR_SPECS) { const struct nlattr *attr2; @@ -2049,8 +2158,9 @@ int nl80211_sar_attributes_parse(struct ynl_parse_arg *yarg, parg.rsp_policy = &nl80211_sar_specs_nest; ynl_attr_for_each_nested(attr, attr_specs) { parg.data = &dst->specs[i]; - if (nl80211_sar_specs_parse(&parg, attr, ynl_attr_type(attr))) + if (nl80211_sar_specs_parse(&parg, attr, ynl_attr_type(attr))) { return YNL_PARSE_CB_ERROR; + } i++; } } @@ -2071,93 +2181,111 @@ int nl80211_frequency_attrs_parse(struct ynl_parse_arg *yarg, parg.ys = yarg->ys; dst->idx = idx; - if (dst->wmm.size() > 0) + if (dst->wmm.size() > 0) { return ynl_error_parse(yarg, "attribute already present (frequency-attrs.wmm)"); + } ynl_attr_for_each_nested(attr, nested) { unsigned int type = ynl_attr_type(attr); if (type == NL80211_FREQUENCY_ATTR_FREQ) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->freq = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_FREQUENCY_ATTR_DISABLED) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_FREQUENCY_ATTR_NO_IR) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == __NL80211_FREQUENCY_ATTR_NO_IBSS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_FREQUENCY_ATTR_RADAR) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_FREQUENCY_ATTR_MAX_TX_POWER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->max_tx_power = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_FREQUENCY_ATTR_DFS_STATE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->dfs_state = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_FREQUENCY_ATTR_DFS_TIME) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->dfs_time.assign(data, data + len); } else if (type == NL80211_FREQUENCY_ATTR_NO_HT40_MINUS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->no_ht40_minus.assign(data, data + len); } else if (type == NL80211_FREQUENCY_ATTR_NO_HT40_PLUS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->no_ht40_plus.assign(data, data + len); } else if (type == NL80211_FREQUENCY_ATTR_NO_80MHZ) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->no_80mhz.assign(data, data + len); } else if (type == NL80211_FREQUENCY_ATTR_NO_160MHZ) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->no_160mhz.assign(data, data + len); } else if (type == NL80211_FREQUENCY_ATTR_DFS_CAC_TIME) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->dfs_cac_time.assign(data, data + len); } else if (type == NL80211_FREQUENCY_ATTR_INDOOR_ONLY) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->indoor_only.assign(data, data + len); } else if (type == NL80211_FREQUENCY_ATTR_IR_CONCURRENT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->ir_concurrent.assign(data, data + len); } else if (type == NL80211_FREQUENCY_ATTR_NO_20MHZ) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->no_20mhz.assign(data, data + len); } else if (type == NL80211_FREQUENCY_ATTR_NO_10MHZ) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->no_10mhz.assign(data, data + len); @@ -2166,90 +2294,105 @@ int nl80211_frequency_attrs_parse(struct ynl_parse_arg *yarg, attr_wmm = attr; } else if (type == NL80211_FREQUENCY_ATTR_NO_HE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->no_he.assign(data, data + len); } else if (type == NL80211_FREQUENCY_ATTR_OFFSET) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->offset = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_FREQUENCY_ATTR_1MHZ) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->_1mhz.assign(data, data + len); } else if (type == NL80211_FREQUENCY_ATTR_2MHZ) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->_2mhz.assign(data, data + len); } else if (type == NL80211_FREQUENCY_ATTR_4MHZ) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->_4mhz.assign(data, data + len); } else if (type == NL80211_FREQUENCY_ATTR_8MHZ) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->_8mhz.assign(data, data + len); } else if (type == NL80211_FREQUENCY_ATTR_16MHZ) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->_16mhz.assign(data, data + len); } else if (type == NL80211_FREQUENCY_ATTR_NO_320MHZ) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->no_320mhz.assign(data, data + len); } else if (type == NL80211_FREQUENCY_ATTR_NO_EHT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->no_eht.assign(data, data + len); } else if (type == NL80211_FREQUENCY_ATTR_PSD) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->psd.assign(data, data + len); } else if (type == NL80211_FREQUENCY_ATTR_DFS_CONCURRENT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->dfs_concurrent.assign(data, data + len); } else if (type == NL80211_FREQUENCY_ATTR_NO_6GHZ_VLP_CLIENT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->no_6ghz_vlp_client.assign(data, data + len); } else if (type == NL80211_FREQUENCY_ATTR_NO_6GHZ_AFC_CLIENT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->no_6ghz_afc_client.assign(data, data + len); } else if (type == NL80211_FREQUENCY_ATTR_CAN_MONITOR) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->can_monitor.assign(data, data + len); } else if (type == NL80211_FREQUENCY_ATTR_ALLOW_6GHZ_VLP_AP) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->allow_6ghz_vlp_ap.assign(data, data + len); @@ -2262,8 +2405,9 @@ int nl80211_frequency_attrs_parse(struct ynl_parse_arg *yarg, parg.rsp_policy = &nl80211_wmm_attrs_nest; ynl_attr_for_each_nested(attr, attr_wmm) { parg.data = &dst->wmm[i]; - if (nl80211_wmm_attrs_parse(&parg, attr, ynl_attr_type(attr))) + if (nl80211_wmm_attrs_parse(&parg, attr, ynl_attr_type(attr))) { return YNL_PARSE_CB_ERROR; + } i++; } } @@ -2287,12 +2431,15 @@ int nl80211_band_attrs_parse(struct ynl_parse_arg *yarg, parg.ys = yarg->ys; - if (dst->freqs.size() > 0) + if (dst->freqs.size() > 0) { return ynl_error_parse(yarg, "attribute already present (band-attrs.freqs)"); - if (dst->iftype_data.size() > 0) + } + if (dst->iftype_data.size() > 0) { return ynl_error_parse(yarg, "attribute already present (band-attrs.iftype-data)"); - if (dst->rates.size() > 0) + } + if (dst->rates.size() > 0) { return ynl_error_parse(yarg, "attribute already present (band-attrs.rates)"); + } ynl_attr_for_each_nested(attr, nested) { unsigned int type = ynl_attr_type(attr); @@ -2306,58 +2453,68 @@ int nl80211_band_attrs_parse(struct ynl_parse_arg *yarg, attr_rates = attr; } else if (type == NL80211_BAND_ATTR_HT_MCS_SET) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->ht_mcs_set.assign(data, data + len); } else if (type == NL80211_BAND_ATTR_HT_CAPA) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->ht_capa = (__u16)ynl_attr_get_u16(attr); } else if (type == NL80211_BAND_ATTR_HT_AMPDU_FACTOR) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->ht_ampdu_factor = (__u8)ynl_attr_get_u8(attr); } else if (type == NL80211_BAND_ATTR_HT_AMPDU_DENSITY) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->ht_ampdu_density = (__u8)ynl_attr_get_u8(attr); } else if (type == NL80211_BAND_ATTR_VHT_MCS_SET) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->vht_mcs_set.assign(data, data + len); } else if (type == NL80211_BAND_ATTR_VHT_CAPA) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->vht_capa = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_BAND_ATTR_IFTYPE_DATA) { const struct nlattr *attr2; attr_iftype_data = attr; } else if (type == NL80211_BAND_ATTR_EDMG_CHANNELS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->edmg_channels.assign(data, data + len); } else if (type == NL80211_BAND_ATTR_EDMG_BW_CONFIG) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->edmg_bw_config.assign(data, data + len); } else if (type == NL80211_BAND_ATTR_S1G_MCS_NSS_SET) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->s1g_mcs_nss_set.assign(data, data + len); } else if (type == NL80211_BAND_ATTR_S1G_CAPA) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->s1g_capa.assign(data, data + len); @@ -2370,8 +2527,9 @@ int nl80211_band_attrs_parse(struct ynl_parse_arg *yarg, parg.rsp_policy = &nl80211_frequency_attrs_nest; ynl_attr_for_each_nested(attr, attr_freqs) { parg.data = &dst->freqs[i]; - if (nl80211_frequency_attrs_parse(&parg, attr, ynl_attr_type(attr))) + if (nl80211_frequency_attrs_parse(&parg, attr, ynl_attr_type(attr))) { return YNL_PARSE_CB_ERROR; + } i++; } } @@ -2381,8 +2539,9 @@ int nl80211_band_attrs_parse(struct ynl_parse_arg *yarg, parg.rsp_policy = &nl80211_iftype_data_attrs_nest; ynl_attr_for_each_nested(attr, attr_iftype_data) { parg.data = &dst->iftype_data[i]; - if (nl80211_iftype_data_attrs_parse(&parg, attr, ynl_attr_type(attr))) + if (nl80211_iftype_data_attrs_parse(&parg, attr, ynl_attr_type(attr))) { return YNL_PARSE_CB_ERROR; + } i++; } } @@ -2392,8 +2551,9 @@ int nl80211_band_attrs_parse(struct ynl_parse_arg *yarg, parg.rsp_policy = &nl80211_bitrate_attrs_nest; ynl_attr_for_each_nested(attr, attr_rates) { parg.data = &dst->rates[i]; - if (nl80211_bitrate_attrs_parse(&parg, attr, ynl_attr_type(attr))) + if (nl80211_bitrate_attrs_parse(&parg, attr, ynl_attr_type(attr))) { return YNL_PARSE_CB_ERROR; + } i++; } } @@ -2414,53 +2574,65 @@ int nl80211_wiphy_bands_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == NL80211_BAND_2GHZ) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &nl80211_band_attrs_nest; parg.data = &dst->_2ghz.emplace(); - if (nl80211_band_attrs_parse(&parg, attr)) + if (nl80211_band_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_BAND_5GHZ) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &nl80211_band_attrs_nest; parg.data = &dst->_5ghz.emplace(); - if (nl80211_band_attrs_parse(&parg, attr)) + if (nl80211_band_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_BAND_60GHZ) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &nl80211_band_attrs_nest; parg.data = &dst->_60ghz.emplace(); - if (nl80211_band_attrs_parse(&parg, attr)) + if (nl80211_band_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_BAND_6GHZ) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &nl80211_band_attrs_nest; parg.data = &dst->_6ghz.emplace(); - if (nl80211_band_attrs_parse(&parg, attr)) + if (nl80211_band_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_BAND_S1GHZ) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &nl80211_band_attrs_nest; parg.data = &dst->s1ghz.emplace(); - if (nl80211_band_attrs_parse(&parg, attr)) + if (nl80211_band_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_BAND_LC) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &nl80211_band_attrs_nest; parg.data = &dst->lc.emplace(); - if (nl80211_band_attrs_parse(&parg, attr)) + if (nl80211_band_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } } @@ -2484,56 +2656,67 @@ int nl80211_get_wiphy_rsp_parse(const struct nlmsghdr *nlh, dst = (nl80211_get_wiphy_rsp*)yarg->data; parg.ys = yarg->ys; - if (dst->interface_combinations.size() > 0) + if (dst->interface_combinations.size() > 0) { return ynl_error_parse(yarg, "attribute already present (nl80211-attrs.interface-combinations)"); - if (dst->supported_commands.size() > 0) + } + if (dst->supported_commands.size() > 0) { return ynl_error_parse(yarg, "attribute already present (nl80211-attrs.supported-commands)"); + } ynl_attr_for_each(attr, nlh, yarg->ys->family->hdr_len) { unsigned int type = ynl_attr_type(attr); if (type == NL80211_ATTR_BANDS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->bands = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_ATTR_CIPHER_SUITES) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->cipher_suites.assign(data, data + len); } else if (type == NL80211_ATTR_CONTROL_PORT_ETHERTYPE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_ATTR_EXT_CAPA) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->ext_capa.assign(data, data + len); } else if (type == NL80211_ATTR_EXT_CAPA_MASK) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->ext_capa_mask.assign(data, data + len); } else if (type == NL80211_ATTR_EXT_FEATURES) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->ext_features.assign(data, data + len); } else if (type == NL80211_ATTR_FEATURE_FLAGS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->feature_flags = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_ATTR_GENERATION) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->generation = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_ATTR_HT_CAPABILITY_MASK) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->ht_capability_mask.assign(data, data + len); @@ -2542,207 +2725,256 @@ int nl80211_get_wiphy_rsp_parse(const struct nlmsghdr *nlh, attr_interface_combinations = attr; } else if (type == NL80211_ATTR_MAC) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->mac.assign(data, data + len); } else if (type == NL80211_ATTR_MAX_CSA_COUNTERS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->max_csa_counters = (__u8)ynl_attr_get_u8(attr); } else if (type == NL80211_ATTR_MAX_MATCH_SETS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->max_match_sets = (__u8)ynl_attr_get_u8(attr); } else if (type == NL80211_ATTR_MAX_NUM_AKM_SUITES) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->max_num_akm_suites.assign(data, data + len); } else if (type == NL80211_ATTR_MAX_NUM_PMKIDS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->max_num_pmkids = (__u8)ynl_attr_get_u8(attr); } else if (type == NL80211_ATTR_MAX_NUM_SCAN_SSIDS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->max_num_scan_ssids = (__u8)ynl_attr_get_u8(attr); } else if (type == NL80211_ATTR_MAX_NUM_SCHED_SCAN_PLANS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->max_num_sched_scan_plans = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_ATTR_MAX_NUM_SCHED_SCAN_SSIDS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->max_num_sched_scan_ssids = (__u8)ynl_attr_get_u8(attr); } else if (type == NL80211_ATTR_MAX_REMAIN_ON_CHANNEL_DURATION) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->max_remain_on_channel_duration = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_ATTR_MAX_SCAN_IE_LEN) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->max_scan_ie_len = (__u16)ynl_attr_get_u16(attr); } else if (type == NL80211_ATTR_MAX_SCAN_PLAN_INTERVAL) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->max_scan_plan_interval = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_ATTR_MAX_SCAN_PLAN_ITERATIONS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->max_scan_plan_iterations = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_ATTR_MAX_SCHED_SCAN_IE_LEN) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->max_sched_scan_ie_len = (__u16)ynl_attr_get_u16(attr); } else if (type == NL80211_ATTR_OFFCHANNEL_TX_OK) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_ATTR_RX_FRAME_TYPES) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &nl80211_iftype_attrs_nest; parg.data = &dst->rx_frame_types.emplace(); - if (nl80211_iftype_attrs_parse(&parg, attr)) + if (nl80211_iftype_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_ATTR_SAR_SPEC) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &nl80211_sar_attributes_nest; parg.data = &dst->sar_spec.emplace(); - if (nl80211_sar_attributes_parse(&parg, attr)) + if (nl80211_sar_attributes_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_ATTR_SCHED_SCAN_MAX_REQS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->sched_scan_max_reqs = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_ATTR_SOFTWARE_IFTYPES) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &nl80211_supported_iftypes_nest; parg.data = &dst->software_iftypes.emplace(); - if (nl80211_supported_iftypes_parse(&parg, attr)) + if (nl80211_supported_iftypes_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_ATTR_SUPPORT_AP_UAPSD) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_ATTR_SUPPORTED_COMMANDS) { const struct nlattr *attr2; attr_supported_commands = attr; } else if (type == NL80211_ATTR_SUPPORTED_IFTYPES) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &nl80211_supported_iftypes_nest; parg.data = &dst->supported_iftypes.emplace(); - if (nl80211_supported_iftypes_parse(&parg, attr)) + if (nl80211_supported_iftypes_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_ATTR_TDLS_EXTERNAL_SETUP) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_ATTR_TDLS_SUPPORT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_ATTR_TX_FRAME_TYPES) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &nl80211_iftype_attrs_nest; parg.data = &dst->tx_frame_types.emplace(); - if (nl80211_iftype_attrs_parse(&parg, attr)) + if (nl80211_iftype_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_ATTR_TXQ_LIMIT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->txq_limit = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_ATTR_TXQ_MEMORY_LIMIT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->txq_memory_limit = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_ATTR_TXQ_QUANTUM) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->txq_quantum = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_ATTR_TXQ_STATS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &nl80211_txq_stats_attrs_nest; parg.data = &dst->txq_stats.emplace(); - if (nl80211_txq_stats_attrs_parse(&parg, attr)) + if (nl80211_txq_stats_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_ATTR_VHT_CAPABILITY_MASK) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->vht_capability_mask.assign(data, data + len); } else if (type == NL80211_ATTR_WIPHY) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->wiphy = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_ATTR_WIPHY_ANTENNA_AVAIL_RX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->wiphy_antenna_avail_rx = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_ATTR_WIPHY_ANTENNA_AVAIL_TX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->wiphy_antenna_avail_tx = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_ATTR_WIPHY_ANTENNA_RX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->wiphy_antenna_rx = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_ATTR_WIPHY_ANTENNA_TX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->wiphy_antenna_tx = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_ATTR_WIPHY_BANDS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &nl80211_wiphy_bands_nest; parg.data = &dst->wiphy_bands.emplace(); - if (nl80211_wiphy_bands_parse(&parg, attr)) + if (nl80211_wiphy_bands_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_ATTR_WIPHY_COVERAGE_CLASS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->wiphy_coverage_class = (__u8)ynl_attr_get_u8(attr); } else if (type == NL80211_ATTR_WIPHY_FRAG_THRESHOLD) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->wiphy_frag_threshold = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_ATTR_WIPHY_NAME) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->wiphy_name.assign(ynl_attr_get_str(attr)); } else if (type == NL80211_ATTR_WIPHY_RETRY_LONG) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->wiphy_retry_long = (__u8)ynl_attr_get_u8(attr); } else if (type == NL80211_ATTR_WIPHY_RETRY_SHORT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->wiphy_retry_short = (__u8)ynl_attr_get_u8(attr); } else if (type == NL80211_ATTR_WIPHY_RTS_THRESHOLD) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->wiphy_rts_threshold = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_ATTR_WOWLAN_TRIGGERS_SUPPORTED) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &nl80211_wowlan_triggers_attrs_nest; parg.data = &dst->wowlan_triggers_supported.emplace(); - if (nl80211_wowlan_triggers_attrs_parse(&parg, attr)) + if (nl80211_wowlan_triggers_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } } @@ -2752,8 +2984,9 @@ int nl80211_get_wiphy_rsp_parse(const struct nlmsghdr *nlh, parg.rsp_policy = &nl80211_if_combination_attributes_nest; ynl_attr_for_each_nested(attr, attr_interface_combinations) { parg.data = &dst->interface_combinations[i]; - if (nl80211_if_combination_attributes_parse(&parg, attr, ynl_attr_type(attr))) + if (nl80211_if_combination_attributes_parse(&parg, attr, ynl_attr_type(attr))) { return YNL_PARSE_CB_ERROR; + } i++; } } @@ -2781,12 +3014,15 @@ nl80211_get_wiphy(ynl_cpp::ynl_socket& ys, nl80211_get_wiphy_req& req) ((struct ynl_sock*)ys)->req_policy = &nl80211_nl80211_attrs_nest; yrs.yarg.rsp_policy = &nl80211_nl80211_attrs_nest; - if (req.wiphy.has_value()) + if (req.wiphy.has_value()) { ynl_attr_put_u32(nlh, NL80211_ATTR_WIPHY, req.wiphy.value()); - if (req.wdev.has_value()) + } + if (req.wdev.has_value()) { ynl_attr_put_u64(nlh, NL80211_ATTR_WDEV, req.wdev.value()); - if (req.ifindex.has_value()) + } + if (req.ifindex.has_value()) { ynl_attr_put_u32(nlh, NL80211_ATTR_IFINDEX, req.ifindex.value()); + } rsp.reset(new nl80211_get_wiphy_rsp()); yrs.yarg.data = rsp.get(); @@ -2794,8 +3030,9 @@ nl80211_get_wiphy(ynl_cpp::ynl_socket& ys, nl80211_get_wiphy_req& req) yrs.rsp_cmd = 3; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -2816,56 +3053,67 @@ int nl80211_get_wiphy_rsp_dump_parse(const struct nlmsghdr *nlh, dst = (nl80211_get_wiphy_rsp_dump*)yarg->data; parg.ys = yarg->ys; - if (dst->interface_combinations.size() > 0) + if (dst->interface_combinations.size() > 0) { return ynl_error_parse(yarg, "attribute already present (nl80211-attrs.interface-combinations)"); - if (dst->supported_commands.size() > 0) + } + if (dst->supported_commands.size() > 0) { return ynl_error_parse(yarg, "attribute already present (nl80211-attrs.supported-commands)"); + } ynl_attr_for_each(attr, nlh, yarg->ys->family->hdr_len) { unsigned int type = ynl_attr_type(attr); if (type == NL80211_ATTR_BANDS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->bands = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_ATTR_CIPHER_SUITES) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->cipher_suites.assign(data, data + len); } else if (type == NL80211_ATTR_CONTROL_PORT_ETHERTYPE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_ATTR_EXT_CAPA) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->ext_capa.assign(data, data + len); } else if (type == NL80211_ATTR_EXT_CAPA_MASK) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->ext_capa_mask.assign(data, data + len); } else if (type == NL80211_ATTR_EXT_FEATURES) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->ext_features.assign(data, data + len); } else if (type == NL80211_ATTR_FEATURE_FLAGS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->feature_flags = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_ATTR_GENERATION) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->generation = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_ATTR_HT_CAPABILITY_MASK) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->ht_capability_mask.assign(data, data + len); @@ -2874,207 +3122,256 @@ int nl80211_get_wiphy_rsp_dump_parse(const struct nlmsghdr *nlh, attr_interface_combinations = attr; } else if (type == NL80211_ATTR_MAC) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->mac.assign(data, data + len); } else if (type == NL80211_ATTR_MAX_CSA_COUNTERS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->max_csa_counters = (__u8)ynl_attr_get_u8(attr); } else if (type == NL80211_ATTR_MAX_MATCH_SETS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->max_match_sets = (__u8)ynl_attr_get_u8(attr); } else if (type == NL80211_ATTR_MAX_NUM_AKM_SUITES) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->max_num_akm_suites.assign(data, data + len); } else if (type == NL80211_ATTR_MAX_NUM_PMKIDS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->max_num_pmkids = (__u8)ynl_attr_get_u8(attr); } else if (type == NL80211_ATTR_MAX_NUM_SCAN_SSIDS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->max_num_scan_ssids = (__u8)ynl_attr_get_u8(attr); } else if (type == NL80211_ATTR_MAX_NUM_SCHED_SCAN_PLANS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->max_num_sched_scan_plans = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_ATTR_MAX_NUM_SCHED_SCAN_SSIDS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->max_num_sched_scan_ssids = (__u8)ynl_attr_get_u8(attr); } else if (type == NL80211_ATTR_MAX_REMAIN_ON_CHANNEL_DURATION) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->max_remain_on_channel_duration = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_ATTR_MAX_SCAN_IE_LEN) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->max_scan_ie_len = (__u16)ynl_attr_get_u16(attr); } else if (type == NL80211_ATTR_MAX_SCAN_PLAN_INTERVAL) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->max_scan_plan_interval = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_ATTR_MAX_SCAN_PLAN_ITERATIONS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->max_scan_plan_iterations = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_ATTR_MAX_SCHED_SCAN_IE_LEN) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->max_sched_scan_ie_len = (__u16)ynl_attr_get_u16(attr); } else if (type == NL80211_ATTR_OFFCHANNEL_TX_OK) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_ATTR_RX_FRAME_TYPES) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &nl80211_iftype_attrs_nest; parg.data = &dst->rx_frame_types.emplace(); - if (nl80211_iftype_attrs_parse(&parg, attr)) + if (nl80211_iftype_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_ATTR_SAR_SPEC) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &nl80211_sar_attributes_nest; parg.data = &dst->sar_spec.emplace(); - if (nl80211_sar_attributes_parse(&parg, attr)) + if (nl80211_sar_attributes_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_ATTR_SCHED_SCAN_MAX_REQS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->sched_scan_max_reqs = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_ATTR_SOFTWARE_IFTYPES) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &nl80211_supported_iftypes_nest; parg.data = &dst->software_iftypes.emplace(); - if (nl80211_supported_iftypes_parse(&parg, attr)) + if (nl80211_supported_iftypes_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_ATTR_SUPPORT_AP_UAPSD) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_ATTR_SUPPORTED_COMMANDS) { const struct nlattr *attr2; attr_supported_commands = attr; } else if (type == NL80211_ATTR_SUPPORTED_IFTYPES) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &nl80211_supported_iftypes_nest; parg.data = &dst->supported_iftypes.emplace(); - if (nl80211_supported_iftypes_parse(&parg, attr)) + if (nl80211_supported_iftypes_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_ATTR_TDLS_EXTERNAL_SETUP) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_ATTR_TDLS_SUPPORT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_ATTR_TX_FRAME_TYPES) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &nl80211_iftype_attrs_nest; parg.data = &dst->tx_frame_types.emplace(); - if (nl80211_iftype_attrs_parse(&parg, attr)) + if (nl80211_iftype_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_ATTR_TXQ_LIMIT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->txq_limit = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_ATTR_TXQ_MEMORY_LIMIT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->txq_memory_limit = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_ATTR_TXQ_QUANTUM) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->txq_quantum = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_ATTR_TXQ_STATS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &nl80211_txq_stats_attrs_nest; parg.data = &dst->txq_stats.emplace(); - if (nl80211_txq_stats_attrs_parse(&parg, attr)) + if (nl80211_txq_stats_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_ATTR_VHT_CAPABILITY_MASK) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->vht_capability_mask.assign(data, data + len); } else if (type == NL80211_ATTR_WIPHY) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->wiphy = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_ATTR_WIPHY_ANTENNA_AVAIL_RX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->wiphy_antenna_avail_rx = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_ATTR_WIPHY_ANTENNA_AVAIL_TX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->wiphy_antenna_avail_tx = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_ATTR_WIPHY_ANTENNA_RX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->wiphy_antenna_rx = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_ATTR_WIPHY_ANTENNA_TX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->wiphy_antenna_tx = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_ATTR_WIPHY_BANDS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &nl80211_wiphy_bands_nest; parg.data = &dst->wiphy_bands.emplace(); - if (nl80211_wiphy_bands_parse(&parg, attr)) + if (nl80211_wiphy_bands_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_ATTR_WIPHY_COVERAGE_CLASS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->wiphy_coverage_class = (__u8)ynl_attr_get_u8(attr); } else if (type == NL80211_ATTR_WIPHY_FRAG_THRESHOLD) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->wiphy_frag_threshold = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_ATTR_WIPHY_NAME) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->wiphy_name.assign(ynl_attr_get_str(attr)); } else if (type == NL80211_ATTR_WIPHY_RETRY_LONG) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->wiphy_retry_long = (__u8)ynl_attr_get_u8(attr); } else if (type == NL80211_ATTR_WIPHY_RETRY_SHORT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->wiphy_retry_short = (__u8)ynl_attr_get_u8(attr); } else if (type == NL80211_ATTR_WIPHY_RTS_THRESHOLD) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->wiphy_rts_threshold = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_ATTR_WOWLAN_TRIGGERS_SUPPORTED) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &nl80211_wowlan_triggers_attrs_nest; parg.data = &dst->wowlan_triggers_supported.emplace(); - if (nl80211_wowlan_triggers_attrs_parse(&parg, attr)) + if (nl80211_wowlan_triggers_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } } @@ -3084,8 +3381,9 @@ int nl80211_get_wiphy_rsp_dump_parse(const struct nlmsghdr *nlh, parg.rsp_policy = &nl80211_if_combination_attributes_nest; ynl_attr_for_each_nested(attr, attr_interface_combinations) { parg.data = &dst->interface_combinations[i]; - if (nl80211_if_combination_attributes_parse(&parg, attr, ynl_attr_type(attr))) + if (nl80211_if_combination_attributes_parse(&parg, attr, ynl_attr_type(attr))) { return YNL_PARSE_CB_ERROR; + } i++; } } @@ -3120,18 +3418,23 @@ nl80211_get_wiphy_dump(ynl_cpp::ynl_socket& ys, nlh = ynl_gemsg_start_dump(ys, ((struct ynl_sock*)ys)->family_id, NL80211_CMD_GET_WIPHY, 1); ((struct ynl_sock*)ys)->req_policy = &nl80211_nl80211_attrs_nest; - if (req.wiphy.has_value()) + if (req.wiphy.has_value()) { ynl_attr_put_u32(nlh, NL80211_ATTR_WIPHY, req.wiphy.value()); - if (req.wdev.has_value()) + } + if (req.wdev.has_value()) { ynl_attr_put_u64(nlh, NL80211_ATTR_WDEV, req.wdev.value()); - if (req.ifindex.has_value()) + } + if (req.ifindex.has_value()) { ynl_attr_put_u32(nlh, NL80211_ATTR_IFINDEX, req.ifindex.value()); - if (req.split_wiphy_dump) + } + if (req.split_wiphy_dump) { ynl_attr_put(nlh, NL80211_ATTR_SPLIT_WIPHY_DUMP, NULL, 0); + } err = ynl_exec_dump_no_alloc(ys, nlh, &yds); - if (err < 0) + if (err < 0) { return nullptr; + } return ret; } @@ -3152,46 +3455,56 @@ int nl80211_get_interface_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == NL80211_ATTR_IFNAME) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->ifname.assign(ynl_attr_get_str(attr)); } else if (type == NL80211_ATTR_IFTYPE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->iftype = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_ATTR_IFINDEX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->ifindex = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_ATTR_WIPHY) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->wiphy = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_ATTR_WDEV) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->wdev = (__u64)ynl_attr_get_u64(attr); } else if (type == NL80211_ATTR_MAC) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->mac.assign(data, data + len); } else if (type == NL80211_ATTR_GENERATION) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->generation = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_ATTR_TXQ_STATS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &nl80211_txq_stats_attrs_nest; parg.data = &dst->txq_stats.emplace(); - if (nl80211_txq_stats_attrs_parse(&parg, attr)) + if (nl80211_txq_stats_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_ATTR_4ADDR) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->_4addr = (__u8)ynl_attr_get_u8(attr); } } @@ -3211,8 +3524,9 @@ nl80211_get_interface(ynl_cpp::ynl_socket& ys, nl80211_get_interface_req& req) ((struct ynl_sock*)ys)->req_policy = &nl80211_nl80211_attrs_nest; yrs.yarg.rsp_policy = &nl80211_nl80211_attrs_nest; - if (req.ifname.size() > 0) + if (req.ifname.size() > 0) { ynl_attr_put_str(nlh, NL80211_ATTR_IFNAME, req.ifname.data()); + } rsp.reset(new nl80211_get_interface_rsp()); yrs.yarg.data = rsp.get(); @@ -3220,8 +3534,9 @@ nl80211_get_interface(ynl_cpp::ynl_socket& ys, nl80211_get_interface_req& req) yrs.rsp_cmd = 7; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -3241,46 +3556,56 @@ int nl80211_get_interface_rsp_dump_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == NL80211_ATTR_IFNAME) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->ifname.assign(ynl_attr_get_str(attr)); } else if (type == NL80211_ATTR_IFTYPE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->iftype = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_ATTR_IFINDEX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->ifindex = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_ATTR_WIPHY) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->wiphy = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_ATTR_WDEV) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->wdev = (__u64)ynl_attr_get_u64(attr); } else if (type == NL80211_ATTR_MAC) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->mac.assign(data, data + len); } else if (type == NL80211_ATTR_GENERATION) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->generation = (__u32)ynl_attr_get_u32(attr); } else if (type == NL80211_ATTR_TXQ_STATS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &nl80211_txq_stats_attrs_nest; parg.data = &dst->txq_stats.emplace(); - if (nl80211_txq_stats_attrs_parse(&parg, attr)) + if (nl80211_txq_stats_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == NL80211_ATTR_4ADDR) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->_4addr = (__u8)ynl_attr_get_u8(attr); } } @@ -3307,12 +3632,14 @@ nl80211_get_interface_dump(ynl_cpp::ynl_socket& ys, nlh = ynl_gemsg_start_dump(ys, ((struct ynl_sock*)ys)->family_id, NL80211_CMD_GET_INTERFACE, 1); ((struct ynl_sock*)ys)->req_policy = &nl80211_nl80211_attrs_nest; - if (req.ifname.size() > 0) + if (req.ifname.size() > 0) { ynl_attr_put_str(nlh, NL80211_ATTR_IFNAME, req.ifname.data()); + } err = ynl_exec_dump_no_alloc(ys, nlh, &yds); - if (err < 0) + if (err < 0) { return nullptr; + } return ret; } @@ -3331,8 +3658,9 @@ int nl80211_get_protocol_features_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == NL80211_ATTR_PROTOCOL_FEATURES) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->protocol_features = (__u32)ynl_attr_get_u32(attr); } } @@ -3353,8 +3681,9 @@ nl80211_get_protocol_features(ynl_cpp::ynl_socket& ys, ((struct ynl_sock*)ys)->req_policy = &nl80211_nl80211_attrs_nest; yrs.yarg.rsp_policy = &nl80211_nl80211_attrs_nest; - if (req.protocol_features.has_value()) + if (req.protocol_features.has_value()) { ynl_attr_put_u32(nlh, NL80211_ATTR_PROTOCOL_FEATURES, req.protocol_features.value()); + } rsp.reset(new nl80211_get_protocol_features_rsp()); yrs.yarg.data = rsp.get(); @@ -3362,8 +3691,9 @@ nl80211_get_protocol_features(ynl_cpp::ynl_socket& ys, yrs.rsp_cmd = NL80211_CMD_GET_PROTOCOL_FEATURES; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } diff --git a/generated/nlctrl-user.cpp b/generated/nlctrl-user.cpp index 465f6b9..6a42a57 100644 --- a/generated/nlctrl-user.cpp +++ b/generated/nlctrl-user.cpp @@ -23,8 +23,9 @@ static constexpr std::array nlctrl_op_ std::string_view nlctrl_op_str(int op) { - if (op < 0 || op >= (int)(nlctrl_op_strmap.size())) + if (op < 0 || op >= (int)(nlctrl_op_strmap.size())) { return ""; + } return nlctrl_op_strmap[op]; } @@ -41,8 +42,9 @@ static constexpr std::array nlctrl_op_flags_strmap = [] std::string_view nlctrl_op_flags_str(int value) { value = (int)(ffs(value) - 1); - if (value < 0 || value >= (int)(nlctrl_op_flags_strmap.size())) + if (value < 0 || value >= (int)(nlctrl_op_flags_strmap.size())) { return ""; + } return nlctrl_op_flags_strmap[value]; } @@ -71,87 +73,120 @@ static constexpr std::array nlctrl_attr_type_strmap = std::string_view nlctrl_attr_type_str(netlink_attribute_type value) { - if (value < 0 || value >= (int)(nlctrl_attr_type_strmap.size())) + if (value < 0 || value >= (int)(nlctrl_attr_type_strmap.size())) { return ""; + } return nlctrl_attr_type_strmap[value]; } /* Policies */ static std::array nlctrl_op_attrs_policy = []() { std::array arr{}; - arr[CTRL_ATTR_OP_ID] = { .name = "id", .type = YNL_PT_U32, }; - arr[CTRL_ATTR_OP_FLAGS] = { .name = "flags", .type = YNL_PT_U32, }; + arr[CTRL_ATTR_OP_ID].name = "id"; + arr[CTRL_ATTR_OP_ID].type = YNL_PT_U32; + arr[CTRL_ATTR_OP_FLAGS].name = "flags"; + arr[CTRL_ATTR_OP_FLAGS].type = YNL_PT_U32; return arr; } (); struct ynl_policy_nest nlctrl_op_attrs_nest = { - .max_attr = CTRL_ATTR_OP_MAX, + .max_attr = static_cast(CTRL_ATTR_OP_MAX), .table = nlctrl_op_attrs_policy.data(), }; static std::array nlctrl_mcast_group_attrs_policy = []() { std::array arr{}; - arr[CTRL_ATTR_MCAST_GRP_NAME] = { .name = "name", .type = YNL_PT_NUL_STR, }; - arr[CTRL_ATTR_MCAST_GRP_ID] = { .name = "id", .type = YNL_PT_U32, }; + arr[CTRL_ATTR_MCAST_GRP_NAME].name = "name"; + arr[CTRL_ATTR_MCAST_GRP_NAME].type = YNL_PT_NUL_STR; + arr[CTRL_ATTR_MCAST_GRP_ID].name = "id"; + arr[CTRL_ATTR_MCAST_GRP_ID].type = YNL_PT_U32; return arr; } (); struct ynl_policy_nest nlctrl_mcast_group_attrs_nest = { - .max_attr = CTRL_ATTR_MCAST_GRP_MAX, + .max_attr = static_cast(CTRL_ATTR_MCAST_GRP_MAX), .table = nlctrl_mcast_group_attrs_policy.data(), }; static std::array nlctrl_policy_attrs_policy = []() { std::array arr{}; - arr[NL_POLICY_TYPE_ATTR_TYPE] = { .name = "type", .type = YNL_PT_U32, }; - arr[NL_POLICY_TYPE_ATTR_MIN_VALUE_S] = { .name = "min-value-s", .type = YNL_PT_U64, }; - arr[NL_POLICY_TYPE_ATTR_MAX_VALUE_S] = { .name = "max-value-s", .type = YNL_PT_U64, }; - arr[NL_POLICY_TYPE_ATTR_MIN_VALUE_U] = { .name = "min-value-u", .type = YNL_PT_U64, }; - arr[NL_POLICY_TYPE_ATTR_MAX_VALUE_U] = { .name = "max-value-u", .type = YNL_PT_U64, }; - arr[NL_POLICY_TYPE_ATTR_MIN_LENGTH] = { .name = "min-length", .type = YNL_PT_U32, }; - arr[NL_POLICY_TYPE_ATTR_MAX_LENGTH] = { .name = "max-length", .type = YNL_PT_U32, }; - arr[NL_POLICY_TYPE_ATTR_POLICY_IDX] = { .name = "policy-idx", .type = YNL_PT_U32, }; - arr[NL_POLICY_TYPE_ATTR_POLICY_MAXTYPE] = { .name = "policy-maxtype", .type = YNL_PT_U32, }; - arr[NL_POLICY_TYPE_ATTR_BITFIELD32_MASK] = { .name = "bitfield32-mask", .type = YNL_PT_U32, }; - arr[NL_POLICY_TYPE_ATTR_MASK] = { .name = "mask", .type = YNL_PT_U64, }; - arr[NL_POLICY_TYPE_ATTR_PAD] = { .name = "pad", .type = YNL_PT_IGNORE, }; + arr[NL_POLICY_TYPE_ATTR_TYPE].name = "type"; + arr[NL_POLICY_TYPE_ATTR_TYPE].type = YNL_PT_U32; + arr[NL_POLICY_TYPE_ATTR_MIN_VALUE_S].name = "min-value-s"; + arr[NL_POLICY_TYPE_ATTR_MIN_VALUE_S].type = YNL_PT_U64; + arr[NL_POLICY_TYPE_ATTR_MAX_VALUE_S].name = "max-value-s"; + arr[NL_POLICY_TYPE_ATTR_MAX_VALUE_S].type = YNL_PT_U64; + arr[NL_POLICY_TYPE_ATTR_MIN_VALUE_U].name = "min-value-u"; + arr[NL_POLICY_TYPE_ATTR_MIN_VALUE_U].type = YNL_PT_U64; + arr[NL_POLICY_TYPE_ATTR_MAX_VALUE_U].name = "max-value-u"; + arr[NL_POLICY_TYPE_ATTR_MAX_VALUE_U].type = YNL_PT_U64; + arr[NL_POLICY_TYPE_ATTR_MIN_LENGTH].name = "min-length"; + arr[NL_POLICY_TYPE_ATTR_MIN_LENGTH].type = YNL_PT_U32; + arr[NL_POLICY_TYPE_ATTR_MAX_LENGTH].name = "max-length"; + arr[NL_POLICY_TYPE_ATTR_MAX_LENGTH].type = YNL_PT_U32; + arr[NL_POLICY_TYPE_ATTR_POLICY_IDX].name = "policy-idx"; + arr[NL_POLICY_TYPE_ATTR_POLICY_IDX].type = YNL_PT_U32; + arr[NL_POLICY_TYPE_ATTR_POLICY_MAXTYPE].name = "policy-maxtype"; + arr[NL_POLICY_TYPE_ATTR_POLICY_MAXTYPE].type = YNL_PT_U32; + arr[NL_POLICY_TYPE_ATTR_BITFIELD32_MASK].name = "bitfield32-mask"; + arr[NL_POLICY_TYPE_ATTR_BITFIELD32_MASK].type = YNL_PT_U32; + arr[NL_POLICY_TYPE_ATTR_MASK].name = "mask"; + arr[NL_POLICY_TYPE_ATTR_MASK].type = YNL_PT_U64; + arr[NL_POLICY_TYPE_ATTR_PAD].name = "pad"; + arr[NL_POLICY_TYPE_ATTR_PAD].type = YNL_PT_IGNORE; return arr; } (); struct ynl_policy_nest nlctrl_policy_attrs_nest = { - .max_attr = NL_POLICY_TYPE_ATTR_MAX, + .max_attr = static_cast(NL_POLICY_TYPE_ATTR_MAX), .table = nlctrl_policy_attrs_policy.data(), }; static std::array nlctrl_op_policy_attrs_policy = []() { std::array arr{}; - arr[CTRL_ATTR_POLICY_DO] = { .name = "do", .type = YNL_PT_U32, }; - arr[CTRL_ATTR_POLICY_DUMP] = { .name = "dump", .type = YNL_PT_U32, }; + arr[CTRL_ATTR_POLICY_DO].name = "do"; + arr[CTRL_ATTR_POLICY_DO].type = YNL_PT_U32; + arr[CTRL_ATTR_POLICY_DUMP].name = "dump"; + arr[CTRL_ATTR_POLICY_DUMP].type = YNL_PT_U32; return arr; } (); struct ynl_policy_nest nlctrl_op_policy_attrs_nest = { - .max_attr = CTRL_ATTR_POLICY_MAX, + .max_attr = static_cast(CTRL_ATTR_POLICY_MAX), .table = nlctrl_op_policy_attrs_policy.data(), }; static std::array nlctrl_ctrl_attrs_policy = []() { std::array arr{}; - arr[CTRL_ATTR_FAMILY_ID] = { .name = "family-id", .type = YNL_PT_U16, }; - arr[CTRL_ATTR_FAMILY_NAME] = { .name = "family-name", .type = YNL_PT_NUL_STR, }; - arr[CTRL_ATTR_VERSION] = { .name = "version", .type = YNL_PT_U32, }; - arr[CTRL_ATTR_HDRSIZE] = { .name = "hdrsize", .type = YNL_PT_U32, }; - arr[CTRL_ATTR_MAXATTR] = { .name = "maxattr", .type = YNL_PT_U32, }; - arr[CTRL_ATTR_OPS] = { .name = "ops", .type = YNL_PT_NEST, .nest = &nlctrl_op_attrs_nest, }; - arr[CTRL_ATTR_MCAST_GROUPS] = { .name = "mcast-groups", .type = YNL_PT_NEST, .nest = &nlctrl_mcast_group_attrs_nest, }; - arr[CTRL_ATTR_POLICY] = { .name = "policy", .type = YNL_PT_NEST, .nest = &nlctrl_policy_attrs_nest, }; - arr[CTRL_ATTR_OP_POLICY] = { .name = "op-policy", .type = YNL_PT_NEST, .nest = &nlctrl_op_policy_attrs_nest, }; - arr[CTRL_ATTR_OP] = { .name = "op", .type = YNL_PT_U32, }; + arr[CTRL_ATTR_FAMILY_ID].name = "family-id"; + arr[CTRL_ATTR_FAMILY_ID].type = YNL_PT_U16; + arr[CTRL_ATTR_FAMILY_NAME].name = "family-name"; + arr[CTRL_ATTR_FAMILY_NAME].type = YNL_PT_NUL_STR; + arr[CTRL_ATTR_VERSION].name = "version"; + arr[CTRL_ATTR_VERSION].type = YNL_PT_U32; + arr[CTRL_ATTR_HDRSIZE].name = "hdrsize"; + arr[CTRL_ATTR_HDRSIZE].type = YNL_PT_U32; + arr[CTRL_ATTR_MAXATTR].name = "maxattr"; + arr[CTRL_ATTR_MAXATTR].type = YNL_PT_U32; + arr[CTRL_ATTR_OPS].name = "ops"; + arr[CTRL_ATTR_OPS].type = YNL_PT_NEST; + arr[CTRL_ATTR_OPS].nest = &nlctrl_op_attrs_nest; + arr[CTRL_ATTR_MCAST_GROUPS].name = "mcast-groups"; + arr[CTRL_ATTR_MCAST_GROUPS].type = YNL_PT_NEST; + arr[CTRL_ATTR_MCAST_GROUPS].nest = &nlctrl_mcast_group_attrs_nest; + arr[CTRL_ATTR_POLICY].name = "policy"; + arr[CTRL_ATTR_POLICY].type = YNL_PT_NEST; + arr[CTRL_ATTR_POLICY].nest = &nlctrl_policy_attrs_nest; + arr[CTRL_ATTR_OP_POLICY].name = "op-policy"; + arr[CTRL_ATTR_OP_POLICY].type = YNL_PT_NEST; + arr[CTRL_ATTR_OP_POLICY].nest = &nlctrl_op_policy_attrs_nest; + arr[CTRL_ATTR_OP].name = "op"; + arr[CTRL_ATTR_OP].type = YNL_PT_U32; return arr; } (); struct ynl_policy_nest nlctrl_ctrl_attrs_nest = { - .max_attr = CTRL_ATTR_MAX, + .max_attr = static_cast(CTRL_ATTR_MAX), .table = nlctrl_ctrl_attrs_policy.data(), }; @@ -168,12 +203,14 @@ int nlctrl_op_attrs_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == CTRL_ATTR_OP_ID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->id = (__u32)ynl_attr_get_u32(attr); } else if (type == CTRL_ATTR_OP_FLAGS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->flags = (__u32)ynl_attr_get_u32(attr); } } @@ -193,12 +230,14 @@ int nlctrl_mcast_group_attrs_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == CTRL_ATTR_MCAST_GRP_NAME) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; - dst->name.assign(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); + } + dst->name.assign(ynl_attr_get_str(attr)); } else if (type == CTRL_ATTR_MCAST_GRP_ID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->id = (__u32)ynl_attr_get_u32(attr); } } @@ -220,48 +259,59 @@ int nlctrl_policy_attrs_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == NL_POLICY_TYPE_ATTR_TYPE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; - dst->type = (netlink_attribute_type)ynl_attr_get_u32(attr); + } + dst->type = (enum netlink_attribute_type)ynl_attr_get_u32(attr); } else if (type == NL_POLICY_TYPE_ATTR_MIN_VALUE_S) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->min_value_s = (__s64)ynl_attr_get_s64(attr); } else if (type == NL_POLICY_TYPE_ATTR_MAX_VALUE_S) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->max_value_s = (__s64)ynl_attr_get_s64(attr); } else if (type == NL_POLICY_TYPE_ATTR_MIN_VALUE_U) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->min_value_u = (__u64)ynl_attr_get_u64(attr); } else if (type == NL_POLICY_TYPE_ATTR_MAX_VALUE_U) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->max_value_u = (__u64)ynl_attr_get_u64(attr); } else if (type == NL_POLICY_TYPE_ATTR_MIN_LENGTH) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->min_length = (__u32)ynl_attr_get_u32(attr); } else if (type == NL_POLICY_TYPE_ATTR_MAX_LENGTH) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->max_length = (__u32)ynl_attr_get_u32(attr); } else if (type == NL_POLICY_TYPE_ATTR_POLICY_IDX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->policy_idx = (__u32)ynl_attr_get_u32(attr); } else if (type == NL_POLICY_TYPE_ATTR_POLICY_MAXTYPE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->policy_maxtype = (__u32)ynl_attr_get_u32(attr); } else if (type == NL_POLICY_TYPE_ATTR_BITFIELD32_MASK) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->bitfield32_mask = (__u32)ynl_attr_get_u32(attr); } else if (type == NL_POLICY_TYPE_ATTR_MASK) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->mask = (__u64)ynl_attr_get_u64(attr); } } @@ -281,12 +331,14 @@ int nlctrl_op_policy_attrs_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == CTRL_ATTR_POLICY_DO) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->do_ = (__u32)ynl_attr_get_u32(attr); } else if (type == CTRL_ATTR_POLICY_DUMP) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->dump = (__u32)ynl_attr_get_u32(attr); } } @@ -311,45 +363,48 @@ int nlctrl_getfamily_rsp_parse(const struct nlmsghdr *nlh, dst = (nlctrl_getfamily_rsp*)yarg->data; parg.ys = yarg->ys; - if (dst->mcast_groups.size() > 0) + if (dst->mcast_groups.size() > 0) { return ynl_error_parse(yarg, "attribute already present (ctrl-attrs.mcast-groups)"); - if (dst->ops.size() > 0) + } + if (dst->ops.size() > 0) { return ynl_error_parse(yarg, "attribute already present (ctrl-attrs.ops)"); + } ynl_attr_for_each(attr, nlh, yarg->ys->family->hdr_len) { unsigned int type = ynl_attr_type(attr); if (type == CTRL_ATTR_FAMILY_ID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->family_id = (__u16)ynl_attr_get_u16(attr); } else if (type == CTRL_ATTR_FAMILY_NAME) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; - dst->family_name.assign(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); + } + dst->family_name.assign(ynl_attr_get_str(attr)); } else if (type == CTRL_ATTR_HDRSIZE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->hdrsize = (__u32)ynl_attr_get_u32(attr); } else if (type == CTRL_ATTR_MAXATTR) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->maxattr = (__u32)ynl_attr_get_u32(attr); } else if (type == CTRL_ATTR_MCAST_GROUPS) { const struct nlattr *attr2; attr_mcast_groups = attr; - ynl_attr_for_each_nested(attr2, attr) - dst->n_mcast_groups++; } else if (type == CTRL_ATTR_OPS) { const struct nlattr *attr2; attr_ops = attr; - ynl_attr_for_each_nested(attr2, attr) - dst->n_ops++; } else if (type == CTRL_ATTR_VERSION) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->version = (__u32)ynl_attr_get_u32(attr); } } @@ -360,8 +415,9 @@ int nlctrl_getfamily_rsp_parse(const struct nlmsghdr *nlh, parg.rsp_policy = &nlctrl_mcast_group_attrs_nest; ynl_attr_for_each_nested(attr, attr_mcast_groups) { parg.data = &dst->mcast_groups[i]; - if (nlctrl_mcast_group_attrs_parse(&parg, attr, ynl_attr_type(attr))) + if (nlctrl_mcast_group_attrs_parse(&parg, attr, ynl_attr_type(attr))) { return YNL_PARSE_CB_ERROR; + } i++; } } @@ -371,8 +427,9 @@ int nlctrl_getfamily_rsp_parse(const struct nlmsghdr *nlh, parg.rsp_policy = &nlctrl_op_attrs_nest; ynl_attr_for_each_nested(attr, attr_ops) { parg.data = &dst->ops[i]; - if (nlctrl_op_attrs_parse(&parg, attr, ynl_attr_type(attr))) + if (nlctrl_op_attrs_parse(&parg, attr, ynl_attr_type(attr))) { return YNL_PARSE_CB_ERROR; + } i++; } } @@ -381,7 +438,7 @@ int nlctrl_getfamily_rsp_parse(const struct nlmsghdr *nlh, } std::unique_ptr -nlctrl_getfamily(ynl_cpp::ynl_socket& ys, nlctrl_getfamily_req& req) +nlctrl_getfamily(ynl_cpp::ynl_socket& ys, nlctrl_getfamily_req& req) { struct ynl_req_state yrs = { .yarg = { .ys = ys, }, }; std::unique_ptr rsp; @@ -392,8 +449,9 @@ nlctrl_getfamily(ynl_cpp::ynl_socket& ys, nlctrl_getfamily_req& req) ((struct ynl_sock*)ys)->req_policy = &nlctrl_ctrl_attrs_nest; yrs.yarg.rsp_policy = &nlctrl_ctrl_attrs_nest; - if (req.family_name.size() > 0) + if (req.family_name.size() > 0) { ynl_attr_put_str(nlh, CTRL_ATTR_FAMILY_NAME, req.family_name.data()); + } rsp.reset(new nlctrl_getfamily_rsp()); yrs.yarg.data = rsp.get(); @@ -401,15 +459,16 @@ nlctrl_getfamily(ynl_cpp::ynl_socket& ys, nlctrl_getfamily_req& req) yrs.rsp_cmd = 1; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } /* CTRL_CMD_GETFAMILY - dump */ std::unique_ptr -nlctrl_getfamily_dump(ynl_cpp::ynl_socket& ys) +nlctrl_getfamily_dump(ynl_cpp::ynl_socket& ys) { struct ynl_dump_no_alloc_state yds = {}; struct nlmsghdr *nlh; @@ -419,47 +478,50 @@ nlctrl_getfamily_dump(ynl_cpp::ynl_socket& ys) yds.yarg.ys = ys; yds.yarg.rsp_policy = &nlctrl_ctrl_attrs_nest; yds.yarg.data = ret.get(); - yds.alloc_cb = [](void* arg)->void*{return &(static_cast(arg)->objs.emplace_back());}; + yds.alloc_cb = [](void* arg)->void* {return &(static_cast(arg)->objs.emplace_back());}; yds.cb = nlctrl_getfamily_rsp_parse; yds.rsp_cmd = 1; nlh = ynl_gemsg_start_dump(ys, ((struct ynl_sock*)ys)->family_id, CTRL_CMD_GETFAMILY, 1); err = ynl_exec_dump_no_alloc(ys, nlh, &yds); - if (err < 0) + if (err < 0) { return nullptr; + } return ret; } /* ============== CTRL_CMD_GETPOLICY ============== */ /* CTRL_CMD_GETPOLICY - dump */ -int nlctrl_getpolicy_rsp_dump_parse(const struct nlmsghdr *nlh, - struct ynl_parse_arg *yarg) +int nlctrl_getpolicy_rsp_parse(const struct nlmsghdr *nlh, + struct ynl_parse_arg *yarg) { - nlctrl_getpolicy_rsp_dump *dst; + nlctrl_getpolicy_rsp *dst; const struct nlattr *attr; struct ynl_parse_arg parg; - dst = (nlctrl_getpolicy_rsp_dump*)yarg->data; + dst = (nlctrl_getpolicy_rsp*)yarg->data; parg.ys = yarg->ys; ynl_attr_for_each(attr, nlh, yarg->ys->family->hdr_len) { unsigned int type = ynl_attr_type(attr); if (type == CTRL_ATTR_FAMILY_ID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->family_id = (__u16)ynl_attr_get_u16(attr); } else if (type == CTRL_ATTR_OP_POLICY) { const struct nlattr *attr_op_id; __u32 op_id; - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &nlctrl_op_policy_attrs_nest; - parg.data = &dst->op_policy; + parg.data = &dst->op_policy.emplace(); attr_op_id = ynl_attr_data(attr); op_id = ynl_attr_type(attr_op_id); nlctrl_op_policy_attrs_parse(&parg, attr_op_id, op_id); @@ -467,11 +529,12 @@ int nlctrl_getpolicy_rsp_dump_parse(const struct nlmsghdr *nlh, const struct nlattr *attr_policy_id, *attr_attr_id; __u32 policy_id, attr_id; - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &nlctrl_policy_attrs_nest; - parg.data = &dst->policy; + parg.data = &dst->policy.emplace(); attr_policy_id = ynl_attr_data(attr); policy_id = ynl_attr_type(attr_policy_id); attr_attr_id = ynl_attr_data(attr_policy_id); @@ -483,34 +546,38 @@ int nlctrl_getpolicy_rsp_dump_parse(const struct nlmsghdr *nlh, return YNL_PARSE_CB_OK; } -std::unique_ptr -nlctrl_getpolicy_dump(ynl_cpp::ynl_socket& ys, nlctrl_getpolicy_req_dump& req) +std::unique_ptr +nlctrl_getpolicy_dump(ynl_cpp::ynl_socket& ys, nlctrl_getpolicy_req& req) { struct ynl_dump_no_alloc_state yds = {}; struct nlmsghdr *nlh; int err; - auto ret = std::make_unique(); + auto ret = std::make_unique(); yds.yarg.ys = ys; yds.yarg.rsp_policy = &nlctrl_ctrl_attrs_nest; yds.yarg.data = ret.get(); - yds.alloc_cb = [](void* arg)->void*{return &(static_cast(arg)->objs.emplace_back());}; - yds.cb = nlctrl_getpolicy_rsp_dump_parse; + yds.alloc_cb = [](void* arg)->void* {return &(static_cast(arg)->objs.emplace_back());}; + yds.cb = nlctrl_getpolicy_rsp_parse; yds.rsp_cmd = CTRL_CMD_GETPOLICY; nlh = ynl_gemsg_start_dump(ys, ((struct ynl_sock*)ys)->family_id, CTRL_CMD_GETPOLICY, 1); ((struct ynl_sock*)ys)->req_policy = &nlctrl_ctrl_attrs_nest; - if (req.family_name.size() > 0) + if (req.family_name.size() > 0) { ynl_attr_put_str(nlh, CTRL_ATTR_FAMILY_NAME, req.family_name.data()); - if (req.family_id.has_value()) + } + if (req.family_id.has_value()) { ynl_attr_put_u16(nlh, CTRL_ATTR_FAMILY_ID, req.family_id.value()); - if (req.op.has_value()) + } + if (req.op.has_value()) { ynl_attr_put_u32(nlh, CTRL_ATTR_OP, req.op.value()); + } err = ynl_exec_dump_no_alloc(ys, nlh, &yds); - if (err < 0) + if (err < 0) { return nullptr; + } return ret; } diff --git a/generated/nlctrl-user.hpp b/generated/nlctrl-user.hpp index 1698bb4..b539490 100644 --- a/generated/nlctrl-user.hpp +++ b/generated/nlctrl-user.hpp @@ -16,6 +16,7 @@ #include #include #include +#include #include "ynl.hpp" @@ -45,7 +46,7 @@ struct nlctrl_mcast_group_attrs { struct nlctrl_policy_attrs { std::optional<__u32> attr_id; std::optional<__u32> policy_id; - std::optional type; + std::optional type; std::optional<__s64> min_value_s; std::optional<__s64> max_value_s; std::optional<__u64> min_value_u; @@ -84,7 +85,7 @@ struct nlctrl_getfamily_rsp { * Get / dump genetlink families */ std::unique_ptr -nlctrl_getfamily(ynl_cpp::ynl_socket& ys, nlctrl_getfamily_req& req); +nlctrl_getfamily(ynl_cpp::ynl_socket& ys, nlctrl_getfamily_req& req); /* CTRL_CMD_GETFAMILY - dump */ struct nlctrl_getfamily_list { @@ -92,28 +93,28 @@ struct nlctrl_getfamily_list { }; std::unique_ptr -nlctrl_getfamily_dump(ynl_cpp::ynl_socket& ys); +nlctrl_getfamily_dump(ynl_cpp::ynl_socket& ys); /* ============== CTRL_CMD_GETPOLICY ============== */ /* CTRL_CMD_GETPOLICY - dump */ -struct nlctrl_getpolicy_req_dump { +struct nlctrl_getpolicy_req { std::string family_name; std::optional<__u16> family_id; std::optional<__u32> op; }; -struct nlctrl_getpolicy_rsp_dump { +struct nlctrl_getpolicy_rsp { std::optional<__u16> family_id; std::optional op_policy; std::optional policy; }; -struct nlctrl_getpolicy_rsp_list { - std::list objs; +struct nlctrl_getpolicy_list { + std::list objs; }; -std::unique_ptr -nlctrl_getpolicy_dump(ynl_cpp::ynl_socket& ys, nlctrl_getpolicy_req_dump& req); +std::unique_ptr +nlctrl_getpolicy_dump(ynl_cpp::ynl_socket& ys, nlctrl_getpolicy_req& req); } //namespace ynl_cpp #endif /* _LINUX_NLCTRL_GEN_H */ diff --git a/generated/ovpn-user.cpp b/generated/ovpn-user.cpp index ac7c8d1..3930603 100644 --- a/generated/ovpn-user.cpp +++ b/generated/ovpn-user.cpp @@ -31,8 +31,9 @@ static constexpr std::array ovpn_op_strm std::string_view ovpn_op_str(int op) { - if (op < 0 || op >= (int)(ovpn_op_strmap.size())) + if (op < 0 || op >= (int)(ovpn_op_strmap.size())) { return ""; + } return ovpn_op_strmap[op]; } @@ -46,8 +47,9 @@ static constexpr std::array ovpn_cipher_alg_strmap = [] std::string_view ovpn_cipher_alg_str(ovpn_cipher_alg value) { - if (value < 0 || value >= (int)(ovpn_cipher_alg_strmap.size())) + if (value < 0 || value >= (int)(ovpn_cipher_alg_strmap.size())) { return ""; + } return ovpn_cipher_alg_strmap[value]; } @@ -63,8 +65,9 @@ static constexpr std::array ovpn_del_peer_reason_strmap std::string_view ovpn_del_peer_reason_str(ovpn_del_peer_reason value) { - if (value < 0 || value >= (int)(ovpn_del_peer_reason_strmap.size())) + if (value < 0 || value >= (int)(ovpn_del_peer_reason_strmap.size())) { return ""; + } return ovpn_del_peer_reason_strmap[value]; } @@ -77,8 +80,9 @@ static constexpr std::array ovpn_key_slot_strmap = []() std::string_view ovpn_key_slot_str(ovpn_key_slot value) { - if (value < 0 || value >= (int)(ovpn_key_slot_strmap.size())) + if (value < 0 || value >= (int)(ovpn_key_slot_strmap.size())) { return ""; + } return ovpn_key_slot_strmap[value]; } @@ -292,52 +296,75 @@ int ovpn_peer_put(struct nlmsghdr *nlh, unsigned int attr_type, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - if (obj.id.has_value()) + if (obj.id.has_value()) { ynl_attr_put_u32(nlh, OVPN_A_PEER_ID, obj.id.value()); - if (obj.remote_ipv4.has_value()) + } + if (obj.remote_ipv4.has_value()) { ynl_attr_put_u32(nlh, OVPN_A_PEER_REMOTE_IPV4, obj.remote_ipv4.value()); - if (obj.remote_ipv6.size() > 0) + } + if (obj.remote_ipv6.size() > 0) { ynl_attr_put(nlh, OVPN_A_PEER_REMOTE_IPV6, obj.remote_ipv6.data(), obj.remote_ipv6.size()); - if (obj.remote_ipv6_scope_id.has_value()) + } + if (obj.remote_ipv6_scope_id.has_value()) { ynl_attr_put_u32(nlh, OVPN_A_PEER_REMOTE_IPV6_SCOPE_ID, obj.remote_ipv6_scope_id.value()); - if (obj.remote_port.has_value()) + } + if (obj.remote_port.has_value()) { ynl_attr_put_u16(nlh, OVPN_A_PEER_REMOTE_PORT, obj.remote_port.value()); - if (obj.socket.has_value()) + } + if (obj.socket.has_value()) { ynl_attr_put_u32(nlh, OVPN_A_PEER_SOCKET, obj.socket.value()); - if (obj.socket_netnsid.has_value()) + } + if (obj.socket_netnsid.has_value()) { ynl_attr_put_s32(nlh, OVPN_A_PEER_SOCKET_NETNSID, obj.socket_netnsid.value()); - if (obj.vpn_ipv4.has_value()) + } + if (obj.vpn_ipv4.has_value()) { ynl_attr_put_u32(nlh, OVPN_A_PEER_VPN_IPV4, obj.vpn_ipv4.value()); - if (obj.vpn_ipv6.size() > 0) + } + if (obj.vpn_ipv6.size() > 0) { ynl_attr_put(nlh, OVPN_A_PEER_VPN_IPV6, obj.vpn_ipv6.data(), obj.vpn_ipv6.size()); - if (obj.local_ipv4.has_value()) + } + if (obj.local_ipv4.has_value()) { ynl_attr_put_u32(nlh, OVPN_A_PEER_LOCAL_IPV4, obj.local_ipv4.value()); - if (obj.local_ipv6.size() > 0) + } + if (obj.local_ipv6.size() > 0) { ynl_attr_put(nlh, OVPN_A_PEER_LOCAL_IPV6, obj.local_ipv6.data(), obj.local_ipv6.size()); - if (obj.local_port.has_value()) + } + if (obj.local_port.has_value()) { ynl_attr_put_u16(nlh, OVPN_A_PEER_LOCAL_PORT, obj.local_port.value()); - if (obj.keepalive_interval.has_value()) + } + if (obj.keepalive_interval.has_value()) { ynl_attr_put_u32(nlh, OVPN_A_PEER_KEEPALIVE_INTERVAL, obj.keepalive_interval.value()); - if (obj.keepalive_timeout.has_value()) + } + if (obj.keepalive_timeout.has_value()) { ynl_attr_put_u32(nlh, OVPN_A_PEER_KEEPALIVE_TIMEOUT, obj.keepalive_timeout.value()); - if (obj.del_reason.has_value()) + } + if (obj.del_reason.has_value()) { ynl_attr_put_u32(nlh, OVPN_A_PEER_DEL_REASON, obj.del_reason.value()); - if (obj.vpn_rx_bytes.has_value()) + } + if (obj.vpn_rx_bytes.has_value()) { ynl_attr_put_uint(nlh, OVPN_A_PEER_VPN_RX_BYTES, obj.vpn_rx_bytes.value()); - if (obj.vpn_tx_bytes.has_value()) + } + if (obj.vpn_tx_bytes.has_value()) { ynl_attr_put_uint(nlh, OVPN_A_PEER_VPN_TX_BYTES, obj.vpn_tx_bytes.value()); - if (obj.vpn_rx_packets.has_value()) + } + if (obj.vpn_rx_packets.has_value()) { ynl_attr_put_uint(nlh, OVPN_A_PEER_VPN_RX_PACKETS, obj.vpn_rx_packets.value()); - if (obj.vpn_tx_packets.has_value()) + } + if (obj.vpn_tx_packets.has_value()) { ynl_attr_put_uint(nlh, OVPN_A_PEER_VPN_TX_PACKETS, obj.vpn_tx_packets.value()); - if (obj.link_rx_bytes.has_value()) + } + if (obj.link_rx_bytes.has_value()) { ynl_attr_put_uint(nlh, OVPN_A_PEER_LINK_RX_BYTES, obj.link_rx_bytes.value()); - if (obj.link_tx_bytes.has_value()) + } + if (obj.link_tx_bytes.has_value()) { ynl_attr_put_uint(nlh, OVPN_A_PEER_LINK_TX_BYTES, obj.link_tx_bytes.value()); - if (obj.link_rx_packets.has_value()) + } + if (obj.link_rx_packets.has_value()) { ynl_attr_put_uint(nlh, OVPN_A_PEER_LINK_RX_PACKETS, obj.link_rx_packets.value()); - if (obj.link_tx_packets.has_value()) + } + if (obj.link_tx_packets.has_value()) { ynl_attr_put_uint(nlh, OVPN_A_PEER_LINK_TX_PACKETS, obj.link_tx_packets.value()); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -352,102 +379,125 @@ int ovpn_peer_parse(struct ynl_parse_arg *yarg, const struct nlattr *nested) unsigned int type = ynl_attr_type(attr); if (type == OVPN_A_PEER_ID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->id = (__u32)ynl_attr_get_u32(attr); } else if (type == OVPN_A_PEER_REMOTE_IPV4) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->remote_ipv4 = (__u32)ynl_attr_get_u32(attr); } else if (type == OVPN_A_PEER_REMOTE_IPV6) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->remote_ipv6.assign(data, data + len); } else if (type == OVPN_A_PEER_REMOTE_IPV6_SCOPE_ID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->remote_ipv6_scope_id = (__u32)ynl_attr_get_u32(attr); } else if (type == OVPN_A_PEER_REMOTE_PORT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->remote_port = (__u16)ynl_attr_get_u16(attr); } else if (type == OVPN_A_PEER_SOCKET) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->socket = (__u32)ynl_attr_get_u32(attr); } else if (type == OVPN_A_PEER_SOCKET_NETNSID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->socket_netnsid = (__s32)ynl_attr_get_s32(attr); } else if (type == OVPN_A_PEER_VPN_IPV4) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->vpn_ipv4 = (__u32)ynl_attr_get_u32(attr); } else if (type == OVPN_A_PEER_VPN_IPV6) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->vpn_ipv6.assign(data, data + len); } else if (type == OVPN_A_PEER_LOCAL_IPV4) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->local_ipv4 = (__u32)ynl_attr_get_u32(attr); } else if (type == OVPN_A_PEER_LOCAL_IPV6) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->local_ipv6.assign(data, data + len); } else if (type == OVPN_A_PEER_LOCAL_PORT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->local_port = (__u16)ynl_attr_get_u16(attr); } else if (type == OVPN_A_PEER_KEEPALIVE_INTERVAL) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->keepalive_interval = (__u32)ynl_attr_get_u32(attr); } else if (type == OVPN_A_PEER_KEEPALIVE_TIMEOUT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->keepalive_timeout = (__u32)ynl_attr_get_u32(attr); } else if (type == OVPN_A_PEER_DEL_REASON) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->del_reason = (enum ovpn_del_peer_reason)ynl_attr_get_u32(attr); } else if (type == OVPN_A_PEER_VPN_RX_BYTES) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->vpn_rx_bytes = (__u64)ynl_attr_get_uint(attr); } else if (type == OVPN_A_PEER_VPN_TX_BYTES) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->vpn_tx_bytes = (__u64)ynl_attr_get_uint(attr); } else if (type == OVPN_A_PEER_VPN_RX_PACKETS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->vpn_rx_packets = (__u64)ynl_attr_get_uint(attr); } else if (type == OVPN_A_PEER_VPN_TX_PACKETS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->vpn_tx_packets = (__u64)ynl_attr_get_uint(attr); } else if (type == OVPN_A_PEER_LINK_RX_BYTES) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->link_rx_bytes = (__u64)ynl_attr_get_uint(attr); } else if (type == OVPN_A_PEER_LINK_TX_BYTES) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->link_tx_bytes = (__u64)ynl_attr_get_uint(attr); } else if (type == OVPN_A_PEER_LINK_RX_PACKETS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->link_rx_packets = (__u64)ynl_attr_get_uint(attr); } else if (type == OVPN_A_PEER_LINK_TX_PACKETS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->link_tx_packets = (__u64)ynl_attr_get_uint(attr); } } @@ -461,10 +511,12 @@ int ovpn_keydir_put(struct nlmsghdr *nlh, unsigned int attr_type, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - if (obj.cipher_key.size() > 0) + if (obj.cipher_key.size() > 0) { ynl_attr_put(nlh, OVPN_A_KEYDIR_CIPHER_KEY, obj.cipher_key.data(), obj.cipher_key.size()); - if (obj.nonce_tail.size() > 0) + } + if (obj.nonce_tail.size() > 0) { ynl_attr_put(nlh, OVPN_A_KEYDIR_NONCE_TAIL, obj.nonce_tail.data(), obj.nonce_tail.size()); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -479,14 +531,16 @@ int ovpn_keydir_parse(struct ynl_parse_arg *yarg, const struct nlattr *nested) unsigned int type = ynl_attr_type(attr); if (type == OVPN_A_KEYDIR_CIPHER_KEY) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->cipher_key.assign(data, data + len); } else if (type == OVPN_A_KEYDIR_NONCE_TAIL) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->nonce_tail.assign(data, data + len); @@ -502,18 +556,24 @@ int ovpn_keyconf_put(struct nlmsghdr *nlh, unsigned int attr_type, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - if (obj.peer_id.has_value()) + if (obj.peer_id.has_value()) { ynl_attr_put_u32(nlh, OVPN_A_KEYCONF_PEER_ID, obj.peer_id.value()); - if (obj.slot.has_value()) + } + if (obj.slot.has_value()) { ynl_attr_put_u32(nlh, OVPN_A_KEYCONF_SLOT, obj.slot.value()); - if (obj.key_id.has_value()) + } + if (obj.key_id.has_value()) { ynl_attr_put_u32(nlh, OVPN_A_KEYCONF_KEY_ID, obj.key_id.value()); - if (obj.cipher_alg.has_value()) + } + if (obj.cipher_alg.has_value()) { ynl_attr_put_u32(nlh, OVPN_A_KEYCONF_CIPHER_ALG, obj.cipher_alg.value()); - if (obj.encrypt_dir.has_value()) + } + if (obj.encrypt_dir.has_value()) { ovpn_keydir_put(nlh, OVPN_A_KEYCONF_ENCRYPT_DIR, obj.encrypt_dir.value()); - if (obj.decrypt_dir.has_value()) + } + if (obj.decrypt_dir.has_value()) { ovpn_keydir_put(nlh, OVPN_A_KEYCONF_DECRYPT_DIR, obj.decrypt_dir.value()); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -531,37 +591,45 @@ int ovpn_keyconf_parse(struct ynl_parse_arg *yarg, const struct nlattr *nested) unsigned int type = ynl_attr_type(attr); if (type == OVPN_A_KEYCONF_PEER_ID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->peer_id = (__u32)ynl_attr_get_u32(attr); } else if (type == OVPN_A_KEYCONF_SLOT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->slot = (enum ovpn_key_slot)ynl_attr_get_u32(attr); } else if (type == OVPN_A_KEYCONF_KEY_ID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->key_id = (__u32)ynl_attr_get_u32(attr); } else if (type == OVPN_A_KEYCONF_CIPHER_ALG) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->cipher_alg = (enum ovpn_cipher_alg)ynl_attr_get_u32(attr); } else if (type == OVPN_A_KEYCONF_ENCRYPT_DIR) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &ovpn_keydir_nest; parg.data = &dst->encrypt_dir.emplace(); - if (ovpn_keydir_parse(&parg, attr)) + if (ovpn_keydir_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == OVPN_A_KEYCONF_DECRYPT_DIR) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &ovpn_keydir_nest; parg.data = &dst->decrypt_dir.emplace(); - if (ovpn_keydir_parse(&parg, attr)) + if (ovpn_keydir_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } } @@ -579,14 +647,17 @@ int ovpn_peer_new(ynl_cpp::ynl_socket& ys, ovpn_peer_new_req& req) nlh = ynl_gemsg_start_req(ys, ((struct ynl_sock*)ys)->family_id, OVPN_CMD_PEER_NEW, 1); ((struct ynl_sock*)ys)->req_policy = &ovpn_ovpn_peer_new_input_nest; - if (req.ifindex.has_value()) + if (req.ifindex.has_value()) { ynl_attr_put_u32(nlh, OVPN_A_IFINDEX, req.ifindex.value()); - if (req.peer.has_value()) + } + if (req.peer.has_value()) { ovpn_peer_put(nlh, OVPN_A_PEER, req.peer.value()); + } err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return -1; + } return 0; } @@ -602,14 +673,17 @@ int ovpn_peer_set(ynl_cpp::ynl_socket& ys, ovpn_peer_set_req& req) nlh = ynl_gemsg_start_req(ys, ((struct ynl_sock*)ys)->family_id, OVPN_CMD_PEER_SET, 1); ((struct ynl_sock*)ys)->req_policy = &ovpn_ovpn_peer_set_input_nest; - if (req.ifindex.has_value()) + if (req.ifindex.has_value()) { ynl_attr_put_u32(nlh, OVPN_A_IFINDEX, req.ifindex.value()); - if (req.peer.has_value()) + } + if (req.peer.has_value()) { ovpn_peer_put(nlh, OVPN_A_PEER, req.peer.value()); + } err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return -1; + } return 0; } @@ -630,13 +704,15 @@ int ovpn_peer_get_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == OVPN_A_PEER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &ovpn_peer_nest; parg.data = &dst->peer.emplace(); - if (ovpn_peer_parse(&parg, attr)) + if (ovpn_peer_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } } @@ -655,10 +731,12 @@ ovpn_peer_get(ynl_cpp::ynl_socket& ys, ovpn_peer_get_req& req) ((struct ynl_sock*)ys)->req_policy = &ovpn_nest; yrs.yarg.rsp_policy = &ovpn_nest; - if (req.ifindex.has_value()) + if (req.ifindex.has_value()) { ynl_attr_put_u32(nlh, OVPN_A_IFINDEX, req.ifindex.value()); - if (req.peer.has_value()) + } + if (req.peer.has_value()) { ovpn_peer_put(nlh, OVPN_A_PEER, req.peer.value()); + } rsp.reset(new ovpn_peer_get_rsp()); yrs.yarg.data = rsp.get(); @@ -666,8 +744,9 @@ ovpn_peer_get(ynl_cpp::ynl_socket& ys, ovpn_peer_get_req& req) yrs.rsp_cmd = OVPN_CMD_PEER_GET; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -691,12 +770,14 @@ ovpn_peer_get_dump(ynl_cpp::ynl_socket& ys, ovpn_peer_get_req_dump& req) nlh = ynl_gemsg_start_dump(ys, ((struct ynl_sock*)ys)->family_id, OVPN_CMD_PEER_GET, 1); ((struct ynl_sock*)ys)->req_policy = &ovpn_nest; - if (req.ifindex.has_value()) + if (req.ifindex.has_value()) { ynl_attr_put_u32(nlh, OVPN_A_IFINDEX, req.ifindex.value()); + } err = ynl_exec_dump_no_alloc(ys, nlh, &yds); - if (err < 0) + if (err < 0) { return nullptr; + } return ret; } @@ -713,14 +794,17 @@ int ovpn_peer_del(ynl_cpp::ynl_socket& ys, ovpn_peer_del_req& req) nlh = ynl_gemsg_start_req(ys, ((struct ynl_sock*)ys)->family_id, OVPN_CMD_PEER_DEL, 1); ((struct ynl_sock*)ys)->req_policy = &ovpn_ovpn_peer_del_input_nest; - if (req.ifindex.has_value()) + if (req.ifindex.has_value()) { ynl_attr_put_u32(nlh, OVPN_A_IFINDEX, req.ifindex.value()); - if (req.peer.has_value()) + } + if (req.peer.has_value()) { ovpn_peer_put(nlh, OVPN_A_PEER, req.peer.value()); + } err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return -1; + } return 0; } @@ -736,14 +820,17 @@ int ovpn_key_new(ynl_cpp::ynl_socket& ys, ovpn_key_new_req& req) nlh = ynl_gemsg_start_req(ys, ((struct ynl_sock*)ys)->family_id, OVPN_CMD_KEY_NEW, 1); ((struct ynl_sock*)ys)->req_policy = &ovpn_nest; - if (req.ifindex.has_value()) + if (req.ifindex.has_value()) { ynl_attr_put_u32(nlh, OVPN_A_IFINDEX, req.ifindex.value()); - if (req.keyconf.has_value()) + } + if (req.keyconf.has_value()) { ovpn_keyconf_put(nlh, OVPN_A_KEYCONF, req.keyconf.value()); + } err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return -1; + } return 0; } @@ -764,13 +851,15 @@ int ovpn_key_get_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == OVPN_A_KEYCONF) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &ovpn_keyconf_nest; parg.data = &dst->keyconf.emplace(); - if (ovpn_keyconf_parse(&parg, attr)) + if (ovpn_keyconf_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } } @@ -789,10 +878,12 @@ ovpn_key_get(ynl_cpp::ynl_socket& ys, ovpn_key_get_req& req) ((struct ynl_sock*)ys)->req_policy = &ovpn_ovpn_keyconf_get_nest; yrs.yarg.rsp_policy = &ovpn_ovpn_keyconf_get_nest; - if (req.ifindex.has_value()) + if (req.ifindex.has_value()) { ynl_attr_put_u32(nlh, OVPN_A_IFINDEX, req.ifindex.value()); - if (req.keyconf.has_value()) + } + if (req.keyconf.has_value()) { ovpn_keyconf_put(nlh, OVPN_A_KEYCONF, req.keyconf.value()); + } rsp.reset(new ovpn_key_get_rsp()); yrs.yarg.data = rsp.get(); @@ -800,8 +891,9 @@ ovpn_key_get(ynl_cpp::ynl_socket& ys, ovpn_key_get_req& req) yrs.rsp_cmd = OVPN_CMD_KEY_GET; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -818,14 +910,17 @@ int ovpn_key_swap(ynl_cpp::ynl_socket& ys, ovpn_key_swap_req& req) nlh = ynl_gemsg_start_req(ys, ((struct ynl_sock*)ys)->family_id, OVPN_CMD_KEY_SWAP, 1); ((struct ynl_sock*)ys)->req_policy = &ovpn_ovpn_keyconf_swap_input_nest; - if (req.ifindex.has_value()) + if (req.ifindex.has_value()) { ynl_attr_put_u32(nlh, OVPN_A_IFINDEX, req.ifindex.value()); - if (req.keyconf.has_value()) + } + if (req.keyconf.has_value()) { ovpn_keyconf_put(nlh, OVPN_A_KEYCONF, req.keyconf.value()); + } err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return -1; + } return 0; } @@ -841,14 +936,17 @@ int ovpn_key_del(ynl_cpp::ynl_socket& ys, ovpn_key_del_req& req) nlh = ynl_gemsg_start_req(ys, ((struct ynl_sock*)ys)->family_id, OVPN_CMD_KEY_DEL, 1); ((struct ynl_sock*)ys)->req_policy = &ovpn_ovpn_keyconf_del_input_nest; - if (req.ifindex.has_value()) + if (req.ifindex.has_value()) { ynl_attr_put_u32(nlh, OVPN_A_IFINDEX, req.ifindex.value()); - if (req.keyconf.has_value()) + } + if (req.keyconf.has_value()) { ovpn_keyconf_put(nlh, OVPN_A_KEYCONF, req.keyconf.value()); + } err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return -1; + } return 0; } diff --git a/generated/ovs_datapath-user.cpp b/generated/ovs_datapath-user.cpp index c783d41..ee44347 100644 --- a/generated/ovs_datapath-user.cpp +++ b/generated/ovs_datapath-user.cpp @@ -14,8 +14,8 @@ namespace ynl_cpp { /* Enums */ -static constexpr std::array ovs_datapath_op_strmap = []() { - std::array arr{}; +static constexpr std::array ovs_datapath_op_strmap = []() { + std::array arr{}; arr[OVS_DP_CMD_GET] = "get"; arr[OVS_DP_CMD_NEW] = "new"; arr[OVS_DP_CMD_DEL] = "del"; @@ -24,8 +24,9 @@ static constexpr std::array ovs_datapath_o std::string_view ovs_datapath_op_str(int op) { - if (op < 0 || op >= (int)(ovs_datapath_op_strmap.size())) + if (op < 0 || op >= (int)(ovs_datapath_op_strmap.size())) { return ""; + } return ovs_datapath_op_strmap[op]; } @@ -41,28 +42,38 @@ static constexpr std::array ovs_datapath_user_features_ std::string_view ovs_datapath_user_features_str(int value) { value = (int)(ffs(value) - 1); - if (value < 0 || value >= (int)(ovs_datapath_user_features_strmap.size())) + if (value < 0 || value >= (int)(ovs_datapath_user_features_strmap.size())) { return ""; + } return ovs_datapath_user_features_strmap[value]; } /* Policies */ static std::array ovs_datapath_datapath_policy = []() { std::array arr{}; - arr[OVS_DP_ATTR_NAME] = { .name = "name", .type = YNL_PT_NUL_STR, }; - arr[OVS_DP_ATTR_UPCALL_PID] = { .name = "upcall-pid", .type = YNL_PT_U32, }; - arr[OVS_DP_ATTR_STATS] = { .name = "stats", .type = YNL_PT_BINARY,}; - arr[OVS_DP_ATTR_MEGAFLOW_STATS] = { .name = "megaflow-stats", .type = YNL_PT_BINARY,}; - arr[OVS_DP_ATTR_USER_FEATURES] = { .name = "user-features", .type = YNL_PT_U32, }; - arr[OVS_DP_ATTR_PAD] = { .name = "pad", .type = YNL_PT_REJECT, }; - arr[OVS_DP_ATTR_MASKS_CACHE_SIZE] = { .name = "masks-cache-size", .type = YNL_PT_U32, }; - arr[OVS_DP_ATTR_PER_CPU_PIDS] = { .name = "per-cpu-pids", .type = YNL_PT_BINARY,}; - arr[OVS_DP_ATTR_IFINDEX] = { .name = "ifindex", .type = YNL_PT_U32, }; + arr[OVS_DP_ATTR_NAME].name = "name"; + arr[OVS_DP_ATTR_NAME].type = YNL_PT_NUL_STR; + arr[OVS_DP_ATTR_UPCALL_PID].name = "upcall-pid"; + arr[OVS_DP_ATTR_UPCALL_PID].type = YNL_PT_U32; + arr[OVS_DP_ATTR_STATS].name = "stats"; + arr[OVS_DP_ATTR_STATS].type = YNL_PT_BINARY; + arr[OVS_DP_ATTR_MEGAFLOW_STATS].name = "megaflow-stats"; + arr[OVS_DP_ATTR_MEGAFLOW_STATS].type = YNL_PT_BINARY; + arr[OVS_DP_ATTR_USER_FEATURES].name = "user-features"; + arr[OVS_DP_ATTR_USER_FEATURES].type = YNL_PT_U32; + arr[OVS_DP_ATTR_PAD].name = "pad"; + arr[OVS_DP_ATTR_PAD].type = YNL_PT_REJECT; + arr[OVS_DP_ATTR_MASKS_CACHE_SIZE].name = "masks-cache-size"; + arr[OVS_DP_ATTR_MASKS_CACHE_SIZE].type = YNL_PT_U32; + arr[OVS_DP_ATTR_PER_CPU_PIDS].name = "per-cpu-pids"; + arr[OVS_DP_ATTR_PER_CPU_PIDS].type = YNL_PT_BINARY; + arr[OVS_DP_ATTR_IFINDEX].name = "ifindex"; + arr[OVS_DP_ATTR_IFINDEX].type = YNL_PT_U32; return arr; } (); struct ynl_policy_nest ovs_datapath_datapath_nest = { - .max_attr = OVS_DP_ATTR_MAX, + .max_attr = static_cast(OVS_DP_ATTR_MAX), .table = ovs_datapath_datapath_policy.data(), }; @@ -85,36 +96,45 @@ int ovs_datapath_get_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == OVS_DP_ATTR_NAME) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; - dst->name.assign(ynl_attr_get_str(attr), ynl_attr_data_len(attr)); + } + dst->name.assign(ynl_attr_get_str(attr)); } else if (type == OVS_DP_ATTR_UPCALL_PID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->upcall_pid = (__u32)ynl_attr_get_u32(attr); } else if (type == OVS_DP_ATTR_STATS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); - __u8 *data = (__u8*)ynl_attr_data(attr); - dst->stats.assign(data, data + len); + unsigned int struct_sz = sizeof(struct ovs_dp_stats); + dst->stats.emplace(); + memcpy(&*dst->stats, ynl_attr_data(attr), std::min(struct_sz, len)); } else if (type == OVS_DP_ATTR_MEGAFLOW_STATS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); - __u8 *data = (__u8*)ynl_attr_data(attr); - dst->megaflow_stats.assign(data, data + len); + unsigned int struct_sz = sizeof(struct ovs_dp_megaflow_stats); + dst->megaflow_stats.emplace(); + memcpy(&*dst->megaflow_stats, ynl_attr_data(attr), std::min(struct_sz, len)); } else if (type == OVS_DP_ATTR_USER_FEATURES) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->user_features = (__u32)ynl_attr_get_u32(attr); } else if (type == OVS_DP_ATTR_MASKS_CACHE_SIZE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->masks_cache_size = (__u32)ynl_attr_get_u32(attr); } else if (type == OVS_DP_ATTR_PER_CPU_PIDS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->per_cpu_pids.assign(data, data + len); @@ -125,7 +145,7 @@ int ovs_datapath_get_rsp_parse(const struct nlmsghdr *nlh, } std::unique_ptr -ovs_datapath_get(ynl_cpp::ynl_socket& ys, ovs_datapath_get_req& req) +ovs_datapath_get(ynl_cpp::ynl_socket& ys, ovs_datapath_get_req& req) { struct ynl_req_state yrs = { .yarg = { .ys = ys, }, }; std::unique_ptr rsp; @@ -138,12 +158,13 @@ ovs_datapath_get(ynl_cpp::ynl_socket& ys, ovs_datapath_get_req& req) ((struct ynl_sock*)ys)->req_policy = &ovs_datapath_datapath_nest; yrs.yarg.rsp_policy = &ovs_datapath_datapath_nest; - hdr_len = sizeof(req->_hdr); + hdr_len = sizeof(req._hdr); hdr = ynl_nlmsg_put_extra_header(nlh, hdr_len); - memcpy(hdr, &req->_hdr, hdr_len); + memcpy(hdr, &req._hdr, hdr_len); - if (req.name.size() > 0) + if (req.name.size() > 0) { ynl_attr_put_str(nlh, OVS_DP_ATTR_NAME, req.name.data()); + } rsp.reset(new ovs_datapath_get_rsp()); yrs.yarg.data = rsp.get(); @@ -151,15 +172,16 @@ ovs_datapath_get(ynl_cpp::ynl_socket& ys, ovs_datapath_get_req& req) yrs.rsp_cmd = OVS_DP_CMD_GET; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } /* OVS_DP_CMD_GET - dump */ std::unique_ptr -ovs_datapath_get_dump(ynl_cpp::ynl_socket& ys, ovs_datapath_get_req_dump& req) +ovs_datapath_get_dump(ynl_cpp::ynl_socket& ys, ovs_datapath_get_req_dump& req) { struct ynl_dump_no_alloc_state yds = {}; struct nlmsghdr *nlh; @@ -171,30 +193,32 @@ ovs_datapath_get_dump(ynl_cpp::ynl_socket& ys, ovs_datapath_get_req_dump& req) yds.yarg.ys = ys; yds.yarg.rsp_policy = &ovs_datapath_datapath_nest; yds.yarg.data = ret.get(); - yds.alloc_cb = [](void* arg)->void*{return &(static_cast(arg)->objs.emplace_back());}; + yds.alloc_cb = [](void* arg)->void* {return &(static_cast(arg)->objs.emplace_back());}; yds.cb = ovs_datapath_get_rsp_parse; yds.rsp_cmd = OVS_DP_CMD_GET; nlh = ynl_gemsg_start_dump(ys, ((struct ynl_sock*)ys)->family_id, OVS_DP_CMD_GET, 1); - hdr_len = sizeof(req->_hdr); + hdr_len = sizeof(req._hdr); hdr = ynl_nlmsg_put_extra_header(nlh, hdr_len); - memcpy(hdr, &req->_hdr, hdr_len); + memcpy(hdr, &req._hdr, hdr_len); ((struct ynl_sock*)ys)->req_policy = &ovs_datapath_datapath_nest; - if (req.name.size() > 0) + if (req.name.size() > 0) { ynl_attr_put_str(nlh, OVS_DP_ATTR_NAME, req.name.data()); + } err = ynl_exec_dump_no_alloc(ys, nlh, &yds); - if (err < 0) + if (err < 0) { return nullptr; + } return ret; } /* ============== OVS_DP_CMD_NEW ============== */ /* OVS_DP_CMD_NEW - do */ -int ovs_datapath_new(ynl_cpp::ynl_socket& ys, ovs_datapath_new_req& req) +int ovs_datapath_new(ynl_cpp::ynl_socket& ys, ovs_datapath_new_req& req) { struct ynl_req_state yrs = { .yarg = { .ys = ys, }, }; struct nlmsghdr *nlh; @@ -205,27 +229,31 @@ int ovs_datapath_new(ynl_cpp::ynl_socket& ys, ovs_datapath_new_req& req) nlh = ynl_gemsg_start_req(ys, ((struct ynl_sock*)ys)->family_id, OVS_DP_CMD_NEW, 1); ((struct ynl_sock*)ys)->req_policy = &ovs_datapath_datapath_nest; - hdr_len = sizeof(req->_hdr); + hdr_len = sizeof(req._hdr); hdr = ynl_nlmsg_put_extra_header(nlh, hdr_len); - memcpy(hdr, &req->_hdr, hdr_len); + memcpy(hdr, &req._hdr, hdr_len); - if (req.name.size() > 0) + if (req.name.size() > 0) { ynl_attr_put_str(nlh, OVS_DP_ATTR_NAME, req.name.data()); - if (req.upcall_pid.has_value()) + } + if (req.upcall_pid.has_value()) { ynl_attr_put_u32(nlh, OVS_DP_ATTR_UPCALL_PID, req.upcall_pid.value()); - if (req.user_features.has_value()) + } + if (req.user_features.has_value()) { ynl_attr_put_u32(nlh, OVS_DP_ATTR_USER_FEATURES, req.user_features.value()); + } err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return -1; + } return 0; } /* ============== OVS_DP_CMD_DEL ============== */ /* OVS_DP_CMD_DEL - do */ -int ovs_datapath_del(ynl_cpp::ynl_socket& ys, ovs_datapath_del_req& req) +int ovs_datapath_del(ynl_cpp::ynl_socket& ys, ovs_datapath_del_req& req) { struct ynl_req_state yrs = { .yarg = { .ys = ys, }, }; struct nlmsghdr *nlh; @@ -236,16 +264,18 @@ int ovs_datapath_del(ynl_cpp::ynl_socket& ys, ovs_datapath_del_req& req) nlh = ynl_gemsg_start_req(ys, ((struct ynl_sock*)ys)->family_id, OVS_DP_CMD_DEL, 1); ((struct ynl_sock*)ys)->req_policy = &ovs_datapath_datapath_nest; - hdr_len = sizeof(req->_hdr); + hdr_len = sizeof(req._hdr); hdr = ynl_nlmsg_put_extra_header(nlh, hdr_len); - memcpy(hdr, &req->_hdr, hdr_len); + memcpy(hdr, &req._hdr, hdr_len); - if (req.name.size() > 0) + if (req.name.size() > 0) { ynl_attr_put_str(nlh, OVS_DP_ATTR_NAME, req.name.data()); + } err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return -1; + } return 0; } diff --git a/generated/ovs_datapath-user.hpp b/generated/ovs_datapath-user.hpp index dc6d788..5fc9b5d 100644 --- a/generated/ovs_datapath-user.hpp +++ b/generated/ovs_datapath-user.hpp @@ -16,6 +16,7 @@ #include #include #include +#include #include "ynl.hpp" @@ -42,8 +43,8 @@ struct ovs_datapath_get_rsp { std::string name; std::optional<__u32> upcall_pid; - std::vector<__u8> stats; - std::vector<__u8> megaflow_stats; + std::optional stats; + std::optional megaflow_stats; std::optional<__u32> user_features; std::optional<__u32> masks_cache_size; std::vector<__u8> per_cpu_pids; @@ -53,7 +54,7 @@ struct ovs_datapath_get_rsp { * Get / dump OVS data path configuration and state */ std::unique_ptr -ovs_datapath_get(ynl_cpp::ynl_socket& ys, ovs_datapath_get_req& req); +ovs_datapath_get(ynl_cpp::ynl_socket& ys, ovs_datapath_get_req& req); /* OVS_DP_CMD_GET - dump */ struct ovs_datapath_get_req_dump { @@ -67,7 +68,7 @@ struct ovs_datapath_get_list { }; std::unique_ptr -ovs_datapath_get_dump(ynl_cpp::ynl_socket& ys, ovs_datapath_get_req_dump& req); +ovs_datapath_get_dump(ynl_cpp::ynl_socket& ys, ovs_datapath_get_req_dump& req); /* ============== OVS_DP_CMD_NEW ============== */ /* OVS_DP_CMD_NEW - do */ @@ -82,7 +83,7 @@ struct ovs_datapath_new_req { /* * Create new OVS data path */ -int ovs_datapath_new(ynl_cpp::ynl_socket& ys, ovs_datapath_new_req& req); +int ovs_datapath_new(ynl_cpp::ynl_socket& ys, ovs_datapath_new_req& req); /* ============== OVS_DP_CMD_DEL ============== */ /* OVS_DP_CMD_DEL - do */ @@ -95,7 +96,7 @@ struct ovs_datapath_del_req { /* * Delete existing OVS data path */ -int ovs_datapath_del(ynl_cpp::ynl_socket& ys, ovs_datapath_del_req& req); +int ovs_datapath_del(ynl_cpp::ynl_socket& ys, ovs_datapath_del_req& req); } //namespace ynl_cpp #endif /* _LINUX_OVS_DATAPATH_GEN_H */ diff --git a/generated/psp-user.cpp b/generated/psp-user.cpp index 20d4ef8..efca3f6 100644 --- a/generated/psp-user.cpp +++ b/generated/psp-user.cpp @@ -31,8 +31,9 @@ static constexpr std::array psp_op_strm std::string_view psp_op_str(int op) { - if (op < 0 || op >= (int)(psp_op_strmap.size())) + if (op < 0 || op >= (int)(psp_op_strmap.size())) { return ""; + } return psp_op_strmap[op]; } @@ -47,8 +48,9 @@ static constexpr std::array psp_version_strmap = []() { std::string_view psp_version_str(psp_version value) { - if (value < 0 || value >= (int)(psp_version_strmap.size())) + if (value < 0 || value >= (int)(psp_version_strmap.size())) { return ""; + } return psp_version_strmap[value]; } @@ -146,10 +148,12 @@ int psp_keys_put(struct nlmsghdr *nlh, unsigned int attr_type, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - if (obj.key.size() > 0) + if (obj.key.size() > 0) { ynl_attr_put(nlh, PSP_A_KEYS_KEY, obj.key.data(), obj.key.size()); - if (obj.spi.has_value()) + } + if (obj.spi.has_value()) { ynl_attr_put_u32(nlh, PSP_A_KEYS_SPI, obj.spi.value()); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -164,14 +168,16 @@ int psp_keys_parse(struct ynl_parse_arg *yarg, const struct nlattr *nested) unsigned int type = ynl_attr_type(attr); if (type == PSP_A_KEYS_KEY) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->key.assign(data, data + len); } else if (type == PSP_A_KEYS_SPI) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->spi = (__u32)ynl_attr_get_u32(attr); } } @@ -193,20 +199,24 @@ int psp_dev_get_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == PSP_A_DEV_ID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->id = (__u32)ynl_attr_get_u32(attr); } else if (type == PSP_A_DEV_IFINDEX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->ifindex = (__u32)ynl_attr_get_u32(attr); } else if (type == PSP_A_DEV_PSP_VERSIONS_CAP) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->psp_versions_cap = (__u32)ynl_attr_get_u32(attr); } else if (type == PSP_A_DEV_PSP_VERSIONS_ENA) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->psp_versions_ena = (__u32)ynl_attr_get_u32(attr); } } @@ -226,8 +236,9 @@ psp_dev_get(ynl_cpp::ynl_socket& ys, psp_dev_get_req& req) ((struct ynl_sock*)ys)->req_policy = &psp_dev_nest; yrs.yarg.rsp_policy = &psp_dev_nest; - if (req.id.has_value()) + if (req.id.has_value()) { ynl_attr_put_u32(nlh, PSP_A_DEV_ID, req.id.value()); + } rsp.reset(new psp_dev_get_rsp()); yrs.yarg.data = rsp.get(); @@ -235,8 +246,9 @@ psp_dev_get(ynl_cpp::ynl_socket& ys, psp_dev_get_req& req) yrs.rsp_cmd = PSP_CMD_DEV_GET; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -259,8 +271,9 @@ std::unique_ptr psp_dev_get_dump(ynl_cpp::ynl_socket& ys) nlh = ynl_gemsg_start_dump(ys, ((struct ynl_sock*)ys)->family_id, PSP_CMD_DEV_GET, 1); err = ynl_exec_dump_no_alloc(ys, nlh, &yds); - if (err < 0) + if (err < 0) { return nullptr; + } return ret; } @@ -286,10 +299,12 @@ psp_dev_set(ynl_cpp::ynl_socket& ys, psp_dev_set_req& req) ((struct ynl_sock*)ys)->req_policy = &psp_dev_nest; yrs.yarg.rsp_policy = &psp_dev_nest; - if (req.id.has_value()) + if (req.id.has_value()) { ynl_attr_put_u32(nlh, PSP_A_DEV_ID, req.id.value()); - if (req.psp_versions_ena.has_value()) + } + if (req.psp_versions_ena.has_value()) { ynl_attr_put_u32(nlh, PSP_A_DEV_PSP_VERSIONS_ENA, req.psp_versions_ena.value()); + } rsp.reset(new psp_dev_set_rsp()); yrs.yarg.data = rsp.get(); @@ -297,8 +312,9 @@ psp_dev_set(ynl_cpp::ynl_socket& ys, psp_dev_set_req& req) yrs.rsp_cmd = PSP_CMD_DEV_SET; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -317,8 +333,9 @@ int psp_key_rotate_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == PSP_A_DEV_ID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->id = (__u32)ynl_attr_get_u32(attr); } } @@ -338,8 +355,9 @@ psp_key_rotate(ynl_cpp::ynl_socket& ys, psp_key_rotate_req& req) ((struct ynl_sock*)ys)->req_policy = &psp_dev_nest; yrs.yarg.rsp_policy = &psp_dev_nest; - if (req.id.has_value()) + if (req.id.has_value()) { ynl_attr_put_u32(nlh, PSP_A_DEV_ID, req.id.value()); + } rsp.reset(new psp_key_rotate_rsp()); yrs.yarg.data = rsp.get(); @@ -347,8 +365,9 @@ psp_key_rotate(ynl_cpp::ynl_socket& ys, psp_key_rotate_req& req) yrs.rsp_cmd = PSP_CMD_KEY_ROTATE; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -370,21 +389,25 @@ int psp_rx_assoc_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == PSP_A_ASSOC_DEV_ID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->dev_id = (__u32)ynl_attr_get_u32(attr); } else if (type == PSP_A_ASSOC_VERSION) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->version = (enum psp_version)ynl_attr_get_u32(attr); } else if (type == PSP_A_ASSOC_RX_KEY) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &psp_keys_nest; parg.data = &dst->rx_key.emplace(); - if (psp_keys_parse(&parg, attr)) + if (psp_keys_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } } @@ -403,12 +426,15 @@ psp_rx_assoc(ynl_cpp::ynl_socket& ys, psp_rx_assoc_req& req) ((struct ynl_sock*)ys)->req_policy = &psp_assoc_nest; yrs.yarg.rsp_policy = &psp_assoc_nest; - if (req.dev_id.has_value()) + if (req.dev_id.has_value()) { ynl_attr_put_u32(nlh, PSP_A_ASSOC_DEV_ID, req.dev_id.value()); - if (req.version.has_value()) + } + if (req.version.has_value()) { ynl_attr_put_u32(nlh, PSP_A_ASSOC_VERSION, req.version.value()); - if (req.sock_fd.has_value()) + } + if (req.sock_fd.has_value()) { ynl_attr_put_u32(nlh, PSP_A_ASSOC_SOCK_FD, req.sock_fd.value()); + } rsp.reset(new psp_rx_assoc_rsp()); yrs.yarg.data = rsp.get(); @@ -416,8 +442,9 @@ psp_rx_assoc(ynl_cpp::ynl_socket& ys, psp_rx_assoc_req& req) yrs.rsp_cmd = PSP_CMD_RX_ASSOC; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -442,14 +469,18 @@ psp_tx_assoc(ynl_cpp::ynl_socket& ys, psp_tx_assoc_req& req) ((struct ynl_sock*)ys)->req_policy = &psp_assoc_nest; yrs.yarg.rsp_policy = &psp_assoc_nest; - if (req.dev_id.has_value()) + if (req.dev_id.has_value()) { ynl_attr_put_u32(nlh, PSP_A_ASSOC_DEV_ID, req.dev_id.value()); - if (req.version.has_value()) + } + if (req.version.has_value()) { ynl_attr_put_u32(nlh, PSP_A_ASSOC_VERSION, req.version.value()); - if (req.tx_key.has_value()) + } + if (req.tx_key.has_value()) { psp_keys_put(nlh, PSP_A_ASSOC_TX_KEY, req.tx_key.value()); - if (req.sock_fd.has_value()) + } + if (req.sock_fd.has_value()) { ynl_attr_put_u32(nlh, PSP_A_ASSOC_SOCK_FD, req.sock_fd.value()); + } rsp.reset(new psp_tx_assoc_rsp()); yrs.yarg.data = rsp.get(); @@ -457,8 +488,9 @@ psp_tx_assoc(ynl_cpp::ynl_socket& ys, psp_tx_assoc_req& req) yrs.rsp_cmd = PSP_CMD_TX_ASSOC; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -477,16 +509,19 @@ int psp_get_stats_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == PSP_A_STATS_DEV_ID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->dev_id = (__u32)ynl_attr_get_u32(attr); } else if (type == PSP_A_STATS_KEY_ROTATIONS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->key_rotations = (__u64)ynl_attr_get_uint(attr); } else if (type == PSP_A_STATS_STALE_EVENTS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->stale_events = (__u64)ynl_attr_get_uint(attr); } } @@ -506,8 +541,9 @@ psp_get_stats(ynl_cpp::ynl_socket& ys, psp_get_stats_req& req) ((struct ynl_sock*)ys)->req_policy = &psp_stats_nest; yrs.yarg.rsp_policy = &psp_stats_nest; - if (req.dev_id.has_value()) + if (req.dev_id.has_value()) { ynl_attr_put_u32(nlh, PSP_A_STATS_DEV_ID, req.dev_id.value()); + } rsp.reset(new psp_get_stats_rsp()); yrs.yarg.data = rsp.get(); @@ -515,8 +551,9 @@ psp_get_stats(ynl_cpp::ynl_socket& ys, psp_get_stats_req& req) yrs.rsp_cmd = PSP_CMD_GET_STATS; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -539,8 +576,9 @@ std::unique_ptr psp_get_stats_dump(ynl_cpp::ynl_socket& ys) nlh = ynl_gemsg_start_dump(ys, ((struct ynl_sock*)ys)->family_id, PSP_CMD_GET_STATS, 1); err = ynl_exec_dump_no_alloc(ys, nlh, &yds); - if (err < 0) + if (err < 0) { return nullptr; + } return ret; } diff --git a/generated/rt-addr-user.cpp b/generated/rt-addr-user.cpp index cb893af..ff392cd 100644 --- a/generated/rt-addr-user.cpp +++ b/generated/rt-addr-user.cpp @@ -23,8 +23,9 @@ static constexpr std::array rt_addr_op_s std::string_view rt_addr_op_str(int op) { - if (op < 0 || op >= (int)(rt_addr_op_strmap.size())) + if (op < 0 || op >= (int)(rt_addr_op_strmap.size())) { return ""; + } return rt_addr_op_strmap[op]; } @@ -48,8 +49,9 @@ static constexpr std::array rt_addr_ifa_flags_strmap = std::string_view rt_addr_ifa_flags_str(int value) { value = (int)(ffs(value) - 1); - if (value < 0 || value >= (int)(rt_addr_ifa_flags_strmap.size())) + if (value < 0 || value >= (int)(rt_addr_ifa_flags_strmap.size())) { return ""; + } return rt_addr_ifa_flags_strmap[value]; } @@ -104,18 +106,23 @@ int rt_addr_newaddr(ynl_cpp::ynl_socket& ys, rt_addr_newaddr_req& req) hdr = ynl_nlmsg_put_extra_header(nlh, hdr_len); memcpy(hdr, &req._hdr, hdr_len); - if (req.address.size() > 0) + if (req.address.size() > 0) { ynl_attr_put(nlh, IFA_ADDRESS, req.address.data(), req.address.size()); - if (req.label.size() > 0) + } + if (req.label.size() > 0) { ynl_attr_put_str(nlh, IFA_LABEL, req.label.data()); - if (req.local.size() > 0) + } + if (req.local.size() > 0) { ynl_attr_put(nlh, IFA_LOCAL, req.local.data(), req.local.size()); - if (req.cacheinfo) + } + if (req.cacheinfo) { ynl_attr_put(nlh, IFA_CACHEINFO, &*req.cacheinfo, sizeof(struct ifa_cacheinfo)); + } err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return -1; + } return 0; } @@ -137,14 +144,17 @@ int rt_addr_deladdr(ynl_cpp::ynl_socket& ys, rt_addr_deladdr_req& req) hdr = ynl_nlmsg_put_extra_header(nlh, hdr_len); memcpy(hdr, &req._hdr, hdr_len); - if (req.address.size() > 0) + if (req.address.size() > 0) { ynl_attr_put(nlh, IFA_ADDRESS, req.address.data(), req.address.size()); - if (req.local.size() > 0) + } + if (req.local.size() > 0) { ynl_attr_put(nlh, IFA_LOCAL, req.local.data(), req.local.size()); + } err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return -1; + } return 0; } @@ -167,24 +177,28 @@ int rt_addr_getaddr_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == IFA_ADDRESS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->address.assign(data, data + len); } else if (type == IFA_LABEL) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->label.assign(ynl_attr_get_str(attr)); } else if (type == IFA_LOCAL) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->local.assign(data, data + len); } else if (type == IFA_CACHEINFO) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); unsigned int struct_sz = sizeof(struct ifa_cacheinfo); dst->cacheinfo.emplace(); @@ -220,8 +234,9 @@ rt_addr_getaddr_dump(ynl_cpp::ynl_socket& ys, rt_addr_getaddr_req& req) ((struct ynl_sock*)ys)->req_policy = &rt_addr_addr_attrs_nest; err = ynl_exec_dump_no_alloc(ys, nlh, &yds); - if (err < 0) + if (err < 0) { return nullptr; + } return ret; } @@ -244,14 +259,16 @@ int rt_addr_getmulticast_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == IFA_MULTICAST) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->multicast.assign(data, data + len); } else if (type == IFA_CACHEINFO) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); unsigned int struct_sz = sizeof(struct ifa_cacheinfo); dst->cacheinfo.emplace(); @@ -286,8 +303,9 @@ rt_addr_getmulticast(ynl_cpp::ynl_socket& ys, rt_addr_getmulticast_req& req) yrs.rsp_cmd = RTM_GETMULTICAST; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -319,8 +337,9 @@ rt_addr_getmulticast_dump(ynl_cpp::ynl_socket& ys, ((struct ynl_sock*)ys)->req_policy = &rt_addr_addr_attrs_nest; err = ynl_exec_dump_no_alloc(ys, nlh, &yds); - if (err < 0) + if (err < 0) { return nullptr; + } return ret; } diff --git a/generated/rt-link-user.cpp b/generated/rt-link-user.cpp index 2df88eb..92ee5b9 100644 --- a/generated/rt-link-user.cpp +++ b/generated/rt-link-user.cpp @@ -27,8 +27,9 @@ static constexpr std::array rt_link_op_strmap = []() { std::string_view rt_link_op_str(int op) { - if (op < 0 || op >= (int)(rt_link_op_strmap.size())) + if (op < 0 || op >= (int)(rt_link_op_strmap.size())) { return ""; + } return rt_link_op_strmap[op]; } @@ -59,8 +60,9 @@ static constexpr std::array rt_link_ifinfo_flags_strma std::string_view rt_link_ifinfo_flags_str(net_device_flags value) { value = (net_device_flags)(ffs(value) - 1); - if (value < 0 || value >= (int)(rt_link_ifinfo_flags_strmap.size())) + if (value < 0 || value >= (int)(rt_link_ifinfo_flags_strmap.size())) { return ""; + } return rt_link_ifinfo_flags_strmap[value]; } @@ -73,8 +75,9 @@ static constexpr std::array rt_link_vlan_protocols_ std::string_view rt_link_vlan_protocols_str(int value) { - if (value < 0 || value >= (int)(rt_link_vlan_protocols_strmap.size())) + if (value < 0 || value >= (int)(rt_link_vlan_protocols_strmap.size())) { return ""; + } return rt_link_vlan_protocols_strmap[value]; } @@ -118,8 +121,9 @@ static constexpr std::array rt_link_ipv4_devconf_strma std::string_view rt_link_ipv4_devconf_str(int value) { - if (value < 0 || value >= (int)(rt_link_ipv4_devconf_strmap.size())) + if (value < 0 || value >= (int)(rt_link_ipv4_devconf_strmap.size())) { return ""; + } return rt_link_ipv4_devconf_strmap[value]; } @@ -188,8 +192,9 @@ static constexpr std::array rt_link_ipv6_devconf_strma std::string_view rt_link_ipv6_devconf_str(int value) { - if (value < 0 || value >= (int)(rt_link_ipv6_devconf_strmap.size())) + if (value < 0 || value >= (int)(rt_link_ipv6_devconf_strmap.size())) { return ""; + } return rt_link_ipv6_devconf_strmap[value]; } @@ -207,8 +212,9 @@ static constexpr std::array rt_link_ifla_icmp6_stats_st std::string_view rt_link_ifla_icmp6_stats_str(int value) { - if (value < 0 || value >= (int)(rt_link_ifla_icmp6_stats_strmap.size())) + if (value < 0 || value >= (int)(rt_link_ifla_icmp6_stats_strmap.size())) { return ""; + } return rt_link_ifla_icmp6_stats_strmap[value]; } @@ -256,8 +262,9 @@ static constexpr std::array rt_link_ifla_inet6_stats_s std::string_view rt_link_ifla_inet6_stats_str(int value) { - if (value < 0 || value >= (int)(rt_link_ifla_inet6_stats_strmap.size())) + if (value < 0 || value >= (int)(rt_link_ifla_inet6_stats_strmap.size())) { return ""; + } return rt_link_ifla_inet6_stats_strmap[value]; } @@ -274,8 +281,9 @@ static constexpr std::array rt_link_vlan_flags_strmap = std::string_view rt_link_vlan_flags_str(int value) { value = (int)(ffs(value) - 1); - if (value < 0 || value >= (int)(rt_link_vlan_flags_strmap.size())) + if (value < 0 || value >= (int)(rt_link_vlan_flags_strmap.size())) { return ""; + } return rt_link_vlan_flags_strmap[value]; } @@ -289,8 +297,9 @@ static constexpr std::array rt_link_ifla_vf_link_state_ std::string_view rt_link_ifla_vf_link_state_enum_str(int value) { - if (value < 0 || value >= (int)(rt_link_ifla_vf_link_state_enum_strmap.size())) + if (value < 0 || value >= (int)(rt_link_ifla_vf_link_state_enum_strmap.size())) { return ""; + } return rt_link_ifla_vf_link_state_enum_strmap[value]; } @@ -310,8 +319,9 @@ static constexpr std::array rt_link_rtext_filter_strmap std::string_view rt_link_rtext_filter_str(int value) { value = (int)(ffs(value) - 1); - if (value < 0 || value >= (int)(rt_link_rtext_filter_strmap.size())) + if (value < 0 || value >= (int)(rt_link_rtext_filter_strmap.size())) { return ""; + } return rt_link_rtext_filter_strmap[value]; } @@ -324,8 +334,9 @@ static constexpr std::array rt_link_netkit_policy_strma std::string_view rt_link_netkit_policy_str(int value) { - if (value < 0 || value >= (int)(rt_link_netkit_policy_strmap.size())) + if (value < 0 || value >= (int)(rt_link_netkit_policy_strmap.size())) { return ""; + } return rt_link_netkit_policy_strmap[value]; } @@ -338,8 +349,9 @@ static constexpr std::array rt_link_netkit_mode_strmap std::string_view rt_link_netkit_mode_str(netkit_mode value) { - if (value < 0 || value >= (int)(rt_link_netkit_mode_strmap.size())) + if (value < 0 || value >= (int)(rt_link_netkit_mode_strmap.size())) { return ""; + } return rt_link_netkit_mode_strmap[value]; } @@ -352,8 +364,9 @@ static constexpr std::array rt_link_netkit_scrub_strmap std::string_view rt_link_netkit_scrub_str(int value) { - if (value < 0 || value >= (int)(rt_link_netkit_scrub_strmap.size())) + if (value < 0 || value >= (int)(rt_link_netkit_scrub_strmap.size())) { return ""; + } return rt_link_netkit_scrub_strmap[value]; } @@ -366,8 +379,9 @@ static constexpr std::array rt_link_ovpn_mode_strmap = std::string_view rt_link_ovpn_mode_str(ovpn_mode value) { - if (value < 0 || value >= (int)(rt_link_ovpn_mode_strmap.size())) + if (value < 0 || value >= (int)(rt_link_ovpn_mode_strmap.size())) { return ""; + } return rt_link_ovpn_mode_strmap[value]; } @@ -1694,22 +1708,30 @@ int rt_link_xdp_attrs_put(struct nlmsghdr *nlh, unsigned int attr_type, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - if (obj.fd.has_value()) + if (obj.fd.has_value()) { ynl_attr_put_s32(nlh, IFLA_XDP_FD, obj.fd.value()); - if (obj.attached.has_value()) + } + if (obj.attached.has_value()) { ynl_attr_put_u8(nlh, IFLA_XDP_ATTACHED, obj.attached.value()); - if (obj.flags.has_value()) + } + if (obj.flags.has_value()) { ynl_attr_put_u32(nlh, IFLA_XDP_FLAGS, obj.flags.value()); - if (obj.prog_id.has_value()) + } + if (obj.prog_id.has_value()) { ynl_attr_put_u32(nlh, IFLA_XDP_PROG_ID, obj.prog_id.value()); - if (obj.drv_prog_id.has_value()) + } + if (obj.drv_prog_id.has_value()) { ynl_attr_put_u32(nlh, IFLA_XDP_DRV_PROG_ID, obj.drv_prog_id.value()); - if (obj.skb_prog_id.has_value()) + } + if (obj.skb_prog_id.has_value()) { ynl_attr_put_u32(nlh, IFLA_XDP_SKB_PROG_ID, obj.skb_prog_id.value()); - if (obj.hw_prog_id.has_value()) + } + if (obj.hw_prog_id.has_value()) { ynl_attr_put_u32(nlh, IFLA_XDP_HW_PROG_ID, obj.hw_prog_id.value()); - if (obj.expected_fd.has_value()) + } + if (obj.expected_fd.has_value()) { ynl_attr_put_s32(nlh, IFLA_XDP_EXPECTED_FD, obj.expected_fd.value()); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -1725,36 +1747,44 @@ int rt_link_xdp_attrs_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == IFLA_XDP_FD) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->fd = (__s32)ynl_attr_get_s32(attr); } else if (type == IFLA_XDP_ATTACHED) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->attached = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_XDP_FLAGS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->flags = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_XDP_PROG_ID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->prog_id = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_XDP_DRV_PROG_ID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->drv_prog_id = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_XDP_SKB_PROG_ID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->skb_prog_id = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_XDP_HW_PROG_ID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->hw_prog_id = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_XDP_EXPECTED_FD) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->expected_fd = (__s32)ynl_attr_get_s32(attr); } } @@ -1769,8 +1799,9 @@ int rt_link_prop_list_link_attrs_put(struct nlmsghdr *nlh, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - if (obj.alt_ifname.size() > 0) + if (obj.alt_ifname.size() > 0) { ynl_attr_put_str(nlh, IFLA_ALT_IFNAME, obj.alt_ifname.data()); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -1786,8 +1817,9 @@ int rt_link_prop_list_link_attrs_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == IFLA_ALT_IFNAME) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->alt_ifname.assign(ynl_attr_get_str(attr)); } } @@ -1801,8 +1833,9 @@ int rt_link_ifla_attrs_put(struct nlmsghdr *nlh, unsigned int attr_type, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - if (obj.conf.size() > 0) + if (obj.conf.size() > 0) { ynl_attr_put(nlh, IFLA_INET_CONF, obj.conf.data(), obj.conf.size()); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -1818,8 +1851,9 @@ int rt_link_ifla_attrs_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == IFLA_INET_CONF) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->conf.assign(data, data + len); @@ -1835,24 +1869,33 @@ int rt_link_ifla6_attrs_put(struct nlmsghdr *nlh, unsigned int attr_type, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - if (obj.flags.has_value()) + if (obj.flags.has_value()) { ynl_attr_put_u32(nlh, IFLA_INET6_FLAGS, obj.flags.value()); - if (obj.conf.size() > 0) + } + if (obj.conf.size() > 0) { ynl_attr_put(nlh, IFLA_INET6_CONF, obj.conf.data(), obj.conf.size()); - if (obj.stats.size() > 0) + } + if (obj.stats.size() > 0) { ynl_attr_put(nlh, IFLA_INET6_STATS, obj.stats.data(), obj.stats.size()); - if (obj.mcast.size() > 0) + } + if (obj.mcast.size() > 0) { ynl_attr_put(nlh, IFLA_INET6_MCAST, obj.mcast.data(), obj.mcast.size()); - if (obj.cacheinfo) + } + if (obj.cacheinfo) { ynl_attr_put(nlh, IFLA_INET6_CACHEINFO, &*obj.cacheinfo, sizeof(struct ifla_cacheinfo)); - if (obj.icmp6stats.size() > 0) + } + if (obj.icmp6stats.size() > 0) { ynl_attr_put(nlh, IFLA_INET6_ICMP6STATS, obj.icmp6stats.data(), obj.icmp6stats.size()); - if (obj.token.size() > 0) + } + if (obj.token.size() > 0) { ynl_attr_put(nlh, IFLA_INET6_TOKEN, obj.token.data(), obj.token.size()); - if (obj.addr_gen_mode.has_value()) + } + if (obj.addr_gen_mode.has_value()) { ynl_attr_put_u8(nlh, IFLA_INET6_ADDR_GEN_MODE, obj.addr_gen_mode.value()); - if (obj.ra_mtu.has_value()) + } + if (obj.ra_mtu.has_value()) { ynl_attr_put_u32(nlh, IFLA_INET6_RA_MTU, obj.ra_mtu.value()); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -1868,53 +1911,62 @@ int rt_link_ifla6_attrs_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == IFLA_INET6_FLAGS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->flags = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_INET6_CONF) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->conf.assign(data, data + len); } else if (type == IFLA_INET6_STATS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->stats.assign(data, data + len); } else if (type == IFLA_INET6_MCAST) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->mcast.assign(data, data + len); } else if (type == IFLA_INET6_CACHEINFO) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); unsigned int struct_sz = sizeof(struct ifla_cacheinfo); dst->cacheinfo.emplace(); memcpy(&*dst->cacheinfo, ynl_attr_data(attr), std::min(struct_sz, len)); } else if (type == IFLA_INET6_ICMP6STATS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->icmp6stats.assign(data, data + len); } else if (type == IFLA_INET6_TOKEN) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->token.assign(data, data + len); } else if (type == IFLA_INET6_ADDR_GEN_MODE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->addr_gen_mode = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_INET6_RA_MTU) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->ra_mtu = (__u32)ynl_attr_get_u32(attr); } } @@ -1928,10 +1980,12 @@ int rt_link_mctp_attrs_put(struct nlmsghdr *nlh, unsigned int attr_type, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - if (obj.net.has_value()) + if (obj.net.has_value()) { ynl_attr_put_u32(nlh, IFLA_MCTP_NET, obj.net.value()); - if (obj.phys_binding.has_value()) + } + if (obj.phys_binding.has_value()) { ynl_attr_put_u8(nlh, IFLA_MCTP_PHYS_BINDING, obj.phys_binding.value()); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -1947,12 +2001,14 @@ int rt_link_mctp_attrs_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == IFLA_MCTP_NET) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->net = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_MCTP_PHYS_BINDING) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->phys_binding = (__u8)ynl_attr_get_u8(attr); } } @@ -1972,12 +2028,14 @@ int rt_link_hw_s_info_one_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->request = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->used = (__u8)ynl_attr_get_u8(attr); } } @@ -1992,102 +2050,150 @@ int rt_link_linkinfo_bridge_attrs_put(struct nlmsghdr *nlh, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - if (obj.forward_delay.has_value()) + if (obj.forward_delay.has_value()) { ynl_attr_put_u32(nlh, IFLA_BR_FORWARD_DELAY, obj.forward_delay.value()); - if (obj.hello_time.has_value()) + } + if (obj.hello_time.has_value()) { ynl_attr_put_u32(nlh, IFLA_BR_HELLO_TIME, obj.hello_time.value()); - if (obj.max_age.has_value()) + } + if (obj.max_age.has_value()) { ynl_attr_put_u32(nlh, IFLA_BR_MAX_AGE, obj.max_age.value()); - if (obj.ageing_time.has_value()) + } + if (obj.ageing_time.has_value()) { ynl_attr_put_u32(nlh, IFLA_BR_AGEING_TIME, obj.ageing_time.value()); - if (obj.stp_state.has_value()) + } + if (obj.stp_state.has_value()) { ynl_attr_put_u32(nlh, IFLA_BR_STP_STATE, obj.stp_state.value()); - if (obj.priority.has_value()) + } + if (obj.priority.has_value()) { ynl_attr_put_u16(nlh, IFLA_BR_PRIORITY, obj.priority.value()); - if (obj.vlan_filtering.has_value()) + } + if (obj.vlan_filtering.has_value()) { ynl_attr_put_u8(nlh, IFLA_BR_VLAN_FILTERING, obj.vlan_filtering.value()); - if (obj.vlan_protocol.has_value()) + } + if (obj.vlan_protocol.has_value()) { ynl_attr_put_u16(nlh, IFLA_BR_VLAN_PROTOCOL, obj.vlan_protocol.value()); - if (obj.group_fwd_mask.has_value()) + } + if (obj.group_fwd_mask.has_value()) { ynl_attr_put_u16(nlh, IFLA_BR_GROUP_FWD_MASK, obj.group_fwd_mask.value()); - if (obj.root_id) + } + if (obj.root_id) { ynl_attr_put(nlh, IFLA_BR_ROOT_ID, &*obj.root_id, sizeof(struct ifla_bridge_id)); - if (obj.bridge_id) + } + if (obj.bridge_id) { ynl_attr_put(nlh, IFLA_BR_BRIDGE_ID, &*obj.bridge_id, sizeof(struct ifla_bridge_id)); - if (obj.root_port.has_value()) + } + if (obj.root_port.has_value()) { ynl_attr_put_u16(nlh, IFLA_BR_ROOT_PORT, obj.root_port.value()); - if (obj.root_path_cost.has_value()) + } + if (obj.root_path_cost.has_value()) { ynl_attr_put_u32(nlh, IFLA_BR_ROOT_PATH_COST, obj.root_path_cost.value()); - if (obj.topology_change.has_value()) + } + if (obj.topology_change.has_value()) { ynl_attr_put_u8(nlh, IFLA_BR_TOPOLOGY_CHANGE, obj.topology_change.value()); - if (obj.topology_change_detected.has_value()) + } + if (obj.topology_change_detected.has_value()) { ynl_attr_put_u8(nlh, IFLA_BR_TOPOLOGY_CHANGE_DETECTED, obj.topology_change_detected.value()); - if (obj.hello_timer.has_value()) + } + if (obj.hello_timer.has_value()) { ynl_attr_put_u64(nlh, IFLA_BR_HELLO_TIMER, obj.hello_timer.value()); - if (obj.tcn_timer.has_value()) + } + if (obj.tcn_timer.has_value()) { ynl_attr_put_u64(nlh, IFLA_BR_TCN_TIMER, obj.tcn_timer.value()); - if (obj.topology_change_timer.has_value()) + } + if (obj.topology_change_timer.has_value()) { ynl_attr_put_u64(nlh, IFLA_BR_TOPOLOGY_CHANGE_TIMER, obj.topology_change_timer.value()); - if (obj.gc_timer.has_value()) + } + if (obj.gc_timer.has_value()) { ynl_attr_put_u64(nlh, IFLA_BR_GC_TIMER, obj.gc_timer.value()); - if (obj.group_addr.size() > 0) + } + if (obj.group_addr.size() > 0) { ynl_attr_put(nlh, IFLA_BR_GROUP_ADDR, obj.group_addr.data(), obj.group_addr.size()); - if (obj.fdb_flush.size() > 0) + } + if (obj.fdb_flush.size() > 0) { ynl_attr_put(nlh, IFLA_BR_FDB_FLUSH, obj.fdb_flush.data(), obj.fdb_flush.size()); - if (obj.mcast_router.has_value()) + } + if (obj.mcast_router.has_value()) { ynl_attr_put_u8(nlh, IFLA_BR_MCAST_ROUTER, obj.mcast_router.value()); - if (obj.mcast_snooping.has_value()) + } + if (obj.mcast_snooping.has_value()) { ynl_attr_put_u8(nlh, IFLA_BR_MCAST_SNOOPING, obj.mcast_snooping.value()); - if (obj.mcast_query_use_ifaddr.has_value()) + } + if (obj.mcast_query_use_ifaddr.has_value()) { ynl_attr_put_u8(nlh, IFLA_BR_MCAST_QUERY_USE_IFADDR, obj.mcast_query_use_ifaddr.value()); - if (obj.mcast_querier.has_value()) + } + if (obj.mcast_querier.has_value()) { ynl_attr_put_u8(nlh, IFLA_BR_MCAST_QUERIER, obj.mcast_querier.value()); - if (obj.mcast_hash_elasticity.has_value()) + } + if (obj.mcast_hash_elasticity.has_value()) { ynl_attr_put_u32(nlh, IFLA_BR_MCAST_HASH_ELASTICITY, obj.mcast_hash_elasticity.value()); - if (obj.mcast_hash_max.has_value()) + } + if (obj.mcast_hash_max.has_value()) { ynl_attr_put_u32(nlh, IFLA_BR_MCAST_HASH_MAX, obj.mcast_hash_max.value()); - if (obj.mcast_last_member_cnt.has_value()) + } + if (obj.mcast_last_member_cnt.has_value()) { ynl_attr_put_u32(nlh, IFLA_BR_MCAST_LAST_MEMBER_CNT, obj.mcast_last_member_cnt.value()); - if (obj.mcast_startup_query_cnt.has_value()) + } + if (obj.mcast_startup_query_cnt.has_value()) { ynl_attr_put_u32(nlh, IFLA_BR_MCAST_STARTUP_QUERY_CNT, obj.mcast_startup_query_cnt.value()); - if (obj.mcast_last_member_intvl.has_value()) + } + if (obj.mcast_last_member_intvl.has_value()) { ynl_attr_put_u64(nlh, IFLA_BR_MCAST_LAST_MEMBER_INTVL, obj.mcast_last_member_intvl.value()); - if (obj.mcast_membership_intvl.has_value()) + } + if (obj.mcast_membership_intvl.has_value()) { ynl_attr_put_u64(nlh, IFLA_BR_MCAST_MEMBERSHIP_INTVL, obj.mcast_membership_intvl.value()); - if (obj.mcast_querier_intvl.has_value()) + } + if (obj.mcast_querier_intvl.has_value()) { ynl_attr_put_u64(nlh, IFLA_BR_MCAST_QUERIER_INTVL, obj.mcast_querier_intvl.value()); - if (obj.mcast_query_intvl.has_value()) + } + if (obj.mcast_query_intvl.has_value()) { ynl_attr_put_u64(nlh, IFLA_BR_MCAST_QUERY_INTVL, obj.mcast_query_intvl.value()); - if (obj.mcast_query_response_intvl.has_value()) + } + if (obj.mcast_query_response_intvl.has_value()) { ynl_attr_put_u64(nlh, IFLA_BR_MCAST_QUERY_RESPONSE_INTVL, obj.mcast_query_response_intvl.value()); - if (obj.mcast_startup_query_intvl.has_value()) + } + if (obj.mcast_startup_query_intvl.has_value()) { ynl_attr_put_u64(nlh, IFLA_BR_MCAST_STARTUP_QUERY_INTVL, obj.mcast_startup_query_intvl.value()); - if (obj.nf_call_iptables.has_value()) + } + if (obj.nf_call_iptables.has_value()) { ynl_attr_put_u8(nlh, IFLA_BR_NF_CALL_IPTABLES, obj.nf_call_iptables.value()); - if (obj.nf_call_ip6tables.has_value()) + } + if (obj.nf_call_ip6tables.has_value()) { ynl_attr_put_u8(nlh, IFLA_BR_NF_CALL_IP6TABLES, obj.nf_call_ip6tables.value()); - if (obj.nf_call_arptables.has_value()) + } + if (obj.nf_call_arptables.has_value()) { ynl_attr_put_u8(nlh, IFLA_BR_NF_CALL_ARPTABLES, obj.nf_call_arptables.value()); - if (obj.vlan_default_pvid.has_value()) + } + if (obj.vlan_default_pvid.has_value()) { ynl_attr_put_u16(nlh, IFLA_BR_VLAN_DEFAULT_PVID, obj.vlan_default_pvid.value()); - if (obj.vlan_stats_enabled.has_value()) + } + if (obj.vlan_stats_enabled.has_value()) { ynl_attr_put_u8(nlh, IFLA_BR_VLAN_STATS_ENABLED, obj.vlan_stats_enabled.value()); - if (obj.mcast_stats_enabled.has_value()) + } + if (obj.mcast_stats_enabled.has_value()) { ynl_attr_put_u8(nlh, IFLA_BR_MCAST_STATS_ENABLED, obj.mcast_stats_enabled.value()); - if (obj.mcast_igmp_version.has_value()) + } + if (obj.mcast_igmp_version.has_value()) { ynl_attr_put_u8(nlh, IFLA_BR_MCAST_IGMP_VERSION, obj.mcast_igmp_version.value()); - if (obj.mcast_mld_version.has_value()) + } + if (obj.mcast_mld_version.has_value()) { ynl_attr_put_u8(nlh, IFLA_BR_MCAST_MLD_VERSION, obj.mcast_mld_version.value()); - if (obj.vlan_stats_per_port.has_value()) + } + if (obj.vlan_stats_per_port.has_value()) { ynl_attr_put_u8(nlh, IFLA_BR_VLAN_STATS_PER_PORT, obj.vlan_stats_per_port.value()); - if (obj.multi_boolopt) + } + if (obj.multi_boolopt) { ynl_attr_put(nlh, IFLA_BR_MULTI_BOOLOPT, &*obj.multi_boolopt, sizeof(struct br_boolopt_multi)); - if (obj.mcast_querier_state.size() > 0) + } + if (obj.mcast_querier_state.size() > 0) { ynl_attr_put(nlh, IFLA_BR_MCAST_QUERIER_STATE, obj.mcast_querier_state.data(), obj.mcast_querier_state.size()); - if (obj.fdb_n_learned.has_value()) + } + if (obj.fdb_n_learned.has_value()) { ynl_attr_put_u32(nlh, IFLA_BR_FDB_N_LEARNED, obj.fdb_n_learned.value()); - if (obj.fdb_max_learned.has_value()) + } + if (obj.fdb_max_learned.has_value()) { ynl_attr_put_u32(nlh, IFLA_BR_FDB_MAX_LEARNED, obj.fdb_max_learned.value()); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -2103,211 +2209,259 @@ int rt_link_linkinfo_bridge_attrs_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == IFLA_BR_FORWARD_DELAY) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->forward_delay = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_BR_HELLO_TIME) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->hello_time = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_BR_MAX_AGE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->max_age = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_BR_AGEING_TIME) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->ageing_time = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_BR_STP_STATE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->stp_state = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_BR_PRIORITY) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->priority = (__u16)ynl_attr_get_u16(attr); } else if (type == IFLA_BR_VLAN_FILTERING) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->vlan_filtering = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_BR_VLAN_PROTOCOL) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->vlan_protocol = (__u16)ynl_attr_get_u16(attr); } else if (type == IFLA_BR_GROUP_FWD_MASK) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->group_fwd_mask = (__u16)ynl_attr_get_u16(attr); } else if (type == IFLA_BR_ROOT_ID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); unsigned int struct_sz = sizeof(struct ifla_bridge_id); dst->root_id.emplace(); memcpy(&*dst->root_id, ynl_attr_data(attr), std::min(struct_sz, len)); } else if (type == IFLA_BR_BRIDGE_ID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); unsigned int struct_sz = sizeof(struct ifla_bridge_id); dst->bridge_id.emplace(); memcpy(&*dst->bridge_id, ynl_attr_data(attr), std::min(struct_sz, len)); } else if (type == IFLA_BR_ROOT_PORT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->root_port = (__u16)ynl_attr_get_u16(attr); } else if (type == IFLA_BR_ROOT_PATH_COST) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->root_path_cost = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_BR_TOPOLOGY_CHANGE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->topology_change = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_BR_TOPOLOGY_CHANGE_DETECTED) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->topology_change_detected = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_BR_HELLO_TIMER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->hello_timer = (__u64)ynl_attr_get_u64(attr); } else if (type == IFLA_BR_TCN_TIMER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->tcn_timer = (__u64)ynl_attr_get_u64(attr); } else if (type == IFLA_BR_TOPOLOGY_CHANGE_TIMER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->topology_change_timer = (__u64)ynl_attr_get_u64(attr); } else if (type == IFLA_BR_GC_TIMER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->gc_timer = (__u64)ynl_attr_get_u64(attr); } else if (type == IFLA_BR_GROUP_ADDR) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->group_addr.assign(data, data + len); } else if (type == IFLA_BR_FDB_FLUSH) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->fdb_flush.assign(data, data + len); } else if (type == IFLA_BR_MCAST_ROUTER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->mcast_router = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_BR_MCAST_SNOOPING) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->mcast_snooping = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_BR_MCAST_QUERY_USE_IFADDR) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->mcast_query_use_ifaddr = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_BR_MCAST_QUERIER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->mcast_querier = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_BR_MCAST_HASH_ELASTICITY) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->mcast_hash_elasticity = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_BR_MCAST_HASH_MAX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->mcast_hash_max = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_BR_MCAST_LAST_MEMBER_CNT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->mcast_last_member_cnt = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_BR_MCAST_STARTUP_QUERY_CNT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->mcast_startup_query_cnt = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_BR_MCAST_LAST_MEMBER_INTVL) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->mcast_last_member_intvl = (__u64)ynl_attr_get_u64(attr); } else if (type == IFLA_BR_MCAST_MEMBERSHIP_INTVL) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->mcast_membership_intvl = (__u64)ynl_attr_get_u64(attr); } else if (type == IFLA_BR_MCAST_QUERIER_INTVL) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->mcast_querier_intvl = (__u64)ynl_attr_get_u64(attr); } else if (type == IFLA_BR_MCAST_QUERY_INTVL) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->mcast_query_intvl = (__u64)ynl_attr_get_u64(attr); } else if (type == IFLA_BR_MCAST_QUERY_RESPONSE_INTVL) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->mcast_query_response_intvl = (__u64)ynl_attr_get_u64(attr); } else if (type == IFLA_BR_MCAST_STARTUP_QUERY_INTVL) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->mcast_startup_query_intvl = (__u64)ynl_attr_get_u64(attr); } else if (type == IFLA_BR_NF_CALL_IPTABLES) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->nf_call_iptables = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_BR_NF_CALL_IP6TABLES) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->nf_call_ip6tables = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_BR_NF_CALL_ARPTABLES) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->nf_call_arptables = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_BR_VLAN_DEFAULT_PVID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->vlan_default_pvid = (__u16)ynl_attr_get_u16(attr); } else if (type == IFLA_BR_VLAN_STATS_ENABLED) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->vlan_stats_enabled = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_BR_MCAST_STATS_ENABLED) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->mcast_stats_enabled = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_BR_MCAST_IGMP_VERSION) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->mcast_igmp_version = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_BR_MCAST_MLD_VERSION) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->mcast_mld_version = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_BR_VLAN_STATS_PER_PORT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->vlan_stats_per_port = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_BR_MULTI_BOOLOPT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); unsigned int struct_sz = sizeof(struct br_boolopt_multi); dst->multi_boolopt.emplace(); memcpy(&*dst->multi_boolopt, ynl_attr_data(attr), std::min(struct_sz, len)); } else if (type == IFLA_BR_MCAST_QUERIER_STATE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->mcast_querier_state.assign(data, data + len); } else if (type == IFLA_BR_FDB_N_LEARNED) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->fdb_n_learned = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_BR_FDB_MAX_LEARNED) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->fdb_max_learned = (__u32)ynl_attr_get_u32(attr); } } @@ -2322,54 +2476,78 @@ int rt_link_linkinfo_gre_attrs_put(struct nlmsghdr *nlh, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - if (obj.link.has_value()) + if (obj.link.has_value()) { ynl_attr_put_u32(nlh, IFLA_GRE_LINK, obj.link.value()); - if (obj.iflags.has_value()) + } + if (obj.iflags.has_value()) { ynl_attr_put_u16(nlh, IFLA_GRE_IFLAGS, obj.iflags.value()); - if (obj.oflags.has_value()) + } + if (obj.oflags.has_value()) { ynl_attr_put_u16(nlh, IFLA_GRE_OFLAGS, obj.oflags.value()); - if (obj.ikey.has_value()) + } + if (obj.ikey.has_value()) { ynl_attr_put_u32(nlh, IFLA_GRE_IKEY, obj.ikey.value()); - if (obj.okey.has_value()) + } + if (obj.okey.has_value()) { ynl_attr_put_u32(nlh, IFLA_GRE_OKEY, obj.okey.value()); - if (obj.local.size() > 0) + } + if (obj.local.size() > 0) { ynl_attr_put(nlh, IFLA_GRE_LOCAL, obj.local.data(), obj.local.size()); - if (obj.remote.size() > 0) + } + if (obj.remote.size() > 0) { ynl_attr_put(nlh, IFLA_GRE_REMOTE, obj.remote.data(), obj.remote.size()); - if (obj.ttl.has_value()) + } + if (obj.ttl.has_value()) { ynl_attr_put_u8(nlh, IFLA_GRE_TTL, obj.ttl.value()); - if (obj.tos.has_value()) + } + if (obj.tos.has_value()) { ynl_attr_put_u8(nlh, IFLA_GRE_TOS, obj.tos.value()); - if (obj.pmtudisc.has_value()) + } + if (obj.pmtudisc.has_value()) { ynl_attr_put_u8(nlh, IFLA_GRE_PMTUDISC, obj.pmtudisc.value()); - if (obj.encap_limit.has_value()) + } + if (obj.encap_limit.has_value()) { ynl_attr_put_u8(nlh, IFLA_GRE_ENCAP_LIMIT, obj.encap_limit.value()); - if (obj.flowinfo.has_value()) + } + if (obj.flowinfo.has_value()) { ynl_attr_put_u32(nlh, IFLA_GRE_FLOWINFO, obj.flowinfo.value()); - if (obj.flags.has_value()) + } + if (obj.flags.has_value()) { ynl_attr_put_u32(nlh, IFLA_GRE_FLAGS, obj.flags.value()); - if (obj.encap_type.has_value()) + } + if (obj.encap_type.has_value()) { ynl_attr_put_u16(nlh, IFLA_GRE_ENCAP_TYPE, obj.encap_type.value()); - if (obj.encap_flags.has_value()) + } + if (obj.encap_flags.has_value()) { ynl_attr_put_u16(nlh, IFLA_GRE_ENCAP_FLAGS, obj.encap_flags.value()); - if (obj.encap_sport.has_value()) + } + if (obj.encap_sport.has_value()) { ynl_attr_put_u16(nlh, IFLA_GRE_ENCAP_SPORT, obj.encap_sport.value()); - if (obj.encap_dport.has_value()) + } + if (obj.encap_dport.has_value()) { ynl_attr_put_u16(nlh, IFLA_GRE_ENCAP_DPORT, obj.encap_dport.value()); - if (obj.collect_metadata) + } + if (obj.collect_metadata) { ynl_attr_put(nlh, IFLA_GRE_COLLECT_METADATA, NULL, 0); - if (obj.ignore_df.has_value()) + } + if (obj.ignore_df.has_value()) { ynl_attr_put_u8(nlh, IFLA_GRE_IGNORE_DF, obj.ignore_df.value()); - if (obj.fwmark.has_value()) + } + if (obj.fwmark.has_value()) { ynl_attr_put_u32(nlh, IFLA_GRE_FWMARK, obj.fwmark.value()); - if (obj.erspan_index.has_value()) + } + if (obj.erspan_index.has_value()) { ynl_attr_put_u32(nlh, IFLA_GRE_ERSPAN_INDEX, obj.erspan_index.value()); - if (obj.erspan_ver.has_value()) + } + if (obj.erspan_ver.has_value()) { ynl_attr_put_u8(nlh, IFLA_GRE_ERSPAN_VER, obj.erspan_ver.value()); - if (obj.erspan_dir.has_value()) + } + if (obj.erspan_dir.has_value()) { ynl_attr_put_u8(nlh, IFLA_GRE_ERSPAN_DIR, obj.erspan_dir.value()); - if (obj.erspan_hwid.has_value()) + } + if (obj.erspan_hwid.has_value()) { ynl_attr_put_u16(nlh, IFLA_GRE_ERSPAN_HWID, obj.erspan_hwid.value()); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -2385,103 +2563,127 @@ int rt_link_linkinfo_gre_attrs_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == IFLA_GRE_LINK) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->link = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_GRE_IFLAGS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->iflags = (__u16)ynl_attr_get_u16(attr); } else if (type == IFLA_GRE_OFLAGS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->oflags = (__u16)ynl_attr_get_u16(attr); } else if (type == IFLA_GRE_IKEY) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->ikey = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_GRE_OKEY) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->okey = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_GRE_LOCAL) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->local.assign(data, data + len); } else if (type == IFLA_GRE_REMOTE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->remote.assign(data, data + len); } else if (type == IFLA_GRE_TTL) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->ttl = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_GRE_TOS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->tos = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_GRE_PMTUDISC) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->pmtudisc = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_GRE_ENCAP_LIMIT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->encap_limit = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_GRE_FLOWINFO) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->flowinfo = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_GRE_FLAGS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->flags = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_GRE_ENCAP_TYPE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->encap_type = (__u16)ynl_attr_get_u16(attr); } else if (type == IFLA_GRE_ENCAP_FLAGS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->encap_flags = (__u16)ynl_attr_get_u16(attr); } else if (type == IFLA_GRE_ENCAP_SPORT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->encap_sport = (__u16)ynl_attr_get_u16(attr); } else if (type == IFLA_GRE_ENCAP_DPORT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->encap_dport = (__u16)ynl_attr_get_u16(attr); } else if (type == IFLA_GRE_COLLECT_METADATA) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == IFLA_GRE_IGNORE_DF) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->ignore_df = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_GRE_FWMARK) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->fwmark = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_GRE_ERSPAN_INDEX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->erspan_index = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_GRE_ERSPAN_VER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->erspan_ver = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_GRE_ERSPAN_DIR) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->erspan_dir = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_GRE_ERSPAN_HWID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->erspan_hwid = (__u16)ynl_attr_get_u16(attr); } } @@ -2496,48 +2698,69 @@ int rt_link_linkinfo_gre6_attrs_put(struct nlmsghdr *nlh, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - if (obj.link.has_value()) + if (obj.link.has_value()) { ynl_attr_put_u32(nlh, IFLA_GRE_LINK, obj.link.value()); - if (obj.iflags.has_value()) + } + if (obj.iflags.has_value()) { ynl_attr_put_u16(nlh, IFLA_GRE_IFLAGS, obj.iflags.value()); - if (obj.oflags.has_value()) + } + if (obj.oflags.has_value()) { ynl_attr_put_u16(nlh, IFLA_GRE_OFLAGS, obj.oflags.value()); - if (obj.ikey.has_value()) + } + if (obj.ikey.has_value()) { ynl_attr_put_u32(nlh, IFLA_GRE_IKEY, obj.ikey.value()); - if (obj.okey.has_value()) + } + if (obj.okey.has_value()) { ynl_attr_put_u32(nlh, IFLA_GRE_OKEY, obj.okey.value()); - if (obj.local.size() > 0) + } + if (obj.local.size() > 0) { ynl_attr_put(nlh, IFLA_GRE_LOCAL, obj.local.data(), obj.local.size()); - if (obj.remote.size() > 0) + } + if (obj.remote.size() > 0) { ynl_attr_put(nlh, IFLA_GRE_REMOTE, obj.remote.data(), obj.remote.size()); - if (obj.ttl.has_value()) + } + if (obj.ttl.has_value()) { ynl_attr_put_u8(nlh, IFLA_GRE_TTL, obj.ttl.value()); - if (obj.encap_limit.has_value()) + } + if (obj.encap_limit.has_value()) { ynl_attr_put_u8(nlh, IFLA_GRE_ENCAP_LIMIT, obj.encap_limit.value()); - if (obj.flowinfo.has_value()) + } + if (obj.flowinfo.has_value()) { ynl_attr_put_u32(nlh, IFLA_GRE_FLOWINFO, obj.flowinfo.value()); - if (obj.flags.has_value()) + } + if (obj.flags.has_value()) { ynl_attr_put_u32(nlh, IFLA_GRE_FLAGS, obj.flags.value()); - if (obj.encap_type.has_value()) + } + if (obj.encap_type.has_value()) { ynl_attr_put_u16(nlh, IFLA_GRE_ENCAP_TYPE, obj.encap_type.value()); - if (obj.encap_flags.has_value()) + } + if (obj.encap_flags.has_value()) { ynl_attr_put_u16(nlh, IFLA_GRE_ENCAP_FLAGS, obj.encap_flags.value()); - if (obj.encap_sport.has_value()) + } + if (obj.encap_sport.has_value()) { ynl_attr_put_u16(nlh, IFLA_GRE_ENCAP_SPORT, obj.encap_sport.value()); - if (obj.encap_dport.has_value()) + } + if (obj.encap_dport.has_value()) { ynl_attr_put_u16(nlh, IFLA_GRE_ENCAP_DPORT, obj.encap_dport.value()); - if (obj.collect_metadata) + } + if (obj.collect_metadata) { ynl_attr_put(nlh, IFLA_GRE_COLLECT_METADATA, NULL, 0); - if (obj.fwmark.has_value()) + } + if (obj.fwmark.has_value()) { ynl_attr_put_u32(nlh, IFLA_GRE_FWMARK, obj.fwmark.value()); - if (obj.erspan_index.has_value()) + } + if (obj.erspan_index.has_value()) { ynl_attr_put_u32(nlh, IFLA_GRE_ERSPAN_INDEX, obj.erspan_index.value()); - if (obj.erspan_ver.has_value()) + } + if (obj.erspan_ver.has_value()) { ynl_attr_put_u8(nlh, IFLA_GRE_ERSPAN_VER, obj.erspan_ver.value()); - if (obj.erspan_dir.has_value()) + } + if (obj.erspan_dir.has_value()) { ynl_attr_put_u8(nlh, IFLA_GRE_ERSPAN_DIR, obj.erspan_dir.value()); - if (obj.erspan_hwid.has_value()) + } + if (obj.erspan_hwid.has_value()) { ynl_attr_put_u16(nlh, IFLA_GRE_ERSPAN_HWID, obj.erspan_hwid.value()); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -2553,91 +2776,112 @@ int rt_link_linkinfo_gre6_attrs_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == IFLA_GRE_LINK) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->link = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_GRE_IFLAGS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->iflags = (__u16)ynl_attr_get_u16(attr); } else if (type == IFLA_GRE_OFLAGS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->oflags = (__u16)ynl_attr_get_u16(attr); } else if (type == IFLA_GRE_IKEY) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->ikey = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_GRE_OKEY) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->okey = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_GRE_LOCAL) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->local.assign(data, data + len); } else if (type == IFLA_GRE_REMOTE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->remote.assign(data, data + len); } else if (type == IFLA_GRE_TTL) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->ttl = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_GRE_ENCAP_LIMIT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->encap_limit = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_GRE_FLOWINFO) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->flowinfo = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_GRE_FLAGS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->flags = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_GRE_ENCAP_TYPE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->encap_type = (__u16)ynl_attr_get_u16(attr); } else if (type == IFLA_GRE_ENCAP_FLAGS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->encap_flags = (__u16)ynl_attr_get_u16(attr); } else if (type == IFLA_GRE_ENCAP_SPORT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->encap_sport = (__u16)ynl_attr_get_u16(attr); } else if (type == IFLA_GRE_ENCAP_DPORT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->encap_dport = (__u16)ynl_attr_get_u16(attr); } else if (type == IFLA_GRE_COLLECT_METADATA) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == IFLA_GRE_FWMARK) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->fwmark = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_GRE_ERSPAN_INDEX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->erspan_index = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_GRE_ERSPAN_VER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->erspan_ver = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_GRE_ERSPAN_DIR) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->erspan_dir = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_GRE_ERSPAN_HWID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->erspan_hwid = (__u16)ynl_attr_get_u16(attr); } } @@ -2652,36 +2896,51 @@ int rt_link_linkinfo_geneve_attrs_put(struct nlmsghdr *nlh, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - if (obj.id.has_value()) + if (obj.id.has_value()) { ynl_attr_put_u32(nlh, IFLA_GENEVE_ID, obj.id.value()); - if (obj.remote.size() > 0) + } + if (obj.remote.size() > 0) { ynl_attr_put(nlh, IFLA_GENEVE_REMOTE, obj.remote.data(), obj.remote.size()); - if (obj.ttl.has_value()) + } + if (obj.ttl.has_value()) { ynl_attr_put_u8(nlh, IFLA_GENEVE_TTL, obj.ttl.value()); - if (obj.tos.has_value()) + } + if (obj.tos.has_value()) { ynl_attr_put_u8(nlh, IFLA_GENEVE_TOS, obj.tos.value()); - if (obj.port.has_value()) + } + if (obj.port.has_value()) { ynl_attr_put_u16(nlh, IFLA_GENEVE_PORT, obj.port.value()); - if (obj.collect_metadata) + } + if (obj.collect_metadata) { ynl_attr_put(nlh, IFLA_GENEVE_COLLECT_METADATA, NULL, 0); - if (obj.remote6.size() > 0) + } + if (obj.remote6.size() > 0) { ynl_attr_put(nlh, IFLA_GENEVE_REMOTE6, obj.remote6.data(), obj.remote6.size()); - if (obj.udp_csum.has_value()) + } + if (obj.udp_csum.has_value()) { ynl_attr_put_u8(nlh, IFLA_GENEVE_UDP_CSUM, obj.udp_csum.value()); - if (obj.udp_zero_csum6_tx.has_value()) + } + if (obj.udp_zero_csum6_tx.has_value()) { ynl_attr_put_u8(nlh, IFLA_GENEVE_UDP_ZERO_CSUM6_TX, obj.udp_zero_csum6_tx.value()); - if (obj.udp_zero_csum6_rx.has_value()) + } + if (obj.udp_zero_csum6_rx.has_value()) { ynl_attr_put_u8(nlh, IFLA_GENEVE_UDP_ZERO_CSUM6_RX, obj.udp_zero_csum6_rx.value()); - if (obj.label.has_value()) + } + if (obj.label.has_value()) { ynl_attr_put_u32(nlh, IFLA_GENEVE_LABEL, obj.label.value()); - if (obj.ttl_inherit.has_value()) + } + if (obj.ttl_inherit.has_value()) { ynl_attr_put_u8(nlh, IFLA_GENEVE_TTL_INHERIT, obj.ttl_inherit.value()); - if (obj.df.has_value()) + } + if (obj.df.has_value()) { ynl_attr_put_u8(nlh, IFLA_GENEVE_DF, obj.df.value()); - if (obj.inner_proto_inherit) + } + if (obj.inner_proto_inherit) { ynl_attr_put(nlh, IFLA_GENEVE_INNER_PROTO_INHERIT, NULL, 0); - if (obj.port_range) + } + if (obj.port_range) { ynl_attr_put(nlh, IFLA_GENEVE_PORT_RANGE, &*obj.port_range, sizeof(struct ifla_geneve_port_range)); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -2697,66 +2956,81 @@ int rt_link_linkinfo_geneve_attrs_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == IFLA_GENEVE_ID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->id = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_GENEVE_REMOTE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->remote.assign(data, data + len); } else if (type == IFLA_GENEVE_TTL) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->ttl = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_GENEVE_TOS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->tos = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_GENEVE_PORT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->port = (__u16)ynl_attr_get_u16(attr); } else if (type == IFLA_GENEVE_COLLECT_METADATA) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == IFLA_GENEVE_REMOTE6) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->remote6.assign(data, data + len); } else if (type == IFLA_GENEVE_UDP_CSUM) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->udp_csum = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_GENEVE_UDP_ZERO_CSUM6_TX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->udp_zero_csum6_tx = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_GENEVE_UDP_ZERO_CSUM6_RX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->udp_zero_csum6_rx = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_GENEVE_LABEL) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->label = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_GENEVE_TTL_INHERIT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->ttl_inherit = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_GENEVE_DF) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->df = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_GENEVE_INNER_PROTO_INHERIT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == IFLA_GENEVE_PORT_RANGE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); unsigned int struct_sz = sizeof(struct ifla_geneve_port_range); dst->port_range.emplace(); @@ -2774,46 +3048,66 @@ int rt_link_linkinfo_iptun_attrs_put(struct nlmsghdr *nlh, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - if (obj.link.has_value()) + if (obj.link.has_value()) { ynl_attr_put_u32(nlh, IFLA_IPTUN_LINK, obj.link.value()); - if (obj.local.size() > 0) + } + if (obj.local.size() > 0) { ynl_attr_put(nlh, IFLA_IPTUN_LOCAL, obj.local.data(), obj.local.size()); - if (obj.remote.size() > 0) + } + if (obj.remote.size() > 0) { ynl_attr_put(nlh, IFLA_IPTUN_REMOTE, obj.remote.data(), obj.remote.size()); - if (obj.ttl.has_value()) + } + if (obj.ttl.has_value()) { ynl_attr_put_u8(nlh, IFLA_IPTUN_TTL, obj.ttl.value()); - if (obj.tos.has_value()) + } + if (obj.tos.has_value()) { ynl_attr_put_u8(nlh, IFLA_IPTUN_TOS, obj.tos.value()); - if (obj.encap_limit.has_value()) + } + if (obj.encap_limit.has_value()) { ynl_attr_put_u8(nlh, IFLA_IPTUN_ENCAP_LIMIT, obj.encap_limit.value()); - if (obj.flowinfo.has_value()) + } + if (obj.flowinfo.has_value()) { ynl_attr_put_u32(nlh, IFLA_IPTUN_FLOWINFO, obj.flowinfo.value()); - if (obj.flags.has_value()) + } + if (obj.flags.has_value()) { ynl_attr_put_u16(nlh, IFLA_IPTUN_FLAGS, obj.flags.value()); - if (obj.proto.has_value()) + } + if (obj.proto.has_value()) { ynl_attr_put_u8(nlh, IFLA_IPTUN_PROTO, obj.proto.value()); - if (obj.pmtudisc.has_value()) + } + if (obj.pmtudisc.has_value()) { ynl_attr_put_u8(nlh, IFLA_IPTUN_PMTUDISC, obj.pmtudisc.value()); - if (obj._6rd_prefix.size() > 0) + } + if (obj._6rd_prefix.size() > 0) { ynl_attr_put(nlh, IFLA_IPTUN_6RD_PREFIX, obj._6rd_prefix.data(), obj._6rd_prefix.size()); - if (obj._6rd_relay_prefix.size() > 0) + } + if (obj._6rd_relay_prefix.size() > 0) { ynl_attr_put(nlh, IFLA_IPTUN_6RD_RELAY_PREFIX, obj._6rd_relay_prefix.data(), obj._6rd_relay_prefix.size()); - if (obj._6rd_prefixlen.has_value()) + } + if (obj._6rd_prefixlen.has_value()) { ynl_attr_put_u16(nlh, IFLA_IPTUN_6RD_PREFIXLEN, obj._6rd_prefixlen.value()); - if (obj._6rd_relay_prefixlen.has_value()) + } + if (obj._6rd_relay_prefixlen.has_value()) { ynl_attr_put_u16(nlh, IFLA_IPTUN_6RD_RELAY_PREFIXLEN, obj._6rd_relay_prefixlen.value()); - if (obj.encap_type.has_value()) + } + if (obj.encap_type.has_value()) { ynl_attr_put_u16(nlh, IFLA_IPTUN_ENCAP_TYPE, obj.encap_type.value()); - if (obj.encap_flags.has_value()) + } + if (obj.encap_flags.has_value()) { ynl_attr_put_u16(nlh, IFLA_IPTUN_ENCAP_FLAGS, obj.encap_flags.value()); - if (obj.encap_sport.has_value()) + } + if (obj.encap_sport.has_value()) { ynl_attr_put_u16(nlh, IFLA_IPTUN_ENCAP_SPORT, obj.encap_sport.value()); - if (obj.encap_dport.has_value()) + } + if (obj.encap_dport.has_value()) { ynl_attr_put_u16(nlh, IFLA_IPTUN_ENCAP_DPORT, obj.encap_dport.value()); - if (obj.collect_metadata) + } + if (obj.collect_metadata) { ynl_attr_put(nlh, IFLA_IPTUN_COLLECT_METADATA, NULL, 0); - if (obj.fwmark.has_value()) + } + if (obj.fwmark.has_value()) { ynl_attr_put_u32(nlh, IFLA_IPTUN_FWMARK, obj.fwmark.value()); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -2829,91 +3123,111 @@ int rt_link_linkinfo_iptun_attrs_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == IFLA_IPTUN_LINK) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->link = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_IPTUN_LOCAL) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->local.assign(data, data + len); } else if (type == IFLA_IPTUN_REMOTE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->remote.assign(data, data + len); } else if (type == IFLA_IPTUN_TTL) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->ttl = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_IPTUN_TOS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->tos = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_IPTUN_ENCAP_LIMIT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->encap_limit = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_IPTUN_FLOWINFO) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->flowinfo = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_IPTUN_FLAGS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->flags = (__u16)ynl_attr_get_u16(attr); } else if (type == IFLA_IPTUN_PROTO) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->proto = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_IPTUN_PMTUDISC) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->pmtudisc = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_IPTUN_6RD_PREFIX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->_6rd_prefix.assign(data, data + len); } else if (type == IFLA_IPTUN_6RD_RELAY_PREFIX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->_6rd_relay_prefix.assign(data, data + len); } else if (type == IFLA_IPTUN_6RD_PREFIXLEN) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->_6rd_prefixlen = (__u16)ynl_attr_get_u16(attr); } else if (type == IFLA_IPTUN_6RD_RELAY_PREFIXLEN) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->_6rd_relay_prefixlen = (__u16)ynl_attr_get_u16(attr); } else if (type == IFLA_IPTUN_ENCAP_TYPE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->encap_type = (__u16)ynl_attr_get_u16(attr); } else if (type == IFLA_IPTUN_ENCAP_FLAGS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->encap_flags = (__u16)ynl_attr_get_u16(attr); } else if (type == IFLA_IPTUN_ENCAP_SPORT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->encap_sport = (__u16)ynl_attr_get_u16(attr); } else if (type == IFLA_IPTUN_ENCAP_DPORT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->encap_dport = (__u16)ynl_attr_get_u16(attr); } else if (type == IFLA_IPTUN_COLLECT_METADATA) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == IFLA_IPTUN_FWMARK) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->fwmark = (__u32)ynl_attr_get_u32(attr); } } @@ -2928,34 +3242,48 @@ int rt_link_linkinfo_ip6tnl_attrs_put(struct nlmsghdr *nlh, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - if (obj.link.has_value()) + if (obj.link.has_value()) { ynl_attr_put_u32(nlh, IFLA_IPTUN_LINK, obj.link.value()); - if (obj.local.size() > 0) + } + if (obj.local.size() > 0) { ynl_attr_put(nlh, IFLA_IPTUN_LOCAL, obj.local.data(), obj.local.size()); - if (obj.remote.size() > 0) + } + if (obj.remote.size() > 0) { ynl_attr_put(nlh, IFLA_IPTUN_REMOTE, obj.remote.data(), obj.remote.size()); - if (obj.ttl.has_value()) + } + if (obj.ttl.has_value()) { ynl_attr_put_u8(nlh, IFLA_IPTUN_TTL, obj.ttl.value()); - if (obj.encap_limit.has_value()) + } + if (obj.encap_limit.has_value()) { ynl_attr_put_u8(nlh, IFLA_IPTUN_ENCAP_LIMIT, obj.encap_limit.value()); - if (obj.flowinfo.has_value()) + } + if (obj.flowinfo.has_value()) { ynl_attr_put_u32(nlh, IFLA_IPTUN_FLOWINFO, obj.flowinfo.value()); - if (obj.flags.has_value()) + } + if (obj.flags.has_value()) { ynl_attr_put_u16(nlh, IFLA_IPTUN_FLAGS, obj.flags.value()); - if (obj.proto.has_value()) + } + if (obj.proto.has_value()) { ynl_attr_put_u8(nlh, IFLA_IPTUN_PROTO, obj.proto.value()); - if (obj.encap_type.has_value()) + } + if (obj.encap_type.has_value()) { ynl_attr_put_u16(nlh, IFLA_IPTUN_ENCAP_TYPE, obj.encap_type.value()); - if (obj.encap_flags.has_value()) + } + if (obj.encap_flags.has_value()) { ynl_attr_put_u16(nlh, IFLA_IPTUN_ENCAP_FLAGS, obj.encap_flags.value()); - if (obj.encap_sport.has_value()) + } + if (obj.encap_sport.has_value()) { ynl_attr_put_u16(nlh, IFLA_IPTUN_ENCAP_SPORT, obj.encap_sport.value()); - if (obj.encap_dport.has_value()) + } + if (obj.encap_dport.has_value()) { ynl_attr_put_u16(nlh, IFLA_IPTUN_ENCAP_DPORT, obj.encap_dport.value()); - if (obj.collect_metadata) + } + if (obj.collect_metadata) { ynl_attr_put(nlh, IFLA_IPTUN_COLLECT_METADATA, NULL, 0); - if (obj.fwmark.has_value()) + } + if (obj.fwmark.has_value()) { ynl_attr_put_u32(nlh, IFLA_IPTUN_FWMARK, obj.fwmark.value()); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -2971,63 +3299,77 @@ int rt_link_linkinfo_ip6tnl_attrs_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == IFLA_IPTUN_LINK) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->link = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_IPTUN_LOCAL) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->local.assign(data, data + len); } else if (type == IFLA_IPTUN_REMOTE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->remote.assign(data, data + len); } else if (type == IFLA_IPTUN_TTL) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->ttl = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_IPTUN_ENCAP_LIMIT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->encap_limit = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_IPTUN_FLOWINFO) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->flowinfo = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_IPTUN_FLAGS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->flags = (__u16)ynl_attr_get_u16(attr); } else if (type == IFLA_IPTUN_PROTO) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->proto = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_IPTUN_ENCAP_TYPE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->encap_type = (__u16)ynl_attr_get_u16(attr); } else if (type == IFLA_IPTUN_ENCAP_FLAGS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->encap_flags = (__u16)ynl_attr_get_u16(attr); } else if (type == IFLA_IPTUN_ENCAP_SPORT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->encap_sport = (__u16)ynl_attr_get_u16(attr); } else if (type == IFLA_IPTUN_ENCAP_DPORT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->encap_dport = (__u16)ynl_attr_get_u16(attr); } else if (type == IFLA_IPTUN_COLLECT_METADATA) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == IFLA_IPTUN_FWMARK) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->fwmark = (__u32)ynl_attr_get_u32(attr); } } @@ -3042,24 +3384,33 @@ int rt_link_linkinfo_tun_attrs_put(struct nlmsghdr *nlh, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - if (obj.owner.has_value()) + if (obj.owner.has_value()) { ynl_attr_put_u32(nlh, IFLA_TUN_OWNER, obj.owner.value()); - if (obj.group.has_value()) + } + if (obj.group.has_value()) { ynl_attr_put_u32(nlh, IFLA_TUN_GROUP, obj.group.value()); - if (obj.type.has_value()) + } + if (obj.type.has_value()) { ynl_attr_put_u8(nlh, IFLA_TUN_TYPE, obj.type.value()); - if (obj.pi.has_value()) + } + if (obj.pi.has_value()) { ynl_attr_put_u8(nlh, IFLA_TUN_PI, obj.pi.value()); - if (obj.vnet_hdr.has_value()) + } + if (obj.vnet_hdr.has_value()) { ynl_attr_put_u8(nlh, IFLA_TUN_VNET_HDR, obj.vnet_hdr.value()); - if (obj.persist.has_value()) + } + if (obj.persist.has_value()) { ynl_attr_put_u8(nlh, IFLA_TUN_PERSIST, obj.persist.value()); - if (obj.multi_queue.has_value()) + } + if (obj.multi_queue.has_value()) { ynl_attr_put_u8(nlh, IFLA_TUN_MULTI_QUEUE, obj.multi_queue.value()); - if (obj.num_queues.has_value()) + } + if (obj.num_queues.has_value()) { ynl_attr_put_u32(nlh, IFLA_TUN_NUM_QUEUES, obj.num_queues.value()); - if (obj.num_disabled_queues.has_value()) + } + if (obj.num_disabled_queues.has_value()) { ynl_attr_put_u32(nlh, IFLA_TUN_NUM_DISABLED_QUEUES, obj.num_disabled_queues.value()); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -3075,40 +3426,49 @@ int rt_link_linkinfo_tun_attrs_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == IFLA_TUN_OWNER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->owner = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_TUN_GROUP) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->group = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_TUN_TYPE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->type = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_TUN_PI) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->pi = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_TUN_VNET_HDR) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->vnet_hdr = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_TUN_PERSIST) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->persist = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_TUN_MULTI_QUEUE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->multi_queue = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_TUN_NUM_QUEUES) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->num_queues = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_TUN_NUM_DISABLED_QUEUES) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->num_disabled_queues = (__u32)ynl_attr_get_u32(attr); } } @@ -3123,8 +3483,9 @@ int rt_link_linkinfo_vrf_attrs_put(struct nlmsghdr *nlh, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - if (obj.table.has_value()) + if (obj.table.has_value()) { ynl_attr_put_u32(nlh, IFLA_VRF_TABLE, obj.table.value()); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -3140,8 +3501,9 @@ int rt_link_linkinfo_vrf_attrs_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == IFLA_VRF_TABLE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->table = (__u32)ynl_attr_get_u32(attr); } } @@ -3156,18 +3518,24 @@ int rt_link_linkinfo_vti_attrs_put(struct nlmsghdr *nlh, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - if (obj.link.has_value()) + if (obj.link.has_value()) { ynl_attr_put_u32(nlh, IFLA_VTI_LINK, obj.link.value()); - if (obj.ikey.has_value()) + } + if (obj.ikey.has_value()) { ynl_attr_put_u32(nlh, IFLA_VTI_IKEY, obj.ikey.value()); - if (obj.okey.has_value()) + } + if (obj.okey.has_value()) { ynl_attr_put_u32(nlh, IFLA_VTI_OKEY, obj.okey.value()); - if (obj.local.size() > 0) + } + if (obj.local.size() > 0) { ynl_attr_put(nlh, IFLA_VTI_LOCAL, obj.local.data(), obj.local.size()); - if (obj.remote.size() > 0) + } + if (obj.remote.size() > 0) { ynl_attr_put(nlh, IFLA_VTI_REMOTE, obj.remote.data(), obj.remote.size()); - if (obj.fwmark.has_value()) + } + if (obj.fwmark.has_value()) { ynl_attr_put_u32(nlh, IFLA_VTI_FWMARK, obj.fwmark.value()); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -3183,32 +3551,38 @@ int rt_link_linkinfo_vti_attrs_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == IFLA_VTI_LINK) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->link = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_VTI_IKEY) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->ikey = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_VTI_OKEY) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->okey = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_VTI_LOCAL) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->local.assign(data, data + len); } else if (type == IFLA_VTI_REMOTE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->remote.assign(data, data + len); } else if (type == IFLA_VTI_FWMARK) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->fwmark = (__u32)ynl_attr_get_u32(attr); } } @@ -3223,18 +3597,24 @@ int rt_link_linkinfo_vti6_attrs_put(struct nlmsghdr *nlh, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - if (obj.link.has_value()) + if (obj.link.has_value()) { ynl_attr_put_u32(nlh, IFLA_VTI_LINK, obj.link.value()); - if (obj.ikey.has_value()) + } + if (obj.ikey.has_value()) { ynl_attr_put_u32(nlh, IFLA_VTI_IKEY, obj.ikey.value()); - if (obj.okey.has_value()) + } + if (obj.okey.has_value()) { ynl_attr_put_u32(nlh, IFLA_VTI_OKEY, obj.okey.value()); - if (obj.local.size() > 0) + } + if (obj.local.size() > 0) { ynl_attr_put(nlh, IFLA_VTI_LOCAL, obj.local.data(), obj.local.size()); - if (obj.remote.size() > 0) + } + if (obj.remote.size() > 0) { ynl_attr_put(nlh, IFLA_VTI_REMOTE, obj.remote.data(), obj.remote.size()); - if (obj.fwmark.has_value()) + } + if (obj.fwmark.has_value()) { ynl_attr_put_u32(nlh, IFLA_VTI_FWMARK, obj.fwmark.value()); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -3250,32 +3630,38 @@ int rt_link_linkinfo_vti6_attrs_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == IFLA_VTI_LINK) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->link = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_VTI_IKEY) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->ikey = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_VTI_OKEY) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->okey = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_VTI_LOCAL) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->local.assign(data, data + len); } else if (type == IFLA_VTI_REMOTE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->remote.assign(data, data + len); } else if (type == IFLA_VTI_FWMARK) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->fwmark = (__u32)ynl_attr_get_u32(attr); } } @@ -3290,24 +3676,33 @@ int rt_link_linkinfo_netkit_attrs_put(struct nlmsghdr *nlh, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - if (obj.peer_info.size() > 0) + if (obj.peer_info.size() > 0) { ynl_attr_put(nlh, IFLA_NETKIT_PEER_INFO, obj.peer_info.data(), obj.peer_info.size()); - if (obj.primary.has_value()) + } + if (obj.primary.has_value()) { ynl_attr_put_u8(nlh, IFLA_NETKIT_PRIMARY, obj.primary.value()); - if (obj.policy.has_value()) + } + if (obj.policy.has_value()) { ynl_attr_put_u32(nlh, IFLA_NETKIT_POLICY, obj.policy.value()); - if (obj.peer_policy.has_value()) + } + if (obj.peer_policy.has_value()) { ynl_attr_put_u32(nlh, IFLA_NETKIT_PEER_POLICY, obj.peer_policy.value()); - if (obj.mode.has_value()) + } + if (obj.mode.has_value()) { ynl_attr_put_u32(nlh, IFLA_NETKIT_MODE, obj.mode.value()); - if (obj.scrub.has_value()) + } + if (obj.scrub.has_value()) { ynl_attr_put_u32(nlh, IFLA_NETKIT_SCRUB, obj.scrub.value()); - if (obj.peer_scrub.has_value()) + } + if (obj.peer_scrub.has_value()) { ynl_attr_put_u32(nlh, IFLA_NETKIT_PEER_SCRUB, obj.peer_scrub.value()); - if (obj.headroom.has_value()) + } + if (obj.headroom.has_value()) { ynl_attr_put_u16(nlh, IFLA_NETKIT_HEADROOM, obj.headroom.value()); - if (obj.tailroom.has_value()) + } + if (obj.tailroom.has_value()) { ynl_attr_put_u16(nlh, IFLA_NETKIT_TAILROOM, obj.tailroom.value()); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -3323,42 +3718,51 @@ int rt_link_linkinfo_netkit_attrs_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == IFLA_NETKIT_PEER_INFO) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->peer_info.assign(data, data + len); } else if (type == IFLA_NETKIT_PRIMARY) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->primary = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_NETKIT_POLICY) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->policy = (int)ynl_attr_get_u32(attr); } else if (type == IFLA_NETKIT_PEER_POLICY) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->peer_policy = (int)ynl_attr_get_u32(attr); } else if (type == IFLA_NETKIT_MODE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->mode = (enum netkit_mode)ynl_attr_get_u32(attr); } else if (type == IFLA_NETKIT_SCRUB) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->scrub = (int)ynl_attr_get_u32(attr); } else if (type == IFLA_NETKIT_PEER_SCRUB) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->peer_scrub = (int)ynl_attr_get_u32(attr); } else if (type == IFLA_NETKIT_HEADROOM) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->headroom = (__u16)ynl_attr_get_u16(attr); } else if (type == IFLA_NETKIT_TAILROOM) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->tailroom = (__u16)ynl_attr_get_u16(attr); } } @@ -3373,8 +3777,9 @@ int rt_link_linkinfo_ovpn_attrs_put(struct nlmsghdr *nlh, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - if (obj.mode.has_value()) + if (obj.mode.has_value()) { ynl_attr_put_u8(nlh, IFLA_OVPN_MODE, obj.mode.value()); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -3390,8 +3795,9 @@ int rt_link_linkinfo_ovpn_attrs_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == IFLA_OVPN_MODE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->mode = (enum ovpn_mode)ynl_attr_get_u8(attr); } } @@ -3406,92 +3812,135 @@ int rt_link_linkinfo_brport_attrs_put(struct nlmsghdr *nlh, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - if (obj.state.has_value()) + if (obj.state.has_value()) { ynl_attr_put_u8(nlh, IFLA_BRPORT_STATE, obj.state.value()); - if (obj.priority.has_value()) + } + if (obj.priority.has_value()) { ynl_attr_put_u16(nlh, IFLA_BRPORT_PRIORITY, obj.priority.value()); - if (obj.cost.has_value()) + } + if (obj.cost.has_value()) { ynl_attr_put_u32(nlh, IFLA_BRPORT_COST, obj.cost.value()); - if (obj.mode) + } + if (obj.mode) { ynl_attr_put(nlh, IFLA_BRPORT_MODE, NULL, 0); - if (obj.guard) + } + if (obj.guard) { ynl_attr_put(nlh, IFLA_BRPORT_GUARD, NULL, 0); - if (obj.protect) + } + if (obj.protect) { ynl_attr_put(nlh, IFLA_BRPORT_PROTECT, NULL, 0); - if (obj.fast_leave) + } + if (obj.fast_leave) { ynl_attr_put(nlh, IFLA_BRPORT_FAST_LEAVE, NULL, 0); - if (obj.learning) + } + if (obj.learning) { ynl_attr_put(nlh, IFLA_BRPORT_LEARNING, NULL, 0); - if (obj.unicast_flood) + } + if (obj.unicast_flood) { ynl_attr_put(nlh, IFLA_BRPORT_UNICAST_FLOOD, NULL, 0); - if (obj.proxyarp) + } + if (obj.proxyarp) { ynl_attr_put(nlh, IFLA_BRPORT_PROXYARP, NULL, 0); - if (obj.learning_sync) + } + if (obj.learning_sync) { ynl_attr_put(nlh, IFLA_BRPORT_LEARNING_SYNC, NULL, 0); - if (obj.proxyarp_wifi) + } + if (obj.proxyarp_wifi) { ynl_attr_put(nlh, IFLA_BRPORT_PROXYARP_WIFI, NULL, 0); - if (obj.root_id) + } + if (obj.root_id) { ynl_attr_put(nlh, IFLA_BRPORT_ROOT_ID, &*obj.root_id, sizeof(struct ifla_bridge_id)); - if (obj.bridge_id) + } + if (obj.bridge_id) { ynl_attr_put(nlh, IFLA_BRPORT_BRIDGE_ID, &*obj.bridge_id, sizeof(struct ifla_bridge_id)); - if (obj.designated_port.has_value()) + } + if (obj.designated_port.has_value()) { ynl_attr_put_u16(nlh, IFLA_BRPORT_DESIGNATED_PORT, obj.designated_port.value()); - if (obj.designated_cost.has_value()) + } + if (obj.designated_cost.has_value()) { ynl_attr_put_u16(nlh, IFLA_BRPORT_DESIGNATED_COST, obj.designated_cost.value()); - if (obj.id.has_value()) + } + if (obj.id.has_value()) { ynl_attr_put_u16(nlh, IFLA_BRPORT_ID, obj.id.value()); - if (obj.no.has_value()) + } + if (obj.no.has_value()) { ynl_attr_put_u16(nlh, IFLA_BRPORT_NO, obj.no.value()); - if (obj.topology_change_ack.has_value()) + } + if (obj.topology_change_ack.has_value()) { ynl_attr_put_u8(nlh, IFLA_BRPORT_TOPOLOGY_CHANGE_ACK, obj.topology_change_ack.value()); - if (obj.config_pending.has_value()) + } + if (obj.config_pending.has_value()) { ynl_attr_put_u8(nlh, IFLA_BRPORT_CONFIG_PENDING, obj.config_pending.value()); - if (obj.message_age_timer.has_value()) + } + if (obj.message_age_timer.has_value()) { ynl_attr_put_u64(nlh, IFLA_BRPORT_MESSAGE_AGE_TIMER, obj.message_age_timer.value()); - if (obj.forward_delay_timer.has_value()) + } + if (obj.forward_delay_timer.has_value()) { ynl_attr_put_u64(nlh, IFLA_BRPORT_FORWARD_DELAY_TIMER, obj.forward_delay_timer.value()); - if (obj.hold_timer.has_value()) + } + if (obj.hold_timer.has_value()) { ynl_attr_put_u64(nlh, IFLA_BRPORT_HOLD_TIMER, obj.hold_timer.value()); - if (obj.flush) + } + if (obj.flush) { ynl_attr_put(nlh, IFLA_BRPORT_FLUSH, NULL, 0); - if (obj.multicast_router.has_value()) + } + if (obj.multicast_router.has_value()) { ynl_attr_put_u8(nlh, IFLA_BRPORT_MULTICAST_ROUTER, obj.multicast_router.value()); - if (obj.mcast_flood) + } + if (obj.mcast_flood) { ynl_attr_put(nlh, IFLA_BRPORT_MCAST_FLOOD, NULL, 0); - if (obj.mcast_to_ucast) + } + if (obj.mcast_to_ucast) { ynl_attr_put(nlh, IFLA_BRPORT_MCAST_TO_UCAST, NULL, 0); - if (obj.vlan_tunnel) + } + if (obj.vlan_tunnel) { ynl_attr_put(nlh, IFLA_BRPORT_VLAN_TUNNEL, NULL, 0); - if (obj.bcast_flood) + } + if (obj.bcast_flood) { ynl_attr_put(nlh, IFLA_BRPORT_BCAST_FLOOD, NULL, 0); - if (obj.group_fwd_mask.has_value()) + } + if (obj.group_fwd_mask.has_value()) { ynl_attr_put_u16(nlh, IFLA_BRPORT_GROUP_FWD_MASK, obj.group_fwd_mask.value()); - if (obj.neigh_suppress) + } + if (obj.neigh_suppress) { ynl_attr_put(nlh, IFLA_BRPORT_NEIGH_SUPPRESS, NULL, 0); - if (obj.isolated) + } + if (obj.isolated) { ynl_attr_put(nlh, IFLA_BRPORT_ISOLATED, NULL, 0); - if (obj.backup_port.has_value()) + } + if (obj.backup_port.has_value()) { ynl_attr_put_u32(nlh, IFLA_BRPORT_BACKUP_PORT, obj.backup_port.value()); - if (obj.mrp_ring_open) + } + if (obj.mrp_ring_open) { ynl_attr_put(nlh, IFLA_BRPORT_MRP_RING_OPEN, NULL, 0); - if (obj.mrp_in_open) + } + if (obj.mrp_in_open) { ynl_attr_put(nlh, IFLA_BRPORT_MRP_IN_OPEN, NULL, 0); - if (obj.mcast_eht_hosts_limit.has_value()) + } + if (obj.mcast_eht_hosts_limit.has_value()) { ynl_attr_put_u32(nlh, IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT, obj.mcast_eht_hosts_limit.value()); - if (obj.mcast_eht_hosts_cnt.has_value()) + } + if (obj.mcast_eht_hosts_cnt.has_value()) { ynl_attr_put_u32(nlh, IFLA_BRPORT_MCAST_EHT_HOSTS_CNT, obj.mcast_eht_hosts_cnt.value()); - if (obj.locked) + } + if (obj.locked) { ynl_attr_put(nlh, IFLA_BRPORT_LOCKED, NULL, 0); - if (obj.mab) + } + if (obj.mab) { ynl_attr_put(nlh, IFLA_BRPORT_MAB, NULL, 0); - if (obj.mcast_n_groups.has_value()) + } + if (obj.mcast_n_groups.has_value()) { ynl_attr_put_u32(nlh, IFLA_BRPORT_MCAST_N_GROUPS, obj.mcast_n_groups.value()); - if (obj.mcast_max_groups.has_value()) + } + if (obj.mcast_max_groups.has_value()) { ynl_attr_put_u32(nlh, IFLA_BRPORT_MCAST_MAX_GROUPS, obj.mcast_max_groups.value()); - if (obj.neigh_vlan_suppress) + } + if (obj.neigh_vlan_suppress) { ynl_attr_put(nlh, IFLA_BRPORT_NEIGH_VLAN_SUPPRESS, NULL, 0); - if (obj.backup_nhid.has_value()) + } + if (obj.backup_nhid.has_value()) { ynl_attr_put_u32(nlh, IFLA_BRPORT_BACKUP_NHID, obj.backup_nhid.value()); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -3507,161 +3956,204 @@ int rt_link_linkinfo_brport_attrs_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == IFLA_BRPORT_STATE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->state = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_BRPORT_PRIORITY) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->priority = (__u16)ynl_attr_get_u16(attr); } else if (type == IFLA_BRPORT_COST) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->cost = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_BRPORT_MODE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == IFLA_BRPORT_GUARD) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == IFLA_BRPORT_PROTECT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == IFLA_BRPORT_FAST_LEAVE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == IFLA_BRPORT_LEARNING) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == IFLA_BRPORT_UNICAST_FLOOD) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == IFLA_BRPORT_PROXYARP) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == IFLA_BRPORT_LEARNING_SYNC) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == IFLA_BRPORT_PROXYARP_WIFI) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == IFLA_BRPORT_ROOT_ID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); unsigned int struct_sz = sizeof(struct ifla_bridge_id); dst->root_id.emplace(); memcpy(&*dst->root_id, ynl_attr_data(attr), std::min(struct_sz, len)); } else if (type == IFLA_BRPORT_BRIDGE_ID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); unsigned int struct_sz = sizeof(struct ifla_bridge_id); dst->bridge_id.emplace(); memcpy(&*dst->bridge_id, ynl_attr_data(attr), std::min(struct_sz, len)); } else if (type == IFLA_BRPORT_DESIGNATED_PORT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->designated_port = (__u16)ynl_attr_get_u16(attr); } else if (type == IFLA_BRPORT_DESIGNATED_COST) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->designated_cost = (__u16)ynl_attr_get_u16(attr); } else if (type == IFLA_BRPORT_ID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->id = (__u16)ynl_attr_get_u16(attr); } else if (type == IFLA_BRPORT_NO) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->no = (__u16)ynl_attr_get_u16(attr); } else if (type == IFLA_BRPORT_TOPOLOGY_CHANGE_ACK) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->topology_change_ack = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_BRPORT_CONFIG_PENDING) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->config_pending = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_BRPORT_MESSAGE_AGE_TIMER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->message_age_timer = (__u64)ynl_attr_get_u64(attr); } else if (type == IFLA_BRPORT_FORWARD_DELAY_TIMER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->forward_delay_timer = (__u64)ynl_attr_get_u64(attr); } else if (type == IFLA_BRPORT_HOLD_TIMER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->hold_timer = (__u64)ynl_attr_get_u64(attr); } else if (type == IFLA_BRPORT_FLUSH) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == IFLA_BRPORT_MULTICAST_ROUTER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->multicast_router = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_BRPORT_MCAST_FLOOD) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == IFLA_BRPORT_MCAST_TO_UCAST) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == IFLA_BRPORT_VLAN_TUNNEL) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == IFLA_BRPORT_BCAST_FLOOD) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == IFLA_BRPORT_GROUP_FWD_MASK) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->group_fwd_mask = (__u16)ynl_attr_get_u16(attr); } else if (type == IFLA_BRPORT_NEIGH_SUPPRESS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == IFLA_BRPORT_ISOLATED) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == IFLA_BRPORT_BACKUP_PORT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->backup_port = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_BRPORT_MRP_RING_OPEN) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == IFLA_BRPORT_MRP_IN_OPEN) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->mcast_eht_hosts_limit = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_BRPORT_MCAST_EHT_HOSTS_CNT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->mcast_eht_hosts_cnt = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_BRPORT_LOCKED) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == IFLA_BRPORT_MAB) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == IFLA_BRPORT_MCAST_N_GROUPS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->mcast_n_groups = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_BRPORT_MCAST_MAX_GROUPS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->mcast_max_groups = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_BRPORT_NEIGH_VLAN_SUPPRESS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == IFLA_BRPORT_BACKUP_NHID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->backup_nhid = (__u32)ynl_attr_get_u32(attr); } } @@ -3675,24 +4167,33 @@ int rt_link_bond_slave_attrs_put(struct nlmsghdr *nlh, unsigned int attr_type, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - if (obj.state.has_value()) + if (obj.state.has_value()) { ynl_attr_put_u8(nlh, IFLA_BOND_SLAVE_STATE, obj.state.value()); - if (obj.mii_status.has_value()) + } + if (obj.mii_status.has_value()) { ynl_attr_put_u8(nlh, IFLA_BOND_SLAVE_MII_STATUS, obj.mii_status.value()); - if (obj.link_failure_count.has_value()) + } + if (obj.link_failure_count.has_value()) { ynl_attr_put_u32(nlh, IFLA_BOND_SLAVE_LINK_FAILURE_COUNT, obj.link_failure_count.value()); - if (obj.perm_hwaddr.size() > 0) + } + if (obj.perm_hwaddr.size() > 0) { ynl_attr_put(nlh, IFLA_BOND_SLAVE_PERM_HWADDR, obj.perm_hwaddr.data(), obj.perm_hwaddr.size()); - if (obj.queue_id.has_value()) + } + if (obj.queue_id.has_value()) { ynl_attr_put_u16(nlh, IFLA_BOND_SLAVE_QUEUE_ID, obj.queue_id.value()); - if (obj.ad_aggregator_id.has_value()) + } + if (obj.ad_aggregator_id.has_value()) { ynl_attr_put_u16(nlh, IFLA_BOND_SLAVE_AD_AGGREGATOR_ID, obj.ad_aggregator_id.value()); - if (obj.ad_actor_oper_port_state.has_value()) + } + if (obj.ad_actor_oper_port_state.has_value()) { ynl_attr_put_u8(nlh, IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE, obj.ad_actor_oper_port_state.value()); - if (obj.ad_partner_oper_port_state.has_value()) + } + if (obj.ad_partner_oper_port_state.has_value()) { ynl_attr_put_u16(nlh, IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE, obj.ad_partner_oper_port_state.value()); - if (obj.prio.has_value()) + } + if (obj.prio.has_value()) { ynl_attr_put_u32(nlh, IFLA_BOND_SLAVE_PRIO, obj.prio.value()); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -3708,42 +4209,51 @@ int rt_link_bond_slave_attrs_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == IFLA_BOND_SLAVE_STATE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->state = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_BOND_SLAVE_MII_STATUS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->mii_status = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_BOND_SLAVE_LINK_FAILURE_COUNT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->link_failure_count = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_BOND_SLAVE_PERM_HWADDR) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->perm_hwaddr.assign(data, data + len); } else if (type == IFLA_BOND_SLAVE_QUEUE_ID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->queue_id = (__u16)ynl_attr_get_u16(attr); } else if (type == IFLA_BOND_SLAVE_AD_AGGREGATOR_ID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->ad_aggregator_id = (__u16)ynl_attr_get_u16(attr); } else if (type == IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->ad_actor_oper_port_state = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->ad_partner_oper_port_state = (__u16)ynl_attr_get_u16(attr); } else if (type == IFLA_BOND_SLAVE_PRIO) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->prio = (__u32)ynl_attr_get_u32(attr); } } @@ -3757,22 +4267,30 @@ int rt_link_vf_stats_attrs_put(struct nlmsghdr *nlh, unsigned int attr_type, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - if (obj.rx_packets.has_value()) + if (obj.rx_packets.has_value()) { ynl_attr_put_u64(nlh, IFLA_VF_STATS_RX_PACKETS, obj.rx_packets.value()); - if (obj.tx_packets.has_value()) + } + if (obj.tx_packets.has_value()) { ynl_attr_put_u64(nlh, IFLA_VF_STATS_TX_PACKETS, obj.tx_packets.value()); - if (obj.rx_bytes.has_value()) + } + if (obj.rx_bytes.has_value()) { ynl_attr_put_u64(nlh, IFLA_VF_STATS_RX_BYTES, obj.rx_bytes.value()); - if (obj.tx_bytes.has_value()) + } + if (obj.tx_bytes.has_value()) { ynl_attr_put_u64(nlh, IFLA_VF_STATS_TX_BYTES, obj.tx_bytes.value()); - if (obj.broadcast.has_value()) + } + if (obj.broadcast.has_value()) { ynl_attr_put_u64(nlh, IFLA_VF_STATS_BROADCAST, obj.broadcast.value()); - if (obj.multicast.has_value()) + } + if (obj.multicast.has_value()) { ynl_attr_put_u64(nlh, IFLA_VF_STATS_MULTICAST, obj.multicast.value()); - if (obj.rx_dropped.has_value()) + } + if (obj.rx_dropped.has_value()) { ynl_attr_put_u64(nlh, IFLA_VF_STATS_RX_DROPPED, obj.rx_dropped.value()); - if (obj.tx_dropped.has_value()) + } + if (obj.tx_dropped.has_value()) { ynl_attr_put_u64(nlh, IFLA_VF_STATS_TX_DROPPED, obj.tx_dropped.value()); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -3788,36 +4306,44 @@ int rt_link_vf_stats_attrs_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == IFLA_VF_STATS_RX_PACKETS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->rx_packets = (__u64)ynl_attr_get_u64(attr); } else if (type == IFLA_VF_STATS_TX_PACKETS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->tx_packets = (__u64)ynl_attr_get_u64(attr); } else if (type == IFLA_VF_STATS_RX_BYTES) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->rx_bytes = (__u64)ynl_attr_get_u64(attr); } else if (type == IFLA_VF_STATS_TX_BYTES) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->tx_bytes = (__u64)ynl_attr_get_u64(attr); } else if (type == IFLA_VF_STATS_BROADCAST) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->broadcast = (__u64)ynl_attr_get_u64(attr); } else if (type == IFLA_VF_STATS_MULTICAST) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->multicast = (__u64)ynl_attr_get_u64(attr); } else if (type == IFLA_VF_STATS_RX_DROPPED) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->rx_dropped = (__u64)ynl_attr_get_u64(attr); } else if (type == IFLA_VF_STATS_TX_DROPPED) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->tx_dropped = (__u64)ynl_attr_get_u64(attr); } } @@ -3831,8 +4357,9 @@ int rt_link_vf_vlan_attrs_put(struct nlmsghdr *nlh, unsigned int attr_type, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - for (unsigned int i = 0; i < obj.info.size(); i++) + for (unsigned int i = 0; i < obj.info.size(); i++) { ynl_attr_put(nlh, IFLA_VF_VLAN_INFO, &obj.info[i], sizeof(struct ifla_vf_vlan_info)); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -3846,8 +4373,9 @@ int rt_link_vf_vlan_attrs_parse(struct ynl_parse_arg *yarg, unsigned int n_info = 0; int i; - if (dst->info.size() > 0) + if (dst->info.size() > 0) { return ynl_error_parse(yarg, "attribute already present (vf-vlan-attrs.info)"); + } ynl_attr_for_each_nested(attr, nested) { unsigned int type = ynl_attr_type(attr); @@ -3864,8 +4392,9 @@ int rt_link_vf_vlan_attrs_parse(struct ynl_parse_arg *yarg, if (ynl_attr_type(attr) == IFLA_VF_VLAN_INFO) { size_t len = ynl_attr_data_len(attr); - if (len > sizeof(dst->info[0])) + if (len > sizeof(dst->info[0])) { len = sizeof(dst->info[0]); + } memcpy(&dst->info[i], ynl_attr_data(attr), len); i++; } @@ -3882,16 +4411,21 @@ int rt_link_bond_ad_info_attrs_put(struct nlmsghdr *nlh, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - if (obj.aggregator.has_value()) + if (obj.aggregator.has_value()) { ynl_attr_put_u16(nlh, IFLA_BOND_AD_INFO_AGGREGATOR, obj.aggregator.value()); - if (obj.num_ports.has_value()) + } + if (obj.num_ports.has_value()) { ynl_attr_put_u16(nlh, IFLA_BOND_AD_INFO_NUM_PORTS, obj.num_ports.value()); - if (obj.actor_key.has_value()) + } + if (obj.actor_key.has_value()) { ynl_attr_put_u16(nlh, IFLA_BOND_AD_INFO_ACTOR_KEY, obj.actor_key.value()); - if (obj.partner_key.has_value()) + } + if (obj.partner_key.has_value()) { ynl_attr_put_u16(nlh, IFLA_BOND_AD_INFO_PARTNER_KEY, obj.partner_key.value()); - if (obj.partner_mac.size() > 0) + } + if (obj.partner_mac.size() > 0) { ynl_attr_put(nlh, IFLA_BOND_AD_INFO_PARTNER_MAC, obj.partner_mac.data(), obj.partner_mac.size()); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -3907,24 +4441,29 @@ int rt_link_bond_ad_info_attrs_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == IFLA_BOND_AD_INFO_AGGREGATOR) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->aggregator = (__u16)ynl_attr_get_u16(attr); } else if (type == IFLA_BOND_AD_INFO_NUM_PORTS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->num_ports = (__u16)ynl_attr_get_u16(attr); } else if (type == IFLA_BOND_AD_INFO_ACTOR_KEY) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->actor_key = (__u16)ynl_attr_get_u16(attr); } else if (type == IFLA_BOND_AD_INFO_PARTNER_KEY) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->partner_key = (__u16)ynl_attr_get_u16(attr); } else if (type == IFLA_BOND_AD_INFO_PARTNER_MAC) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->partner_mac.assign(data, data + len); @@ -3940,8 +4479,9 @@ int rt_link_ifla_vlan_qos_put(struct nlmsghdr *nlh, unsigned int attr_type, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - for (unsigned int i = 0; i < obj.mapping.size(); i++) + for (unsigned int i = 0; i < obj.mapping.size(); i++) { ynl_attr_put(nlh, IFLA_VLAN_QOS_MAPPING, &obj.mapping[i], sizeof(struct ifla_vlan_qos_mapping)); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -3955,8 +4495,9 @@ int rt_link_ifla_vlan_qos_parse(struct ynl_parse_arg *yarg, const struct nlattr *attr; int i; - if (dst->mapping.size() > 0) + if (dst->mapping.size() > 0) { return ynl_error_parse(yarg, "attribute already present (ifla-vlan-qos.mapping)"); + } ynl_attr_for_each_nested(attr, nested) { unsigned int type = ynl_attr_type(attr); @@ -3973,8 +4514,9 @@ int rt_link_ifla_vlan_qos_parse(struct ynl_parse_arg *yarg, if (ynl_attr_type(attr) == IFLA_VLAN_QOS_MAPPING) { size_t len = ynl_attr_data_len(attr); - if (len > sizeof(dst->mapping[0])) + if (len > sizeof(dst->mapping[0])) { len = sizeof(dst->mapping[0]); + } memcpy(&dst->mapping[i], ynl_attr_data(attr), len); i++; } @@ -3990,12 +4532,15 @@ int rt_link_af_spec_attrs_put(struct nlmsghdr *nlh, unsigned int attr_type, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - if (obj.inet.has_value()) + if (obj.inet.has_value()) { rt_link_ifla_attrs_put(nlh, AF_INET, obj.inet.value()); - if (obj.inet6.has_value()) + } + if (obj.inet6.has_value()) { rt_link_ifla6_attrs_put(nlh, AF_INET6, obj.inet6.value()); - if (obj.mctp.has_value()) + } + if (obj.mctp.has_value()) { rt_link_mctp_attrs_put(nlh, AF_MCTP, obj.mctp.value()); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -4014,29 +4559,35 @@ int rt_link_af_spec_attrs_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == AF_INET) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &rt_link_ifla_attrs_nest; parg.data = &dst->inet.emplace(); - if (rt_link_ifla_attrs_parse(&parg, attr)) + if (rt_link_ifla_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == AF_INET6) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &rt_link_ifla6_attrs_nest; parg.data = &dst->inet6.emplace(); - if (rt_link_ifla6_attrs_parse(&parg, attr)) + if (rt_link_ifla6_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == AF_MCTP) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &rt_link_mctp_attrs_nest; parg.data = &dst->mctp.emplace(); - if (rt_link_mctp_attrs_parse(&parg, attr)) + if (rt_link_mctp_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } } @@ -4055,15 +4606,17 @@ int rt_link_link_offload_xstats_parse(struct ynl_parse_arg *yarg, parg.ys = yarg->ys; - if (dst->hw_s_info.size() > 0) + if (dst->hw_s_info.size() > 0) { return ynl_error_parse(yarg, "attribute already present (link-offload-xstats.hw-s-info)"); + } ynl_attr_for_each_nested(attr, nested) { unsigned int type = ynl_attr_type(attr); if (type == IFLA_OFFLOAD_XSTATS_CPU_HIT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->cpu_hit.assign(data, data + len); @@ -4072,8 +4625,9 @@ int rt_link_link_offload_xstats_parse(struct ynl_parse_arg *yarg, attr_hw_s_info = attr; } else if (type == IFLA_OFFLOAD_XSTATS_L3_STATS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->l3_stats.assign(data, data + len); @@ -4086,8 +4640,9 @@ int rt_link_link_offload_xstats_parse(struct ynl_parse_arg *yarg, parg.rsp_policy = &rt_link_hw_s_info_one_nest; ynl_attr_for_each_nested(attr, attr_hw_s_info) { parg.data = &dst->hw_s_info[i]; - if (rt_link_hw_s_info_one_parse(&parg, attr, ynl_attr_type(attr))) + if (rt_link_hw_s_info_one_parse(&parg, attr, ynl_attr_type(attr))) { return YNL_PARSE_CB_ERROR; + } i++; } } @@ -4099,10 +4654,12 @@ int rt_link_linkinfo_member_data_msg_put(struct nlmsghdr *nlh, unsigned int attr_type, const rt_link_linkinfo_member_data_msg& obj) { - if (obj.bridge.has_value()) + if (obj.bridge.has_value()) { rt_link_linkinfo_brport_attrs_put(nlh, IFLA_INFO_SLAVE_DATA, obj.bridge.value()); - if (obj.bond.has_value()) + } + if (obj.bond.has_value()) { rt_link_bond_slave_attrs_put(nlh, IFLA_INFO_SLAVE_DATA, obj.bond.value()); + } return 0; } @@ -4120,13 +4677,15 @@ int rt_link_linkinfo_member_data_msg_parse(struct ynl_parse_arg *yarg, if (sel == "bridge") { parg.rsp_policy = &rt_link_linkinfo_brport_attrs_nest; parg.data = &dst->bridge.emplace(); - if (rt_link_linkinfo_brport_attrs_parse(&parg, attr)) + if (rt_link_linkinfo_brport_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (sel == "bond") { parg.rsp_policy = &rt_link_bond_slave_attrs_nest; parg.data = &dst->bond.emplace(); - if (rt_link_bond_slave_attrs_parse(&parg, attr)) + if (rt_link_bond_slave_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } return 0; } @@ -4137,32 +4696,45 @@ int rt_link_vfinfo_attrs_put(struct nlmsghdr *nlh, unsigned int attr_type, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - if (obj.mac) + if (obj.mac) { ynl_attr_put(nlh, IFLA_VF_MAC, &*obj.mac, sizeof(struct ifla_vf_mac)); - if (obj.vlan) + } + if (obj.vlan) { ynl_attr_put(nlh, IFLA_VF_VLAN, &*obj.vlan, sizeof(struct ifla_vf_vlan)); - if (obj.tx_rate) + } + if (obj.tx_rate) { ynl_attr_put(nlh, IFLA_VF_TX_RATE, &*obj.tx_rate, sizeof(struct ifla_vf_tx_rate)); - if (obj.spoofchk) + } + if (obj.spoofchk) { ynl_attr_put(nlh, IFLA_VF_SPOOFCHK, &*obj.spoofchk, sizeof(struct ifla_vf_spoofchk)); - if (obj.link_state) + } + if (obj.link_state) { ynl_attr_put(nlh, IFLA_VF_LINK_STATE, &*obj.link_state, sizeof(struct ifla_vf_link_state)); - if (obj.rate) + } + if (obj.rate) { ynl_attr_put(nlh, IFLA_VF_RATE, &*obj.rate, sizeof(struct ifla_vf_rate)); - if (obj.rss_query_en) + } + if (obj.rss_query_en) { ynl_attr_put(nlh, IFLA_VF_RSS_QUERY_EN, &*obj.rss_query_en, sizeof(struct ifla_vf_rss_query_en)); - if (obj.stats.has_value()) + } + if (obj.stats.has_value()) { rt_link_vf_stats_attrs_put(nlh, IFLA_VF_STATS, obj.stats.value()); - if (obj.trust) + } + if (obj.trust) { ynl_attr_put(nlh, IFLA_VF_TRUST, &*obj.trust, sizeof(struct ifla_vf_trust)); - if (obj.ib_node_guid) + } + if (obj.ib_node_guid) { ynl_attr_put(nlh, IFLA_VF_IB_NODE_GUID, &*obj.ib_node_guid, sizeof(struct ifla_vf_guid)); - if (obj.ib_port_guid) + } + if (obj.ib_port_guid) { ynl_attr_put(nlh, IFLA_VF_IB_PORT_GUID, &*obj.ib_port_guid, sizeof(struct ifla_vf_guid)); - if (obj.vlan_list.has_value()) + } + if (obj.vlan_list.has_value()) { rt_link_vf_vlan_attrs_put(nlh, IFLA_VF_VLAN_LIST, obj.vlan_list.value()); - if (obj.broadcast.size() > 0) + } + if (obj.broadcast.size() > 0) { ynl_attr_put(nlh, IFLA_VF_BROADCAST, obj.broadcast.data(), obj.broadcast.size()); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -4181,94 +4753,109 @@ int rt_link_vfinfo_attrs_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == IFLA_VF_MAC) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); unsigned int struct_sz = sizeof(struct ifla_vf_mac); dst->mac.emplace(); memcpy(&*dst->mac, ynl_attr_data(attr), std::min(struct_sz, len)); } else if (type == IFLA_VF_VLAN) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); unsigned int struct_sz = sizeof(struct ifla_vf_vlan); dst->vlan.emplace(); memcpy(&*dst->vlan, ynl_attr_data(attr), std::min(struct_sz, len)); } else if (type == IFLA_VF_TX_RATE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); unsigned int struct_sz = sizeof(struct ifla_vf_tx_rate); dst->tx_rate.emplace(); memcpy(&*dst->tx_rate, ynl_attr_data(attr), std::min(struct_sz, len)); } else if (type == IFLA_VF_SPOOFCHK) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); unsigned int struct_sz = sizeof(struct ifla_vf_spoofchk); dst->spoofchk.emplace(); memcpy(&*dst->spoofchk, ynl_attr_data(attr), std::min(struct_sz, len)); } else if (type == IFLA_VF_LINK_STATE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); unsigned int struct_sz = sizeof(struct ifla_vf_link_state); dst->link_state.emplace(); memcpy(&*dst->link_state, ynl_attr_data(attr), std::min(struct_sz, len)); } else if (type == IFLA_VF_RATE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); unsigned int struct_sz = sizeof(struct ifla_vf_rate); dst->rate.emplace(); memcpy(&*dst->rate, ynl_attr_data(attr), std::min(struct_sz, len)); } else if (type == IFLA_VF_RSS_QUERY_EN) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); unsigned int struct_sz = sizeof(struct ifla_vf_rss_query_en); dst->rss_query_en.emplace(); memcpy(&*dst->rss_query_en, ynl_attr_data(attr), std::min(struct_sz, len)); } else if (type == IFLA_VF_STATS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &rt_link_vf_stats_attrs_nest; parg.data = &dst->stats.emplace(); - if (rt_link_vf_stats_attrs_parse(&parg, attr)) + if (rt_link_vf_stats_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == IFLA_VF_TRUST) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); unsigned int struct_sz = sizeof(struct ifla_vf_trust); dst->trust.emplace(); memcpy(&*dst->trust, ynl_attr_data(attr), std::min(struct_sz, len)); } else if (type == IFLA_VF_IB_NODE_GUID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); unsigned int struct_sz = sizeof(struct ifla_vf_guid); dst->ib_node_guid.emplace(); memcpy(&*dst->ib_node_guid, ynl_attr_data(attr), std::min(struct_sz, len)); } else if (type == IFLA_VF_IB_PORT_GUID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); unsigned int struct_sz = sizeof(struct ifla_vf_guid); dst->ib_port_guid.emplace(); memcpy(&*dst->ib_port_guid, ynl_attr_data(attr), std::min(struct_sz, len)); } else if (type == IFLA_VF_VLAN_LIST) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &rt_link_vf_vlan_attrs_nest; parg.data = &dst->vlan_list.emplace(); - if (rt_link_vf_vlan_attrs_parse(&parg, attr)) + if (rt_link_vf_vlan_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == IFLA_VF_BROADCAST) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->broadcast.assign(data, data + len); @@ -4286,75 +4873,106 @@ int rt_link_linkinfo_bond_attrs_put(struct nlmsghdr *nlh, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - if (obj.mode.has_value()) + if (obj.mode.has_value()) { ynl_attr_put_u8(nlh, IFLA_BOND_MODE, obj.mode.value()); - if (obj.active_slave.has_value()) + } + if (obj.active_slave.has_value()) { ynl_attr_put_u32(nlh, IFLA_BOND_ACTIVE_SLAVE, obj.active_slave.value()); - if (obj.miimon.has_value()) + } + if (obj.miimon.has_value()) { ynl_attr_put_u32(nlh, IFLA_BOND_MIIMON, obj.miimon.value()); - if (obj.updelay.has_value()) + } + if (obj.updelay.has_value()) { ynl_attr_put_u32(nlh, IFLA_BOND_UPDELAY, obj.updelay.value()); - if (obj.downdelay.has_value()) + } + if (obj.downdelay.has_value()) { ynl_attr_put_u32(nlh, IFLA_BOND_DOWNDELAY, obj.downdelay.value()); - if (obj.use_carrier.has_value()) + } + if (obj.use_carrier.has_value()) { ynl_attr_put_u8(nlh, IFLA_BOND_USE_CARRIER, obj.use_carrier.value()); - if (obj.arp_interval.has_value()) + } + if (obj.arp_interval.has_value()) { ynl_attr_put_u32(nlh, IFLA_BOND_ARP_INTERVAL, obj.arp_interval.value()); + } array = ynl_attr_nest_start(nlh, IFLA_BOND_ARP_IP_TARGET); for (unsigned int i = 0; i < obj.arp_ip_target.size(); i++) { ynl_attr_put_u32(nlh, i, obj.arp_ip_target[i]); } ynl_attr_nest_end(nlh, array); - if (obj.arp_validate.has_value()) + if (obj.arp_validate.has_value()) { ynl_attr_put_u32(nlh, IFLA_BOND_ARP_VALIDATE, obj.arp_validate.value()); - if (obj.arp_all_targets.has_value()) + } + if (obj.arp_all_targets.has_value()) { ynl_attr_put_u32(nlh, IFLA_BOND_ARP_ALL_TARGETS, obj.arp_all_targets.value()); - if (obj.primary.has_value()) + } + if (obj.primary.has_value()) { ynl_attr_put_u32(nlh, IFLA_BOND_PRIMARY, obj.primary.value()); - if (obj.primary_reselect.has_value()) + } + if (obj.primary_reselect.has_value()) { ynl_attr_put_u8(nlh, IFLA_BOND_PRIMARY_RESELECT, obj.primary_reselect.value()); - if (obj.fail_over_mac.has_value()) + } + if (obj.fail_over_mac.has_value()) { ynl_attr_put_u8(nlh, IFLA_BOND_FAIL_OVER_MAC, obj.fail_over_mac.value()); - if (obj.xmit_hash_policy.has_value()) + } + if (obj.xmit_hash_policy.has_value()) { ynl_attr_put_u8(nlh, IFLA_BOND_XMIT_HASH_POLICY, obj.xmit_hash_policy.value()); - if (obj.resend_igmp.has_value()) + } + if (obj.resend_igmp.has_value()) { ynl_attr_put_u32(nlh, IFLA_BOND_RESEND_IGMP, obj.resend_igmp.value()); - if (obj.num_peer_notif.has_value()) + } + if (obj.num_peer_notif.has_value()) { ynl_attr_put_u8(nlh, IFLA_BOND_NUM_PEER_NOTIF, obj.num_peer_notif.value()); - if (obj.all_slaves_active.has_value()) + } + if (obj.all_slaves_active.has_value()) { ynl_attr_put_u8(nlh, IFLA_BOND_ALL_SLAVES_ACTIVE, obj.all_slaves_active.value()); - if (obj.min_links.has_value()) + } + if (obj.min_links.has_value()) { ynl_attr_put_u32(nlh, IFLA_BOND_MIN_LINKS, obj.min_links.value()); - if (obj.lp_interval.has_value()) + } + if (obj.lp_interval.has_value()) { ynl_attr_put_u32(nlh, IFLA_BOND_LP_INTERVAL, obj.lp_interval.value()); - if (obj.packets_per_slave.has_value()) + } + if (obj.packets_per_slave.has_value()) { ynl_attr_put_u32(nlh, IFLA_BOND_PACKETS_PER_SLAVE, obj.packets_per_slave.value()); - if (obj.ad_lacp_rate.has_value()) + } + if (obj.ad_lacp_rate.has_value()) { ynl_attr_put_u8(nlh, IFLA_BOND_AD_LACP_RATE, obj.ad_lacp_rate.value()); - if (obj.ad_select.has_value()) + } + if (obj.ad_select.has_value()) { ynl_attr_put_u8(nlh, IFLA_BOND_AD_SELECT, obj.ad_select.value()); - if (obj.ad_info.has_value()) + } + if (obj.ad_info.has_value()) { rt_link_bond_ad_info_attrs_put(nlh, IFLA_BOND_AD_INFO, obj.ad_info.value()); - if (obj.ad_actor_sys_prio.has_value()) + } + if (obj.ad_actor_sys_prio.has_value()) { ynl_attr_put_u16(nlh, IFLA_BOND_AD_ACTOR_SYS_PRIO, obj.ad_actor_sys_prio.value()); - if (obj.ad_user_port_key.has_value()) + } + if (obj.ad_user_port_key.has_value()) { ynl_attr_put_u16(nlh, IFLA_BOND_AD_USER_PORT_KEY, obj.ad_user_port_key.value()); - if (obj.ad_actor_system.size() > 0) + } + if (obj.ad_actor_system.size() > 0) { ynl_attr_put(nlh, IFLA_BOND_AD_ACTOR_SYSTEM, obj.ad_actor_system.data(), obj.ad_actor_system.size()); - if (obj.tlb_dynamic_lb.has_value()) + } + if (obj.tlb_dynamic_lb.has_value()) { ynl_attr_put_u8(nlh, IFLA_BOND_TLB_DYNAMIC_LB, obj.tlb_dynamic_lb.value()); - if (obj.peer_notif_delay.has_value()) + } + if (obj.peer_notif_delay.has_value()) { ynl_attr_put_u32(nlh, IFLA_BOND_PEER_NOTIF_DELAY, obj.peer_notif_delay.value()); - if (obj.ad_lacp_active.has_value()) + } + if (obj.ad_lacp_active.has_value()) { ynl_attr_put_u8(nlh, IFLA_BOND_AD_LACP_ACTIVE, obj.ad_lacp_active.value()); - if (obj.missed_max.has_value()) + } + if (obj.missed_max.has_value()) { ynl_attr_put_u8(nlh, IFLA_BOND_MISSED_MAX, obj.missed_max.value()); + } array = ynl_attr_nest_start(nlh, IFLA_BOND_NS_IP6_TARGET); - for (unsigned int i = 0; i < obj.ns_ip6_target.size(); i++) + for (unsigned int i = 0; i < obj.ns_ip6_target.size(); i++) { ynl_attr_put(nlh, i, &obj.ns_ip6_target[i], 16); + } ynl_attr_nest_end(nlh, array); - if (obj.coupled_control.has_value()) + if (obj.coupled_control.has_value()) { ynl_attr_put_u8(nlh, IFLA_BOND_COUPLED_CONTROL, obj.coupled_control.value()); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -4374,147 +4992,180 @@ int rt_link_linkinfo_bond_attrs_parse(struct ynl_parse_arg *yarg, parg.ys = yarg->ys; - if (dst->arp_ip_target.size() > 0) + if (dst->arp_ip_target.size() > 0) { return ynl_error_parse(yarg, "attribute already present (linkinfo-bond-attrs.arp-ip-target)"); - if (dst->ns_ip6_target.size() > 0) + } + if (dst->ns_ip6_target.size() > 0) { return ynl_error_parse(yarg, "attribute already present (linkinfo-bond-attrs.ns-ip6-target)"); + } ynl_attr_for_each_nested(attr, nested) { unsigned int type = ynl_attr_type(attr); if (type == IFLA_BOND_MODE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->mode = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_BOND_ACTIVE_SLAVE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->active_slave = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_BOND_MIIMON) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->miimon = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_BOND_UPDELAY) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->updelay = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_BOND_DOWNDELAY) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->downdelay = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_BOND_USE_CARRIER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->use_carrier = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_BOND_ARP_INTERVAL) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->arp_interval = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_BOND_ARP_IP_TARGET) { const struct nlattr *attr2; attr_arp_ip_target = attr; } else if (type == IFLA_BOND_ARP_VALIDATE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->arp_validate = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_BOND_ARP_ALL_TARGETS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->arp_all_targets = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_BOND_PRIMARY) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->primary = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_BOND_PRIMARY_RESELECT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->primary_reselect = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_BOND_FAIL_OVER_MAC) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->fail_over_mac = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_BOND_XMIT_HASH_POLICY) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->xmit_hash_policy = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_BOND_RESEND_IGMP) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->resend_igmp = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_BOND_NUM_PEER_NOTIF) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->num_peer_notif = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_BOND_ALL_SLAVES_ACTIVE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->all_slaves_active = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_BOND_MIN_LINKS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->min_links = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_BOND_LP_INTERVAL) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->lp_interval = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_BOND_PACKETS_PER_SLAVE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->packets_per_slave = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_BOND_AD_LACP_RATE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->ad_lacp_rate = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_BOND_AD_SELECT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->ad_select = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_BOND_AD_INFO) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &rt_link_bond_ad_info_attrs_nest; parg.data = &dst->ad_info.emplace(); - if (rt_link_bond_ad_info_attrs_parse(&parg, attr)) + if (rt_link_bond_ad_info_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == IFLA_BOND_AD_ACTOR_SYS_PRIO) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->ad_actor_sys_prio = (__u16)ynl_attr_get_u16(attr); } else if (type == IFLA_BOND_AD_USER_PORT_KEY) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->ad_user_port_key = (__u16)ynl_attr_get_u16(attr); } else if (type == IFLA_BOND_AD_ACTOR_SYSTEM) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->ad_actor_system.assign(data, data + len); } else if (type == IFLA_BOND_TLB_DYNAMIC_LB) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->tlb_dynamic_lb = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_BOND_PEER_NOTIF_DELAY) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->peer_notif_delay = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_BOND_AD_LACP_ACTIVE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->ad_lacp_active = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_BOND_MISSED_MAX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->missed_max = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_BOND_NS_IP6_TARGET) { const struct nlattr *attr2; attr_ns_ip6_target = attr; } else if (type == IFLA_BOND_COUPLED_CONTROL) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->coupled_control = (__u8)ynl_attr_get_u8(attr); } } @@ -4546,16 +5197,21 @@ int rt_link_linkinfo_vlan_attrs_put(struct nlmsghdr *nlh, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - if (obj.id.has_value()) + if (obj.id.has_value()) { ynl_attr_put_u16(nlh, IFLA_VLAN_ID, obj.id.value()); - if (obj.flags) + } + if (obj.flags) { ynl_attr_put(nlh, IFLA_VLAN_FLAGS, &*obj.flags, sizeof(struct ifla_vlan_flags)); - if (obj.egress_qos.has_value()) + } + if (obj.egress_qos.has_value()) { rt_link_ifla_vlan_qos_put(nlh, IFLA_VLAN_EGRESS_QOS, obj.egress_qos.value()); - if (obj.ingress_qos.has_value()) + } + if (obj.ingress_qos.has_value()) { rt_link_ifla_vlan_qos_put(nlh, IFLA_VLAN_INGRESS_QOS, obj.ingress_qos.value()); - if (obj.protocol.has_value()) + } + if (obj.protocol.has_value()) { ynl_attr_put_u16(nlh, IFLA_VLAN_PROTOCOL, obj.protocol.value()); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -4574,35 +5230,42 @@ int rt_link_linkinfo_vlan_attrs_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == IFLA_VLAN_ID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->id = (__u16)ynl_attr_get_u16(attr); } else if (type == IFLA_VLAN_FLAGS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); unsigned int struct_sz = sizeof(struct ifla_vlan_flags); dst->flags.emplace(); memcpy(&*dst->flags, ynl_attr_data(attr), std::min(struct_sz, len)); } else if (type == IFLA_VLAN_EGRESS_QOS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &rt_link_ifla_vlan_qos_nest; parg.data = &dst->egress_qos.emplace(); - if (rt_link_ifla_vlan_qos_parse(&parg, attr)) + if (rt_link_ifla_vlan_qos_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == IFLA_VLAN_INGRESS_QOS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &rt_link_ifla_vlan_qos_nest; parg.data = &dst->ingress_qos.emplace(); - if (rt_link_ifla_vlan_qos_parse(&parg, attr)) + if (rt_link_ifla_vlan_qos_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == IFLA_VLAN_PROTOCOL) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->protocol = (int)ynl_attr_get_u16(attr); } } @@ -4616,8 +5279,9 @@ int rt_link_vfinfo_list_attrs_put(struct nlmsghdr *nlh, unsigned int attr_type, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - for (unsigned int i = 0; i < obj.info.size(); i++) + for (unsigned int i = 0; i < obj.info.size(); i++) { rt_link_vfinfo_attrs_put(nlh, IFLA_VF_INFO, obj.info[i]); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -4634,8 +5298,9 @@ int rt_link_vfinfo_list_attrs_parse(struct ynl_parse_arg *yarg, parg.ys = yarg->ys; - if (dst->info.size() > 0) + if (dst->info.size() > 0) { return ynl_error_parse(yarg, "attribute already present (vfinfo-list-attrs.info)"); + } ynl_attr_for_each_nested(attr, nested) { unsigned int type = ynl_attr_type(attr); @@ -4652,8 +5317,9 @@ int rt_link_vfinfo_list_attrs_parse(struct ynl_parse_arg *yarg, ynl_attr_for_each_nested(attr, nested) { if (ynl_attr_type(attr) == IFLA_VF_INFO) { parg.data = &dst->info[i]; - if (rt_link_vfinfo_attrs_parse(&parg, attr)) + if (rt_link_vfinfo_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } i++; } } @@ -4665,40 +5331,57 @@ int rt_link_vfinfo_list_attrs_parse(struct ynl_parse_arg *yarg, int rt_link_linkinfo_data_msg_put(struct nlmsghdr *nlh, unsigned int attr_type, const rt_link_linkinfo_data_msg& obj) { - if (obj.bond.has_value()) + if (obj.bond.has_value()) { rt_link_linkinfo_bond_attrs_put(nlh, IFLA_INFO_DATA, obj.bond.value()); - if (obj.bridge.has_value()) + } + if (obj.bridge.has_value()) { rt_link_linkinfo_bridge_attrs_put(nlh, IFLA_INFO_DATA, obj.bridge.value()); - if (obj.erspan.has_value()) + } + if (obj.erspan.has_value()) { rt_link_linkinfo_gre_attrs_put(nlh, IFLA_INFO_DATA, obj.erspan.value()); - if (obj.gre.has_value()) + } + if (obj.gre.has_value()) { rt_link_linkinfo_gre_attrs_put(nlh, IFLA_INFO_DATA, obj.gre.value()); - if (obj.gretap.has_value()) + } + if (obj.gretap.has_value()) { rt_link_linkinfo_gre_attrs_put(nlh, IFLA_INFO_DATA, obj.gretap.value()); - if (obj.ip6gre.has_value()) + } + if (obj.ip6gre.has_value()) { rt_link_linkinfo_gre6_attrs_put(nlh, IFLA_INFO_DATA, obj.ip6gre.value()); - if (obj.geneve.has_value()) + } + if (obj.geneve.has_value()) { rt_link_linkinfo_geneve_attrs_put(nlh, IFLA_INFO_DATA, obj.geneve.value()); - if (obj.ipip.has_value()) + } + if (obj.ipip.has_value()) { rt_link_linkinfo_iptun_attrs_put(nlh, IFLA_INFO_DATA, obj.ipip.value()); - if (obj.ip6tnl.has_value()) + } + if (obj.ip6tnl.has_value()) { rt_link_linkinfo_ip6tnl_attrs_put(nlh, IFLA_INFO_DATA, obj.ip6tnl.value()); - if (obj.sit.has_value()) + } + if (obj.sit.has_value()) { rt_link_linkinfo_iptun_attrs_put(nlh, IFLA_INFO_DATA, obj.sit.value()); - if (obj.tun.has_value()) + } + if (obj.tun.has_value()) { rt_link_linkinfo_tun_attrs_put(nlh, IFLA_INFO_DATA, obj.tun.value()); - if (obj.vlan.has_value()) + } + if (obj.vlan.has_value()) { rt_link_linkinfo_vlan_attrs_put(nlh, IFLA_INFO_DATA, obj.vlan.value()); - if (obj.vrf.has_value()) + } + if (obj.vrf.has_value()) { rt_link_linkinfo_vrf_attrs_put(nlh, IFLA_INFO_DATA, obj.vrf.value()); - if (obj.vti.has_value()) + } + if (obj.vti.has_value()) { rt_link_linkinfo_vti_attrs_put(nlh, IFLA_INFO_DATA, obj.vti.value()); - if (obj.vti6.has_value()) + } + if (obj.vti6.has_value()) { rt_link_linkinfo_vti6_attrs_put(nlh, IFLA_INFO_DATA, obj.vti6.value()); - if (obj.netkit.has_value()) + } + if (obj.netkit.has_value()) { rt_link_linkinfo_netkit_attrs_put(nlh, IFLA_INFO_DATA, obj.netkit.value()); - if (obj.ovpn.has_value()) + } + if (obj.ovpn.has_value()) { rt_link_linkinfo_ovpn_attrs_put(nlh, IFLA_INFO_DATA, obj.ovpn.value()); + } return 0; } @@ -4716,88 +5399,105 @@ int rt_link_linkinfo_data_msg_parse(struct ynl_parse_arg *yarg, if (sel == "bond") { parg.rsp_policy = &rt_link_linkinfo_bond_attrs_nest; parg.data = &dst->bond.emplace(); - if (rt_link_linkinfo_bond_attrs_parse(&parg, attr)) + if (rt_link_linkinfo_bond_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (sel == "bridge") { parg.rsp_policy = &rt_link_linkinfo_bridge_attrs_nest; parg.data = &dst->bridge.emplace(); - if (rt_link_linkinfo_bridge_attrs_parse(&parg, attr)) + if (rt_link_linkinfo_bridge_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (sel == "erspan") { parg.rsp_policy = &rt_link_linkinfo_gre_attrs_nest; parg.data = &dst->erspan.emplace(); - if (rt_link_linkinfo_gre_attrs_parse(&parg, attr)) + if (rt_link_linkinfo_gre_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (sel == "gre") { parg.rsp_policy = &rt_link_linkinfo_gre_attrs_nest; parg.data = &dst->gre.emplace(); - if (rt_link_linkinfo_gre_attrs_parse(&parg, attr)) + if (rt_link_linkinfo_gre_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (sel == "gretap") { parg.rsp_policy = &rt_link_linkinfo_gre_attrs_nest; parg.data = &dst->gretap.emplace(); - if (rt_link_linkinfo_gre_attrs_parse(&parg, attr)) + if (rt_link_linkinfo_gre_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (sel == "ip6gre") { parg.rsp_policy = &rt_link_linkinfo_gre6_attrs_nest; parg.data = &dst->ip6gre.emplace(); - if (rt_link_linkinfo_gre6_attrs_parse(&parg, attr)) + if (rt_link_linkinfo_gre6_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (sel == "geneve") { parg.rsp_policy = &rt_link_linkinfo_geneve_attrs_nest; parg.data = &dst->geneve.emplace(); - if (rt_link_linkinfo_geneve_attrs_parse(&parg, attr)) + if (rt_link_linkinfo_geneve_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (sel == "ipip") { parg.rsp_policy = &rt_link_linkinfo_iptun_attrs_nest; parg.data = &dst->ipip.emplace(); - if (rt_link_linkinfo_iptun_attrs_parse(&parg, attr)) + if (rt_link_linkinfo_iptun_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (sel == "ip6tnl") { parg.rsp_policy = &rt_link_linkinfo_ip6tnl_attrs_nest; parg.data = &dst->ip6tnl.emplace(); - if (rt_link_linkinfo_ip6tnl_attrs_parse(&parg, attr)) + if (rt_link_linkinfo_ip6tnl_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (sel == "sit") { parg.rsp_policy = &rt_link_linkinfo_iptun_attrs_nest; parg.data = &dst->sit.emplace(); - if (rt_link_linkinfo_iptun_attrs_parse(&parg, attr)) + if (rt_link_linkinfo_iptun_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (sel == "tun") { parg.rsp_policy = &rt_link_linkinfo_tun_attrs_nest; parg.data = &dst->tun.emplace(); - if (rt_link_linkinfo_tun_attrs_parse(&parg, attr)) + if (rt_link_linkinfo_tun_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (sel == "vlan") { parg.rsp_policy = &rt_link_linkinfo_vlan_attrs_nest; parg.data = &dst->vlan.emplace(); - if (rt_link_linkinfo_vlan_attrs_parse(&parg, attr)) + if (rt_link_linkinfo_vlan_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (sel == "vrf") { parg.rsp_policy = &rt_link_linkinfo_vrf_attrs_nest; parg.data = &dst->vrf.emplace(); - if (rt_link_linkinfo_vrf_attrs_parse(&parg, attr)) + if (rt_link_linkinfo_vrf_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (sel == "vti") { parg.rsp_policy = &rt_link_linkinfo_vti_attrs_nest; parg.data = &dst->vti.emplace(); - if (rt_link_linkinfo_vti_attrs_parse(&parg, attr)) + if (rt_link_linkinfo_vti_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (sel == "vti6") { parg.rsp_policy = &rt_link_linkinfo_vti6_attrs_nest; parg.data = &dst->vti6.emplace(); - if (rt_link_linkinfo_vti6_attrs_parse(&parg, attr)) + if (rt_link_linkinfo_vti6_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (sel == "netkit") { parg.rsp_policy = &rt_link_linkinfo_netkit_attrs_nest; parg.data = &dst->netkit.emplace(); - if (rt_link_linkinfo_netkit_attrs_parse(&parg, attr)) + if (rt_link_linkinfo_netkit_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (sel == "ovpn") { parg.rsp_policy = &rt_link_linkinfo_ovpn_attrs_nest; parg.data = &dst->ovpn.emplace(); - if (rt_link_linkinfo_ovpn_attrs_parse(&parg, attr)) + if (rt_link_linkinfo_ovpn_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } return 0; } @@ -4808,16 +5508,21 @@ int rt_link_linkinfo_attrs_put(struct nlmsghdr *nlh, unsigned int attr_type, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - if (obj.kind.size() > 0) + if (obj.kind.size() > 0) { ynl_attr_put_str(nlh, IFLA_INFO_KIND, obj.kind.data()); - if (obj.data.has_value()) + } + if (obj.data.has_value()) { rt_link_linkinfo_data_msg_put(nlh, IFLA_INFO_DATA, obj.data.value()); - if (obj.xstats.size() > 0) + } + if (obj.xstats.size() > 0) { ynl_attr_put(nlh, IFLA_INFO_XSTATS, obj.xstats.data(), obj.xstats.size()); - if (obj.slave_kind.size() > 0) + } + if (obj.slave_kind.size() > 0) { ynl_attr_put_str(nlh, IFLA_INFO_SLAVE_KIND, obj.slave_kind.data()); - if (obj.slave_data.has_value()) + } + if (obj.slave_data.has_value()) { rt_link_linkinfo_member_data_msg_put(nlh, IFLA_INFO_SLAVE_DATA, obj.slave_data.value()); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -4836,39 +5541,48 @@ int rt_link_linkinfo_attrs_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == IFLA_INFO_KIND) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->kind.assign(ynl_attr_get_str(attr)); } else if (type == IFLA_INFO_DATA) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &rt_link_linkinfo_data_msg_nest; parg.data = &dst->data; - if (dst->kind.empty()) + if (dst->kind.empty()) { return ynl_submsg_failed(yarg, "data", "kind"); - if (rt_link_linkinfo_data_msg_parse(&parg, dst->kind, attr)) + } + if (rt_link_linkinfo_data_msg_parse(&parg, dst->kind, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == IFLA_INFO_XSTATS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->xstats.assign(data, data + len); } else if (type == IFLA_INFO_SLAVE_KIND) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->slave_kind.assign(ynl_attr_get_str(attr)); } else if (type == IFLA_INFO_SLAVE_DATA) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &rt_link_linkinfo_member_data_msg_nest; parg.data = &dst->slave_data; - if (dst->slave_kind.empty()) + if (dst->slave_kind.empty()) { return ynl_submsg_failed(yarg, "slave-data", "slave-kind"); - if (rt_link_linkinfo_member_data_msg_parse(&parg, dst->slave_kind, attr)) + } + if (rt_link_linkinfo_member_data_msg_parse(&parg, dst->slave_kind, attr)) { return YNL_PARSE_CB_ERROR; + } } } @@ -4892,52 +5606,74 @@ int rt_link_newlink(ynl_cpp::ynl_socket& ys, rt_link_newlink_req& req) hdr = ynl_nlmsg_put_extra_header(nlh, hdr_len); memcpy(hdr, &req._hdr, hdr_len); - if (req.ifname.size() > 0) + if (req.ifname.size() > 0) { ynl_attr_put_str(nlh, IFLA_IFNAME, req.ifname.data()); - if (req.net_ns_pid.has_value()) + } + if (req.net_ns_pid.has_value()) { ynl_attr_put_u32(nlh, IFLA_NET_NS_PID, req.net_ns_pid.value()); - if (req.net_ns_fd.has_value()) + } + if (req.net_ns_fd.has_value()) { ynl_attr_put_u32(nlh, IFLA_NET_NS_FD, req.net_ns_fd.value()); - if (req.target_netnsid.has_value()) + } + if (req.target_netnsid.has_value()) { ynl_attr_put_s32(nlh, IFLA_TARGET_NETNSID, req.target_netnsid.value()); - if (req.link_netnsid.has_value()) + } + if (req.link_netnsid.has_value()) { ynl_attr_put_s32(nlh, IFLA_LINK_NETNSID, req.link_netnsid.value()); - if (req.linkinfo.has_value()) + } + if (req.linkinfo.has_value()) { rt_link_linkinfo_attrs_put(nlh, IFLA_LINKINFO, req.linkinfo.value()); - if (req.group.has_value()) + } + if (req.group.has_value()) { ynl_attr_put_u32(nlh, IFLA_GROUP, req.group.value()); - if (req.num_tx_queues.has_value()) + } + if (req.num_tx_queues.has_value()) { ynl_attr_put_u32(nlh, IFLA_NUM_TX_QUEUES, req.num_tx_queues.value()); - if (req.num_rx_queues.has_value()) + } + if (req.num_rx_queues.has_value()) { ynl_attr_put_u32(nlh, IFLA_NUM_RX_QUEUES, req.num_rx_queues.value()); - if (req.address.size() > 0) + } + if (req.address.size() > 0) { ynl_attr_put(nlh, IFLA_ADDRESS, req.address.data(), req.address.size()); - if (req.broadcast.size() > 0) + } + if (req.broadcast.size() > 0) { ynl_attr_put(nlh, IFLA_BROADCAST, req.broadcast.data(), req.broadcast.size()); - if (req.mtu.has_value()) + } + if (req.mtu.has_value()) { ynl_attr_put_u32(nlh, IFLA_MTU, req.mtu.value()); - if (req.txqlen.has_value()) + } + if (req.txqlen.has_value()) { ynl_attr_put_u32(nlh, IFLA_TXQLEN, req.txqlen.value()); - if (req.operstate.has_value()) + } + if (req.operstate.has_value()) { ynl_attr_put_u8(nlh, IFLA_OPERSTATE, req.operstate.value()); - if (req.linkmode.has_value()) + } + if (req.linkmode.has_value()) { ynl_attr_put_u8(nlh, IFLA_LINKMODE, req.linkmode.value()); - if (req.gso_max_size.has_value()) + } + if (req.gso_max_size.has_value()) { ynl_attr_put_u32(nlh, IFLA_GSO_MAX_SIZE, req.gso_max_size.value()); - if (req.gso_max_segs.has_value()) + } + if (req.gso_max_segs.has_value()) { ynl_attr_put_u32(nlh, IFLA_GSO_MAX_SEGS, req.gso_max_segs.value()); - if (req.gro_max_size.has_value()) + } + if (req.gro_max_size.has_value()) { ynl_attr_put_u32(nlh, IFLA_GRO_MAX_SIZE, req.gro_max_size.value()); - if (req.gso_ipv4_max_size.has_value()) + } + if (req.gso_ipv4_max_size.has_value()) { ynl_attr_put_u32(nlh, IFLA_GSO_IPV4_MAX_SIZE, req.gso_ipv4_max_size.value()); - if (req.gro_ipv4_max_size.has_value()) + } + if (req.gro_ipv4_max_size.has_value()) { ynl_attr_put_u32(nlh, IFLA_GRO_IPV4_MAX_SIZE, req.gro_ipv4_max_size.value()); - if (req.af_spec.has_value()) + } + if (req.af_spec.has_value()) { rt_link_af_spec_attrs_put(nlh, IFLA_AF_SPEC, req.af_spec.value()); + } err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return -1; + } return 0; } @@ -4959,12 +5695,14 @@ int rt_link_dellink(ynl_cpp::ynl_socket& ys, rt_link_dellink_req& req) hdr = ynl_nlmsg_put_extra_header(nlh, hdr_len); memcpy(hdr, &req._hdr, hdr_len); - if (req.ifname.size() > 0) + if (req.ifname.size() > 0) { ynl_attr_put_str(nlh, IFLA_IFNAME, req.ifname.data()); + } err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return -1; + } return 0; } @@ -4989,301 +5727,370 @@ int rt_link_getlink_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == IFLA_ADDRESS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->address.assign(data, data + len); } else if (type == IFLA_BROADCAST) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->broadcast.assign(data, data + len); } else if (type == IFLA_IFNAME) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->ifname.assign(ynl_attr_get_str(attr)); } else if (type == IFLA_MTU) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->mtu = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_LINK) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->link = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_QDISC) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->qdisc.assign(ynl_attr_get_str(attr)); } else if (type == IFLA_STATS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); unsigned int struct_sz = sizeof(struct rtnl_link_stats); dst->stats.emplace(); memcpy(&*dst->stats, ynl_attr_data(attr), std::min(struct_sz, len)); } else if (type == IFLA_COST) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->cost.assign(ynl_attr_get_str(attr)); } else if (type == IFLA_PRIORITY) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->priority.assign(ynl_attr_get_str(attr)); } else if (type == IFLA_MASTER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->master = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_WIRELESS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->wireless.assign(ynl_attr_get_str(attr)); } else if (type == IFLA_PROTINFO) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->protinfo.assign(ynl_attr_get_str(attr)); } else if (type == IFLA_TXQLEN) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->txqlen = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_MAP) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); unsigned int struct_sz = sizeof(struct rtnl_link_ifmap); dst->map.emplace(); memcpy(&*dst->map, ynl_attr_data(attr), std::min(struct_sz, len)); } else if (type == IFLA_WEIGHT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->weight = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_OPERSTATE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->operstate = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_LINKMODE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->linkmode = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_LINKINFO) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &rt_link_linkinfo_attrs_nest; parg.data = &dst->linkinfo.emplace(); - if (rt_link_linkinfo_attrs_parse(&parg, attr)) + if (rt_link_linkinfo_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == IFLA_NET_NS_PID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->net_ns_pid = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_IFALIAS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->ifalias.assign(ynl_attr_get_str(attr)); } else if (type == IFLA_NUM_VF) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->num_vf = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_VFINFO_LIST) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &rt_link_vfinfo_list_attrs_nest; parg.data = &dst->vfinfo_list.emplace(); - if (rt_link_vfinfo_list_attrs_parse(&parg, attr)) + if (rt_link_vfinfo_list_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == IFLA_STATS64) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); unsigned int struct_sz = sizeof(struct rtnl_link_stats64); dst->stats64.emplace(); memcpy(&*dst->stats64, ynl_attr_data(attr), std::min(struct_sz, len)); } else if (type == IFLA_VF_PORTS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &rt_link_vf_ports_attrs_nest; parg.data = &dst->vf_ports.emplace(); - if (rt_link_vf_ports_attrs_parse(&parg, attr)) + if (rt_link_vf_ports_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == IFLA_PORT_SELF) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &rt_link_port_self_attrs_nest; parg.data = &dst->port_self.emplace(); - if (rt_link_port_self_attrs_parse(&parg, attr)) + if (rt_link_port_self_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == IFLA_AF_SPEC) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &rt_link_af_spec_attrs_nest; parg.data = &dst->af_spec.emplace(); - if (rt_link_af_spec_attrs_parse(&parg, attr)) + if (rt_link_af_spec_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == IFLA_GROUP) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->group = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_NET_NS_FD) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->net_ns_fd = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_EXT_MASK) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->ext_mask = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_PROMISCUITY) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->promiscuity = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_NUM_TX_QUEUES) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->num_tx_queues = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_NUM_RX_QUEUES) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->num_rx_queues = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_CARRIER) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->carrier = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_PHYS_PORT_ID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->phys_port_id.assign(data, data + len); } else if (type == IFLA_CARRIER_CHANGES) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->carrier_changes = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_PHYS_SWITCH_ID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->phys_switch_id.assign(data, data + len); } else if (type == IFLA_LINK_NETNSID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->link_netnsid = (__s32)ynl_attr_get_s32(attr); } else if (type == IFLA_PHYS_PORT_NAME) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->phys_port_name.assign(ynl_attr_get_str(attr)); } else if (type == IFLA_PROTO_DOWN) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->proto_down = (__u8)ynl_attr_get_u8(attr); } else if (type == IFLA_GSO_MAX_SEGS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->gso_max_segs = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_GSO_MAX_SIZE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->gso_max_size = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_XDP) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &rt_link_xdp_attrs_nest; parg.data = &dst->xdp.emplace(); - if (rt_link_xdp_attrs_parse(&parg, attr)) + if (rt_link_xdp_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == IFLA_EVENT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->event = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_NEW_NETNSID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->new_netnsid = (__s32)ynl_attr_get_s32(attr); } else if (type == IFLA_TARGET_NETNSID) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->target_netnsid = (__s32)ynl_attr_get_s32(attr); } else if (type == IFLA_CARRIER_UP_COUNT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->carrier_up_count = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_CARRIER_DOWN_COUNT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->carrier_down_count = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_NEW_IFINDEX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->new_ifindex = (__s32)ynl_attr_get_s32(attr); } else if (type == IFLA_MIN_MTU) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->min_mtu = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_MAX_MTU) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->max_mtu = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_PROP_LIST) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &rt_link_prop_list_link_attrs_nest; parg.data = &dst->prop_list.emplace(); - if (rt_link_prop_list_link_attrs_parse(&parg, attr)) + if (rt_link_prop_list_link_attrs_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == IFLA_PERM_ADDRESS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->perm_address.assign(data, data + len); } else if (type == IFLA_PROTO_DOWN_REASON) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->proto_down_reason.assign(ynl_attr_get_str(attr)); } else if (type == IFLA_PARENT_DEV_NAME) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->parent_dev_name.assign(ynl_attr_get_str(attr)); } else if (type == IFLA_PARENT_DEV_BUS_NAME) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->parent_dev_bus_name.assign(ynl_attr_get_str(attr)); } else if (type == IFLA_GRO_MAX_SIZE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->gro_max_size = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_TSO_MAX_SIZE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->tso_max_size = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_TSO_MAX_SEGS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->tso_max_segs = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_ALLMULTI) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->allmulti = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_DEVLINK_PORT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->devlink_port.assign(data, data + len); } else if (type == IFLA_GSO_IPV4_MAX_SIZE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->gso_ipv4_max_size = (__u32)ynl_attr_get_u32(attr); } else if (type == IFLA_GRO_IPV4_MAX_SIZE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->gro_ipv4_max_size = (__u32)ynl_attr_get_u32(attr); } } @@ -5309,14 +6116,18 @@ rt_link_getlink(ynl_cpp::ynl_socket& ys, rt_link_getlink_req& req) hdr = ynl_nlmsg_put_extra_header(nlh, hdr_len); memcpy(hdr, &req._hdr, hdr_len); - if (req.ifname.size() > 0) + if (req.ifname.size() > 0) { ynl_attr_put_str(nlh, IFLA_IFNAME, req.ifname.data()); - if (req.alt_ifname.size() > 0) + } + if (req.alt_ifname.size() > 0) { ynl_attr_put_str(nlh, IFLA_ALT_IFNAME, req.alt_ifname.data()); - if (req.ext_mask.has_value()) + } + if (req.ext_mask.has_value()) { ynl_attr_put_u32(nlh, IFLA_EXT_MASK, req.ext_mask.value()); - if (req.target_netnsid.has_value()) + } + if (req.target_netnsid.has_value()) { ynl_attr_put_s32(nlh, IFLA_TARGET_NETNSID, req.target_netnsid.value()); + } rsp.reset(new rt_link_getlink_rsp()); yrs.yarg.data = rsp.get(); @@ -5324,8 +6135,9 @@ rt_link_getlink(ynl_cpp::ynl_socket& ys, rt_link_getlink_req& req) yrs.rsp_cmd = 16; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -5355,18 +6167,23 @@ rt_link_getlink_dump(ynl_cpp::ynl_socket& ys, rt_link_getlink_req_dump& req) ((struct ynl_sock*)ys)->req_policy = &rt_link_link_attrs_nest; - if (req.target_netnsid.has_value()) + if (req.target_netnsid.has_value()) { ynl_attr_put_s32(nlh, IFLA_TARGET_NETNSID, req.target_netnsid.value()); - if (req.ext_mask.has_value()) + } + if (req.ext_mask.has_value()) { ynl_attr_put_u32(nlh, IFLA_EXT_MASK, req.ext_mask.value()); - if (req.master.has_value()) + } + if (req.master.has_value()) { ynl_attr_put_u32(nlh, IFLA_MASTER, req.master.value()); - if (req.linkinfo.has_value()) + } + if (req.linkinfo.has_value()) { rt_link_linkinfo_attrs_put(nlh, IFLA_LINKINFO, req.linkinfo.value()); + } err = ynl_exec_dump_no_alloc(ys, nlh, &yds); - if (err < 0) + if (err < 0) { return nullptr; + } return ret; } @@ -5389,134 +6206,197 @@ int rt_link_setlink(ynl_cpp::ynl_socket& ys, rt_link_setlink_req& req) hdr = ynl_nlmsg_put_extra_header(nlh, hdr_len); memcpy(hdr, &req._hdr, hdr_len); - if (req.address.size() > 0) + if (req.address.size() > 0) { ynl_attr_put(nlh, IFLA_ADDRESS, req.address.data(), req.address.size()); - if (req.broadcast.size() > 0) + } + if (req.broadcast.size() > 0) { ynl_attr_put(nlh, IFLA_BROADCAST, req.broadcast.data(), req.broadcast.size()); - if (req.ifname.size() > 0) + } + if (req.ifname.size() > 0) { ynl_attr_put_str(nlh, IFLA_IFNAME, req.ifname.data()); - if (req.mtu.has_value()) + } + if (req.mtu.has_value()) { ynl_attr_put_u32(nlh, IFLA_MTU, req.mtu.value()); - if (req.link.has_value()) + } + if (req.link.has_value()) { ynl_attr_put_u32(nlh, IFLA_LINK, req.link.value()); - if (req.qdisc.size() > 0) + } + if (req.qdisc.size() > 0) { ynl_attr_put_str(nlh, IFLA_QDISC, req.qdisc.data()); - if (req.stats) + } + if (req.stats) { ynl_attr_put(nlh, IFLA_STATS, &*req.stats, sizeof(struct rtnl_link_stats)); - if (req.cost.size() > 0) + } + if (req.cost.size() > 0) { ynl_attr_put_str(nlh, IFLA_COST, req.cost.data()); - if (req.priority.size() > 0) + } + if (req.priority.size() > 0) { ynl_attr_put_str(nlh, IFLA_PRIORITY, req.priority.data()); - if (req.master.has_value()) + } + if (req.master.has_value()) { ynl_attr_put_u32(nlh, IFLA_MASTER, req.master.value()); - if (req.wireless.size() > 0) + } + if (req.wireless.size() > 0) { ynl_attr_put_str(nlh, IFLA_WIRELESS, req.wireless.data()); - if (req.protinfo.size() > 0) + } + if (req.protinfo.size() > 0) { ynl_attr_put_str(nlh, IFLA_PROTINFO, req.protinfo.data()); - if (req.txqlen.has_value()) + } + if (req.txqlen.has_value()) { ynl_attr_put_u32(nlh, IFLA_TXQLEN, req.txqlen.value()); - if (req.map) + } + if (req.map) { ynl_attr_put(nlh, IFLA_MAP, &*req.map, sizeof(struct rtnl_link_ifmap)); - if (req.weight.has_value()) + } + if (req.weight.has_value()) { ynl_attr_put_u32(nlh, IFLA_WEIGHT, req.weight.value()); - if (req.operstate.has_value()) + } + if (req.operstate.has_value()) { ynl_attr_put_u8(nlh, IFLA_OPERSTATE, req.operstate.value()); - if (req.linkmode.has_value()) + } + if (req.linkmode.has_value()) { ynl_attr_put_u8(nlh, IFLA_LINKMODE, req.linkmode.value()); - if (req.linkinfo.has_value()) + } + if (req.linkinfo.has_value()) { rt_link_linkinfo_attrs_put(nlh, IFLA_LINKINFO, req.linkinfo.value()); - if (req.net_ns_pid.has_value()) + } + if (req.net_ns_pid.has_value()) { ynl_attr_put_u32(nlh, IFLA_NET_NS_PID, req.net_ns_pid.value()); - if (req.ifalias.size() > 0) + } + if (req.ifalias.size() > 0) { ynl_attr_put_str(nlh, IFLA_IFALIAS, req.ifalias.data()); - if (req.num_vf.has_value()) + } + if (req.num_vf.has_value()) { ynl_attr_put_u32(nlh, IFLA_NUM_VF, req.num_vf.value()); - if (req.vfinfo_list.has_value()) + } + if (req.vfinfo_list.has_value()) { rt_link_vfinfo_list_attrs_put(nlh, IFLA_VFINFO_LIST, req.vfinfo_list.value()); - if (req.stats64) + } + if (req.stats64) { ynl_attr_put(nlh, IFLA_STATS64, &*req.stats64, sizeof(struct rtnl_link_stats64)); - if (req.vf_ports.has_value()) + } + if (req.vf_ports.has_value()) { rt_link_vf_ports_attrs_put(nlh, IFLA_VF_PORTS, req.vf_ports.value()); - if (req.port_self.has_value()) + } + if (req.port_self.has_value()) { rt_link_port_self_attrs_put(nlh, IFLA_PORT_SELF, req.port_self.value()); - if (req.af_spec.has_value()) + } + if (req.af_spec.has_value()) { rt_link_af_spec_attrs_put(nlh, IFLA_AF_SPEC, req.af_spec.value()); - if (req.group.has_value()) + } + if (req.group.has_value()) { ynl_attr_put_u32(nlh, IFLA_GROUP, req.group.value()); - if (req.net_ns_fd.has_value()) + } + if (req.net_ns_fd.has_value()) { ynl_attr_put_u32(nlh, IFLA_NET_NS_FD, req.net_ns_fd.value()); - if (req.ext_mask.has_value()) + } + if (req.ext_mask.has_value()) { ynl_attr_put_u32(nlh, IFLA_EXT_MASK, req.ext_mask.value()); - if (req.promiscuity.has_value()) + } + if (req.promiscuity.has_value()) { ynl_attr_put_u32(nlh, IFLA_PROMISCUITY, req.promiscuity.value()); - if (req.num_tx_queues.has_value()) + } + if (req.num_tx_queues.has_value()) { ynl_attr_put_u32(nlh, IFLA_NUM_TX_QUEUES, req.num_tx_queues.value()); - if (req.num_rx_queues.has_value()) + } + if (req.num_rx_queues.has_value()) { ynl_attr_put_u32(nlh, IFLA_NUM_RX_QUEUES, req.num_rx_queues.value()); - if (req.carrier.has_value()) + } + if (req.carrier.has_value()) { ynl_attr_put_u8(nlh, IFLA_CARRIER, req.carrier.value()); - if (req.phys_port_id.size() > 0) + } + if (req.phys_port_id.size() > 0) { ynl_attr_put(nlh, IFLA_PHYS_PORT_ID, req.phys_port_id.data(), req.phys_port_id.size()); - if (req.carrier_changes.has_value()) + } + if (req.carrier_changes.has_value()) { ynl_attr_put_u32(nlh, IFLA_CARRIER_CHANGES, req.carrier_changes.value()); - if (req.phys_switch_id.size() > 0) + } + if (req.phys_switch_id.size() > 0) { ynl_attr_put(nlh, IFLA_PHYS_SWITCH_ID, req.phys_switch_id.data(), req.phys_switch_id.size()); - if (req.link_netnsid.has_value()) + } + if (req.link_netnsid.has_value()) { ynl_attr_put_s32(nlh, IFLA_LINK_NETNSID, req.link_netnsid.value()); - if (req.phys_port_name.size() > 0) + } + if (req.phys_port_name.size() > 0) { ynl_attr_put_str(nlh, IFLA_PHYS_PORT_NAME, req.phys_port_name.data()); - if (req.proto_down.has_value()) + } + if (req.proto_down.has_value()) { ynl_attr_put_u8(nlh, IFLA_PROTO_DOWN, req.proto_down.value()); - if (req.gso_max_segs.has_value()) + } + if (req.gso_max_segs.has_value()) { ynl_attr_put_u32(nlh, IFLA_GSO_MAX_SEGS, req.gso_max_segs.value()); - if (req.gso_max_size.has_value()) + } + if (req.gso_max_size.has_value()) { ynl_attr_put_u32(nlh, IFLA_GSO_MAX_SIZE, req.gso_max_size.value()); - if (req.xdp.has_value()) + } + if (req.xdp.has_value()) { rt_link_xdp_attrs_put(nlh, IFLA_XDP, req.xdp.value()); - if (req.event.has_value()) + } + if (req.event.has_value()) { ynl_attr_put_u32(nlh, IFLA_EVENT, req.event.value()); - if (req.new_netnsid.has_value()) + } + if (req.new_netnsid.has_value()) { ynl_attr_put_s32(nlh, IFLA_NEW_NETNSID, req.new_netnsid.value()); - if (req.target_netnsid.has_value()) + } + if (req.target_netnsid.has_value()) { ynl_attr_put_s32(nlh, IFLA_TARGET_NETNSID, req.target_netnsid.value()); - if (req.carrier_up_count.has_value()) + } + if (req.carrier_up_count.has_value()) { ynl_attr_put_u32(nlh, IFLA_CARRIER_UP_COUNT, req.carrier_up_count.value()); - if (req.carrier_down_count.has_value()) + } + if (req.carrier_down_count.has_value()) { ynl_attr_put_u32(nlh, IFLA_CARRIER_DOWN_COUNT, req.carrier_down_count.value()); - if (req.new_ifindex.has_value()) + } + if (req.new_ifindex.has_value()) { ynl_attr_put_s32(nlh, IFLA_NEW_IFINDEX, req.new_ifindex.value()); - if (req.min_mtu.has_value()) + } + if (req.min_mtu.has_value()) { ynl_attr_put_u32(nlh, IFLA_MIN_MTU, req.min_mtu.value()); - if (req.max_mtu.has_value()) + } + if (req.max_mtu.has_value()) { ynl_attr_put_u32(nlh, IFLA_MAX_MTU, req.max_mtu.value()); - if (req.prop_list.has_value()) + } + if (req.prop_list.has_value()) { rt_link_prop_list_link_attrs_put(nlh, IFLA_PROP_LIST, req.prop_list.value()); - if (req.perm_address.size() > 0) + } + if (req.perm_address.size() > 0) { ynl_attr_put(nlh, IFLA_PERM_ADDRESS, req.perm_address.data(), req.perm_address.size()); - if (req.proto_down_reason.size() > 0) + } + if (req.proto_down_reason.size() > 0) { ynl_attr_put_str(nlh, IFLA_PROTO_DOWN_REASON, req.proto_down_reason.data()); - if (req.parent_dev_name.size() > 0) + } + if (req.parent_dev_name.size() > 0) { ynl_attr_put_str(nlh, IFLA_PARENT_DEV_NAME, req.parent_dev_name.data()); - if (req.parent_dev_bus_name.size() > 0) + } + if (req.parent_dev_bus_name.size() > 0) { ynl_attr_put_str(nlh, IFLA_PARENT_DEV_BUS_NAME, req.parent_dev_bus_name.data()); - if (req.gro_max_size.has_value()) + } + if (req.gro_max_size.has_value()) { ynl_attr_put_u32(nlh, IFLA_GRO_MAX_SIZE, req.gro_max_size.value()); - if (req.tso_max_size.has_value()) + } + if (req.tso_max_size.has_value()) { ynl_attr_put_u32(nlh, IFLA_TSO_MAX_SIZE, req.tso_max_size.value()); - if (req.tso_max_segs.has_value()) + } + if (req.tso_max_segs.has_value()) { ynl_attr_put_u32(nlh, IFLA_TSO_MAX_SEGS, req.tso_max_segs.value()); - if (req.allmulti.has_value()) + } + if (req.allmulti.has_value()) { ynl_attr_put_u32(nlh, IFLA_ALLMULTI, req.allmulti.value()); - if (req.devlink_port.size() > 0) + } + if (req.devlink_port.size() > 0) { ynl_attr_put(nlh, IFLA_DEVLINK_PORT, req.devlink_port.data(), req.devlink_port.size()); - if (req.gso_ipv4_max_size.has_value()) + } + if (req.gso_ipv4_max_size.has_value()) { ynl_attr_put_u32(nlh, IFLA_GSO_IPV4_MAX_SIZE, req.gso_ipv4_max_size.value()); - if (req.gro_ipv4_max_size.has_value()) + } + if (req.gro_ipv4_max_size.has_value()) { ynl_attr_put_u32(nlh, IFLA_GRO_IPV4_MAX_SIZE, req.gro_ipv4_max_size.value()); + } err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return -1; + } return 0; } @@ -5541,35 +6421,41 @@ int rt_link_getstats_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == IFLA_STATS_LINK_64) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); unsigned int struct_sz = sizeof(struct rtnl_link_stats64); dst->link_64.emplace(); memcpy(&*dst->link_64, ynl_attr_data(attr), std::min(struct_sz, len)); } else if (type == IFLA_STATS_LINK_XSTATS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->link_xstats.assign(data, data + len); } else if (type == IFLA_STATS_LINK_XSTATS_SLAVE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->link_xstats_slave.assign(data, data + len); } else if (type == IFLA_STATS_LINK_OFFLOAD_XSTATS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &rt_link_link_offload_xstats_nest; parg.data = &dst->link_offload_xstats.emplace(); - if (rt_link_link_offload_xstats_parse(&parg, attr)) + if (rt_link_link_offload_xstats_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == IFLA_STATS_AF_SPEC) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->af_spec.assign(data, data + len); @@ -5603,8 +6489,9 @@ rt_link_getstats(ynl_cpp::ynl_socket& ys, rt_link_getstats_req& req) yrs.rsp_cmd = 92; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -5635,8 +6522,9 @@ rt_link_getstats_dump(ynl_cpp::ynl_socket& ys, rt_link_getstats_req_dump& req) ((struct ynl_sock*)ys)->req_policy = &rt_link_stats_attrs_nest; err = ynl_exec_dump_no_alloc(ys, nlh, &yds); - if (err < 0) + if (err < 0) { return nullptr; + } return ret; } diff --git a/generated/tcp_metrics-user.cpp b/generated/tcp_metrics-user.cpp index 5c1fba0..b9c3783 100644 --- a/generated/tcp_metrics-user.cpp +++ b/generated/tcp_metrics-user.cpp @@ -23,8 +23,9 @@ static constexpr std::array tcp_metri std::string_view tcp_metrics_op_str(int op) { - if (op < 0 || op >= (int)(tcp_metrics_op_strmap.size())) + if (op < 0 || op >= (int)(tcp_metrics_op_strmap.size())) { return ""; + } return tcp_metrics_op_strmap[op]; } @@ -101,32 +102,39 @@ int tcp_metrics_metrics_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == TCP_METRICS_A_METRICS_RTT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->rtt = (__u32)ynl_attr_get_u32(attr); } else if (type == TCP_METRICS_A_METRICS_RTTVAR) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->rttvar = (__u32)ynl_attr_get_u32(attr); } else if (type == TCP_METRICS_A_METRICS_SSTHRESH) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->ssthresh = (__u32)ynl_attr_get_u32(attr); } else if (type == TCP_METRICS_A_METRICS_CWND) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->cwnd = (__u32)ynl_attr_get_u32(attr); } else if (type == TCP_METRICS_A_METRICS_REODERING) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->reodering = (__u32)ynl_attr_get_u32(attr); } else if (type == TCP_METRICS_A_METRICS_RTT_US) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->rtt_us = (__u32)ynl_attr_get_u32(attr); } else if (type == TCP_METRICS_A_METRICS_RTTVAR_US) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->rttvar_us = (__u32)ynl_attr_get_u32(attr); } } @@ -150,52 +158,63 @@ int tcp_metrics_get_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == TCP_METRICS_ATTR_ADDR_IPV4) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->addr_ipv4 = (__u32)ynl_attr_get_u32(attr); } else if (type == TCP_METRICS_ATTR_ADDR_IPV6) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->addr_ipv6.assign(data, data + len); } else if (type == TCP_METRICS_ATTR_SADDR_IPV4) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->saddr_ipv4 = (__u32)ynl_attr_get_u32(attr); } else if (type == TCP_METRICS_ATTR_SADDR_IPV6) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->saddr_ipv6.assign(data, data + len); } else if (type == TCP_METRICS_ATTR_AGE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->age = (__u64)ynl_attr_get_u64(attr); } else if (type == TCP_METRICS_ATTR_VALS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &tcp_metrics_metrics_nest; parg.data = &dst->vals.emplace(); - if (tcp_metrics_metrics_parse(&parg, attr)) + if (tcp_metrics_metrics_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == TCP_METRICS_ATTR_FOPEN_MSS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->fopen_mss = (__u16)ynl_attr_get_u16(attr); } else if (type == TCP_METRICS_ATTR_FOPEN_SYN_DROPS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->fopen_syn_drops = (__u16)ynl_attr_get_u16(attr); } else if (type == TCP_METRICS_ATTR_FOPEN_SYN_DROP_TS) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->fopen_syn_drop_ts = (__u64)ynl_attr_get_u64(attr); } else if (type == TCP_METRICS_ATTR_FOPEN_COOKIE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->fopen_cookie.assign(data, data + len); @@ -217,14 +236,18 @@ tcp_metrics_get(ynl_cpp::ynl_socket& ys, tcp_metrics_get_req& req) ((struct ynl_sock*)ys)->req_policy = &tcp_metrics_nest; yrs.yarg.rsp_policy = &tcp_metrics_nest; - if (req.addr_ipv4.has_value()) + if (req.addr_ipv4.has_value()) { ynl_attr_put_u32(nlh, TCP_METRICS_ATTR_ADDR_IPV4, req.addr_ipv4.value()); - if (req.addr_ipv6.size() > 0) + } + if (req.addr_ipv6.size() > 0) { ynl_attr_put(nlh, TCP_METRICS_ATTR_ADDR_IPV6, req.addr_ipv6.data(), req.addr_ipv6.size()); - if (req.saddr_ipv4.has_value()) + } + if (req.saddr_ipv4.has_value()) { ynl_attr_put_u32(nlh, TCP_METRICS_ATTR_SADDR_IPV4, req.saddr_ipv4.value()); - if (req.saddr_ipv6.size() > 0) + } + if (req.saddr_ipv6.size() > 0) { ynl_attr_put(nlh, TCP_METRICS_ATTR_SADDR_IPV6, req.saddr_ipv6.data(), req.saddr_ipv6.size()); + } rsp.reset(new tcp_metrics_get_rsp()); yrs.yarg.data = rsp.get(); @@ -232,8 +255,9 @@ tcp_metrics_get(ynl_cpp::ynl_socket& ys, tcp_metrics_get_req& req) yrs.rsp_cmd = TCP_METRICS_CMD_GET; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -257,8 +281,9 @@ tcp_metrics_get_dump(ynl_cpp::ynl_socket& ys) nlh = ynl_gemsg_start_dump(ys, ((struct ynl_sock*)ys)->family_id, TCP_METRICS_CMD_GET, 1); err = ynl_exec_dump_no_alloc(ys, nlh, &yds); - if (err < 0) + if (err < 0) { return nullptr; + } return ret; } @@ -274,18 +299,23 @@ int tcp_metrics_del(ynl_cpp::ynl_socket& ys, tcp_metrics_del_req& req) nlh = ynl_gemsg_start_req(ys, ((struct ynl_sock*)ys)->family_id, TCP_METRICS_CMD_DEL, 1); ((struct ynl_sock*)ys)->req_policy = &tcp_metrics_nest; - if (req.addr_ipv4.has_value()) + if (req.addr_ipv4.has_value()) { ynl_attr_put_u32(nlh, TCP_METRICS_ATTR_ADDR_IPV4, req.addr_ipv4.value()); - if (req.addr_ipv6.size() > 0) + } + if (req.addr_ipv6.size() > 0) { ynl_attr_put(nlh, TCP_METRICS_ATTR_ADDR_IPV6, req.addr_ipv6.data(), req.addr_ipv6.size()); - if (req.saddr_ipv4.has_value()) + } + if (req.saddr_ipv4.has_value()) { ynl_attr_put_u32(nlh, TCP_METRICS_ATTR_SADDR_IPV4, req.saddr_ipv4.value()); - if (req.saddr_ipv6.size() > 0) + } + if (req.saddr_ipv6.size() > 0) { ynl_attr_put(nlh, TCP_METRICS_ATTR_SADDR_IPV6, req.saddr_ipv6.data(), req.saddr_ipv6.size()); + } err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return -1; + } return 0; } diff --git a/generated/team-user.cpp b/generated/team-user.cpp index aebaf00..aaa027d 100644 --- a/generated/team-user.cpp +++ b/generated/team-user.cpp @@ -24,8 +24,9 @@ static constexpr std::array team_o std::string_view team_op_str(int op) { - if (op < 0 || op >= (int)(team_op_strmap.size())) + if (op < 0 || op >= (int)(team_op_strmap.size())) { return ""; + } return team_op_strmap[op]; } @@ -137,20 +138,27 @@ int team_attr_option_put(struct nlmsghdr *nlh, unsigned int attr_type, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - if (obj.name.size() > 0) + if (obj.name.size() > 0) { ynl_attr_put_str(nlh, TEAM_ATTR_OPTION_NAME, obj.name.data()); - if (obj.changed) + } + if (obj.changed) { ynl_attr_put(nlh, TEAM_ATTR_OPTION_CHANGED, NULL, 0); - if (obj.type.has_value()) + } + if (obj.type.has_value()) { ynl_attr_put_u8(nlh, TEAM_ATTR_OPTION_TYPE, obj.type.value()); - if (obj.data.size() > 0) + } + if (obj.data.size() > 0) { ynl_attr_put(nlh, TEAM_ATTR_OPTION_DATA, obj.data.data(), obj.data.size()); - if (obj.removed) + } + if (obj.removed) { ynl_attr_put(nlh, TEAM_ATTR_OPTION_REMOVED, NULL, 0); - if (obj.port_ifindex.has_value()) + } + if (obj.port_ifindex.has_value()) { ynl_attr_put_u32(nlh, TEAM_ATTR_OPTION_PORT_IFINDEX, obj.port_ifindex.value()); - if (obj.array_index.has_value()) + } + if (obj.array_index.has_value()) { ynl_attr_put_u32(nlh, TEAM_ATTR_OPTION_ARRAY_INDEX, obj.array_index.value()); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -166,32 +174,39 @@ int team_attr_option_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == TEAM_ATTR_OPTION_NAME) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->name.assign(ynl_attr_get_str(attr)); } else if (type == TEAM_ATTR_OPTION_CHANGED) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == TEAM_ATTR_OPTION_TYPE) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->type = (__u8)ynl_attr_get_u8(attr); } else if (type == TEAM_ATTR_OPTION_DATA) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } unsigned int len = ynl_attr_data_len(attr); __u8 *data = (__u8*)ynl_attr_data(attr); dst->data.assign(data, data + len); } else if (type == TEAM_ATTR_OPTION_REMOVED) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == TEAM_ATTR_OPTION_PORT_IFINDEX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->port_ifindex = (__u32)ynl_attr_get_u32(attr); } else if (type == TEAM_ATTR_OPTION_ARRAY_INDEX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->array_index = (__u32)ynl_attr_get_u32(attr); } } @@ -209,26 +224,32 @@ int team_attr_port_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == TEAM_ATTR_PORT_IFINDEX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->ifindex = (__u32)ynl_attr_get_u32(attr); } else if (type == TEAM_ATTR_PORT_CHANGED) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == TEAM_ATTR_PORT_LINKUP) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } else if (type == TEAM_ATTR_PORT_SPEED) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->speed = (__u32)ynl_attr_get_u32(attr); } else if (type == TEAM_ATTR_PORT_DUPLEX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->duplex = (__u8)ynl_attr_get_u8(attr); } else if (type == TEAM_ATTR_PORT_REMOVED) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } } } @@ -241,8 +262,9 @@ int team_item_option_put(struct nlmsghdr *nlh, unsigned int attr_type, struct nlattr *nest; nest = ynl_attr_nest_start(nlh, attr_type); - if (obj.option.has_value()) + if (obj.option.has_value()) { team_attr_option_put(nlh, TEAM_ATTR_ITEM_OPTION, obj.option.value()); + } ynl_attr_nest_end(nlh, nest); return 0; @@ -261,13 +283,15 @@ int team_item_option_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == TEAM_ATTR_ITEM_OPTION) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &team_attr_option_nest; parg.data = &dst->option.emplace(); - if (team_attr_option_parse(&parg, attr)) + if (team_attr_option_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } } @@ -287,13 +311,15 @@ int team_item_port_parse(struct ynl_parse_arg *yarg, unsigned int type = ynl_attr_type(attr); if (type == TEAM_ATTR_ITEM_PORT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &team_attr_port_nest; parg.data = &dst->port.emplace(); - if (team_attr_port_parse(&parg, attr)) + if (team_attr_port_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } } @@ -313,8 +339,9 @@ int team_noop_rsp_parse(const struct nlmsghdr *nlh, struct ynl_parse_arg *yarg) unsigned int type = ynl_attr_type(attr); if (type == TEAM_ATTR_TEAM_IFINDEX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->team_ifindex = (__u32)ynl_attr_get_u32(attr); } } @@ -339,8 +366,9 @@ std::unique_ptr team_noop(ynl_cpp::ynl_socket& ys) yrs.rsp_cmd = TEAM_CMD_NOOP; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -361,17 +389,20 @@ int team_options_set_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == TEAM_ATTR_TEAM_IFINDEX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->team_ifindex = (__u32)ynl_attr_get_u32(attr); } else if (type == TEAM_ATTR_LIST_OPTION) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &team_item_option_nest; parg.data = &dst->list_option.emplace(); - if (team_item_option_parse(&parg, attr)) + if (team_item_option_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } } @@ -390,10 +421,12 @@ team_options_set(ynl_cpp::ynl_socket& ys, team_options_set_req& req) ((struct ynl_sock*)ys)->req_policy = &team_nest; yrs.yarg.rsp_policy = &team_nest; - if (req.team_ifindex.has_value()) + if (req.team_ifindex.has_value()) { ynl_attr_put_u32(nlh, TEAM_ATTR_TEAM_IFINDEX, req.team_ifindex.value()); - if (req.list_option.has_value()) + } + if (req.list_option.has_value()) { team_item_option_put(nlh, TEAM_ATTR_LIST_OPTION, req.list_option.value()); + } rsp.reset(new team_options_set_rsp()); yrs.yarg.data = rsp.get(); @@ -401,8 +434,9 @@ team_options_set(ynl_cpp::ynl_socket& ys, team_options_set_req& req) yrs.rsp_cmd = TEAM_CMD_OPTIONS_SET; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -423,17 +457,20 @@ int team_options_get_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == TEAM_ATTR_TEAM_IFINDEX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->team_ifindex = (__u32)ynl_attr_get_u32(attr); } else if (type == TEAM_ATTR_LIST_OPTION) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &team_item_option_nest; parg.data = &dst->list_option.emplace(); - if (team_item_option_parse(&parg, attr)) + if (team_item_option_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } } @@ -452,8 +489,9 @@ team_options_get(ynl_cpp::ynl_socket& ys, team_options_get_req& req) ((struct ynl_sock*)ys)->req_policy = &team_nest; yrs.yarg.rsp_policy = &team_nest; - if (req.team_ifindex.has_value()) + if (req.team_ifindex.has_value()) { ynl_attr_put_u32(nlh, TEAM_ATTR_TEAM_IFINDEX, req.team_ifindex.value()); + } rsp.reset(new team_options_get_rsp()); yrs.yarg.data = rsp.get(); @@ -461,8 +499,9 @@ team_options_get(ynl_cpp::ynl_socket& ys, team_options_get_req& req) yrs.rsp_cmd = TEAM_CMD_OPTIONS_GET; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } @@ -483,17 +522,20 @@ int team_port_list_get_rsp_parse(const struct nlmsghdr *nlh, unsigned int type = ynl_attr_type(attr); if (type == TEAM_ATTR_TEAM_IFINDEX) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } dst->team_ifindex = (__u32)ynl_attr_get_u32(attr); } else if (type == TEAM_ATTR_LIST_PORT) { - if (ynl_attr_validate(yarg, attr)) + if (ynl_attr_validate(yarg, attr)) { return YNL_PARSE_CB_ERROR; + } parg.rsp_policy = &team_item_port_nest; parg.data = &dst->list_port.emplace(); - if (team_item_port_parse(&parg, attr)) + if (team_item_port_parse(&parg, attr)) { return YNL_PARSE_CB_ERROR; + } } } @@ -512,8 +554,9 @@ team_port_list_get(ynl_cpp::ynl_socket& ys, team_port_list_get_req& req) ((struct ynl_sock*)ys)->req_policy = &team_nest; yrs.yarg.rsp_policy = &team_nest; - if (req.team_ifindex.has_value()) + if (req.team_ifindex.has_value()) { ynl_attr_put_u32(nlh, TEAM_ATTR_TEAM_IFINDEX, req.team_ifindex.value()); + } rsp.reset(new team_port_list_get_rsp()); yrs.yarg.data = rsp.get(); @@ -521,8 +564,9 @@ team_port_list_get(ynl_cpp::ynl_socket& ys, team_port_list_get_req& req) yrs.rsp_cmd = TEAM_CMD_PORT_LIST_GET; err = ynl_exec(ys, nlh, &yrs); - if (err < 0) + if (err < 0) { return nullptr; + } return rsp; } diff --git a/ynl-gen-cpp.py b/ynl-gen-cpp.py index ea8bafc..7764e4b 100755 --- a/ynl-gen-cpp.py +++ b/ynl-gen-cpp.py @@ -1486,7 +1486,8 @@ def __init__(self, nlib, out_file=None, overwrite=True): self._nl = False self._block_end = False - self._silent_block = False + self._silent_block_brace = True + self._silent_block_num = 0 self._ind = 0 self._ifdef_block = None if out_file is None: @@ -1533,14 +1534,26 @@ def p(self, line, add_ind=0): ind = self._ind if line[-1] == ":": ind -= 1 - if self._silent_block: - ind += 1 - self._silent_block = line.endswith(")") and CodeWriter._is_cond(line) + ind += self._silent_block_num + is_silent_block = line.endswith(")") and CodeWriter._is_cond(line) if line[0] == "#": ind = 0 if add_ind: ind += add_ind - self._out.write("\t" * ind + line + "\n") + + if is_silent_block and self._silent_block_brace: + self._out.write("\t" * ind + line + " {\n") + else: + self._out.write("\t" * ind + line + "\n") + if is_silent_block: + self._silent_block_num += 1 + elif self._silent_block_brace: + while self._silent_block_num > 0: + self._silent_block_num -= 1 + ind -= 1 + self._out.write("\t" * ind + "}\n") + else: + self._silent_block_num = 0 def nl(self): self._nl = True