TEST(ndi_obj_id_map_test, c_api) { nas::ndi_obj_id_table_t ndi_obj_ids; auto handle = nas_ndi_obj_id_table_create (); nas_ndi_obj_id_table_set_id (handle, 49,4); nas_ndi_obj_id_table_set_id (handle, 99,6); auto cps_obj = cps_api_object_create (); cps_api_attr_id_t attr_id_list[] = {5,6}; nas_ndi_obj_id_table_cps_serialize (handle, cps_obj, attr_id_list, 2); auto handle2 = nas_ndi_obj_id_table_create (); nas_ndi_obj_id_table_cps_unserialize (handle2, cps_obj, attr_id_list, 2); auto t1 = (nas::ndi_obj_id_table_t*) handle; auto t2 = (nas::ndi_obj_id_table_t*) handle2; EXPECT_TRUE (*t1 == *t2); ndi_obj_id_t ndi_id; EXPECT_TRUE (nas_ndi_obj_id_table_get_id (handle, 49, &ndi_id)); EXPECT_TRUE (ndi_id == 4); EXPECT_FALSE (nas_ndi_obj_id_table_get_id (handle, 48, &ndi_id)); }
t_std_error dn_nas_lag_get_ndi_ids (hal_ifindex_t if_index, nas_ndi_obj_id_table_handle_t ndi_id_data) { if(ndi_id_data == NULL) { EV_LOG_ERR(ev_log_t_INTERFACE, 2, "INTF-C","Input ndi_data is NULL"); return(STD_ERR(INTERFACE, PARAM, 0)); } cps_api_get_params_t gp; cps_api_get_request_init(&gp); cps_api_object_t obj = cps_api_object_list_create_obj_and_append(gp.filters); t_std_error rc = STD_ERR(INTERFACE, FAIL, 0); do { if (!cps_api_key_from_attr_with_qual(cps_api_object_key(obj), DELL_BASE_IF_CMN_IF_INTERFACES_INTERFACE_OBJ, cps_api_qualifier_TARGET)) { break; } cps_api_object_attr_add_u32(obj,DELL_BASE_IF_CMN_IF_INTERFACES_INTERFACE_IF_INDEX, if_index); cps_api_object_attr_add(obj,IF_INTERFACES_INTERFACE_TYPE, (const char *)IF_INTERFACE_TYPE_IANAIFT_IANA_INTERFACE_TYPE_IANAIFT_IEEE8023ADLAG, sizeof(IF_INTERFACE_TYPE_IANAIFT_IANA_INTERFACE_TYPE_IANAIFT_IEEE8023ADLAG)); if (cps_api_get(&gp) != cps_api_ret_code_OK) break; if (0 == cps_api_object_list_size(gp.list)) break; obj = cps_api_object_list_get(gp.list,0); cps_api_attr_id_t attr_list[] = {BASE_IF_LAG_IF_INTERFACES_INTERFACE_LAG_OPAQUE_DATA}; if (!nas_ndi_obj_id_table_cps_unserialize (ndi_id_data, obj, attr_list, sizeof (attr_list)/sizeof (cps_api_attr_id_t))) { EV_LOG_ERR(ev_log_t_INTERFACE, 2, "INTF-C","Failed to get LAG opaque data"); break; } rc = STD_ERR_OK; } while (0); cps_api_get_request_close(&gp); return rc; }