From ecc6e704ac848ccb2815857d1fb9c49f678f162e Mon Sep 17 00:00:00 2001 From: Hnydyn Nazar Date: Thu, 12 Jan 2017 18:23:44 +0200 Subject: [PATCH 01/77] Fixed SAI thrift compilation. (#345) * Fixed compilation + refactored. * Refactored according to the reviews. * Fixed switch.py. * Refactored according to the reviews. * Fixed ACL, L2 and partially L3 group. --- test/saithrift/src/saiserver.cpp | 89 ++-- test/saithrift/src/switch_sai.thrift | 25 +- test/saithrift/src/switch_sai_rpc_server.cpp | 503 +++++++++++-------- test/saithrift/tests/saihostif.py | 18 +- test/saithrift/tests/sail2.py | 67 +-- test/saithrift/tests/sail3.py | 55 +- test/saithrift/tests/switch.py | 54 +- 7 files changed, 467 insertions(+), 344 deletions(-) diff --git a/test/saithrift/src/saiserver.cpp b/test/saithrift/src/saiserver.cpp index c5014c69b..2e5632587 100644 --- a/test/saithrift/src/saiserver.cpp +++ b/test/saithrift/src/saiserver.cpp @@ -13,6 +13,7 @@ #include #include +#include #include #include @@ -36,7 +37,10 @@ sai_switch_api_t* sai_switch_api; std::map gProfileMap; std::map, std::string> gPortMap; -void on_switch_state_change(_In_ sai_switch_oper_status_t switch_oper_status) +sai_object_id_t gSwitchId; ///< SAI switch global object ID. + +void on_switch_state_change(_In_ sai_object_id_t switch_id, + _In_ sai_switch_oper_status_t switch_oper_status)// { } @@ -50,31 +54,18 @@ void on_port_state_change(_In_ uint32_t count, { } -void on_port_event(_In_ uint32_t count, - _In_ sai_port_event_notification_t *data) -{ -} - -void on_shutdown_request() +void on_shutdown_request(_In_ sai_object_id_t switch_id)// { } -void on_packet_event(_In_ const void *buffer, +void on_packet_event(_In_ sai_object_id_t switch_id, + _In_ const void *buffer, _In_ sai_size_t buffer_size, _In_ uint32_t attr_count, _In_ const sai_attribute_t *attr_list) { } -sai_switch_notification_t switch_notifications = { - on_switch_state_change, - on_fdb_event, - on_port_state_change, - on_port_event, - on_shutdown_request, - on_packet_event -}; - // Profile services /* Get variable value given its name */ const char* test_profile_get_value( @@ -290,7 +281,10 @@ void handlePortMap(const std::string& portMapFile) std::string fp_value = line.substr(0, pos); std::string lanes = line.substr(pos + 1); - lanes.erase(lanes.begin(), std::find_if(lanes.begin(), lanes.end(), std::not1(std::ptr_fun(std::isspace)))); + + // ::isspace : C-Style white space predicate. Locale independent. + lanes.erase(std::remove_if(lanes.begin(), lanes.end(), ::isspace), lanes.end()); + std::istringstream iss(lanes); std::string lane_str; std::set lane_set; @@ -327,7 +321,30 @@ main(int argc, char* argv[]) sai_api_initialize(0, (service_method_table_t *)&test_services); sai_api_query(SAI_API_SWITCH, (void**)&sai_switch_api); - sai_status_t status = sai_switch_api->initialize_switch(0, (char *)"", (char *)"", &switch_notifications); + constexpr std::uint32_t attrSz = 6; + + sai_attribute_t attr[attrSz]; + std::memset(attr, '\0', sizeof(attr)); + + attr[0].id = SAI_SWITCH_ATTR_INIT_SWITCH; + attr[0].value.booldata = true; + + attr[1].id = SAI_SWITCH_ATTR_SWITCH_STATE_CHANGE_NOTIFY; + attr[1].value.ptr = reinterpret_cast(&on_switch_state_change); + + attr[2].id = SAI_SWITCH_ATTR_SHUTDOWN_REQUEST_NOTIFY; + attr[2].value.ptr = reinterpret_cast(&on_shutdown_request); + + attr[3].id = SAI_SWITCH_ATTR_FDB_EVENT_NOTIFY; + attr[3].value.ptr = reinterpret_cast(&on_fdb_event); + + attr[4].id = SAI_SWITCH_ATTR_PORT_STATE_CHANGE_NOTIFY; + attr[4].value.ptr = reinterpret_cast(&on_port_state_change); + + attr[5].id = SAI_SWITCH_ATTR_PACKET_EVENT_NOTIFY; + attr[5].value.ptr = reinterpret_cast(&on_packet_event); + + sai_status_t status = sai_switch_api->create_switch(&gSwitchId, attrSz, attr); if (status != SAI_STATUS_SUCCESS) { exit(EXIT_FAILURE); @@ -342,23 +359,23 @@ main(int argc, char* argv[]) start_sai_thrift_rpc_server(SWITCH_SAI_THRIFT_RPC_SERVER_PORT); - sai_log_set(SAI_API_SWITCH, SAI_LOG_NOTICE); - sai_log_set(SAI_API_FDB, SAI_LOG_NOTICE); - sai_log_set(SAI_API_PORT, SAI_LOG_NOTICE); - sai_log_set(SAI_API_VLAN, SAI_LOG_NOTICE); - sai_log_set(SAI_API_ROUTE, SAI_LOG_NOTICE); - sai_log_set(SAI_API_VIRTUAL_ROUTER, SAI_LOG_NOTICE); - sai_log_set(SAI_API_ROUTER_INTERFACE, SAI_LOG_NOTICE); - sai_log_set(SAI_API_NEXT_HOP, SAI_LOG_NOTICE); - sai_log_set(SAI_API_NEXT_HOP_GROUP, SAI_LOG_NOTICE); - sai_log_set(SAI_API_NEIGHBOR, SAI_LOG_NOTICE); - sai_log_set(SAI_API_ACL, SAI_LOG_NOTICE); - sai_log_set(SAI_API_MIRROR, SAI_LOG_NOTICE); - sai_log_set(SAI_API_LAG, SAI_LOG_NOTICE); - sai_log_set(SAI_API_BUFFERS, SAI_LOG_NOTICE); - sai_log_set(SAI_API_POLICER, SAI_LOG_NOTICE); - sai_log_set(SAI_API_WRED, SAI_LOG_NOTICE); - sai_log_set(SAI_API_QOS_MAPS, SAI_LOG_NOTICE); + sai_log_set(SAI_API_SWITCH, SAI_LOG_LEVEL_NOTICE); + sai_log_set(SAI_API_FDB, SAI_LOG_LEVEL_NOTICE); + sai_log_set(SAI_API_PORT, SAI_LOG_LEVEL_NOTICE); + sai_log_set(SAI_API_VLAN, SAI_LOG_LEVEL_NOTICE); + sai_log_set(SAI_API_ROUTE, SAI_LOG_LEVEL_NOTICE); + sai_log_set(SAI_API_VIRTUAL_ROUTER, SAI_LOG_LEVEL_NOTICE); + sai_log_set(SAI_API_ROUTER_INTERFACE, SAI_LOG_LEVEL_NOTICE); + sai_log_set(SAI_API_NEXT_HOP, SAI_LOG_LEVEL_NOTICE); + sai_log_set(SAI_API_NEXT_HOP_GROUP, SAI_LOG_LEVEL_NOTICE); + sai_log_set(SAI_API_NEIGHBOR, SAI_LOG_LEVEL_NOTICE); + sai_log_set(SAI_API_ACL, SAI_LOG_LEVEL_NOTICE); + sai_log_set(SAI_API_MIRROR, SAI_LOG_LEVEL_NOTICE); + sai_log_set(SAI_API_LAG, SAI_LOG_LEVEL_NOTICE); + sai_log_set(SAI_API_BUFFERS, SAI_LOG_LEVEL_NOTICE); + sai_log_set(SAI_API_POLICER, SAI_LOG_LEVEL_NOTICE); + sai_log_set(SAI_API_WRED, SAI_LOG_LEVEL_NOTICE); + sai_log_set(SAI_API_QOS_MAPS, SAI_LOG_LEVEL_NOTICE); while (1) pause(); diff --git a/test/saithrift/src/switch_sai.thrift b/test/saithrift/src/switch_sai.thrift index e7d426f98..88a6a333d 100644 --- a/test/saithrift/src/switch_sai.thrift +++ b/test/saithrift/src/switch_sai.thrift @@ -34,6 +34,15 @@ typedef i32 sai_thrift_port_stat_counter_t typedef i32 sai_thrift_queue_stat_counter_t typedef i32 sai_thrift_pg_stat_counter_t +struct sai_thrift_result_data_t { + 1: sai_thrift_object_id_t oid; +} + +struct sai_thrift_result_t { + 1: sai_thrift_result_data_t data; + 2: sai_thrift_status_t status; +} + struct sai_thrift_fdb_entry_t { 1: sai_thrift_mac_t mac_address; 2: sai_thrift_vlan_id_t vlan_id; @@ -175,7 +184,7 @@ struct sai_thrift_attribute_t { 2: sai_thrift_attribute_value_t value; } -struct sai_thrift_unicast_route_entry_t { +struct sai_thrift_route_entry_t { 1: sai_thrift_object_id_t vr_id; 2: sai_thrift_ip_prefix_t destination; } @@ -206,8 +215,8 @@ service switch_sai_rpc { sai_thrift_status_t sai_thrift_flush_fdb_entries(1: list thrift_attr_list); //vlan API - sai_thrift_status_t sai_thrift_create_vlan(1: sai_thrift_vlan_id_t vlan_id); - sai_thrift_status_t sai_thrift_delete_vlan(1: sai_thrift_vlan_id_t vlan_id); + sai_thrift_object_id_t sai_thrift_create_vlan(1: list thrift_attr_list); + sai_thrift_status_t sai_thrift_remove_vlan(1: sai_thrift_object_id_t vlan_oid); list sai_thrift_get_vlan_stats( 1: sai_thrift_vlan_id_t vlan_id, 2: list counter_ids, @@ -221,8 +230,8 @@ service switch_sai_rpc { sai_thrift_status_t sai_thrift_remove_virtual_router(1: sai_thrift_object_id_t vr_id); //route API - sai_thrift_status_t sai_thrift_create_route(1: sai_thrift_unicast_route_entry_t thrift_unicast_route_entry, 2: list thrift_attr_list); - sai_thrift_status_t sai_thrift_remove_route(1: sai_thrift_unicast_route_entry_t thrift_unicast_route_entry); + sai_thrift_status_t sai_thrift_create_route(1: sai_thrift_route_entry_t thrift_route_entry, 2: list thrift_attr_list); + sai_thrift_status_t sai_thrift_remove_route(1: sai_thrift_route_entry_t thrift_route_entry); //router interface API sai_thrift_object_id_t sai_thrift_create_router_interface(1: list thrift_attr_list); @@ -235,8 +244,8 @@ service switch_sai_rpc { //next hop group API sai_thrift_object_id_t sai_thrift_create_next_hop_group(1: list thrift_attr_list); sai_thrift_status_t sai_thrift_remove_next_hop_group(1: sai_thrift_object_id_t next_hop_group_id); - sai_thrift_status_t sai_thrift_add_next_hop_to_group(1: sai_thrift_object_id_t next_hop_group_id, 2: list thrift_nexthops); - sai_thrift_status_t sai_thrift_remove_next_hop_from_group(1: sai_thrift_object_id_t next_hop_group_id, 2: list thrift_nexthops); + sai_thrift_result_t sai_thrift_add_next_hop_to_group(1: list thrift_attr_list); + sai_thrift_status_t sai_thrift_remove_next_hop_from_group(1: sai_thrift_object_id_t next_hop_group_member_id); //lag API sai_thrift_object_id_t sai_thrift_create_lag(1: list thrift_attr_list); @@ -270,7 +279,7 @@ service switch_sai_rpc { sai_thrift_status_t sai_thrift_remove_hostif_trap_group(1: sai_thrift_object_id_t trap_group_id); sai_thrift_status_t sai_thrift_create_hostif_trap(1: list thrift_attr_list); sai_thrift_status_t sai_thrift_remove_hostif_trap(1: sai_thrift_hostif_trap_id_t trap_id); - sai_thrift_status_t sai_thrift_set_hostif_trap(1: sai_thrift_hostif_trap_id_t trap_id, 2: sai_thrift_attribute_t thrift_attr); + sai_thrift_status_t sai_thrift_set_hostif_trap(1: sai_thrift_object_id_t trap_id, 2: sai_thrift_attribute_t thrift_attr); sai_thrift_status_t sai_thrift_set_hostif_trap_group(1: sai_thrift_object_id_t trap_group_id, 2: sai_thrift_attribute_t thrift_attr); // ACL API diff --git a/test/saithrift/src/switch_sai_rpc_server.cpp b/test/saithrift/src/switch_sai_rpc_server.cpp index 307c6f1b8..940e32836 100644 --- a/test/saithrift/src/switch_sai_rpc_server.cpp +++ b/test/saithrift/src/switch_sai_rpc_server.cpp @@ -17,6 +17,18 @@ limitations under the License. // This autogenerated skeleton file illustrates how to build a server. // You should copy it to another filename to avoid overwriting it. +#include +#include +#include +#include + +#include +#include +#include + +#include +#include + #include #include #include "switch_sai_rpc.h" @@ -45,6 +57,12 @@ extern "C" { #include "arpa/inet.h" +#define XP_SAI_THRIFT_LOG_DBG(msg, ...) sai_thrift_timestamp_print(); \ + printf("SAI THRIFT DEBUG: %s(): " msg "\n", __FUNCTION__, ##__VA_ARGS__); + +#define XP_SAI_THRIFT_LOG_ERR(msg, ...) sai_thrift_timestamp_print(); \ + printf("SAI THRIFT ERROR: %s(): " msg "\n", __FUNCTION__, ##__VA_ARGS__); + using namespace ::apache::thrift; using namespace ::apache::thrift::protocol; using namespace ::apache::thrift::transport; @@ -52,13 +70,26 @@ using namespace ::apache::thrift::server; using boost::shared_ptr; -using namespace ::switch_sai; +using namespace ::switch_sai; + +extern sai_object_id_t gSwitchId; + +typedef std::vector std_sai_thrift_attr_vctr_t; class switch_sai_rpcHandler : virtual public switch_sai_rpcIf { - public: - switch_sai_rpcHandler() { - // Your initialization goes here - } +public: + switch_sai_rpcHandler() noexcept + { + // Your initialization goes here + } + + inline void sai_thrift_timestamp_print() const noexcept + { + const auto ltime = std::time(nullptr); + const auto tm = std::localtime(<ime); + + std::printf("%02d:%02d:%02d ", tm->tm_hour, tm->tm_min, tm->tm_sec); + } unsigned int sai_thrift_string_to_mac(const std::string s, unsigned char *m) { unsigned int i, j=0; @@ -100,6 +131,12 @@ class switch_sai_rpcHandler : virtual public switch_sai_rpcIf { return; } + inline void sai_thrift_alloc_attr(sai_attribute_t* &attr, const sai_uint32_t &size) const noexcept + { attr = new (std::nothrow) sai_attribute_t[size]; } + + inline void sai_thrift_free_attr(sai_attribute_t* &attr) const noexcept + { delete[] attr; attr = nullptr; } + void sai_thrift_parse_object_id_list(const std::vector & thrift_object_id_list, sai_object_id_t *object_id_list) { std::vector::const_iterator it = thrift_object_id_list.begin(); for(uint32_t i = 0; i < thrift_object_id_list.size(); i++, it++) { @@ -139,9 +176,10 @@ class switch_sai_rpcHandler : virtual public switch_sai_rpcIf { sai_thrift_string_to_mac(thrift_fdb_entry.mac_address, fdb_entry->mac_address); } - void sai_thrift_parse_unicast_route_entry(const sai_thrift_unicast_route_entry_t &thrift_unicast_route_entry, sai_unicast_route_entry_t *unicast_route_entry) { - unicast_route_entry->vr_id = (sai_object_id_t) thrift_unicast_route_entry.vr_id; - sai_thrift_parse_ip_prefix(thrift_unicast_route_entry.destination, &unicast_route_entry->destination); + void sai_thrift_parse_route_entry(const sai_thrift_route_entry_t &thrift_route_entry, sai_route_entry_t *route_entry) { + route_entry->switch_id = gSwitchId; + route_entry->vr_id = (sai_object_id_t) thrift_route_entry.vr_id; + sai_thrift_parse_ip_prefix(thrift_route_entry.destination, &route_entry->destination); } void sai_thrift_parse_neighbor_entry(const sai_thrift_neighbor_entry_t &thrift_neighbor_entry, sai_neighbor_entry_t *neighbor_entry) { @@ -168,7 +206,7 @@ class switch_sai_rpcHandler : virtual public switch_sai_rpcIf { case SAI_PORT_ATTR_QOS_DEFAULT_TC: attr_list[i].value.u8 = attribute.value.u8; break; - case SAI_PORT_ATTR_QOS_INGRESS_BUFFER_PROFILE_LIST: + case SAI_PORT_ATTR_QOS_INGRESS_BUFFER_PROFILE_LIST: case SAI_PORT_ATTR_QOS_EGRESS_BUFFER_PROFILE_LIST: { *buffer_profile_list = (sai_object_id_t *) malloc(sizeof(sai_object_id_t) * attribute.value.objlist.count); @@ -267,10 +305,10 @@ class switch_sai_rpcHandler : virtual public switch_sai_rpcIf { attribute = (sai_thrift_attribute_t)*it; attr_list[i].id = attribute.id; switch (attribute.id) { - case SAI_ROUTE_ATTR_NEXT_HOP_ID: + case SAI_ROUTE_ENTRY_ATTR_NEXT_HOP_ID: attr_list[i].value.oid = attribute.value.oid; break; - case SAI_ROUTE_ATTR_PACKET_ACTION: + case SAI_ROUTE_ENTRY_ATTR_PACKET_ACTION: attr_list[i].value.s32 = attribute.value.s32; break; default: @@ -342,7 +380,7 @@ class switch_sai_rpcHandler : virtual public switch_sai_rpcIf { case SAI_NEXT_HOP_GROUP_ATTR_NEXT_HOP_COUNT: attr_list[i].value.u32 = attribute.value.u32; break; - case SAI_NEXT_HOP_GROUP_ATTR_NEXT_HOP_LIST: + case SAI_NEXT_HOP_GROUP_ATTR_NEXT_HOP_MEMBER_LIST: *nhop_list = (sai_object_id_t *) malloc(sizeof(sai_object_id_t) * attribute.value.objlist.count); std::vector::const_iterator it2 = attribute.value.objlist.object_id_list.begin(); for (uint32_t j = 0; j < attribute.value.objlist.object_id_list.size(); j++, *it2++) { @@ -403,7 +441,7 @@ class switch_sai_rpcHandler : virtual public switch_sai_rpcIf { attribute = (sai_thrift_attribute_t)*it1; attr_list[i].id = attribute.id; switch (attribute.id) { - case SAI_NEIGHBOR_ATTR_DST_MAC_ADDRESS: + case SAI_NEIGHBOR_ENTRY_ATTR_DST_MAC_ADDRESS: sai_thrift_string_to_mac(attribute.value.mac, attr_list[i].value.mac); break; } @@ -553,24 +591,60 @@ class switch_sai_rpcHandler : virtual public switch_sai_rpcIf { sai_attribute_t *attr_list = (sai_attribute_t *) malloc(sizeof(sai_attribute_t) * thrift_attr_list.size()); sai_thrift_parse_fdb_flush_attributes(thrift_attr_list, attr_list); uint32_t attr_count = thrift_attr_list.size(); - status = fdb_api->flush_fdb_entries(attr_count, attr_list); + status = fdb_api->flush_fdb_entries(gSwitchId, attr_count, attr_list); free(attr_list); return status; } - sai_thrift_status_t sai_thrift_create_vlan(const sai_thrift_vlan_id_t vlan_id) { - printf("sai_thrift_create_vlan\n"); - sai_status_t status = SAI_STATUS_SUCCESS; - sai_vlan_api_t *vlan_api; - status = sai_api_query(SAI_API_VLAN, (void **) &vlan_api); - if (status != SAI_STATUS_SUCCESS) { - return status; + void sai_thrift_parse_vlan_attributes(const std_sai_thrift_attr_vctr_t &thrift_attr_list, sai_attribute_t *attr_list) { + XP_SAI_THRIFT_LOG_DBG("Called."); + + std_sai_thrift_attr_vctr_t::const_iterator cit = thrift_attr_list.begin(); + + for (sai_uint32_t i = 0; i < thrift_attr_list.size(); i++, cit++) + { + sai_thrift_attribute_t attribute = *cit; + attr_list[i].id = attribute.id; + + switch (attribute.id) + { + case SAI_VLAN_ATTR_VLAN_ID: + attr_list[i].value.u16 = attribute.value.u16; + break; + + default: + XP_SAI_THRIFT_LOG_ERR("Failed to parse VLAN attributes."); + break; + } } - status = vlan_api->create_vlan((sai_vlan_id_t) vlan_id); - return status; } - sai_thrift_status_t sai_thrift_delete_vlan(const sai_thrift_vlan_id_t vlan_id) { + sai_thrift_object_id_t sai_thrift_create_vlan(const std_sai_thrift_attr_vctr_t &thrift_attr_list) { + XP_SAI_THRIFT_LOG_DBG("Called."); + + sai_vlan_api_t *vlan_api = nullptr; + auto status = sai_api_query(SAI_API_VLAN, reinterpret_cast(&vlan_api)); + + if (status != SAI_STATUS_SUCCESS) + { XP_SAI_THRIFT_LOG_ERR("Failed to get VLAN API."); return SAI_NULL_OBJECT_ID; } + + sai_attribute_t *attr_list = nullptr; + sai_uint32_t attr_size = thrift_attr_list.size(); + sai_thrift_alloc_attr(attr_list, attr_size); + sai_thrift_parse_vlan_attributes(thrift_attr_list, attr_list); + + sai_object_id_t vlanObjId = 0; + status = vlan_api->create_vlan(&vlanObjId, gSwitchId, attr_size, attr_list); + sai_thrift_free_attr(attr_list); + + if (status == SAI_STATUS_SUCCESS) { return vlanObjId; } + + XP_SAI_THRIFT_LOG_ERR("Failed to create VLAN."); + + return SAI_NULL_OBJECT_ID; + } + + sai_thrift_status_t sai_thrift_remove_vlan(const sai_thrift_object_id_t vlan_oid) { printf("sai_thrift_delete_vlan\n"); sai_status_t status = SAI_STATUS_SUCCESS; sai_vlan_api_t *vlan_api; @@ -578,42 +652,41 @@ class switch_sai_rpcHandler : virtual public switch_sai_rpcIf { if (status != SAI_STATUS_SUCCESS) { return status; } - status = vlan_api->remove_vlan((sai_vlan_id_t) vlan_id); + status = vlan_api->remove_vlan(vlan_oid); return status; } - void sai_thrift_get_vlan_stats( - std::vector & thrift_counters, - const sai_thrift_vlan_id_t vlan_id, - const std::vector & thrift_counter_ids, - const int32_t number_of_counters) { - printf("sai_thrift_get_vlan_stats\n"); - sai_status_t status = SAI_STATUS_SUCCESS; - sai_vlan_api_t *vlan_api; - status = sai_api_query(SAI_API_VLAN, (void **) &vlan_api); - if (status != SAI_STATUS_SUCCESS) { - return; - } - sai_vlan_stat_counter_t *counter_ids = (sai_vlan_stat_counter_t *) malloc(sizeof(sai_vlan_stat_counter_t) * thrift_counter_ids.size()); - std::vector::const_iterator it = thrift_counter_ids.begin(); - uint64_t *counters = (uint64_t *) malloc(sizeof(uint64_t) * thrift_counter_ids.size()); - for(uint32_t i = 0; i < thrift_counter_ids.size(); i++, it++) { - counter_ids[i] = (sai_vlan_stat_counter_t) *it; - } + void sai_thrift_get_vlan_stats(std::vector &thrift_counters, + const sai_thrift_vlan_id_t vlan_id, + const std::vector &thrift_counter_ids, + const int32_t number_of_counters) + { + printf("sai_thrift_get_vlan_stats\n"); + sai_status_t status = SAI_STATUS_SUCCESS; + sai_vlan_api_t *vlan_api; + status = sai_api_query(SAI_API_VLAN, (void **) &vlan_api); - status = vlan_api->get_vlan_stats( - (sai_vlan_id_t) vlan_id, - counter_ids, - number_of_counters, - counters); + if (status != SAI_STATUS_SUCCESS) { return; } - for (uint32_t i = 0; i < thrift_counter_ids.size(); i++) { - thrift_counters.push_back(counters[i]); - } - free(counter_ids); - free(counters); - return; - } + sai_vlan_stat_t *counter_ids = (sai_vlan_stat_t *) malloc(sizeof(sai_vlan_stat_t) * thrift_counter_ids.size()); + std::vector::const_iterator it = thrift_counter_ids.begin(); + uint64_t *counters = (uint64_t *) malloc(sizeof(uint64_t) * thrift_counter_ids.size()); + + for(uint32_t i = 0; i < thrift_counter_ids.size(); i++, it++) + { counter_ids[i] = (sai_vlan_stat_t) *it; } + + status = vlan_api->get_vlan_stats((sai_vlan_id_t) vlan_id, + counter_ids, + number_of_counters, + counters); + + for (uint32_t i = 0; i < thrift_counter_ids.size(); i++) { thrift_counters.push_back(counters[i]); } + + free(counter_ids); + free(counters); + + return; + } void sai_thrift_get_vlan_attribute(sai_thrift_attribute_list_t& thrift_attr_list, const sai_thrift_object_id_t vlan_id) { printf("sai_thrift_get_vlan_attribute\n"); @@ -657,7 +730,7 @@ class switch_sai_rpcHandler : virtual public switch_sai_rpcIf { sai_attribute_t *attr_list = (sai_attribute_t *) malloc(sizeof(sai_attribute_t) * thrift_attr_list.size()); sai_thrift_parse_vlan_member_attributes(thrift_attr_list, attr_list); uint32_t attr_count = thrift_attr_list.size(); - vlan_api->create_vlan_member(&vlan_member_id, attr_count, attr_list); + vlan_api->create_vlan_member(&vlan_member_id, gSwitchId, attr_count, attr_list); return vlan_member_id; } @@ -669,12 +742,12 @@ class switch_sai_rpcHandler : virtual public switch_sai_rpcIf { attr_list[i].id = attribute.id; switch (attribute.id) { case SAI_VLAN_MEMBER_ATTR_VLAN_ID: - attr_list[i].value.s32 = attribute.value.s32; + attr_list[i].value.oid = attribute.value.oid; break; case SAI_VLAN_MEMBER_ATTR_PORT_ID: attr_list[i].value.oid = attribute.value.oid; break; - case SAI_VLAN_MEMBER_ATTR_TAGGING_MODE: + case SAI_VLAN_MEMBER_ATTR_VLAN_TAGGING_MODE: attr_list[i].value.s32 = attribute.value.s32; break; } @@ -693,7 +766,6 @@ class switch_sai_rpcHandler : virtual public switch_sai_rpcIf { return status; } - sai_thrift_object_id_t sai_thrift_create_virtual_router(const std::vector & thrift_attr_list) { printf("sai_thrift_create_virtual_router\n"); sai_status_t status = SAI_STATUS_SUCCESS; @@ -706,7 +778,7 @@ class switch_sai_rpcHandler : virtual public switch_sai_rpcIf { sai_attribute_t *attr_list = (sai_attribute_t *) malloc(sizeof(sai_attribute_t) * thrift_attr_list.size()); sai_thrift_parse_vr_attributes(thrift_attr_list, attr_list); uint32_t attr_count = thrift_attr_list.size(); - vr_api->create_virtual_router(&vr_id, attr_count, attr_list); + vr_api->create_virtual_router(&vr_id, gSwitchId, attr_count, attr_list); return vr_id; } @@ -722,35 +794,35 @@ class switch_sai_rpcHandler : virtual public switch_sai_rpcIf { return status; } - sai_thrift_status_t sai_thrift_create_route(const sai_thrift_unicast_route_entry_t& thrift_unicast_route_entry, const std::vector & thrift_attr_list) { + sai_thrift_status_t sai_thrift_create_route(const sai_thrift_route_entry_t &thrift_route_entry, const std::vector & thrift_attr_list) { printf("sai_thrift_create_route\n"); sai_status_t status = SAI_STATUS_SUCCESS; sai_route_api_t *route_api; - sai_unicast_route_entry_t unicast_route_entry; + sai_route_entry_t route_entry; status = sai_api_query(SAI_API_ROUTE, (void **) &route_api); if (status != SAI_STATUS_SUCCESS) { return status; } - sai_thrift_parse_unicast_route_entry(thrift_unicast_route_entry, &unicast_route_entry); + sai_thrift_parse_route_entry(thrift_route_entry, &route_entry); sai_attribute_t *attr_list = (sai_attribute_t *) malloc(sizeof(sai_attribute_t) * thrift_attr_list.size()); sai_thrift_parse_route_attributes(thrift_attr_list, attr_list); uint32_t attr_count = thrift_attr_list.size(); - status = route_api->create_route(&unicast_route_entry, attr_count, attr_list); + status = route_api->create_route(&route_entry, attr_count, attr_list); free(attr_list); return status; } - sai_thrift_status_t sai_thrift_remove_route(const sai_thrift_unicast_route_entry_t& thrift_unicast_route_entry) { + sai_thrift_status_t sai_thrift_remove_route(const sai_thrift_route_entry_t &thrift_route_entry) { printf("sai_thrift_remove_route\n"); sai_status_t status = SAI_STATUS_SUCCESS; sai_route_api_t *route_api; - sai_unicast_route_entry_t unicast_route_entry; + sai_route_entry_t route_entry; status = sai_api_query(SAI_API_ROUTE, (void **) &route_api); if (status != SAI_STATUS_SUCCESS) { return status; } - sai_thrift_parse_unicast_route_entry(thrift_unicast_route_entry, &unicast_route_entry); - status = route_api->remove_route(&unicast_route_entry); + sai_thrift_parse_route_entry(thrift_route_entry, &route_entry); + status = route_api->remove_route(&route_entry); return status; } @@ -766,7 +838,7 @@ class switch_sai_rpcHandler : virtual public switch_sai_rpcIf { sai_attribute_t *attr_list = (sai_attribute_t *) malloc(sizeof(sai_attribute_t) * thrift_attr_list.size()); sai_thrift_parse_router_interface_attributes(thrift_attr_list, attr_list); uint32_t attr_count = thrift_attr_list.size(); - status = rif_api->create_router_interface(&rif_id, attr_count, attr_list); + status = rif_api->create_router_interface(&rif_id, gSwitchId, attr_count, attr_list); return rif_id; } @@ -794,7 +866,7 @@ class switch_sai_rpcHandler : virtual public switch_sai_rpcIf { sai_attribute_t *attr_list = (sai_attribute_t *) malloc(sizeof(sai_attribute_t) * thrift_attr_list.size()); sai_thrift_parse_next_hop_attributes(thrift_attr_list, attr_list); uint32_t attr_count = thrift_attr_list.size(); - status = nhop_api->create_next_hop(&nhop_id, attr_count, attr_list); + status = nhop_api->create_next_hop(&nhop_id, gSwitchId, attr_count, attr_list); return nhop_id; } @@ -823,7 +895,7 @@ class switch_sai_rpcHandler : virtual public switch_sai_rpcIf { sai_attribute_t *attr_list = (sai_attribute_t *) malloc(sizeof(sai_attribute_t) * thrift_attr_list.size()); sai_thrift_parse_next_hop_group_attributes(thrift_attr_list, attr_list, &nhop_list); uint32_t attr_count = thrift_attr_list.size(); - status = nhop_group_api->create_next_hop_group(&nhop_group_id, attr_count, attr_list); + status = nhop_group_api->create_next_hop_group(&nhop_group_id, gSwitchId, attr_count, attr_list); if (nhop_list) free(nhop_list); free(attr_list); return nhop_group_id; @@ -841,37 +913,73 @@ class switch_sai_rpcHandler : virtual public switch_sai_rpcIf { return status; } - sai_thrift_status_t sai_thrift_add_next_hop_to_group(const sai_thrift_object_id_t next_hop_group_id, const std::vector & thrift_nexthops) { - printf("sai_thrift_add_next_hop_to_group\n"); - sai_status_t status = SAI_STATUS_SUCCESS; - sai_next_hop_group_api_t *nhop_group_api; - sai_object_id_t *nhop_list; - status = sai_api_query(SAI_API_NEXT_HOP_GROUP, (void **) &nhop_group_api); - if (status != SAI_STATUS_SUCCESS) { - return status; + void sai_thrift_parse_next_hop_group_member_attributes(const std_sai_thrift_attr_vctr_t &thrift_attr_list, sai_attribute_t *attr_list) { + XP_SAI_THRIFT_LOG_DBG("Called."); + + std_sai_thrift_attr_vctr_t::const_iterator cit = thrift_attr_list.begin(); + + for (sai_uint32_t i = 0; i < thrift_attr_list.size(); i++, cit++) + { + sai_thrift_attribute_t attribute = *cit; + attr_list[i].id = attribute.id; + + switch (attribute.id) + { + case SAI_NEXT_HOP_GROUP_MEMBER_ATTR_NEXT_HOP_GROUP_ID: + attr_list[i].value.oid = attribute.value.oid; + break; + + case SAI_NEXT_HOP_GROUP_MEMBER_ATTR_NEXT_HOP_ID: + attr_list[i].value.oid = attribute.value.oid; + break; + + default: + XP_SAI_THRIFT_LOG_ERR("Failed to parse Next Hop Group Member attributes."); + break; + } } - nhop_list = (sai_object_id_t *) malloc(sizeof(sai_object_id_t) * thrift_nexthops.size()); - sai_thrift_parse_object_id_list(thrift_nexthops, nhop_list); - uint32_t nhop_count = thrift_nexthops.size(); - status = nhop_group_api->add_next_hop_to_group(next_hop_group_id, nhop_count, nhop_list); - free(nhop_list); - return status; } - sai_thrift_status_t sai_thrift_remove_next_hop_from_group(const sai_thrift_object_id_t next_hop_group_id, const std::vector & thrift_nexthops) { + void sai_thrift_add_next_hop_to_group(sai_thrift_result_t &_return, + const std::vector &thrift_attr_list) { + XP_SAI_THRIFT_LOG_DBG("Called."); + + sai_next_hop_group_api_t *nhop_group_api = nullptr; + auto status = sai_api_query(SAI_API_NEXT_HOP_GROUP, reinterpret_cast(&nhop_group_api)); + + sai_attribute_t *attr_list = nullptr; + sai_uint32_t attr_size = thrift_attr_list.size(); + sai_thrift_alloc_attr(attr_list, attr_size); + sai_thrift_parse_next_hop_group_member_attributes(thrift_attr_list, attr_list); + + sai_object_id_t nextHopGroupMbrObjId = 0; + status = nhop_group_api->create_next_hop_group_member(&nextHopGroupMbrObjId, attr_size, attr_list); + + if (status == SAI_STATUS_SUCCESS) + { + _return.data.oid = nextHopGroupMbrObjId; + _return.status = status; + } + else + { + XP_SAI_THRIFT_LOG_ERR("Failed to create Next Hop Group Member."); + + _return.data.oid = 0; + _return.status = status; + } + + sai_thrift_free_attr(attr_list); + } + + sai_thrift_status_t sai_thrift_remove_next_hop_from_group(const sai_thrift_object_id_t next_hop_group_member_id) { printf("sai_thrift_remove_next_hop_from_group\n"); sai_status_t status = SAI_STATUS_SUCCESS; sai_next_hop_group_api_t *nhop_group_api; - sai_object_id_t *nhop_list; status = sai_api_query(SAI_API_NEXT_HOP_GROUP, (void **) &nhop_group_api); if (status != SAI_STATUS_SUCCESS) { return status; } - nhop_list = (sai_object_id_t *) malloc(sizeof(sai_object_id_t) * thrift_nexthops.size()); - sai_thrift_parse_object_id_list(thrift_nexthops, nhop_list); - uint32_t nhop_count = thrift_nexthops.size(); - status = nhop_group_api->remove_next_hop_from_group(next_hop_group_id, nhop_count, nhop_list); - free(nhop_list); + status = nhop_group_api->remove_next_hop_group_member(next_hop_group_member_id); return status; } @@ -886,7 +994,7 @@ class switch_sai_rpcHandler : virtual public switch_sai_rpcIf { return status; } - status = lag_api->create_lag(&lag_id, 0, NULL); + status = lag_api->create_lag(&lag_id, gSwitchId, 0, nullptr); return lag_id; } @@ -914,7 +1022,7 @@ class switch_sai_rpcHandler : virtual public switch_sai_rpcIf { sai_attribute_t *attr_list = (sai_attribute_t *) malloc(sizeof(sai_attribute_t) * thrift_attr_list.size()); sai_thrift_parse_lag_member_attributes(thrift_attr_list, attr_list); uint32_t attr_count = thrift_attr_list.size(); - status = lag_api->create_lag_member(&lag_member_id, attr_count, attr_list); + status = lag_api->create_lag_member(&lag_member_id, gSwitchId, attr_count, attr_list); return lag_member_id; } @@ -943,7 +1051,7 @@ class switch_sai_rpcHandler : virtual public switch_sai_rpcIf { sai_attribute_t *attr_list = (sai_attribute_t *) malloc(sizeof(sai_attribute_t) * thrift_attr_list.size()); sai_thrift_parse_stp_attributes(thrift_attr_list, attr_list, &vlan_list); uint32_t attr_count = thrift_attr_list.size(); - status = (sai_object_id_t) stp_api->create_stp(&stp_id, attr_count, attr_list); + status = (sai_object_id_t) stp_api->create_stp(&stp_id, gSwitchId, attr_count, attr_list); if (vlan_list) free(vlan_list); free(attr_list); return stp_id; @@ -969,9 +1077,11 @@ class switch_sai_rpcHandler : virtual public switch_sai_rpcIf { if (status != SAI_STATUS_SUCCESS) { return status; } - status = stp_api->set_stp_port_state((sai_object_id_t) stp_id, - (sai_object_id_t) port_id, - (sai_port_stp_port_state_t) stp_port_state); + sai_attribute_t attr[1]; + std::memset(attr, '\0', sizeof(attr)); + attr[0].id = SAI_STP_PORT_ATTR_STATE; + attr[0].value.s32 = stp_port_state; + status = stp_api->set_stp_port_attribute(port_id, attr); return status; } @@ -980,14 +1090,14 @@ class switch_sai_rpcHandler : virtual public switch_sai_rpcIf { sai_status_t status = SAI_STATUS_SUCCESS; sai_stp_api_t *stp_api; status = sai_api_query(SAI_API_STP, (void **) &stp_api); - sai_port_stp_port_state_t stp_port_state; if (status != SAI_STATUS_SUCCESS) { return status; } - status = stp_api->get_stp_port_state((sai_object_id_t) stp_id, - (sai_object_id_t) port_id, - &stp_port_state); - return (sai_thrift_port_stp_port_state_t) stp_port_state; + sai_attribute_t attr[1]; + std::memset(attr, '\0', sizeof(attr)); + attr[0].id = SAI_STP_PORT_ATTR_STATE; + status = stp_api->get_stp_port_attribute(port_id, 1, attr); + return (sai_thrift_port_stp_port_state_t) attr[0].value.s32; } sai_thrift_status_t sai_thrift_create_neighbor_entry(const sai_thrift_neighbor_entry_t& thrift_neighbor_entry, const std::vector & thrift_attr_list) { @@ -1022,7 +1132,7 @@ class switch_sai_rpcHandler : virtual public switch_sai_rpcIf { return status; } -sai_thrift_object_id_t sai_thrift_get_cpu_port_id() { + sai_thrift_object_id_t sai_thrift_get_cpu_port_id() { sai_status_t status; sai_attribute_t attr; sai_switch_api_t *switch_api; @@ -1035,7 +1145,7 @@ sai_thrift_object_id_t sai_thrift_get_cpu_port_id() { return SAI_NULL_OBJECT_ID; } attr.id = SAI_SWITCH_ATTR_CPU_PORT; - status = switch_api->get_switch_attribute(1, &attr); + status = switch_api->get_switch_attribute(gSwitchId, 1, &attr); if (status != SAI_STATUS_SUCCESS) { printf("%s failed, status:%d\n", f_name, status); @@ -1058,7 +1168,7 @@ sai_thrift_object_id_t sai_thrift_get_cpu_port_id() { return SAI_NULL_OBJECT_ID; } attr.id = SAI_SWITCH_ATTR_DEFAULT_VIRTUAL_ROUTER_ID; - status = switch_api->get_switch_attribute(1, &attr); + status = switch_api->get_switch_attribute(gSwitchId, 1, &attr); if (status != SAI_STATUS_SUCCESS) { printf("%s. Failed to get switch virtual router ID, status %d", f_name, status); @@ -1081,7 +1191,7 @@ sai_thrift_object_id_t sai_thrift_get_cpu_port_id() { return SAI_NULL_OBJECT_ID; } attr.id = SAI_SWITCH_ATTR_DEFAULT_TRAP_GROUP; - status = switch_api->get_switch_attribute(1, &attr); + status = switch_api->get_switch_attribute(gSwitchId, 1, &attr); if (status != SAI_STATUS_SUCCESS) { printf("%s. Failed to get switch default trap group, status %d", f_name, status); @@ -1107,12 +1217,12 @@ sai_thrift_object_id_t sai_thrift_get_cpu_port_id() { } max_port_attribute.id = SAI_SWITCH_ATTR_PORT_NUMBER; - switch_api->get_switch_attribute(1, &max_port_attribute); + switch_api->get_switch_attribute(gSwitchId, 1, &max_port_attribute); max_ports = max_port_attribute.value.u32; port_list_object_attribute.id = SAI_SWITCH_ATTR_PORT_LIST; port_list_object_attribute.value.objlist.list = (sai_object_id_t *) malloc(sizeof(sai_object_id_t) * max_ports); port_list_object_attribute.value.objlist.count = max_ports; - switch_api->get_switch_attribute(1, &port_list_object_attribute); + switch_api->get_switch_attribute(gSwitchId, 1, &port_list_object_attribute); thrift_attr_list.attr_count = 1; std::vector& attr_list = thrift_attr_list.attr_list; @@ -1140,7 +1250,7 @@ sai_thrift_object_id_t sai_thrift_get_cpu_port_id() { sai_thrift_parse_switch_attribute(thrift_attr, &attr); - status = switch_api->set_switch_attribute(&attr); + status = switch_api->set_switch_attribute(gSwitchId, &attr); return status; } @@ -1152,9 +1262,9 @@ sai_thrift_object_id_t sai_thrift_get_cpu_port_id() { sai_thrift_string_to_mac(thrift_attr.value.mac, attr->value.mac); break; - case SAI_SWITCH_ATTR_FDB_UNICAST_MISS_ACTION: - case SAI_SWITCH_ATTR_FDB_BROADCAST_MISS_ACTION: - case SAI_SWITCH_ATTR_FDB_MULTICAST_MISS_ACTION: + case SAI_SWITCH_ATTR_FDB_UNICAST_MISS_PACKET_ACTION: + case SAI_SWITCH_ATTR_FDB_BROADCAST_MISS_PACKET_ACTION: + case SAI_SWITCH_ATTR_FDB_MULTICAST_MISS_PACKET_ACTION: attr->value.s32 = thrift_attr.value.s32; break; } @@ -1187,12 +1297,12 @@ sai_thrift_object_id_t sai_thrift_get_cpu_port_id() { } max_port_attribute.id = SAI_SWITCH_ATTR_PORT_NUMBER; - switch_api->get_switch_attribute(1, &max_port_attribute); + switch_api->get_switch_attribute(gSwitchId, 1, &max_port_attribute); max_ports = max_port_attribute.value.u32; port_list_object_attribute.id = SAI_SWITCH_ATTR_PORT_LIST; port_list_object_attribute.value.objlist.list = (sai_object_id_t *) malloc(sizeof(sai_object_id_t) * max_ports); port_list_object_attribute.value.objlist.count = max_ports; - switch_api->get_switch_attribute(1, &port_list_object_attribute); + switch_api->get_switch_attribute(gSwitchId, 1, &port_list_object_attribute); std::map front_to_sai_map; for (int i=0 ; iget_switch_attribute(1, &max_port_attribute); + switch_api->get_switch_attribute(gSwitchId, 1, &max_port_attribute); max_ports = max_port_attribute.value.u32; port_list_object_attribute.id = SAI_SWITCH_ATTR_PORT_LIST; port_list_object_attribute.value.objlist.list = (sai_object_id_t *) malloc(sizeof(sai_object_id_t) * max_ports); port_list_object_attribute.value.objlist.count = max_ports; - switch_api->get_switch_attribute(1, &port_list_object_attribute); + switch_api->get_switch_attribute(gSwitchId, 1, &port_list_object_attribute); for (int i=0 ; icreate_hostif(&hif_id, attr_count, attr_list); + status = hostif_api->create_hostif(&hif_id, gSwitchId, attr_count, attr_list); free(attr_list); return hif_id; } @@ -1350,7 +1460,7 @@ sai_thrift_object_id_t sai_thrift_get_cpu_port_id() { sai_attribute_t *attr_list = (sai_attribute_t *) malloc(sizeof(sai_attribute_t) * thrift_attr_list.size()); sai_thrift_parse_hostif_trap_group_attributes(thrift_attr_list, attr_list); uint32_t attr_count = thrift_attr_list.size(); - status = hostif_api->create_hostif_trap_group(&hif_trap_group_id, attr_count, attr_list); + status = hostif_api->create_hostif_trap_group(&hif_trap_group_id, gSwitchId, attr_count, attr_list); free(attr_list); return hif_trap_group_id; } @@ -1377,7 +1487,7 @@ sai_thrift_object_id_t sai_thrift_get_cpu_port_id() { return 0; } - sai_thrift_status_t sai_thrift_set_hostif_trap(const sai_thrift_hostif_trap_id_t trap_id, const sai_thrift_attribute_t& thrift_attr) { + sai_thrift_status_t sai_thrift_set_hostif_trap(const sai_thrift_object_id_t trap_id, const sai_thrift_attribute_t& thrift_attr) { printf("sai_thrift_set_hostif_trap\n"); sai_status_t status = SAI_STATUS_SUCCESS; sai_hostif_api_t *hostif_api; @@ -1387,7 +1497,7 @@ sai_thrift_object_id_t sai_thrift_get_cpu_port_id() { return status; } sai_thrift_parse_hostif_trap_attribute(thrift_attr, &attr); - status = hostif_api->set_trap_attribute((sai_hostif_trap_id_t) trap_id, &attr); + status = hostif_api->set_trap_attribute((sai_object_id_t) trap_id, &attr); return status; } @@ -1423,8 +1533,7 @@ sai_thrift_object_id_t sai_thrift_get_cpu_port_id() { attribute = (sai_thrift_attribute_t)*it; attr_list[i].id = attribute.id; switch (attribute.id) { - case SAI_ACL_TABLE_ATTR_STAGE: - case SAI_ACL_TABLE_ATTR_PRIORITY: + case SAI_ACL_TABLE_ATTR_ACL_STAGE: attr_list[i].value.u32 = attribute.value.u32; break; case SAI_ACL_TABLE_ATTR_FIELD_SRC_IPv6: @@ -1453,8 +1562,8 @@ sai_thrift_object_id_t sai_thrift_get_cpu_port_id() { case SAI_ACL_TABLE_ATTR_FIELD_TOS: case SAI_ACL_TABLE_ATTR_FIELD_IP_FLAGS: case SAI_ACL_TABLE_ATTR_FIELD_TCP_FLAGS: - case SAI_ACL_TABLE_ATTR_FIELD_IP_TYPE: - case SAI_ACL_TABLE_ATTR_FIELD_IP_FRAG: + case SAI_ACL_TABLE_ATTR_FIELD_ACL_IP_TYPE: + case SAI_ACL_TABLE_ATTR_FIELD_ACL_IP_FRAG: case SAI_ACL_TABLE_ATTR_FIELD_IPv6_FLOW_LABEL: case SAI_ACL_TABLE_ATTR_FIELD_TC: attr_list[i].value.booldata = attribute.value.booldata; @@ -1535,10 +1644,10 @@ sai_thrift_object_id_t sai_thrift_get_cpu_port_id() { case SAI_ACL_ENTRY_ATTR_FIELD_ECN: case SAI_ACL_ENTRY_ATTR_FIELD_TTL: case SAI_ACL_ENTRY_ATTR_FIELD_TOS: -// case SAI_ACL_ENTRY_ATTR_FIELD_IP_FLAGS: + case SAI_ACL_ENTRY_ATTR_FIELD_IP_FLAGS: case SAI_ACL_ENTRY_ATTR_FIELD_TCP_FLAGS: -// case SAI_ACL_ENTRY_ATTR_FIELD_IP_TYPE: -// case SAI_ACL_ENTRY_ATTR_FIELD_IP_FRAG: + case SAI_ACL_ENTRY_ATTR_FIELD_ACL_IP_TYPE: + case SAI_ACL_ENTRY_ATTR_FIELD_ACL_IP_FRAG: case SAI_ACL_ENTRY_ATTR_FIELD_TC: attr_list[i].value.aclfield.data.u8 = attribute.value.aclfield.data.u8; attr_list[i].value.aclfield.mask.u8 = attribute.value.aclfield.mask.u8; @@ -1559,7 +1668,7 @@ sai_thrift_object_id_t sai_thrift_get_cpu_port_id() { case SAI_ACL_ENTRY_ATTR_ACTION_COUNTER: attr_list[i].value.aclfield.data.oid = attribute.value.aclfield.data.oid; break; - case SAI_ACL_ENTRY_ATTR_PACKET_ACTION: + case SAI_ACL_ENTRY_ATTR_ACTION_PACKET_ACTION: attr_list[i].value.aclaction.parameter.u32 = attribute.value.aclaction.parameter.u32; break; default: @@ -1637,7 +1746,7 @@ sai_thrift_object_id_t sai_thrift_get_cpu_port_id() { sai_attribute_t *attr_list = (sai_attribute_t *) malloc(sizeof(sai_attribute_t) * thrift_attr_list.size()); sai_thrift_parse_acl_table_attributes(thrift_attr_list, attr_list); uint32_t attr_count = thrift_attr_list.size(); - status = acl_api->create_acl_table(&acl_table, attr_count, attr_list); + status = acl_api->create_acl_table(&acl_table, gSwitchId, attr_count, attr_list); free(attr_list); return acl_table; } @@ -1649,7 +1758,7 @@ sai_thrift_object_id_t sai_thrift_get_cpu_port_id() { if (status != SAI_STATUS_SUCCESS) { return status; } - status = acl_api->delete_acl_table(acl_table_id); + status = acl_api->remove_acl_table(acl_table_id); return status; } @@ -1665,7 +1774,7 @@ sai_thrift_object_id_t sai_thrift_get_cpu_port_id() { sai_attribute_t *attr_list = (sai_attribute_t *) malloc(sizeof(sai_attribute_t) * thrift_attr_list.size()); sai_thrift_parse_acl_entry_attributes(thrift_attr_list, attr_list); uint32_t attr_count = thrift_attr_list.size(); - status = acl_api->create_acl_entry(&acl_entry, attr_count, attr_list); + status = acl_api->create_acl_entry(&acl_entry, gSwitchId, attr_count, attr_list); free(attr_list); return acl_entry; } @@ -1677,7 +1786,7 @@ sai_thrift_object_id_t sai_thrift_get_cpu_port_id() { if (status != SAI_STATUS_SUCCESS) { return status; } - status = acl_api->delete_acl_entry(acl_entry); + status = acl_api->remove_acl_entry(acl_entry); return status; } @@ -1692,7 +1801,7 @@ sai_thrift_object_id_t sai_thrift_get_cpu_port_id() { sai_attribute_t *attr_list = (sai_attribute_t *) malloc(sizeof(sai_attribute_t) * thrift_attr_list.size()); sai_thrift_convert_to_acl_counter_attributes(thrift_attr_list, attr_list); uint32_t attr_count = thrift_attr_list.size(); - status = acl_api->create_acl_counter(&acl_counter_id, attr_count, attr_list); + status = acl_api->create_acl_counter(&acl_counter_id, gSwitchId, attr_count, attr_list); free(attr_list); return acl_counter_id; } @@ -1705,7 +1814,7 @@ sai_thrift_object_id_t sai_thrift_get_cpu_port_id() { if (status != SAI_STATUS_SUCCESS) { return status; } - status = acl_api->delete_acl_counter(acl_counter_id); + status = acl_api->remove_acl_counter(acl_counter_id); return status; } @@ -1725,10 +1834,7 @@ sai_thrift_object_id_t sai_thrift_get_cpu_port_id() { sai_attribute_t *attr_list = (sai_attribute_t *) malloc(sizeof(sai_attribute_t) * thrift_attr_ids.size()); memset(attr_list, 0x0, sizeof(sizeof(sai_attribute_t) * thrift_attr_ids.size())); sai_thrift_parse_attribute_ids(thrift_attr_ids, attr_list); - status = acl_api->get_acl_counter_attribute( - acl_counter_id, - attr_count, - attr_list); + status = acl_api->get_acl_counter_attribute(acl_counter_id, attr_count, attr_list); if (status != SAI_STATUS_SUCCESS) { return; } @@ -1765,7 +1871,7 @@ sai_thrift_object_id_t sai_thrift_get_cpu_port_id() { case SAI_MIRROR_SESSION_ATTR_VLAN_PRI: attr_list[i].value.u8 = attribute.value.u8; break; - case SAI_MIRROR_SESSION_ATTR_ENCAP_TYPE: + case SAI_MIRROR_SESSION_ATTR_ERSPAN_ENCAPSULATION_TYPE: attr_list[i].value.u8 = attribute.value.u8; break; case SAI_MIRROR_SESSION_ATTR_IPHDR_VERSION: @@ -1810,7 +1916,7 @@ sai_thrift_object_id_t sai_thrift_get_cpu_port_id() { sai_attribute_t *attr_list = (sai_attribute_t *) malloc(sizeof(sai_attribute_t) * thrift_attr_list.size()); sai_thrift_parse_mirror_session_attributes(thrift_attr_list, attr_list); uint32_t attr_count = thrift_attr_list.size(); - mirror_api->create_mirror_session(&session_id, attr_count, attr_list); + mirror_api->create_mirror_session(&session_id, gSwitchId, attr_count, attr_list); return session_id; } @@ -1879,7 +1985,7 @@ sai_thrift_object_id_t sai_thrift_get_cpu_port_id() { sai_attribute_t *attr_list = (sai_attribute_t *) malloc(sizeof(sai_attribute_t) * thrift_attr_list.size()); sai_thrift_parse_policer_attributes(thrift_attr_list, attr_list); uint32_t attr_count = thrift_attr_list.size(); - policer_api->create_policer(&policer_id, attr_count, attr_list); + policer_api->create_policer(&policer_id, gSwitchId, attr_count, attr_list); return policer_id; } @@ -1895,10 +2001,9 @@ sai_thrift_object_id_t sai_thrift_get_cpu_port_id() { return status; } - void sai_thrift_get_policer_stats( - std::vector & thrift_counters, - const sai_thrift_object_id_t policer_id, - const std::vector & thrift_counter_ids) { + void sai_thrift_get_policer_stats(std::vector & thrift_counters, + const sai_thrift_object_id_t policer_id, + const std::vector & thrift_counter_ids) { printf("sai_thrift_get_policer_stats\n"); sai_status_t status = SAI_STATUS_SUCCESS; sai_policer_api_t *policer_api; @@ -1906,11 +2011,11 @@ sai_thrift_object_id_t sai_thrift_get_cpu_port_id() { if (status != SAI_STATUS_SUCCESS) { return; } - sai_policer_stat_counter_t *counter_ids = (sai_policer_stat_counter_t *) malloc(sizeof(sai_policer_stat_counter_t) * thrift_counter_ids.size()); + _sai_policer_stat_t *counter_ids = (_sai_policer_stat_t *) malloc(sizeof(_sai_policer_stat_t) * thrift_counter_ids.size()); std::vector::const_iterator it = thrift_counter_ids.begin(); uint64_t *counters = (uint64_t *) malloc(sizeof(uint64_t) * thrift_counter_ids.size()); for(uint32_t i = 0; i < thrift_counter_ids.size(); i++, it++) { - counter_ids[i] = (sai_policer_stat_counter_t) *it; + counter_ids[i] = (_sai_policer_stat_t) *it; } int32_t number_of_counters = thrift_counter_ids.size(); @@ -1940,7 +2045,7 @@ sai_thrift_object_id_t sai_thrift_get_cpu_port_id() { sai_attribute_t *attr_list = (sai_attribute_t *) malloc(sizeof(sai_attribute_t) * thrift_attr_list.size()); sai_thrift_parse_scheduler_attributes(thrift_attr_list, attr_list); uint32_t attr_count = thrift_attr_list.size(); - scheduler_api->create_scheduler_profile(&scheduler_id, attr_count, attr_list); + scheduler_api->create_scheduler_profile(&scheduler_id, gSwitchId, attr_count, attr_list); free (attr_list); return scheduler_id; } @@ -1964,15 +2069,9 @@ sai_thrift_object_id_t sai_thrift_get_cpu_port_id() { attribute = (sai_thrift_attribute_t)*it; attr_list[i].id = attribute.id; switch (attribute.id) { - case SAI_SCHEDULER_ATTR_SCHEDULING_ALGORITHM: - attr_list[i].value.s32 = attribute.value.s32; - break; case SAI_SCHEDULER_ATTR_SCHEDULING_WEIGHT: attr_list[i].value.u8 = attribute.value.u8; break; - case SAI_SCHEDULER_ATTR_SHAPER_TYPE: - attr_list[i].value.s32 = attribute.value.s32; - break; case SAI_SCHEDULER_ATTR_MIN_BANDWIDTH_RATE: attr_list[i].value.u64 = attribute.value.u64; break; @@ -1989,11 +2088,10 @@ sai_thrift_object_id_t sai_thrift_get_cpu_port_id() { } } - void sai_thrift_get_port_stats( - std::vector & thrift_counters, - const sai_thrift_object_id_t port_id, - const std::vector & thrift_counter_ids, - const int32_t number_of_counters) { + void sai_thrift_get_port_stats(std::vector & thrift_counters, + const sai_thrift_object_id_t port_id, + const std::vector & thrift_counter_ids, + const int32_t number_of_counters) { printf("sai_thrift_get_port_stats\n"); sai_status_t status = SAI_STATUS_SUCCESS; sai_port_api_t *port_api; @@ -2001,18 +2099,17 @@ sai_thrift_object_id_t sai_thrift_get_cpu_port_id() { if (status != SAI_STATUS_SUCCESS) { return; } - sai_port_stat_counter_t *counter_ids = (sai_port_stat_counter_t *) malloc(sizeof(sai_port_stat_counter_t) * thrift_counter_ids.size()); + sai_port_stat_t *counter_ids = (sai_port_stat_t *) malloc(sizeof(sai_port_stat_t) * thrift_counter_ids.size()); std::vector::const_iterator it = thrift_counter_ids.begin(); uint64_t *counters = (uint64_t *) malloc(sizeof(uint64_t) * thrift_counter_ids.size()); for(uint32_t i = 0; i < thrift_counter_ids.size(); i++, it++) { - counter_ids[i] = (sai_port_stat_counter_t) *it; + counter_ids[i] = (sai_port_stat_t) *it; } - status = port_api->get_port_stats( - (sai_object_id_t) port_id, - counter_ids, - number_of_counters, - counters); + status = port_api->get_port_stats((sai_object_id_t) port_id, + counter_ids, + number_of_counters, + counters); for (uint32_t i = 0; i < thrift_counter_ids.size(); i++) { thrift_counters.push_back(counters[i]); @@ -2074,16 +2171,16 @@ sai_thrift_object_id_t sai_thrift_get_cpu_port_id() { sai_object_list_t *pg_list_object; int max_pg = 0; - max_pg_attribute.id = SAI_PORT_ATTR_NUMBER_OF_PRIORITY_GROUPS; + max_pg_attribute.id = SAI_PORT_ATTR_NUMBER_OF_INGRESS_PRIORITY_GROUPS; port_api->get_port_attribute(port_id, 1, &max_pg_attribute); max_pg = max_pg_attribute.value.u32; - pg_list_object_attribute.id = SAI_PORT_ATTR_PRIORITY_GROUP_LIST; + pg_list_object_attribute.id = SAI_PORT_ATTR_INGRESS_PRIORITY_GROUP_LIST; pg_list_object_attribute.value.objlist.list = (sai_object_id_t *) malloc(sizeof(sai_object_id_t) * max_pg); pg_list_object_attribute.value.objlist.count = max_pg; port_api->get_port_attribute(port_id, 1, &pg_list_object_attribute); thrift_attr_list.attr_count = 3; - thrift_pg_list_attribute.id = SAI_PORT_ATTR_PRIORITY_GROUP_LIST; + thrift_pg_list_attribute.id = SAI_PORT_ATTR_INGRESS_PRIORITY_GROUP_LIST; thrift_pg_list_attribute.value.objlist.count = max_pg; std::vector& pg_list = thrift_pg_list_attribute.value.objlist.object_id_list; pg_list_object = &pg_list_object_attribute.value.objlist; @@ -2112,24 +2209,22 @@ sai_thrift_object_id_t sai_thrift_get_cpu_port_id() { } attr_list.push_back(thrift_port_hw_lane); free(port_hw_lane.value.u32list.list); - + sai_attribute_t port_oper_status_attribute; sai_thrift_attribute_t thrift_port_status; port_oper_status_attribute.id = SAI_PORT_ATTR_OPER_STATUS; port_api->get_port_attribute(port_id, 1, &port_oper_status_attribute); - + thrift_attr_list.attr_count = 5; thrift_port_status.id = SAI_PORT_ATTR_OPER_STATUS; thrift_port_status.value.s32 = port_oper_status_attribute.value.s32; attr_list.push_back(thrift_port_status); - } - void sai_thrift_get_queue_stats( - std::vector & thrift_counters, - const sai_thrift_object_id_t queue_id, - const std::vector & thrift_counter_ids, - const int32_t number_of_counters) { + void sai_thrift_get_queue_stats(std::vector & thrift_counters, + const sai_thrift_object_id_t queue_id, + const std::vector & thrift_counter_ids, + const int32_t number_of_counters) { printf("sai_thrift_get_queue_stats\n"); sai_status_t status = SAI_STATUS_SUCCESS; sai_queue_api_t *queue_api; @@ -2137,11 +2232,11 @@ sai_thrift_object_id_t sai_thrift_get_cpu_port_id() { if (status != SAI_STATUS_SUCCESS) { return; } - sai_queue_stat_counter_t *counter_ids = (sai_queue_stat_counter_t *) malloc(sizeof(sai_queue_stat_counter_t) * thrift_counter_ids.size()); + sai_queue_stat_t *counter_ids = (sai_queue_stat_t *) malloc(sizeof(sai_queue_stat_t) * thrift_counter_ids.size()); std::vector::const_iterator it = thrift_counter_ids.begin(); uint64_t *counters = (uint64_t *) malloc(sizeof(uint64_t) * thrift_counter_ids.size()); for(uint32_t i = 0; i < thrift_counter_ids.size(); i++, it++) { - counter_ids[i] = (sai_queue_stat_counter_t) *it; + counter_ids[i] = (sai_queue_stat_t) *it; } status = queue_api->get_queue_stats( @@ -2158,7 +2253,8 @@ sai_thrift_object_id_t sai_thrift_get_cpu_port_id() { return; } - sai_thrift_status_t sai_thrift_set_queue_attribute(const sai_thrift_object_id_t queue_id, const sai_thrift_attribute_t& thrift_attr) { + sai_thrift_status_t sai_thrift_set_queue_attribute(const sai_thrift_object_id_t queue_id, + const sai_thrift_attribute_t& thrift_attr) { printf("sai_thrift_set_queue_attribute\n"); sai_status_t status = SAI_STATUS_SUCCESS; sai_queue_api_t *queue_api; @@ -2173,10 +2269,9 @@ sai_thrift_object_id_t sai_thrift_get_cpu_port_id() { return status; } - sai_thrift_status_t sai_thrift_clear_queue_stats( - const sai_thrift_object_id_t queue_id, - const std::vector & thrift_counter_ids, - const int32_t number_of_counters) { + sai_thrift_status_t sai_thrift_clear_queue_stats(const sai_thrift_object_id_t queue_id, + const std::vector & thrift_counter_ids, + const int32_t number_of_counters) { printf("sai_thrift_clear_queue_stats\n"); sai_status_t status = SAI_STATUS_SUCCESS; sai_queue_api_t *queue_api; @@ -2184,10 +2279,10 @@ sai_thrift_object_id_t sai_thrift_get_cpu_port_id() { if (status != SAI_STATUS_SUCCESS) { return status; } - sai_queue_stat_counter_t *counter_ids = (sai_queue_stat_counter_t *) malloc(sizeof(sai_queue_stat_counter_t) * thrift_counter_ids.size()); + sai_queue_stat_t *counter_ids = (sai_queue_stat_t *) malloc(sizeof(sai_queue_stat_t) * thrift_counter_ids.size()); std::vector::const_iterator it = thrift_counter_ids.begin(); for(uint32_t i = 0; i < thrift_counter_ids.size(); i++, it++) { - counter_ids[i] = (sai_queue_stat_counter_t) *it; + counter_ids[i] = (sai_queue_stat_t) *it; } status = queue_api->clear_queue_stats( @@ -2211,7 +2306,7 @@ sai_thrift_object_id_t sai_thrift_get_cpu_port_id() { sai_attribute_t *attr_list = (sai_attribute_t *) malloc(sizeof(sai_attribute_t) * thrift_attr_list.size()); sai_thrift_parse_buffer_attributes(thrift_attr_list, attr_list); uint32_t attr_count = thrift_attr_list.size(); - buffer_api->create_buffer_profile(&buffer_id, attr_count, attr_list); + buffer_api->create_buffer_profile(&buffer_id, gSwitchId, attr_count, attr_list); return buffer_id; } @@ -2229,7 +2324,7 @@ sai_thrift_object_id_t sai_thrift_get_cpu_port_id() { case SAI_BUFFER_PROFILE_ATTR_BUFFER_SIZE: attr_list[i].value.u32 = attribute.value.u32; break; - case SAI_BUFFER_PROFILE_ATTR_TH_MODE: + case SAI_BUFFER_PROFILE_ATTR_THRESHOLD_MODE: attr_list[i].value.s32 = attribute.value.s32; break; case SAI_BUFFER_PROFILE_ATTR_SHARED_DYNAMIC_TH: @@ -2260,7 +2355,7 @@ sai_thrift_object_id_t sai_thrift_get_cpu_port_id() { sai_attribute_t *attr_list = (sai_attribute_t *) malloc(sizeof(sai_attribute_t) * thrift_attr_list.size()); sai_thrift_parse_pool_attributes(thrift_attr_list, attr_list); uint32_t attr_count = thrift_attr_list.size(); - buffer_api->create_buffer_pool(&pool_id, attr_count, attr_list); + buffer_api->create_buffer_pool(&pool_id, gSwitchId, attr_count, attr_list); return pool_id; } @@ -2277,7 +2372,7 @@ sai_thrift_object_id_t sai_thrift_get_cpu_port_id() { case SAI_BUFFER_POOL_ATTR_SIZE: attr_list[i].value.u32 = attribute.value.u32; break; - case SAI_BUFFER_POOL_ATTR_TH_MODE: + case SAI_BUFFER_POOL_ATTR_THRESHOLD_MODE: attr_list[i].value.u32 = attribute.value.s32; break; } @@ -2299,11 +2394,10 @@ sai_thrift_object_id_t sai_thrift_get_cpu_port_id() { return status; } - void sai_thrift_get_pg_stats( - std::vector & thrift_counters, - const sai_thrift_object_id_t pg_id, - const std::vector & thrift_counter_ids, - const int32_t number_of_counters) { + void sai_thrift_get_pg_stats(std::vector & thrift_counters, + const sai_thrift_object_id_t pg_id, + const std::vector & thrift_counter_ids, + const int32_t number_of_counters) { printf("sai_thrift_get_pg_stats\n"); sai_status_t status = SAI_STATUS_SUCCESS; sai_buffer_api_t *buffer_api; @@ -2311,18 +2405,17 @@ sai_thrift_object_id_t sai_thrift_get_cpu_port_id() { if (status != SAI_STATUS_SUCCESS) { return; } - sai_ingress_priority_group_stat_counter_t *counter_ids = (sai_ingress_priority_group_stat_counter_t *) malloc(sizeof(sai_ingress_priority_group_stat_counter_t) * thrift_counter_ids.size()); + sai_ingress_priority_group_stat_t *counter_ids = (sai_ingress_priority_group_stat_t *) malloc(sizeof(sai_ingress_priority_group_stat_t) * thrift_counter_ids.size()); std::vector::const_iterator it = thrift_counter_ids.begin(); uint64_t *counters = (uint64_t *) malloc(sizeof(uint64_t) * thrift_counter_ids.size()); for(uint32_t i = 0; i < thrift_counter_ids.size(); i++, it++) { - counter_ids[i] = (sai_ingress_priority_group_stat_counter_t) *it; + counter_ids[i] = (sai_ingress_priority_group_stat_t) *it; } - status = buffer_api->get_ingress_priority_group_stats( - (sai_object_id_t) pg_id, - counter_ids, - number_of_counters, - counters); + status = buffer_api->get_ingress_priority_group_stats((sai_object_id_t) pg_id, + counter_ids, + number_of_counters, + counters); for (uint32_t i = 0; i < thrift_counter_ids.size(); i++) { thrift_counters.push_back(counters[i]); @@ -2344,7 +2437,7 @@ sai_thrift_object_id_t sai_thrift_get_cpu_port_id() { sai_attribute_t *attr_list = (sai_attribute_t *) malloc(sizeof(sai_attribute_t) * thrift_attr_list.size()); sai_thrift_parse_wred_attributes(thrift_attr_list, attr_list); uint32_t attr_count = thrift_attr_list.size(); - wred_api->create_wred_profile(&wred_id, attr_count, attr_list); + wred_api->create_wred_profile(&wred_id, gSwitchId, attr_count, attr_list); free(attr_list); return wred_id; } @@ -2457,7 +2550,7 @@ sai_thrift_object_id_t sai_thrift_get_cpu_port_id() { } } - qos_map_api->create_qos_map(&qos_map_id, thrift_attr_list.size(), attr_list); + qos_map_api->create_qos_map(&qos_map_id, gSwitchId, thrift_attr_list.size(), attr_list); free(qos_map_list); free(attr_list); diff --git a/test/saithrift/tests/saihostif.py b/test/saithrift/tests/saihostif.py index e8dc71b2d..64b853a2d 100644 --- a/test/saithrift/tests/saihostif.py +++ b/test/saithrift/tests/saihostif.py @@ -28,8 +28,6 @@ from thrift.protocol import TBinaryProtocol import time - - import pprint class ControlPlaneBaseTest(sai_base_test.ThriftInterfaceDataPlane): @@ -42,14 +40,14 @@ class ControlPlaneBaseTest(sai_base_test.ThriftInterfaceDataPlane): src_mac_uc = '00:55:55:55:55:00' trap_list = [ - SAI_HOSTIF_TRAP_ID_TTL_ERROR, - SAI_HOSTIF_TRAP_ID_BGP, - SAI_HOSTIF_TRAP_ID_LACP, - SAI_HOSTIF_TRAP_ID_ARP_REQUEST, - SAI_HOSTIF_TRAP_ID_ARP_RESPONSE, - SAI_HOSTIF_TRAP_ID_LLDP, - SAI_HOSTIF_TRAP_ID_DHCP, - SAI_HOSTIF_TRAP_ID_IP2ME + SAI_HOSTIF_TRAP_TYPE_TTL_ERROR, + SAI_HOSTIF_TRAP_TYPE_BGP, + SAI_HOSTIF_TRAP_TYPE_LACP, + SAI_HOSTIF_TRAP_TYPE_ARP_REQUEST, + SAI_HOSTIF_TRAP_TYPE_ARP_RESPONSE, + SAI_HOSTIF_TRAP_TYPE_LLDP, + SAI_HOSTIF_TRAP_TYPE_DHCP, + SAI_HOSTIF_TRAP_TYPE_IP2ME ] myip = '' diff --git a/test/saithrift/tests/sail2.py b/test/saithrift/tests/sail2.py index 6fbca1966..86346e196 100644 --- a/test/saithrift/tests/sail2.py +++ b/test/saithrift/tests/sail2.py @@ -32,9 +32,9 @@ def runTest(self): mac2 = '00:22:22:22:22:22' mac_action = SAI_PACKET_ACTION_FORWARD - self.client.sai_thrift_create_vlan(vlan_id) - vlan_member1 = sai_thrift_create_vlan_member(self.client, vlan_id, port1, SAI_VLAN_PORT_UNTAGGED) - vlan_member2 = sai_thrift_create_vlan_member(self.client, vlan_id, port2, SAI_VLAN_PORT_UNTAGGED) + vlan_oid = sai_thrift_create_vlan(self.client, vlan_id) + vlan_member1 = sai_thrift_create_vlan_member(self.client, vlan_oid, port1, SAI_VLAN_TAGGING_MODE_UNTAGGED) + vlan_member2 = sai_thrift_create_vlan_member(self.client, vlan_oid, port2, SAI_VLAN_TAGGING_MODE_UNTAGGED) attr_value = sai_thrift_attribute_value_t(u16=vlan_id) attr = sai_thrift_attribute_t(id=SAI_PORT_ATTR_PORT_VLAN_ID, value=attr_value) @@ -64,7 +64,7 @@ def runTest(self): self.client.sai_thrift_remove_vlan_member(vlan_member1) self.client.sai_thrift_remove_vlan_member(vlan_member2) - self.client.sai_thrift_delete_vlan(vlan_id) + self.client.sai_thrift_remove_vlan(vlan_oid) @group('l2') class L2TrunkToTrunkVlanTest(sai_base_test.ThriftInterfaceDataPlane): @@ -79,10 +79,9 @@ def runTest(self): mac2 = '00:22:22:22:22:22' mac_action = SAI_PACKET_ACTION_FORWARD - self.client.sai_thrift_create_vlan(vlan_id) - vlan_member1 = sai_thrift_create_vlan_member(self.client, vlan_id, port1, SAI_VLAN_PORT_TAGGED) - vlan_member2 = sai_thrift_create_vlan_member(self.client, vlan_id, port2, SAI_VLAN_PORT_TAGGED) - + vlan_oid = sai_thrift_create_vlan(self.client, vlan_id) + vlan_member1 = sai_thrift_create_vlan_member(self.client, vlan_oid, port1, SAI_VLAN_TAGGING_MODE_TAGGED) + vlan_member2 = sai_thrift_create_vlan_member(self.client, vlan_oid, port2, SAI_VLAN_TAGGING_MODE_TAGGED) sai_thrift_create_fdb(self.client, vlan_id, mac1, port1, mac_action) sai_thrift_create_fdb(self.client, vlan_id, mac2, port2, mac_action) @@ -110,7 +109,7 @@ def runTest(self): sai_thrift_delete_fdb(self.client, vlan_id, mac2, port2) self.client.sai_thrift_remove_vlan_member(vlan_member1) self.client.sai_thrift_remove_vlan_member(vlan_member2) - self.client.sai_thrift_delete_vlan(vlan_id) + self.client.sai_thrift_remove_vlan(vlan_oid) @group('l2') class L2AccessToTrunkVlanTest(sai_base_test.ThriftInterfaceDataPlane): @@ -125,9 +124,9 @@ def runTest(self): mac2 = '00:22:22:22:22:22' mac_action = SAI_PACKET_ACTION_FORWARD - self.client.sai_thrift_create_vlan(vlan_id) - vlan_member1 = sai_thrift_create_vlan_member(self.client, vlan_id, port1, SAI_VLAN_PORT_UNTAGGED) - vlan_member2 = sai_thrift_create_vlan_member(self.client, vlan_id, port2, SAI_VLAN_PORT_TAGGED) + vlan_oid = sai_thrift_create_vlan(self.client, vlan_id) + vlan_member1 = sai_thrift_create_vlan_member(self.client, vlan_oid, port1, SAI_VLAN_TAGGING_MODE_UNTAGGED) + vlan_member2 = sai_thrift_create_vlan_member(self.client, vlan_oid, port2, SAI_VLAN_TAGGING_MODE_TAGGED) attr_value = sai_thrift_attribute_value_t(u16=vlan_id) attr = sai_thrift_attribute_t(id=SAI_PORT_ATTR_PORT_VLAN_ID, value=attr_value) @@ -149,6 +148,7 @@ def runTest(self): ip_id=102, ip_ttl=64, pktlen=104) + try: send_packet(self, 0, str(pkt)) verify_packets(self, exp_pkt, [1]) @@ -161,8 +161,8 @@ def runTest(self): self.client.sai_thrift_set_port_attribute(port2, attr) self.client.sai_thrift_remove_vlan_member(vlan_member1) - self.client.sai_thrift_remove_vlan_member(vlan_member2) - self.client.sai_thrift_delete_vlan(vlan_id) + self.client.sai_thrift_remove_vlan_member(vlan_member2) + self.client.sai_thrift_remove_vlan(vlan_oid) @group('l2') class L2TrunkToAccessVlanTest(sai_base_test.ThriftInterfaceDataPlane): @@ -177,9 +177,9 @@ def runTest(self): mac2 = '00:22:22:22:22:22' mac_action = SAI_PACKET_ACTION_FORWARD - self.client.sai_thrift_create_vlan(vlan_id) - vlan_member1 = sai_thrift_create_vlan_member(self.client, vlan_id, port1, SAI_VLAN_PORT_TAGGED) - vlan_member2 = sai_thrift_create_vlan_member(self.client, vlan_id, port2, SAI_VLAN_PORT_UNTAGGED) + vlan_oid = sai_thrift_create_vlan(self.client, vlan_id) + vlan_member1 = sai_thrift_create_vlan_member(self.client, vlan_oid, port1, SAI_VLAN_TAGGING_MODE_TAGGED) + vlan_member2 = sai_thrift_create_vlan_member(self.client, vlan_oid, port2, SAI_VLAN_TAGGING_MODE_UNTAGGED) attr_value = sai_thrift_attribute_value_t(u16=vlan_id) attr = sai_thrift_attribute_t(id=SAI_PORT_ATTR_PORT_VLAN_ID, value=attr_value) @@ -215,7 +215,7 @@ def runTest(self): self.client.sai_thrift_remove_vlan_member(vlan_member1) self.client.sai_thrift_remove_vlan_member(vlan_member2) - self.client.sai_thrift_delete_vlan(vlan_id) + self.client.sai_thrift_remove_vlan(vlan_oid) @group('l2') class L2FloodTest(sai_base_test.ThriftInterfaceDataPlane): @@ -230,10 +230,10 @@ def runTest(self): mac1 = '00:11:11:11:11:11' mac2 = '00:22:22:22:22:22' - self.client.sai_thrift_create_vlan(vlan_id) - vlan_member1 = sai_thrift_create_vlan_member(self.client, vlan_id, port1, SAI_VLAN_PORT_UNTAGGED) - vlan_member2 = sai_thrift_create_vlan_member(self.client, vlan_id, port2, SAI_VLAN_PORT_UNTAGGED) - vlan_member3 = sai_thrift_create_vlan_member(self.client, vlan_id, port3, SAI_VLAN_PORT_UNTAGGED) + vlan_oid = sai_thrift_create_vlan(self.client, vlan_id) + vlan_member1 = sai_thrift_create_vlan_member(self.client, vlan_oid, port1, SAI_VLAN_TAGGING_MODE_UNTAGGED) + vlan_member2 = sai_thrift_create_vlan_member(self.client, vlan_oid, port2, SAI_VLAN_TAGGING_MODE_UNTAGGED) + vlan_member3 = sai_thrift_create_vlan_member(self.client, vlan_oid, port3, SAI_VLAN_TAGGING_MODE_UNTAGGED) attr_value = sai_thrift_attribute_value_t(u16=vlan_id) attr = sai_thrift_attribute_t(id=SAI_PORT_ATTR_PORT_VLAN_ID, value=attr_value) @@ -251,6 +251,7 @@ def runTest(self): ip_dst='10.0.0.1', ip_id=107, ip_ttl=64) + try: send_packet(self, 0, str(pkt)) verify_packets(self, exp_pkt, [1, 2]) @@ -270,7 +271,7 @@ def runTest(self): self.client.sai_thrift_remove_vlan_member(vlan_member1) self.client.sai_thrift_remove_vlan_member(vlan_member2) self.client.sai_thrift_remove_vlan_member(vlan_member3) - self.client.sai_thrift_delete_vlan(vlan_id) + self.client.sai_thrift_remove_vlan(vlan_oid) @group('l2') @group('lag') @@ -287,7 +288,7 @@ def runTest(self): mac2 = '00:22:22:22:22:22' mac_action = SAI_PACKET_ACTION_FORWARD - self.client.sai_thrift_create_vlan(vlan_id) + vlan_oid = sai_thrift_create_vlan(self.client, vlan_id) lag_id1 = self.client.sai_thrift_create_lag([]) @@ -297,8 +298,8 @@ def runTest(self): lag_member_id2 = sai_thrift_create_lag_member(self.client, lag_id1, port2) lag_member_id3 = sai_thrift_create_lag_member(self.client, lag_id1, port3) - vlan_member1 = sai_thrift_create_vlan_member(self.client, vlan_id, lag_id1, SAI_VLAN_PORT_UNTAGGED) - vlan_member2 = sai_thrift_create_vlan_member(self.client, vlan_id, port4, SAI_VLAN_PORT_UNTAGGED) + vlan_member1 = sai_thrift_create_vlan_member(self.client, vlan_oid, lag_id1, SAI_VLAN_TAGGING_MODE_UNTAGGED) + vlan_member2 = sai_thrift_create_vlan_member(self.client, vlan_oid, port4, SAI_VLAN_TAGGING_MODE_UNTAGGED) attr_value = sai_thrift_attribute_value_t(u16=vlan_id) attr = sai_thrift_attribute_t(id=SAI_PORT_ATTR_PORT_VLAN_ID, value=attr_value) @@ -369,10 +370,10 @@ def runTest(self): self.client.sai_thrift_remove_lag_member(lag_member_id2) self.client.sai_thrift_remove_lag_member(lag_member_id3) self.client.sai_thrift_remove_lag(lag_id1) - self.client.sai_thrift_delete_vlan(vlan_id) + self.client.sai_thrift_remove_vlan(vlan_oid) for port in sai_port_list: - sai_thrift_create_vlan_member(self.client, default_vlan, port, SAI_VLAN_PORT_UNTAGGED) + sai_thrift_create_vlan_member(self.client, default_vlan, port, SAI_VLAN_TAGGING_MODE_UNTAGGED) attr_value = sai_thrift_attribute_value_t(u16=1) attr = sai_thrift_attribute_t(id=SAI_PORT_ATTR_PORT_VLAN_ID, value=attr_value) @@ -408,14 +409,14 @@ def runTest(self): sai_thrift_vlan_remove_all_ports(self.client, default_vlan) - self.client.sai_thrift_create_vlan(vlan_id) + vlan_oid = sai_thrift_create_vlan(self.client, vlan_id) for i in range (0, len(port_list)-1): - vlan_member_list.append(sai_thrift_create_vlan_member(self.client, vlan_id, port_list[i], SAI_VLAN_PORT_UNTAGGED)) + vlan_member_list.append(sai_thrift_create_vlan_member(self.client, vlan_oid, port_list[i], SAI_VLAN_TAGGING_MODE_UNTAGGED)) attr_value = sai_thrift_attribute_value_t(u16=vlan_id) attr = sai_thrift_attribute_t(id=SAI_PORT_ATTR_PORT_VLAN_ID, value=attr_value) for i in range (0, len(port_list)-1): - self.client.sai_thrift_set_port_attribute(port_list[i], attr) + self.client.sai_thrift_set_port_attribute(port_list[i], attr) sai_thrift_create_fdb(self.client, vlan_id, mac_list[i], port_list[i], mac_action) bcast_pkt = simple_tcp_packet(eth_dst='ff:ff:ff:ff:ff:ff', @@ -452,8 +453,8 @@ def runTest(self): for vlan_member in vlan_member_list: self.client.sai_thrift_remove_vlan_member(vlan_member) - self.client.sai_thrift_delete_vlan(vlan_id) + self.client.sai_thrift_remove_vlan(vlan_id) for port in sai_port_list: - sai_thrift_create_vlan_member(self.client, default_vlan, port, SAI_VLAN_PORT_UNTAGGED) + sai_thrift_create_vlan_member(self.client, default_vlan, port, SAI_VLAN_TAGGING_MODE_UNTAGGED) diff --git a/test/saithrift/tests/sail3.py b/test/saithrift/tests/sail3.py index 22360b69d..8dfc5af7a 100644 --- a/test/saithrift/tests/sail3.py +++ b/test/saithrift/tests/sail3.py @@ -414,7 +414,7 @@ def runTest(self): finally: sai_thrift_remove_route(self.client, vr_id, addr_family, ip_addr1_subnet, ip_mask1, rif_id1) sai_thrift_remove_route(self.client, vr_id, addr_family, ip_addr1_subnet, ip_mask1, rif_id2) - self.client.sai_thrift_remove_next_hop_from_group(nhop_group1, [nhop1, nhop2]) + sai_thrift_remove_next_hop_from_group(self.client, [nhop1, nhop2]) self.client.sai_thrift_remove_next_hop_group(nhop_group1) self.client.sai_thrift_remove_next_hop(nhop1) self.client.sai_thrift_remove_next_hop(nhop2) @@ -515,7 +515,7 @@ def runTest(self): verify_any_packet_any_port(self, [exp_pkt1, exp_pkt2], [0, 1]) finally: sai_thrift_remove_route(self.client, vr_id, addr_family, ip_addr1, ip_mask1, nhop_group1) - self.client.sai_thrift_remove_next_hop_from_group(nhop_group1, [nhop1, nhop2]) + sai_thrift_remove_next_hop_from_group(self.client, [nhop1, nhop2]) self.client.sai_thrift_remove_next_hop_group(nhop_group1) self.client.sai_thrift_remove_next_hop(nhop1) self.client.sai_thrift_remove_next_hop(nhop2) @@ -625,7 +625,7 @@ def runTest(self): sai_thrift_remove_route(self.client, vr_id, addr_family, nhop_ip1_subnet, ip_mask2, rif_id1) sai_thrift_remove_route(self.client, vr_id, addr_family, nhop_ip2_subnet, ip_mask2, rif_id2) sai_thrift_remove_route(self.client, vr_id, addr_family, nhop_ip3_subnet, ip_mask2, rif_id3) - self.client.sai_thrift_remove_next_hop_from_group(nhop_group1, [nhop1, nhop2, nhop3]) + sai_thrift_remove_next_hop_from_group(self.client, [nhop1, nhop2, nhop3]) self.client.sai_thrift_remove_next_hop_group(nhop_group1) self.client.sai_thrift_remove_next_hop(nhop1) self.client.sai_thrift_remove_next_hop(nhop2) @@ -751,7 +751,7 @@ def runTest(self): "Not all paths are equally balanced") finally: sai_thrift_remove_route(self.client, vr_id, addr_family, ip_addr1, ip_mask1, nhop_group1) - self.client.sai_thrift_remove_next_hop_from_group(nhop_group1, [nhop1, nhop2, nhop3]) + sai_thrift_remove_next_hop_from_group(self.client, [nhop1, nhop2, nhop3]) self.client.sai_thrift_remove_next_hop_group(nhop_group1) self.client.sai_thrift_remove_next_hop(nhop1) self.client.sai_thrift_remove_next_hop(nhop2) @@ -997,7 +997,7 @@ def runTest(self): finally: sai_thrift_remove_route(self.client, vr_id, addr_family, ip_addr1, ip_mask1, nhop_group1) - self.client.sai_thrift_remove_next_hop_from_group(nhop_group1, [nhop1, nhop2, nhop3]) + sai_thrift_remove_next_hop_from_group(self.client, [nhop1, nhop2, nhop3]) self.client.sai_thrift_remove_next_hop_group(nhop_group1) self.client.sai_thrift_remove_next_hop(nhop1) @@ -1121,7 +1121,7 @@ def runTest(self): sai_thrift_remove_route(self.client, vr_id, addr_family, nhop_ip1_subnet, ip_mask2, rif_id1) sai_thrift_remove_route(self.client, vr_id, addr_family, nhop_ip2_subnet, ip_mask2, rif_id2) - self.client.sai_thrift_remove_next_hop_from_group(nhop_group1, [nhop1, nhop2]) + sai_thrift_remove_next_hop_from_group(self.client, [nhop1, nhop2]) self.client.sai_thrift_remove_next_hop_group(nhop_group1) self.client.sai_thrift_remove_next_hop(nhop1) @@ -1165,8 +1165,8 @@ def runTest(self): mac1 = '' mac2 = '' - self.client.sai_thrift_create_vlan(vlan_id) - vlan_member1 = sai_thrift_create_vlan_member(self.client, vlan_id, port1, SAI_VLAN_PORT_UNTAGGED) + vlan_oid = sai_thrift_create_vlan(self.client, vlan_id) + vlan_member1 = sai_thrift_create_vlan_member(self.client, vlan_oid, port1, SAI_VLAN_TAGGING_MODE_UNTAGGED) attr_value = sai_thrift_attribute_value_t(u16=vlan_id) attr = sai_thrift_attribute_t(id=SAI_PORT_ATTR_PORT_VLAN_ID, value=attr_value) @@ -1232,7 +1232,7 @@ def runTest(self): self.client.sai_thrift_remove_router_interface(rif_id1) self.client.sai_thrift_remove_router_interface(rif_id2) self.client.sai_thrift_remove_vlan_member(vlan_member1) - self.client.sai_thrift_delete_vlan(vlan_id) + self.client.sai_thrift_remove_vlan(vlan_oid) self.client.sai_thrift_remove_virtual_router(vr_id) attr_value = sai_thrift_attribute_value_t(u16=1) @@ -1335,10 +1335,10 @@ def runTest(self): mac_port3 = '00:0b:00:00:00:01' mac1 = '' mac2 = '' - self.client.sai_thrift_create_vlan(vlan_id) + vlan_oid = sai_thrift_create_vlan(self.client, vlan_id) - vlan_member1 = sai_thrift_create_vlan_member(self.client, vlan_id, port1, SAI_VLAN_PORT_TAGGED) - vlan_member2 = sai_thrift_create_vlan_member(self.client, vlan_id, port2, SAI_VLAN_PORT_TAGGED) + vlan_member1 = sai_thrift_create_vlan_member(self.client, vlan_oid, port1, SAI_VLAN_TAGGING_MODE_TAGGED) + vlan_member2 = sai_thrift_create_vlan_member(self.client, vlan_oid, port2, SAI_VLAN_TAGGING_MODE_TAGGED) attr_value1 = sai_thrift_attribute_value_t(u16=vlan_id) attr1 = sai_thrift_attribute_t(id=SAI_PORT_ATTR_PORT_VLAN_ID, value=attr_value1) self.client.sai_thrift_set_port_attribute(port1, attr1) @@ -1348,8 +1348,8 @@ def runTest(self): rif_vlan_id = sai_thrift_create_router_interface(self.client, vr_id, 0, 0, vlan_id, v4_enabled, v6_enabled, mac1) rif_port_id = sai_thrift_create_router_interface(self.client, vr_id, 1, port3, 0, v4_enabled, v6_enabled, mac2) - attr_value2 = sai_thrift_attribute_value_t(s32=SAI_PORT_LEARN_MODE_HW) - attr2 = sai_thrift_attribute_t(id=SAI_PORT_ATTR_FDB_LEARNING, value=attr_value2) + attr_value2 = sai_thrift_attribute_value_t(s32=SAI_PORT_FDB_LEARNING_MODE_HW) + attr2 = sai_thrift_attribute_t(id=SAI_PORT_ATTR_FDB_LEARNING_MODE, value=attr_value2) self.client.sai_thrift_set_port_attribute(port1, attr2) self.client.sai_thrift_set_port_attribute(port2, attr2) @@ -1393,20 +1393,21 @@ def runTest(self): finally: sai_thrift_remove_route(self.client, vr_id, addr_family, ip_addr1_subnet, ip_mask1, rif_vlan_id) sai_thrift_remove_neighbor(self.client, addr_family, rif_vlan_id, ip_port1, mac_port1) - + self.client.sai_thrift_remove_router_interface(rif_vlan_id) self.client.sai_thrift_remove_router_interface(rif_port_id) self.client.sai_thrift_remove_vlan_member(vlan_member1) self.client.sai_thrift_remove_vlan_member(vlan_member2) - self.client.sai_thrift_delete_vlan(vlan_id) - + self.client.sai_thrift_remove_vlan(vlan_oid) + self.client.sai_thrift_remove_virtual_router(vr_id) attr_value = sai_thrift_attribute_value_t(u16=1) attr = sai_thrift_attribute_t(id=SAI_PORT_ATTR_PORT_VLAN_ID, value=attr_value) self.client.sai_thrift_set_port_attribute(port1, attr) self.client.sai_thrift_set_port_attribute(port2, attr) + @group('lag') @group('l3') class L3MultipleLagTest(sai_base_test.ThriftInterfaceDataPlane): @@ -1583,8 +1584,7 @@ class L3MultipleEcmpLagTest(sai_base_test.ThriftInterfaceDataPlane): mac_action = SAI_PACKET_ACTION_FORWARD src_port = 0 mac_pool = [] - - + def setup_ecmp_lag_group(self, first_rif_port): self.lag = self.client.sai_thrift_create_lag([]) #adding lag members @@ -1603,15 +1603,13 @@ def setup_ecmp_lag_group(self, first_rif_port): sai_thrift_create_route(self.client, self.vr_id, self.addr_family, "10.10.%s.1" % str(i+1), '255.255.255.0', self.port_rifs[i]) self.nhop_group = sai_thrift_create_next_hop_group(self.client, self.nhops) sai_thrift_create_route(self.client, self.vr_id, self.addr_family, "10.20.0.0", self.ip_mask, self.nhop_group) - - def teardown_ecmp_lag_group(self, first_rif_port): sai_thrift_remove_route(self.client, self.vr_id, self.addr_family, "10.20.0.0", self.ip_mask, self.nhop_group) sai_thrift_remove_route(self.client, self.vr_id, self.addr_family, "10.10.0.1", '255.255.255.0', self.lag_rif) for i in range(self.total_changing_ports - first_rif_port): sai_thrift_remove_route(self.client, self.vr_id, self.addr_family, "10.10.%s.1" % str(i+1), '255.255.255.0', self.port_rifs[i]) - self.client.sai_thrift_remove_next_hop_from_group(self.nhop_group, self.nhops) + sai_thrift_remove_next_hop_from_group(self.client, self.nhops) self.client.sai_thrift_remove_next_hop_group(self.nhop_group) for nhop in self.nhops: self.client.sai_thrift_remove_next_hop(nhop) @@ -1629,9 +1627,6 @@ def teardown_ecmp_lag_group(self, first_rif_port): self.client.sai_thrift_remove_router_interface(self.lag_rif) self.client.sai_thrift_remove_lag(self.lag) - - - def polarizationCheck(self,packets,avg): if (avg < 150): self.assertTrue((packets >= (avg * 0.65)),"Not all paths are equally balanced, %s" % packets) @@ -1639,7 +1634,7 @@ def polarizationCheck(self,packets,avg): else: self.assertTrue((packets >= (avg * 0.8)),"Not all paths are equally balanced, %s" % packets) self.assertTrue((packets <= (avg * 1.2)),"Not all paths are equally balanced, %s" % packets) - + def send_and_verify_packets(self, first_rif_port): exp_pkts = [0]*self.total_dst_port pkt_counter = [0] * self.total_dst_port @@ -1681,7 +1676,7 @@ def send_and_verify_packets(self, first_rif_port): pkt_counter[match_index] += 1 sport = random.randint(0,0xffff) dport = random.randint(0,0xffff) - + #final uniform distribution check logging.debug(pkt_counter) logging.debug(first_rif_port) @@ -1700,8 +1695,7 @@ def send_and_verify_packets(self, first_rif_port): logging.debug( "PORT #"+str(stat_port)+":") logging.debug(str(pkt_counter[stat_port])) self.polarizationCheck(pkt_counter[stat_port],rifs_average) - - + def runTest(self): """ For sai server, testing different lags with router @@ -1717,8 +1711,7 @@ def runTest(self): 8. repeat steps 3-7 with differnt numbers of lag members and rifs 8. clean up. """ - - + print print "L3MultipleEcmpLagTest" #general configuration diff --git a/test/saithrift/tests/switch.py b/test/saithrift/tests/switch.py index 4bd8033b8..158cf6a88 100644 --- a/test/saithrift/tests/switch.py +++ b/test/saithrift/tests/switch.py @@ -111,7 +111,7 @@ def sai_thrift_get_default_router_id(client): def sai_thrift_create_fdb(client, vlan_id, mac, port, mac_action): fdb_entry = sai_thrift_fdb_entry_t(mac_address=mac, vlan_id=vlan_id) #value 0 represents static entry, id=0, represents entry type - fdb_attribute1_value = sai_thrift_attribute_value_t(s32=SAI_FDB_ENTRY_STATIC) + fdb_attribute1_value = sai_thrift_attribute_value_t(s32=SAI_FDB_ENTRY_TYPE_STATIC) fdb_attribute1 = sai_thrift_attribute_t(id=SAI_FDB_ENTRY_ATTR_TYPE, value=fdb_attribute1_value) #value oid represents object id, id=1 represents port id @@ -133,7 +133,7 @@ def sai_thrift_flush_fdb_by_vlan(client, vlan_id): fdb_attribute1_value = sai_thrift_attribute_value_t(u16=vlan_id) fdb_attribute1 = sai_thrift_attribute_t(id=SAI_FDB_FLUSH_ATTR_VLAN_ID, value=fdb_attribute1_value) - fdb_attribute2_value = sai_thrift_attribute_value_t(s32=SAI_FDB_FLUSH_ENTRY_DYNAMIC) + fdb_attribute2_value = sai_thrift_attribute_value_t(s32=SAI_FDB_FLUSH_ENTRY_TYPE_DYNAMIC) fdb_attribute2 = sai_thrift_attribute_t(id=SAI_FDB_FLUSH_ATTR_ENTRY_TYPE, value=fdb_attribute2_value) fdb_attr_list = [fdb_attribute1, fdb_attribute2] @@ -210,18 +210,19 @@ def sai_thrift_create_route(client, vr_id, addr_family, ip_addr, ip_mask, nhop, mask = sai_thrift_ip_t(ip6=ip_mask) ip_prefix = sai_thrift_ip_prefix_t(addr_family=SAI_IP_ADDR_FAMILY_IPV6, addr=addr, mask=mask) route_attribute1_value = sai_thrift_attribute_value_t(oid=nhop) - route_attribute1 = sai_thrift_attribute_t(id=SAI_ROUTE_ATTR_NEXT_HOP_ID, + route_attribute1 = sai_thrift_attribute_t(id=SAI_ROUTE_ENTRY_ATTR_NEXT_HOP_ID, value=route_attribute1_value) - route = sai_thrift_unicast_route_entry_t(vr_id, ip_prefix) + route = sai_thrift_route_entry_t(vr_id, ip_prefix) route_attr_list = [route_attribute1] if packet_action != None: route_packet_action_value = sai_thrift_attribute_value_t(s32=packet_action) - route_packet_action_attr = sai_thrift_attribute_t(id=SAI_ROUTE_ATTR_PACKET_ACTION, value=route_packet_action_value) + route_packet_action_attr = sai_thrift_attribute_t(id=SAI_ROUTE_ENTRY_ATTR_PACKET_ACTION, + value=route_packet_action_value) route_attr_list.append(route_packet_action_attr) - client.sai_thrift_create_route(thrift_unicast_route_entry=route, thrift_attr_list=route_attr_list) + client.sai_thrift_create_route(thrift_route_entry=route, thrift_attr_list=route_attr_list) return def sai_thrift_remove_route(client, vr_id, addr_family, ip_addr, ip_mask, nhop): @@ -233,8 +234,8 @@ def sai_thrift_remove_route(client, vr_id, addr_family, ip_addr, ip_mask, nhop): addr = sai_thrift_ip_t(ip6=ip_addr) mask = sai_thrift_ip_t(ip6=ip_mask) ip_prefix = sai_thrift_ip_prefix_t(addr_family=SAI_IP_ADDR_FAMILY_IPV6, addr=addr, mask=mask) - route = sai_thrift_unicast_route_entry_t(vr_id, ip_prefix) - client.sai_thrift_remove_route(thrift_unicast_route_entry=route) + route = sai_thrift_route_entry_t(vr_id, ip_prefix) + client.sai_thrift_remove_route(thrift_route_entry=route) def sai_thrift_create_nhop(client, addr_family, ip_addr, rif_id): if addr_family == SAI_IP_ADDR_FAMILY_IPV4: @@ -249,7 +250,7 @@ def sai_thrift_create_nhop(client, addr_family, ip_addr, rif_id): nhop_attribute2_value = sai_thrift_attribute_value_t(oid=rif_id) nhop_attribute2 = sai_thrift_attribute_t(id=SAI_NEXT_HOP_ATTR_ROUTER_INTERFACE_ID, value=nhop_attribute2_value) - nhop_attribute3_value = sai_thrift_attribute_value_t(s32=SAI_NEXT_HOP_IP) + nhop_attribute3_value = sai_thrift_attribute_value_t(s32=SAI_NEXT_HOP_ATTR_IP) nhop_attribute3 = sai_thrift_attribute_t(id=SAI_NEXT_HOP_ATTR_TYPE, value=nhop_attribute3_value) nhop_attr_list = [nhop_attribute1, nhop_attribute2, nhop_attribute3] @@ -264,7 +265,7 @@ def sai_thrift_create_neighbor(client, addr_family, rif_id, ip_addr, dmac): addr = sai_thrift_ip_t(ip6=ip_addr) ipaddr = sai_thrift_ip_address_t(addr_family=SAI_IP_ADDR_FAMILY_IPV6, addr=addr) neighbor_attribute1_value = sai_thrift_attribute_value_t(mac=dmac) - neighbor_attribute1 = sai_thrift_attribute_t(id=SAI_NEIGHBOR_ATTR_DST_MAC_ADDRESS, + neighbor_attribute1 = sai_thrift_attribute_t(id=SAI_NEIGHBOR_ENTRY_ATTR_DST_MAC_ADDRESS, value=neighbor_attribute1_value) neighbor_attr_list = [neighbor_attribute1] neighbor_entry = sai_thrift_neighbor_entry_t(rif_id=rif_id, ip_address=ipaddr) @@ -281,17 +282,21 @@ def sai_thrift_remove_neighbor(client, addr_family, rif_id, ip_addr, dmac): client.sai_thrift_remove_neighbor_entry(neighbor_entry) def sai_thrift_create_next_hop_group(client, nhop_list): - nhop_group_attribute1_value = sai_thrift_attribute_value_t(s32=SAI_NEXT_HOP_GROUP_ECMP) + nhop_group_attribute1_value = sai_thrift_attribute_value_t(s32=SAI_NEXT_HOP_GROUP_TYPE_ECMP) nhop_group_attribute1 = sai_thrift_attribute_t(id=SAI_NEXT_HOP_GROUP_ATTR_TYPE, value=nhop_group_attribute1_value) nhop_objlist = sai_thrift_object_list_t(count=len(nhop_list), object_id_list=nhop_list) nhop_group_attribute2_value = sai_thrift_attribute_value_t(objlist=nhop_objlist) - nhop_group_attribute2 = sai_thrift_attribute_t(id=SAI_NEXT_HOP_GROUP_ATTR_NEXT_HOP_LIST, + nhop_group_attribute2 = sai_thrift_attribute_t(id=SAI_NEXT_HOP_GROUP_ATTR_NEXT_HOP_MEMBER_LIST, value=nhop_group_attribute2_value) nhop_group_attr_list = [nhop_group_attribute1, nhop_group_attribute2] nhop_group = client.sai_thrift_create_next_hop_group(thrift_attr_list=nhop_group_attr_list) return nhop_group +def sai_thrift_remove_next_hop_from_group(client, nhop_list): + for hnop in nhop_list: + client.sai_thrift_remove_next_hop_from_group(hnop) + def sai_thrift_create_lag(client, port_list): lag_port_list = sai_thrift_object_list_t(count=len(port_list), object_id_list=port_list) lag1_attr_value = sai_thrift_attribute_value_t(objlist=lag_port_list) @@ -321,7 +326,6 @@ def sai_thrift_create_stp_entry(client, vlan_list): stp_id = client.sai_thrift_create_stp_entry(stp_attr_list) return stp_id - def sai_thrift_set_hostif_trap_group(client, trap_group_id, policer_id): policer_attr_value = sai_thrift_attribute_value_t(oid=policer_id) policer_attr = sai_thrift_attribute_t(id=SAI_HOSTIF_TRAP_GROUP_ATTR_POLICER, value=policer_attr_value) @@ -444,10 +448,10 @@ def sai_thrift_create_acl_table(client, addr_family, acl_attr_list.append(attribute) attribute_value = sai_thrift_attribute_value_t(u32=0) #TODO: Expose stage as function parameter - attribute = sai_thrift_attribute_t(id=SAI_ACL_TABLE_ATTR_STAGE, value=attribute_value) + attribute = sai_thrift_attribute_t(id=SAI_ACL_TABLE_ATTR_ACL_STAGE, value=attribute_value) acl_attr_list.append(attribute) - - #print "bbb" + + #print "bbb" acl_table_id = client.sai_thrift_create_acl_table(acl_attr_list) #print acl_table_id return acl_table_id @@ -513,7 +517,7 @@ def sai_thrift_create_acl_entry(client, acl_table_id, if action == 1: #Drop attribute_value = sai_thrift_attribute_value_t(aclaction=sai_thrift_acl_action_data_t(parameter = sai_thrift_acl_data_t(u32=0))) - attribute = sai_thrift_attribute_t(id=SAI_ACL_ENTRY_ATTR_PACKET_ACTION, + attribute = sai_thrift_attribute_t(id=SAI_ACL_ENTRY_ATTR_ACTION_PACKET_ACTION, value=attribute_value) acl_attr_list.append(attribute) elif action == 2: @@ -724,20 +728,28 @@ def sai_thrift_read_port_counters(client,port): queue1+=1 return (counters_results, queue_counters_results) -def sai_thrift_create_vlan_member(client, vlan_id, port_id, tagging_mode): +def sai_thrift_create_vlan(client, vlan_id): + vlan_attr_list = [] + attribute_value = sai_thrift_attribute_value_t(u16=vlan_id) + attribute = sai_thrift_attribute_t(id=SAI_VLAN_ATTR_VLAN_ID, value=attribute_value) + vlan_attr_list.append(attribute) + vlan_oid = client.sai_thrift_create_vlan(vlan_attr_list) + return vlan_oid + +def sai_thrift_create_vlan_member(client, vlan_oid, port_oid, tagging_mode): vlan_member_attr_list = [] - attribute_value = sai_thrift_attribute_value_t(s32=vlan_id) + attribute_value = sai_thrift_attribute_value_t(oid=vlan_oid) attribute = sai_thrift_attribute_t(id=SAI_VLAN_MEMBER_ATTR_VLAN_ID, value=attribute_value) vlan_member_attr_list.append(attribute) - attribute_value = sai_thrift_attribute_value_t(oid=port_id) + attribute_value = sai_thrift_attribute_value_t(oid=port_oid) attribute = sai_thrift_attribute_t(id=SAI_VLAN_MEMBER_ATTR_PORT_ID, value=attribute_value) vlan_member_attr_list.append(attribute) attribute_value = sai_thrift_attribute_value_t(s32=tagging_mode) - attribute = sai_thrift_attribute_t(id=SAI_VLAN_MEMBER_ATTR_TAGGING_MODE, + attribute = sai_thrift_attribute_t(id=SAI_VLAN_MEMBER_ATTR_VLAN_TAGGING_MODE, value=attribute_value) vlan_member_attr_list.append(attribute) vlan_member_id = client.sai_thrift_create_vlan_member(vlan_member_attr_list) From 0ece01114a3f729269fb0bb15077e9b74c603d29 Mon Sep 17 00:00:00 2001 From: Kamil Cudnik Date: Tue, 17 Jan 2017 15:29:06 -0800 Subject: [PATCH 02/77] Refactor sanitycheck (#362) --- meta/saisanitycheck.c | 50 +++++++++++++++++++++++++------------------ 1 file changed, 29 insertions(+), 21 deletions(-) diff --git a/meta/saisanitycheck.c b/meta/saisanitycheck.c index 76fc14bb8..32243f76d 100644 --- a/meta/saisanitycheck.c +++ b/meta/saisanitycheck.c @@ -107,6 +107,8 @@ void check_all_enums_name_pointers() bool is_flag_enum(const sai_enum_metadata_t* emd) { + META_LOG_ENTER(); + const char* flagenums[] = { "sai_acl_entry_attr_t", "sai_acl_table_attr_t", @@ -286,6 +288,8 @@ void check_attr_by_object_type() void check_attr_object_type( _In_ const sai_attr_metadata_t* md) { + META_LOG_ENTER(); + if ((md->objecttype <= SAI_OBJECT_TYPE_NULL) || (md->objecttype >= SAI_OBJECT_TYPE_MAX)) { @@ -312,6 +316,11 @@ void check_attr_flags( case SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_ONLY: case SAI_ATTR_FLAGS_MANDATORY_ON_CREATE | SAI_ATTR_FLAGS_CREATE_AND_SET: + if (md->validonlytype != SAI_ATTR_CONDITION_TYPE_NONE) + { + META_ASSERT_FAIL(md, "valid only attribute can't be mandatory on create, use condition"); + } + if (md->attrvaluetype == SAI_ATTR_VALUE_TYPE_UINT32 && md->defaultvaluetype == SAI_DEFAULT_VALUE_TYPE_ATTR_RANGE) { @@ -324,11 +333,6 @@ void check_attr_flags( sai_metadata_get_default_value_type_name(md->defaultvaluetype)); } - if (md->validonlytype != SAI_ATTR_CONDITION_TYPE_NONE) - { - META_ASSERT_FAIL(md, "valid only attribute can't be mandatory on create, use condition"); - } - break; case SAI_ATTR_FLAGS_CREATE_ONLY: @@ -366,6 +370,16 @@ void check_attr_flags( case SAI_ATTR_FLAGS_READ_ONLY: + if (md->conditiontype != SAI_ATTR_CONDITION_TYPE_NONE) + { + META_ASSERT_FAIL(md, "read only attribute can't be conditional"); + } + + if (md->validonlytype != SAI_ATTR_CONDITION_TYPE_NONE) + { + META_ASSERT_FAIL(md, "read only attribute can't be valid only"); + } + if (md->defaultvaluetype == SAI_DEFAULT_VALUE_TYPE_SWITCH_INTERNAL) { if (md->attrvaluetype == SAI_ATTR_VALUE_TYPE_OBJECT_ID || @@ -386,16 +400,6 @@ void check_attr_flags( sai_metadata_get_default_value_type_name(md->defaultvaluetype)); } - if (md->conditiontype != SAI_ATTR_CONDITION_TYPE_NONE) - { - META_ASSERT_FAIL(md, "read only attribute can't be conditional"); - } - - if (md->validonlytype != SAI_ATTR_CONDITION_TYPE_NONE) - { - META_ASSERT_FAIL(md, "read only attribute can't be valid only"); - } - break; default: @@ -468,6 +472,7 @@ void check_attr_object_type_provided( case SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_OBJECT_ID: case SAI_ATTR_VALUE_TYPE_OBJECT_LIST: case SAI_ATTR_VALUE_TYPE_OBJECT_ID: + if (md->allowedobjecttypes == NULL) { META_ASSERT_FAIL(md, "object types list is required but it's empty"); @@ -647,7 +652,7 @@ void check_attr_default_required( if (md->defaultvalue != NULL) { - META_ASSERT_FAIL(md, "default value type is provided, but default value pointer is NULL"); + META_ASSERT_FAIL(md, "default value type is provided, but default value pointer is not NULL"); } break; @@ -659,7 +664,6 @@ void check_attr_default_required( switch (md->attrvaluetype) { - case SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_BOOL: case SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_UINT8: case SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_INT8: @@ -693,6 +697,7 @@ void check_attr_default_required( case SAI_ATTR_VALUE_TYPE_MAC: case SAI_ATTR_VALUE_TYPE_IP_ADDRESS: break; + case SAI_ATTR_VALUE_TYPE_INT8_LIST: case SAI_ATTR_VALUE_TYPE_UINT32_LIST: case SAI_ATTR_VALUE_TYPE_INT32_LIST: @@ -700,6 +705,7 @@ void check_attr_default_required( case SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_OBJECT_LIST: case SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_OBJECT_LIST: case SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_UINT8_LIST: + if (md->defaultvaluetype == SAI_DEFAULT_VALUE_TYPE_EMPTY_LIST) { break; @@ -751,7 +757,6 @@ void check_attr_enums( default: META_ASSERT_FAIL(md, "attribute is marked as enum, but attr value type is not enum compatible"); } - } if (md->isenum && md->isenumlist) @@ -831,7 +836,7 @@ void check_attr_default_value_type( if (md->attrvaluetype != def->attrvaluetype) { - META_ASSERT_FAIL(md, "attr value attribute value value type is different"); + META_ASSERT_FAIL(md, "default attr value type is different"); } break; @@ -1247,6 +1252,8 @@ void check_attr_enum_list_validonly( void check_attr_allow_flags( _In_ const sai_attr_metadata_t* md) { + META_LOG_ENTER(); + if (md->allownullobjectid) { switch (md->attrvaluetype) @@ -1344,6 +1351,7 @@ void check_attr_key( META_ASSERT_FAIL(md, "marked as key, but have invalid attr value type (list)"); case SAI_ATTR_VALUE_TYPE_OBJECT_ID: + if (md->objecttype == SAI_OBJECT_TYPE_QUEUE && md->attrid == SAI_QUEUE_ATTR_PORT) { break; @@ -1688,7 +1696,7 @@ void check_non_object_id_object_types() { META_ASSERT_NOT_NULL(info->structmembers[j]); - const sai_struct_member_info_t *m = info->structmembers[j]; + const sai_struct_member_info_t *m = info->structmembers[j]; META_ASSERT_NOT_NULL(m->membername); @@ -2062,7 +2070,7 @@ int main(int argc, char **argv) check_objects_for_loops(); check_null_object_id(); - printf("\n [ %s ]\n\n", sai_metadata_get_status_name(SAI_STATUS_SUCCESS)); + printf("\n [ %s ]\n\n", sai_metadata_get_status_name(SAI_STATUS_SUCCESS)); return 0; } From 33cb5ce4f34063140201104424359fda1705d066 Mon Sep 17 00:00:00 2001 From: Kamil Cudnik Date: Wed, 18 Jan 2017 16:16:36 -0800 Subject: [PATCH 03/77] Add more restrictions for struct based object types (#359) * Add more restrictions for struct based object types * Change warning to error for invalid attr flags --- meta/saisanitycheck.c | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/meta/saisanitycheck.c b/meta/saisanitycheck.c index 32243f76d..c1cd2aedf 100644 --- a/meta/saisanitycheck.c +++ b/meta/saisanitycheck.c @@ -1690,7 +1690,7 @@ void check_non_object_id_object_types() size_t j = 0; - bool member_supports_switch_id = false; + int member_supports_switch_id = 0; for (; j < info->structmemberscount; ++j) { @@ -1723,7 +1723,14 @@ void check_non_object_id_object_types() if (m->membervaluetype == SAI_ATTR_VALUE_TYPE_OBJECT_ID) { META_ASSERT_NOT_NULL(m->allowedobjecttypes); - META_ASSERT_TRUE(m->allowedobjecttypeslength > 0, "member is object id, should specify some object types"); + META_ASSERT_TRUE(m->allowedobjecttypeslength > 0, "struct member object id, should specify some object types"); + + /* + * this check can be relaxed in the future, but currently + * supporting only one object type in non object id make sense + */ + + META_ASSERT_TRUE(m->allowedobjecttypeslength == 1, "currently struct member object id, should specify only one object type"); size_t k = 0; @@ -1740,7 +1747,20 @@ void check_non_object_id_object_types() * one struct member should be type of switch */ - member_supports_switch_id = true; + member_supports_switch_id++; + } + + /* non object id struct can't contain object id which is also non object id */ + + const sai_object_type_info_t* sinfo = sai_all_object_type_infos[ot]; + + META_ASSERT_NOT_NULL(sinfo); + + if (sinfo->isnonobjectid) + { + META_FAIL("struct member %s of non object id type can't be used as object id in non object id struct: %s", + m->membername, + sai_metadata_get_object_type_name(ot)); } continue; @@ -1756,7 +1776,7 @@ void check_non_object_id_object_types() } } - META_ASSERT_TRUE(member_supports_switch_id, "none of struct members support switch id object type"); + META_ASSERT_TRUE(member_supports_switch_id == 1, "there should be only one struct member that support switch id object type"); META_ASSERT_NULL(info->structmembers[j]); } @@ -1799,7 +1819,7 @@ void check_non_object_id_object_attrs() default: - META_WARN(m, "non object id attribute has invalid flags: 0x%x (should be CREATE_AND_SET)", m->flags); + META_ASSERT_FAIL(m, "non object id attribute has invalid flags: 0x%x (should be CREATE_AND_SET)", m->flags); } } } From e819bc404e32b694a6df7d96157364d7b8ece546 Mon Sep 17 00:00:00 2001 From: Kamil Cudnik Date: Wed, 18 Jan 2017 16:17:38 -0800 Subject: [PATCH 04/77] Add check for mixed object types on object id lists (#364) --- inc/saischedulergroup.h | 4 +-- meta/saisanitycheck.c | 64 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+), 2 deletions(-) diff --git a/inc/saischedulergroup.h b/inc/saischedulergroup.h index a69205e8e..872afb90c 100644 --- a/inc/saischedulergroup.h +++ b/inc/saischedulergroup.h @@ -55,7 +55,7 @@ typedef enum _sai_scheduler_group_attr_t * @brief Scheduler Group child obejct id list * * @type sai_object_list_t - * @objects SAI_OBJECT_TYPE_SCHEDULER + * @objects SAI_OBJECT_TYPE_SCHEDULER_GROUP, SAI_OBJECT_TYPE_QUEUE * @flags READ_ONLY */ SAI_SCHEDULER_GROUP_ATTR_CHILD_LIST = 0x00000001, @@ -100,7 +100,7 @@ typedef enum _sai_scheduler_group_attr_t * This is conditional when the level > 0, when level == 0, the parent is the port. * * @type sai_object_id_t - * @objects SAI_OBJECT_TYPE_SCHEDULER_GROUP + * @objects SAI_OBJECT_TYPE_SCHEDULER_GROUP, SAI_OBJECT_TYPE_PORT * @flags MANDATORY_ON_CREATE | CREATE_AND_SET */ SAI_SCHEDULER_GROUP_ATTR_PARENT_NODE = 0x00000006, diff --git a/meta/saisanitycheck.c b/meta/saisanitycheck.c index c1cd2aedf..d61bb5c2e 100644 --- a/meta/saisanitycheck.c +++ b/meta/saisanitycheck.c @@ -2066,6 +2066,69 @@ void check_null_object_id() META_ASSERT_TRUE(SAI_NULL_OBJECT_ID == 0, "SAI_NULL_OBJECT_ID must be zero"); } +void check_mixed_object_list_types() +{ + META_LOG_ENTER(); + + /* + * Purpose of this check is to find out if any of object id lists supports + * multiple object types at the same time. For now this abbility will not + * be supported. + */ + + META_ASSERT_TRUE(metadata_attr_sorted_by_id_name_count > 500, "there should be at least 500 attributes in total"); + + size_t idx = 0; + + for (; idx < metadata_attr_sorted_by_id_name_count; ++idx) + { + const sai_attr_metadata_t* meta = metadata_attr_sorted_by_id_name[idx]; + + switch (meta->attrvaluetype) + { + case SAI_ATTR_VALUE_TYPE_ACL_FIELD_DATA_OBJECT_LIST: + case SAI_ATTR_VALUE_TYPE_ACL_ACTION_DATA_OBJECT_LIST: + case SAI_ATTR_VALUE_TYPE_OBJECT_LIST: + + META_ASSERT_TRUE(meta->allowedobjecttypeslength > 0, "allowed object types on list can't be zero"); + + if (meta->allowedobjecttypeslength == 1) + { + continue; + } + + if (meta->flags == SAI_ATTR_FLAGS_READ_ONLY) + { + /* + * If attribute flag is READ_ONLY, then object can support + * mixed object types returned on list, for example + * SAI_SCHEDULER_GROUP_ATTR_CHILD_LIST when it returns + * schedulers and queues. + */ + } + else + { + /* + * For non read only attributes, there should be a good + * reason why object list should support mixed object + * types on that list. Then this restriction can be + * relaxed and description should be added why mixed + * object types should be possible. + */ + + META_ASSERT_FAIL(meta, "allowed object types on object id list is more then 1, not supported yet"); + } + + break; + + default: + + META_ASSERT_FALSE(meta->allowmixedobjecttypes, "allow mixed object types should be false on non object id list"); + break; + } + } +} + int main(int argc, char **argv) { debug = (argc > 1); @@ -2089,6 +2152,7 @@ int main(int argc, char **argv) check_non_object_id_object_attrs(); check_objects_for_loops(); check_null_object_id(); + check_mixed_object_list_types(); printf("\n [ %s ]\n\n", sai_metadata_get_status_name(SAI_STATUS_SUCCESS)); From 6fa14fdc853b5a621f0eb12cd4a179fbd6309a61 Mon Sep 17 00:00:00 2001 From: Shuotian Cheng Date: Mon, 23 Jan 2017 05:50:57 -0800 Subject: [PATCH 05/77] Add SAI Demo 2017 topology (#372) --- doc/OCP/SAI Demo 2017 topology.pdf | Bin 0 -> 360971 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100755 doc/OCP/SAI Demo 2017 topology.pdf diff --git a/doc/OCP/SAI Demo 2017 topology.pdf b/doc/OCP/SAI Demo 2017 topology.pdf new file mode 100755 index 0000000000000000000000000000000000000000..acb2da3fc1815ebd13bd00746d0903273f7e3176 GIT binary patch literal 360971 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

<+qV4&m!N}$>6p&yb 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 z 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