sai_status_t sai_api_query()

in fboss/agent/hw/sai/fake/FakeSai.cpp [106:237]


sai_status_t sai_api_query(sai_api_t sai_api_id, void** api_method_table) {
  auto fs = FakeSai::getInstance();
  if (!fs->initialized) {
    return SAI_STATUS_FAILURE;
  }
  sai_status_t res;
  switch (sai_api_id) {
    case SAI_API_ACL:
      facebook::fboss::populate_acl_api((sai_acl_api_t**)api_method_table);
      res = SAI_STATUS_SUCCESS;
      break;
    case SAI_API_BRIDGE:
      facebook::fboss::populate_bridge_api(
          (sai_bridge_api_t**)api_method_table);
      res = SAI_STATUS_SUCCESS;
      break;
    case SAI_API_BUFFER:
      facebook::fboss::populate_buffer_api(
          (sai_buffer_api_t**)api_method_table);
      res = SAI_STATUS_SUCCESS;
      break;
    case SAI_API_DEBUG_COUNTER:
      facebook::fboss::populate_debug_counter_api(
          (sai_debug_counter_api_t**)api_method_table);
      res = SAI_STATUS_SUCCESS;
      break;
    case SAI_API_FDB:
      facebook::fboss::populate_fdb_api((sai_fdb_api_t**)api_method_table);
      res = SAI_STATUS_SUCCESS;
      break;
    case SAI_API_HASH:
      facebook::fboss::populate_hash_api((sai_hash_api_t**)api_method_table);
      res = SAI_STATUS_SUCCESS;
      break;
    case SAI_API_HOSTIF:
      facebook::fboss::populate_hostif_api(
          (sai_hostif_api_t**)api_method_table);
      res = SAI_STATUS_SUCCESS;
      break;
    case SAI_API_LAG:
      facebook::fboss::populate_lag_api((sai_lag_api_t**)api_method_table);
      res = SAI_STATUS_SUCCESS;
      break;
    case SAI_API_MIRROR:
      facebook::fboss::populate_mirror_api(
          (sai_mirror_api_t**)api_method_table);
      res = SAI_STATUS_SUCCESS;
      break;
    case SAI_API_MPLS:
      facebook::fboss::populate_mpls_api((sai_mpls_api_t**)api_method_table);
      res = SAI_STATUS_SUCCESS;
      break;
    case SAI_API_NEIGHBOR:
      facebook::fboss::populate_neighbor_api(
          (sai_neighbor_api_t**)api_method_table);
      res = SAI_STATUS_SUCCESS;
      break;
    case SAI_API_NEXT_HOP:
      facebook::fboss::populate_next_hop_api(
          (sai_next_hop_api_t**)api_method_table);
      res = SAI_STATUS_SUCCESS;
      break;
    case SAI_API_NEXT_HOP_GROUP:
      facebook::fboss::populate_next_hop_group_api(
          (sai_next_hop_group_api_t**)api_method_table);
      res = SAI_STATUS_SUCCESS;
      break;
    case SAI_API_PORT:
      facebook::fboss::populate_port_api((sai_port_api_t**)api_method_table);
      res = SAI_STATUS_SUCCESS;
      break;
    case SAI_API_QOS_MAP:
      facebook::fboss::populate_qos_map_api(
          (sai_qos_map_api_t**)api_method_table);
      res = SAI_STATUS_SUCCESS;
      break;
    case SAI_API_QUEUE:
      facebook::fboss::populate_queue_api((sai_queue_api_t**)api_method_table);
      res = SAI_STATUS_SUCCESS;
      break;
    case SAI_API_ROUTE:
      facebook::fboss::populate_route_api((sai_route_api_t**)api_method_table);
      res = SAI_STATUS_SUCCESS;
      break;
    case SAI_API_ROUTER_INTERFACE:
      facebook::fboss::populate_router_interface_api(
          (sai_router_interface_api_t**)api_method_table);
      res = SAI_STATUS_SUCCESS;
      break;
    case SAI_API_SAMPLEPACKET:
      facebook::fboss::populate_samplepacket_api(
          (sai_samplepacket_api_t**)api_method_table);
      res = SAI_STATUS_SUCCESS;
      break;
    case SAI_API_SCHEDULER:
      facebook::fboss::populate_scheduler_api(
          (sai_scheduler_api_t**)api_method_table);
      res = SAI_STATUS_SUCCESS;
      break;
    case SAI_API_SWITCH:
      facebook::fboss::populate_switch_api(
          (sai_switch_api_t**)api_method_table);
      res = SAI_STATUS_SUCCESS;
      break;
    case SAI_API_VIRTUAL_ROUTER:
      facebook::fboss::populate_virtual_router_api(
          (sai_virtual_router_api_t**)api_method_table);
      res = SAI_STATUS_SUCCESS;
      break;
    case SAI_API_VLAN:
      facebook::fboss::populate_vlan_api((sai_vlan_api_t**)api_method_table);
      res = SAI_STATUS_SUCCESS;
      break;
    case SAI_API_WRED:
      facebook::fboss::populate_wred_api((sai_wred_api_t**)api_method_table);
      res = SAI_STATUS_SUCCESS;
      break;
    case SAI_API_TAM:
      facebook::fboss::populate_tam_api((sai_tam_api_t**)api_method_table);
      res = SAI_STATUS_SUCCESS;
      break;
    case SAI_API_MACSEC:
      facebook::fboss::populate_macsec_api(
          (sai_macsec_api_t**)api_method_table);
      res = SAI_STATUS_SUCCESS;
      break;
    default:
      res = SAI_STATUS_INVALID_PARAMETER;
      break;
  }
  return res;
}