diff options
author | YohanPipereau <ypiperea@cisco.com> | 2019-03-15 18:26:35 +0100 |
---|---|---|
committer | Hongjun Ni <hongjun.ni@intel.com> | 2019-03-18 01:11:49 +0000 |
commit | 4157d85b570d5da6af042758813712ae04573c8f (patch) | |
tree | 74e07e950468d578e24088a3545f90755c99e976 /src/plugins | |
parent | d7680154981c54989bcbcab81173791dc1805512 (diff) |
Integrate interface.api changes to 3.0.0 to sweetcomb
Change-Id: If7cd04e4e699e27e9fd278a1ac1897d5f53a4345
Signed-off-by: YohanPipereau <ypiperea@cisco.com>
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/openconfig/openconfig_interfaces.c | 54 | ||||
-rw-r--r-- | src/plugins/openconfig/openconfig_local_routing.c | 4 |
2 files changed, 39 insertions, 19 deletions
diff --git a/src/plugins/openconfig/openconfig_interfaces.c b/src/plugins/openconfig/openconfig_interfaces.c index c72ad7f..5809429 100644 --- a/src/plugins/openconfig/openconfig_interfaces.c +++ b/src/plugins/openconfig/openconfig_interfaces.c @@ -222,7 +222,7 @@ static int sw_interface_dump_cb_inner( return rc; } - const char* interface_name = (const char*)dctx->sw_interface_details_query.sw_interface_details.interface_name; + const char* interface_name = (const char*)dctx->sw_interface_details_query.sw_interface_details.interface_name.buf; sr_val_build_xpath(&vals[0], "%s/name", dctx->sysr_values_ctx.xpath_root); sr_val_set_str_data(&vals[0], SR_STRING_T, interface_name); @@ -245,23 +245,30 @@ static int sw_interface_dump_cb_inner( sr_val_build_xpath(&vals[5], "%s/enabled", dctx->sysr_values_ctx.xpath_root); + sr_val_build_xpath(&vals[7], "%s/admin-status", + dctx->sysr_values_ctx.xpath_root); vals[5].type = SR_BOOL_T; - vals[5].data.bool_val = reply->admin_up_down; + if (reply->flags == IF_STATUS_API_FLAG_ADMIN_UP || + reply->flags == IF_STATUS_API_FLAG_LINK_UP) { + vals[5].data.bool_val = true; + sr_val_set_str_data(&vals[7], SR_ENUM_T, "UP"); + } else { + vals[5].data.bool_val = false; + sr_val_set_str_data(&vals[7], SR_ENUM_T, "DOWN"); + } sr_val_build_xpath(&vals[6], "%s/ifindex", dctx->sysr_values_ctx.xpath_root); vals[6].type = SR_UINT32_T; vals[6].data.uint32_val = reply->sw_if_index; - sr_val_build_xpath(&vals[7], "%s/admin-status", - dctx->sysr_values_ctx.xpath_root); - sr_val_set_str_data(&vals[7], SR_ENUM_T, - reply->admin_up_down ? "UP" : "DOWN"); sr_val_build_xpath(&vals[8], "%s/oper-status", dctx->sysr_values_ctx.xpath_root); - sr_val_set_str_data(&vals[8], SR_ENUM_T, - reply->link_up_down ? "UP" : "DOWN"); + if (reply->flags == IF_STATUS_API_FLAG_LINK_UP) + sr_val_set_str_data(&vals[8], SR_ENUM_T, "UP"); + else + sr_val_set_str_data(&vals[8], SR_ENUM_T, "DOWN"); //TODO: Openconfig required this value // sr_val_build_xpath(&vals[9], "%s/last-change", dctx->sysr_values_ctx.xpath_root); @@ -307,7 +314,12 @@ static int sw_subinterface_dump_cb_inner( sr_val_build_xpath(&vals[val_idx], "%s/enabled", dctx->sysr_values_ctx.xpath_root); vals[val_idx].type = SR_BOOL_T; - vals[val_idx++].data.bool_val = reply->admin_up_down; + if (reply->flags == IF_STATUS_API_FLAG_LINK_UP || + reply->flags == IF_STATUS_API_FLAG_ADMIN_UP) { + vals[val_idx++].data.bool_val = true; + } else { + vals[val_idx++].data.bool_val = false; + } //TODO: Openconfig required this value // sr_val_build_xpath(&vals[val_idx], "%s/name", dctx->sysr_values_ctx.xpath_root); @@ -319,13 +331,21 @@ static int sw_subinterface_dump_cb_inner( sr_val_build_xpath(&vals[val_idx], "%s/admin-status", dctx->sysr_values_ctx.xpath_root); - sr_val_set_str_data(&vals[val_idx++], SR_ENUM_T, - reply->admin_up_down ? "UP" : "DOWN"); + if (reply->flags == IF_STATUS_API_FLAG_LINK_UP || + reply->flags == IF_STATUS_API_FLAG_ADMIN_UP) { + sr_val_set_str_data(&vals[val_idx++], SR_ENUM_T, "UP"); + } else { + sr_val_set_str_data(&vals[val_idx++], SR_ENUM_T, "DOWN"); + } sr_val_build_xpath(&vals[val_idx], "%s/oper-status", dctx->sysr_values_ctx.xpath_root); - sr_val_set_str_data(&vals[val_idx++], SR_ENUM_T, - reply->admin_up_down ? "UP" : "DOWN"); + if (reply->flags == IF_STATUS_API_FLAG_LINK_UP || + reply->flags == IF_STATUS_API_FLAG_ADMIN_UP) { + sr_val_set_str_data(&vals[val_idx++], SR_ENUM_T, "UP"); + } else { + sr_val_set_str_data(&vals[val_idx++], SR_ENUM_T, "DOWN"); + } //TODO: Openconfig required this value // sr_val_build_xpath(&vals[val_idx], "/openconfig-interfaces:interfaces/interface[name='%s']/subinterfaces/subinterface[index='%s']/state/last-change", interface_name, subinterface_index); @@ -382,19 +402,19 @@ sw_interface_dump_vapi_cb(struct vapi_ctx_s *ctx, void *callback_ctx, assert (NULL != reply); sys_sw_interface_dump_ctx *dctx = callback_ctx; - const char* const dctx_interface_name = (const char *)dctx->sw_interface_details_query.sw_interface_details.interface_name; + const char* const dctx_interface_name = (const char *)dctx->sw_interface_details_query.sw_interface_details.interface_name.buf; SRP_LOG_DBG("interface_name: '%s', if_name: '%s'", reply->interface_name, dctx_interface_name); if (dctx->is_subif) { - if (is_subinterface((const char*)reply->interface_name, + if (is_subinterface((const char*)reply->interface_name.buf, dctx_interface_name, dctx->subinterface_index)) sw_subinterface_dump_cb_inner(reply, dctx); } else { - if (0 == strcmp(dctx_interface_name, (char *)reply->interface_name)) + if (0 == strcmp(dctx_interface_name, (char *)reply->interface_name.buf)) { dctx->sw_interface_details_query.sw_interface_details = *reply; dctx->sw_interface_details_query.interface_found = true; @@ -417,7 +437,7 @@ static vapi_error_e sysr_sw_interface_dump(sys_sw_interface_dump_ctx * dctx) dump = vapi_alloc_sw_interface_dump(g_vapi_ctx_instance); dump->payload.name_filter_valid = true; - strcpy((char*)dump->payload.name_filter, (const char *)dctx->sw_interface_details_query.sw_interface_details.interface_name); + strcpy((char*)dump->payload.name_filter.buf, (const char *)dctx->sw_interface_details_query.sw_interface_details.interface_name.buf); VAPI_CALL(vapi_sw_interface_dump(g_vapi_ctx_instance, dump, sw_interface_dump_vapi_cb, dctx)); diff --git a/src/plugins/openconfig/openconfig_local_routing.c b/src/plugins/openconfig/openconfig_local_routing.c index 5c63eaa..a5f4ffa 100644 --- a/src/plugins/openconfig/openconfig_local_routing.c +++ b/src/plugins/openconfig/openconfig_local_routing.c @@ -586,7 +586,7 @@ int openconfig_local_routing_local_routes_static_routes_static_next_hops_next_ho sr_val_build_xpath(&vals[0], "%s/interface", dctx->sysr_values_ctx.xpath_root); sr_val_set_str_data(&vals[0], SR_STRING_T, - (const char*)dctx->sw_interface_details_query.sw_interface_details.interface_name); + (const char*)dctx->sw_interface_details_query.sw_interface_details.interface_name.buf); sr_val_build_xpath(&vals[1], "%s/subinterface", dctx->sysr_values_ctx.xpath_root); @@ -698,7 +698,7 @@ int next_hop_inner( return SR_ERR_INVAL_ARG; } if (strlen((const char*) - dctx.sw_interface_details_query.sw_interface_details.interface_name)) { + dctx.sw_interface_details_query.sw_interface_details.interface_name.buf)) { openconfig_local_routing_local_routes_static_routes_static_next_hops_next_hop_interface_ref_state_vapi_cb(&dctx); } } |