From 01ea3061fb98ed851aa913e36ade1dddf5ed9389 Mon Sep 17 00:00:00 2001 From: Junfeng Wang Date: Thu, 19 Sep 2019 10:56:34 +0800 Subject: fix api change Change-Id: If9f628c8287567a93b065c351da1cb272953a68c Signed-off-by: Junfeng Wang --- src/plugins/ietf/ietf_interface.cpp | 18 ++++++++++-------- src/plugins/openconfig/openconfig_interfaces.cpp | 8 +++++--- src/plugins/vpp-oper/interface.cpp | 3 ++- 3 files changed, 17 insertions(+), 12 deletions(-) diff --git a/src/plugins/ietf/ietf_interface.cpp b/src/plugins/ietf/ietf_interface.cpp index 0fedbf9..86f8e73 100644 --- a/src/plugins/ietf/ietf_interface.cpp +++ b/src/plugins/ietf/ietf_interface.cpp @@ -407,25 +407,27 @@ ietf_interface_state_cb(const char *xpath, sr_val_t **values, for (auto &it : *dump) { interface = it.get_payload(); - SRP_LOG_DBG("State of interface %s", interface.interface_name.buf); + SRP_LOG_DBG("State of interface %s", interface.interface_name); /* it needs if-mib YANG feature to work ! * admin-state: state as required by configuration */ sr_val_build_xpath(&val[cnt], "%s[name='%s']/admin-status", xpath, - interface.interface_name.buf); + interface.interface_name); sr_val_set_str_data(&val[cnt], SR_ENUM_T, - interface.flags? "up" : "down"); + (interface.flags == vapi_enum_if_status_flags::IF_STATUS_API_FLAG_ADMIN_UP) ? + "up" : "down"); cnt++; /* oper-state: effective state. can differ from admin-state */ sr_val_build_xpath(&val[cnt], "%s[name='%s']/oper-status", xpath, - interface.interface_name.buf); + interface.interface_name); sr_val_set_str_data(&val[cnt], SR_ENUM_T, - interface.link_duplex ? "up" : "down"); + (interface.flags == vapi_enum_if_status_flags::IF_STATUS_API_FLAG_LINK_UP) ? + "up" : "down"); cnt++; sr_val_build_xpath(&val[cnt], "%s[name='%s']/phys-address", xpath, - interface.interface_name.buf); + interface.interface_name); sr_val_build_str_data(&val[cnt], SR_STRING_T, "%02x:%02x:%02x:%02x:%02x:%02x", interface.l2_address[0], interface.l2_address[1], @@ -434,13 +436,13 @@ ietf_interface_state_cb(const char *xpath, sr_val_t **values, cnt++; sr_val_build_xpath(&val[cnt], "%s[name='%s']/if-index", xpath, - interface.interface_name.buf); + interface.interface_name); val[cnt].type = SR_INT32_T; val[cnt].data.int32_val = interface.sw_if_index; cnt++; sr_val_build_xpath(&val[cnt], "%s[name='%s']/speed", xpath, - interface.interface_name.buf); + interface.interface_name); val[cnt].type = SR_UINT64_T; val[cnt].data.uint64_val = interface.link_speed; cnt++; diff --git a/src/plugins/openconfig/openconfig_interfaces.cpp b/src/plugins/openconfig/openconfig_interfaces.cpp index 2f09a2a..a23841c 100644 --- a/src/plugins/openconfig/openconfig_interfaces.cpp +++ b/src/plugins/openconfig/openconfig_interfaces.cpp @@ -235,7 +235,7 @@ oc_interfaces_state_cb(const char *xpath, sr_val_t **values, size_t *values_cnt, reply = dump->begin()->get_payload(); sr_val_build_xpath(&vals[cnt], "%s/name", xpath_root); - sr_val_set_str_data(&vals[cnt], SR_STRING_T, (char *)reply.interface_name.buf); + sr_val_set_str_data(&vals[cnt], SR_STRING_T, (char *)reply.interface_name); cnt++; //TODO revisit types after V3PO has been implemented @@ -260,12 +260,14 @@ oc_interfaces_state_cb(const char *xpath, sr_val_t **values, size_t *values_cnt, sr_val_build_xpath(&vals[cnt], "%s/admin-status", xpath_root); sr_val_set_str_data(&vals[cnt], SR_ENUM_T, - reply.flags ? "UP" : "DOWN"); + (reply.flags == vapi_enum_if_status_flags::IF_STATUS_API_FLAG_ADMIN_UP) ? + "UP" : "DOWN"); cnt++; sr_val_build_xpath(&vals[cnt], "%s/oper-status", xpath_root); sr_val_set_str_data(&vals[cnt], SR_ENUM_T, - reply.link_duplex ? "UP" : "DOWN"); + (reply.flags == vapi_enum_if_status_flags::IF_STATUS_API_FLAG_LINK_UP) ? + "UP" : "DOWN"); cnt++; *values = vals; diff --git a/src/plugins/vpp-oper/interface.cpp b/src/plugins/vpp-oper/interface.cpp index 263f56e..eee14e0 100644 --- a/src/plugins/vpp-oper/interface.cpp +++ b/src/plugins/vpp-oper/interface.cpp @@ -22,7 +22,8 @@ interface_dump::issue(connection& con) payload.name_filter_valid = 0; } else { payload.name_filter_valid = 1; - strcpy((char*)payload.name_filter.buf, m_name.c_str()); + memset(payload.name_filter.buf, 0, payload.name_filter.length); + memcpy(payload.name_filter.buf, m_name.c_str(), m_name.length()); } VAPI_CALL(m_dump->execute()); -- cgit 1.2.3-korg