From 76d28a6fe0ea1493c19acb4f9661020c7fcefa42 Mon Sep 17 00:00:00 2001 From: Kamil Cudnik Date: Thu, 24 Jun 2021 14:43:28 +0200 Subject: [PATCH] [pyext] Use SAI autogenerated saiswig.i (#837) No more need to manual translation of each SAI api structure. SAI metadata is now generating this automatically. --- pyext/fdb.h | 57 ------------------------ pyext/getapi.h | 10 ----- pyext/lag.h | 57 ------------------------ pyext/nexthop.h | 25 ----------- pyext/pysairedis.cpp | 98 ----------------------------------------- pyext/pysairedis.h | 1 - pyext/pysairedis.i | 34 ++------------ pyext/route.h | 52 ---------------------- pyext/routerinterface.h | 42 ------------------ pyext/switch.h | 56 ----------------------- pyext/vlan.h | 76 -------------------------------- 11 files changed, 3 insertions(+), 505 deletions(-) delete mode 100644 pyext/fdb.h delete mode 100644 pyext/getapi.h delete mode 100644 pyext/lag.h delete mode 100644 pyext/nexthop.h delete mode 100644 pyext/route.h delete mode 100644 pyext/routerinterface.h delete mode 100644 pyext/switch.h delete mode 100644 pyext/vlan.h diff --git a/pyext/fdb.h b/pyext/fdb.h deleted file mode 100644 index 0789b54ae105..000000000000 --- a/pyext/fdb.h +++ /dev/null @@ -1,57 +0,0 @@ - -// TODO auto generate - -typedef struct _sai_fdb_api_t -{ - sai_status_t create_fdb_entry( - _In_ const sai_fdb_entry_t *fdb_entry, - _In_ uint32_t attr_count, - _In_ const sai_attribute_t *attr_list); - - sai_status_t remove_fdb_entry( - _In_ const sai_fdb_entry_t *fdb_entry); - - sai_status_t set_fdb_entry_attribute( - _In_ const sai_fdb_entry_t *fdb_entry, - _In_ const sai_attribute_t *attr); - - sai_status_t get_fdb_entry_attribute( - _In_ const sai_fdb_entry_t *fdb_entry, - _In_ uint32_t attr_count, - _Inout_ sai_attribute_t *attr_list); - - sai_status_t flush_fdb_entries( - _In_ sai_object_id_t switch_id, - _In_ uint32_t attr_count, - _In_ const sai_attribute_t *attr_list); - - sai_status_t create_fdb_entries( - _In_ uint32_t object_count, - _In_ const sai_fdb_entry_t *fdb_entry, - _In_ const uint32_t *attr_count, - _In_ const sai_attribute_t **attr_list, - _In_ sai_bulk_op_error_mode_t mode, - _Out_ sai_status_t *object_statuses); - - sai_status_t remove_fdb_entries( - _In_ uint32_t object_count, - _In_ const sai_fdb_entry_t *fdb_entry, - _In_ sai_bulk_op_error_mode_t mode, - _Out_ sai_status_t *object_statuses); - - sai_status_t set_fdb_entries_attribute( - _In_ uint32_t object_count, - _In_ const sai_fdb_entry_t *fdb_entry, - _In_ const sai_attribute_t *attr_list, - _In_ sai_bulk_op_error_mode_t mode, - _Out_ sai_status_t *object_statuses); - - sai_status_t get_fdb_entries_attribute( - _In_ uint32_t object_count, - _In_ const sai_fdb_entry_t *fdb_entry, - _In_ const uint32_t *attr_count, - _Inout_ sai_attribute_t **attr_list, - _In_ sai_bulk_op_error_mode_t mode, - _Out_ sai_status_t *object_statuses); - -} sai_fdb_api_t; diff --git a/pyext/getapi.h b/pyext/getapi.h deleted file mode 100644 index c61e98419a3d..000000000000 --- a/pyext/getapi.h +++ /dev/null @@ -1,10 +0,0 @@ - -// need to be extern C - -sai_status_t sai_get_switch_api(sai_switch_api_t* out); -sai_status_t sai_get_lag_api(sai_lag_api_t* out); -sai_status_t sai_get_router_interface_api(sai_router_interface_api_t* out); -sai_status_t sai_get_next_hop_api(sai_next_hop_api_t* out); -sai_status_t sai_get_route_api(sai_route_api_t* out); -sai_status_t sai_get_vlan_api(sai_vlan_api_t* out); -sai_status_t sai_get_fdb_api(sai_fdb_api_t* out); diff --git a/pyext/lag.h b/pyext/lag.h deleted file mode 100644 index 78dbd21e0d62..000000000000 --- a/pyext/lag.h +++ /dev/null @@ -1,57 +0,0 @@ - -// TODO auto generate - -typedef struct _sai_lag_api_t -{ - sai_status_t create_lag( - _Out_ sai_object_id_t *lag_id, - _In_ sai_object_id_t switch_id, - _In_ uint32_t attr_count, - _In_ const sai_attribute_t *attr_list); - - sai_status_t remove_lag( - _In_ sai_object_id_t lag_id); - - sai_status_t set_lag_attribute( - _In_ sai_object_id_t lag_id, - _In_ const sai_attribute_t *attr); - - sai_status_t get_lag_attribute( - _In_ sai_object_id_t lag_id, - _In_ uint32_t attr_count, - _Inout_ sai_attribute_t *attr_list); - - sai_status_t create_lag_member( - _Out_ sai_object_id_t *lag_member_id, - _In_ sai_object_id_t switch_id, - _In_ uint32_t attr_count, - _In_ const sai_attribute_t *attr_list); - - sai_status_t remove_lag_member( - _In_ sai_object_id_t lag_member_id); - - sai_status_t set_lag_member_attribute( - _In_ sai_object_id_t lag_member_id, - _In_ const sai_attribute_t *attr); - - sai_status_t get_lag_member_attribute( - _In_ sai_object_id_t lag_member_id, - _In_ uint32_t attr_count, - _Inout_ sai_attribute_t *attr_list); - - sai_status_t create_lag_members( - _In_ sai_object_id_t switch_id, - _In_ uint32_t object_count, - _In_ const uint32_t *attr_count, - _In_ const sai_attribute_t **attr_list, - _In_ sai_bulk_op_error_mode_t mode, - _Out_ sai_object_id_t *object_id, - _Out_ sai_status_t *object_statuses); - - sai_status_t remove_lag_members( - _In_ uint32_t object_count, - _In_ const sai_object_id_t *object_id, - _In_ sai_bulk_op_error_mode_t mode, - _Out_ sai_status_t *object_statuses); - -} sai_lag_api_t; diff --git a/pyext/nexthop.h b/pyext/nexthop.h deleted file mode 100644 index 244d8c23ba96..000000000000 --- a/pyext/nexthop.h +++ /dev/null @@ -1,25 +0,0 @@ - -// TODO auto generate - -typedef struct _sai_next_hop_api_t -{ - sai_status_t create_next_hop( - _Out_ sai_object_id_t *next_hop_id, - _In_ sai_object_id_t switch_id, - _In_ uint32_t attr_count, - _In_ const sai_attribute_t *attr_list); - - sai_status_t remove_next_hop( - _In_ sai_object_id_t next_hop_id); - - sai_status_t set_next_hop_attribute( - _In_ sai_object_id_t next_hop_id, - _In_ const sai_attribute_t *attr); - - sai_status_t get_next_hop_attribute( - _In_ sai_object_id_t next_hop_id, - _In_ uint32_t attr_count, - _Inout_ sai_attribute_t *attr_list); - -} sai_next_hop_api_t; - diff --git a/pyext/pysairedis.cpp b/pyext/pysairedis.cpp index c961507f1046..a4553fe07804 100644 --- a/pyext/pysairedis.cpp +++ b/pyext/pysairedis.cpp @@ -65,104 +65,6 @@ sai_status_t sai_api_initialize( return sai_api_initialize(flags, &g_smt); } -sai_status_t sai_get_switch_api(sai_switch_api_t* out) -{ - sai_switch_api_t* api; - - sai_status_t status = sai_api_query(SAI_API_SWITCH, (void**)&api); - - if (status == SAI_STATUS_SUCCESS) - { - *out = *api; - } - - return status; -} - -sai_status_t sai_get_lag_api(sai_lag_api_t* out) -{ - sai_lag_api_t* api; - - sai_status_t status = sai_api_query(SAI_API_LAG, (void**)&api); - - if (status == SAI_STATUS_SUCCESS) - { - *out = *api; - } - - return status; -} - -sai_status_t sai_get_router_interface_api(sai_router_interface_api_t* out) -{ - sai_router_interface_api_t* api; - - sai_status_t status = sai_api_query(SAI_API_ROUTER_INTERFACE, (void**)&api); - - if (status == SAI_STATUS_SUCCESS) - { - *out = *api; - } - - return status; -} - -sai_status_t sai_get_next_hop_api(sai_next_hop_api_t* out) -{ - sai_next_hop_api_t* api; - - sai_status_t status = sai_api_query(SAI_API_NEXT_HOP, (void**)&api); - - if (status == SAI_STATUS_SUCCESS) - { - *out = *api; - } - - return status; -} - -sai_status_t sai_get_route_api(sai_route_api_t* out) -{ - sai_route_api_t* api; - - sai_status_t status = sai_api_query(SAI_API_ROUTE, (void**)&api); - - if (status == SAI_STATUS_SUCCESS) - { - *out = *api; - } - - return status; -} - -sai_status_t sai_get_vlan_api(sai_vlan_api_t* out) -{ - sai_vlan_api_t* api; - - sai_status_t status = sai_api_query(SAI_API_VLAN, (void**)&api); - - if (status == SAI_STATUS_SUCCESS) - { - *out = *api; - } - - return status; -} - -sai_status_t sai_get_fdb_api(sai_fdb_api_t* out) -{ - sai_fdb_api_t* api; - - sai_status_t status = sai_api_query(SAI_API_FDB, (void**)&api); - - if (status == SAI_STATUS_SUCCESS) - { - *out = *api; - } - - return status; -} - sai_mac_t* sai_mac_t_from_string(const std::string& s) { sai_mac_t *mac = (sai_mac_t*)calloc(1, sizeof(sai_mac_t)); diff --git a/pyext/pysairedis.h b/pyext/pysairedis.h index 84d0318e49af..8ffc2f21ed06 100644 --- a/pyext/pysairedis.h +++ b/pyext/pysairedis.h @@ -3,7 +3,6 @@ extern "C" { #include "sai.h" -#include "getapi.h" } #include diff --git a/pyext/pysairedis.i b/pyext/pysairedis.i index c1b57a3a89a2..8a980ca95aed 100644 --- a/pyext/pysairedis.i +++ b/pyext/pysairedis.i @@ -1,5 +1,4 @@ %module pysairedis - %include "cpointer.i" %include "carrays.i" @@ -8,7 +7,7 @@ extern "C"{ #include "sai.h" -#include "getapi.h" +#include "saiextensions.h" } #include "sairedis.h" @@ -26,36 +25,9 @@ namespace std { %include "saitypes.h" %include "sai.h" +%include "saiextensions.h" -%include "getapi.h" - -%include "switch.h" -%include "lag.h" -%include "routerinterface.h" -%include "nexthop.h" -%include "route.h" -%include "vlan.h" -%include "fdb.h" - -%ignore sai_switch_api_t; -%ignore sai_lag_api_t; -%ignore sai_router_interface_api_t; -%ignore sai_next_hop_api_t; -%ignore sai_route_api_t; -%ignore sai_vlan_api_t; -%ignore sai_fdb_api_t; - -%include "saiswitch.h" -%include "sailag.h" -%include "sairouterinterface.h" -%include "sainexthop.h" -%include "sairoute.h" -%include "saivlan.h" -%include "saifdb.h" -%include "saiport.h" -%include "saibfd.h" -%include "saiqueue.h" - +%include "../SAI/meta/saiswig.i" %include "sairedis.h" diff --git a/pyext/route.h b/pyext/route.h deleted file mode 100644 index 3622a5269af3..000000000000 --- a/pyext/route.h +++ /dev/null @@ -1,52 +0,0 @@ - -// TODO auto generate - -typedef struct _sai_route_api_t -{ - sai_status_t create_route_entry( - _In_ const sai_route_entry_t *route_entry, - _In_ uint32_t attr_count, - _In_ const sai_attribute_t *attr_list); - - sai_status_t remove_route_entry( - _In_ const sai_route_entry_t *route_entry); - - sai_status_t set_route_entry_attribute( - _In_ const sai_route_entry_t *route_entry, - _In_ const sai_attribute_t *attr); - - sai_status_t get_route_entry_attribute( - _In_ const sai_route_entry_t *route_entry, - _In_ uint32_t attr_count, - _Inout_ sai_attribute_t *attr_list); - - sai_status_t create_route_entries( - _In_ uint32_t object_count, - _In_ const sai_route_entry_t *route_entry, - _In_ const uint32_t *attr_count, - _In_ const sai_attribute_t **attr_list, - _In_ sai_bulk_op_error_mode_t mode, - _Out_ sai_status_t *object_statuses); - - sai_status_t remove_route_entries( - _In_ uint32_t object_count, - _In_ const sai_route_entry_t *route_entry, - _In_ sai_bulk_op_error_mode_t mode, - _Out_ sai_status_t *object_statuses); - - sai_status_t set_route_entries_attribute( - _In_ uint32_t object_count, - _In_ const sai_route_entry_t *route_entry, - _In_ const sai_attribute_t *attr_list, - _In_ sai_bulk_op_error_mode_t mode, - _Out_ sai_status_t *object_statuses); - - sai_status_t get_route_entries_attribute( - _In_ uint32_t object_count, - _In_ const sai_route_entry_t *route_entry, - _In_ const uint32_t *attr_count, - _Inout_ sai_attribute_t **attr_list, - _In_ sai_bulk_op_error_mode_t mode, - _Out_ sai_status_t *object_statuses); - -} sai_route_api_t; diff --git a/pyext/routerinterface.h b/pyext/routerinterface.h deleted file mode 100644 index d3c8f46e4543..000000000000 --- a/pyext/routerinterface.h +++ /dev/null @@ -1,42 +0,0 @@ - -// TODO auto generate - -typedef struct _sai_router_interface_api_t -{ - sai_status_t create_router_interface( - _Out_ sai_object_id_t *router_interface_id, - _In_ sai_object_id_t switch_id, - _In_ uint32_t attr_count, - _In_ const sai_attribute_t *attr_list); - - sai_status_t remove_router_interface( - _In_ sai_object_id_t router_interface_id); - - sai_status_t set_router_interface_attribute( - _In_ sai_object_id_t router_interface_id, - _In_ const sai_attribute_t *attr); - - sai_status_t get_router_interface_attribute( - _In_ sai_object_id_t router_interface_id, - _In_ uint32_t attr_count, - _Inout_ sai_attribute_t *attr_list); - - sai_status_t get_router_interface_stats( - _In_ sai_object_id_t router_interface_id, - _In_ uint32_t number_of_counters, - _In_ const sai_stat_id_t *counter_ids, - _Out_ uint64_t *counters); - - sai_status_t get_router_interface_stats_ext( - _In_ sai_object_id_t router_interface_id, - _In_ uint32_t number_of_counters, - _In_ const sai_stat_id_t *counter_ids, - _In_ sai_stats_mode_t mode, - _Out_ uint64_t *counters); - - sai_status_t clear_router_interface_stats( - _In_ sai_object_id_t router_interface_id, - _In_ uint32_t number_of_counters, - _In_ const sai_stat_id_t *counter_ids); - -} sai_router_interface_api_t; diff --git a/pyext/switch.h b/pyext/switch.h deleted file mode 100644 index e1e527e1454e..000000000000 --- a/pyext/switch.h +++ /dev/null @@ -1,56 +0,0 @@ - -// TODO auto generate - -typedef struct _sai_switch_api_t -{ - sai_status_t create_switch( - _Out_ sai_object_id_t *switch_id, - _In_ uint32_t attr_count, - _In_ const sai_attribute_t *attr_list); - - sai_status_t remove_switch( - _In_ sai_object_id_t switch_id); - - sai_status_t set_switch_attribute( - _In_ sai_object_id_t switch_id, - _In_ const sai_attribute_t *attr); - - sai_status_t get_switch_attribute( - _In_ sai_object_id_t switch_id, - _In_ uint32_t attr_count, - _Inout_ sai_attribute_t *attr_list); - - sai_status_t get_switch_stats( - _In_ sai_object_id_t switch_id, - _In_ uint32_t number_of_counters, - _In_ const sai_stat_id_t *counter_ids, - _Out_ uint64_t *counters); - - sai_status_t get_switch_stats_ext( - _In_ sai_object_id_t switch_id, - _In_ uint32_t number_of_counters, - _In_ const sai_stat_id_t *counter_ids, - _In_ sai_stats_mode_t mode, - _Out_ uint64_t *counters); - - sai_status_t clear_switch_stats( - _In_ sai_object_id_t switch_id, - _In_ uint32_t number_of_counters, - _In_ const sai_stat_id_t *counter_ids); - - sai_status_t switch_mdio_read( - _In_ sai_object_id_t switch_id, - _In_ uint32_t device_addr, - _In_ uint32_t start_reg_addr, - _In_ uint32_t number_of_registers, - _Out_ uint32_t *reg_val); - - sai_status_t switch_mdio_write( - _In_ sai_object_id_t switch_id, - _In_ uint32_t device_addr, - _In_ uint32_t start_reg_addr, - _In_ uint32_t number_of_registers, - _In_ const uint32_t *reg_val); - -} sai_switch_api_t; - diff --git a/pyext/vlan.h b/pyext/vlan.h deleted file mode 100644 index 7c7f8f779cf8..000000000000 --- a/pyext/vlan.h +++ /dev/null @@ -1,76 +0,0 @@ - -// TODO auto generate - -typedef struct _sai_vlan_api_t -{ - sai_status_t create_vlan( - _Out_ sai_object_id_t *vlan_id, - _In_ sai_object_id_t switch_id, - _In_ uint32_t attr_count, - _In_ const sai_attribute_t *attr_list); - - sai_status_t remove_vlan( - _In_ sai_object_id_t vlan_id); - - sai_status_t set_vlan_attribute( - _In_ sai_object_id_t vlan_id, - _In_ const sai_attribute_t *attr); - - sai_status_t get_vlan_attribute( - _In_ sai_object_id_t vlan_id, - _In_ uint32_t attr_count, - _Inout_ sai_attribute_t *attr_list); - - sai_status_t create_vlan_member( - _Out_ sai_object_id_t *vlan_member_id, - _In_ sai_object_id_t switch_id, - _In_ uint32_t attr_count, - _In_ const sai_attribute_t *attr_list); - - sai_status_t remove_vlan_member( - _In_ sai_object_id_t vlan_member_id); - - sai_status_t set_vlan_member_attribute( - _In_ sai_object_id_t vlan_member_id, - _In_ const sai_attribute_t *attr); - - sai_status_t get_vlan_member_attribute( - _In_ sai_object_id_t vlan_member_id, - _In_ uint32_t attr_count, - _Inout_ sai_attribute_t *attr_list); - - sai_status_t create_vlan_members( - _In_ sai_object_id_t switch_id, - _In_ uint32_t object_count, - _In_ const uint32_t *attr_count, - _In_ const sai_attribute_t **attr_list, - _In_ sai_bulk_op_error_mode_t mode, - _Out_ sai_object_id_t *object_id, - _Out_ sai_status_t *object_statuses); - - sai_status_t remove_vlan_members( - _In_ uint32_t object_count, - _In_ const sai_object_id_t *object_id, - _In_ sai_bulk_op_error_mode_t mode, - _Out_ sai_status_t *object_statuses); - - sai_status_t get_vlan_stats( - _In_ sai_object_id_t vlan_id, - _In_ uint32_t number_of_counters, - _In_ const sai_stat_id_t *counter_ids, - _Out_ uint64_t *counters); - - sai_status_t get_vlan_stats_ext( - _In_ sai_object_id_t vlan_id, - _In_ uint32_t number_of_counters, - _In_ const sai_stat_id_t *counter_ids, - _In_ sai_stats_mode_t mode, - _Out_ uint64_t *counters); - - sai_status_t clear_vlan_stats( - _In_ sai_object_id_t vlan_id, - _In_ uint32_t number_of_counters, - _In_ const sai_stat_id_t *counter_ids); - -} sai_vlan_api_t; -