SAI Metadata
Loading...
Searching...
No Matches
sai.h
Go to the documentation of this file.
1
25#if !defined (__SAI_H_)
26#define __SAI_H_
27
28#include "saiacl.h"
29#include "saiars.h"
30#include "saiarsprofile.h"
31#include "saibridge.h"
32#include "saibuffer.h"
33#include "saicounter.h"
34#include "saifdb.h"
35#include "saihash.h"
36#include "saihostif.h"
37#include "saiipmcgroup.h"
38#include "saiipmc.h"
39#include "saiipsec.h"
40#include "sail2mcgroup.h"
41#include "sail2mc.h"
42#include "sailag.h"
43#include "saimacsec.h"
44#include "saimcastfdb.h"
45#include "saimirror.h"
46#include "saimpls.h"
47#include "saineighbor.h"
48#include "sainexthopgroup.h"
49#include "sainexthop.h"
50#include "saiobject.h"
51#include "saipolicer.h"
52#include "saiport.h"
53#include "saiqosmap.h"
54#include "saiqueue.h"
55#include "sairoute.h"
56#include "sairouterinterface.h"
57#include "sairpfgroup.h"
58#include "saisamplepacket.h"
59#include "saischedulergroup.h"
60#include "saischeduler.h"
61#include "saisrv6.h"
62#include "saistatus.h"
63#include "saistp.h"
64#include "saiswitch.h"
65#include "saisystemport.h"
66#include "saitam.h"
67#include "saitunnel.h"
68#include "saitypes.h"
69#include "saiudf.h"
70#include "saivirtualrouter.h"
71#include "saivlan.h"
72#include "saiwred.h"
73#include "saidtel.h"
74#include "saibfd.h"
75#include "sainat.h"
76#include "saiisolationgroup.h"
77#include "saidebugcounter.h"
78#include "saimymac.h"
80#include "saitwamp.h"
81#include "saiversion.h"
82
96typedef enum _sai_api_t
97{
153
157
162{
165
168
171
174
177
180
182
183typedef const char* (*sai_profile_get_value_fn)(
184 _In_ sai_switch_profile_id_t profile_id,
185 _In_ const char *variable);
186
187typedef int (*sai_profile_get_next_value_fn)(
188 _In_ sai_switch_profile_id_t profile_id,
189 _Out_ const char **variable,
190 _Out_ const char **value);
191
197{
201 sai_profile_get_value_fn profile_get_value;
202
209 sai_profile_get_next_value_fn profile_get_next_value;
210
212
224 _In_ uint64_t flags,
225 _In_ const sai_service_method_table_t *services);
226
237sai_status_t sai_api_query(
238 _In_ sai_api_t api,
239 _Out_ void **api_method_table);
240
247sai_status_t sai_api_uninitialize(void);
248
259sai_status_t sai_log_set(
260 _In_ sai_api_t api,
261 _In_ sai_log_level_t log_level);
262
272 _In_ sai_object_id_t object_id);
273
284sai_object_id_t sai_switch_id_query(
285 _In_ sai_object_id_t object_id);
286
295 _In_ const char *dump_file_name);
296
310 _In_ sai_object_id_t switch_id,
311 _In_ sai_object_type_t object_type,
312 _In_ uint32_t attr_count,
313 _In_ const sai_attribute_t *attr_list,
314 _Out_ uint64_t *count);
315
319#endif
enum _sai_object_type_t sai_object_type_t
SAI object type.
enum _sai_api_t sai_api_t
Defined API sets have assigned IDs.
sai_status_t sai_api_query(_In_ sai_api_t api, _Out_ void **api_method_table)
Retrieve a pointer to the C-style method table for desired SAI functionality as specified by the give...
sai_status_t sai_log_set(_In_ sai_api_t api, _In_ sai_log_level_t log_level)
Set log level for SAI API module.
enum _sai_log_level_t sai_log_level_t
Defines log level.
struct _sai_service_method_table_t sai_service_method_table_t
Method table that contains function pointers for services exposed by adapter host for adapter.
sai_status_t sai_api_initialize(_In_ uint64_t flags, _In_ const sai_service_method_table_t *services)
Adapter module initialization call.
sai_object_type_t sai_object_type_query(_In_ sai_object_id_t object_id)
Query SAI object type.
sai_status_t sai_api_uninitialize(void)
Uninitialize adapter module. SAI functionalities, retrieved via sai_api_query() cannot be used after ...
sai_status_t sai_dbg_generate_dump(_In_ const char *dump_file_name)
Generate dump file. The dump file may include SAI state information and vendor SDK information.
sai_object_id_t sai_switch_id_query(_In_ sai_object_id_t object_id)
Query SAI switch id.
sai_status_t sai_object_type_get_availability(_In_ sai_object_id_t switch_id, _In_ sai_object_type_t object_type, _In_ uint32_t attr_count, _In_ const sai_attribute_t *attr_list, _Out_ uint64_t *count)
Get SAI object type resource availability.
_sai_log_level_t
Defines log level.
Definition sai.h:162
_sai_api_t
Defined API sets have assigned IDs.
Definition sai.h:97
@ SAI_LOG_LEVEL_INFO
Definition sai.h:167
@ SAI_LOG_LEVEL_WARN
Definition sai.h:173
@ SAI_LOG_LEVEL_ERROR
Definition sai.h:176
@ SAI_LOG_LEVEL_CRITICAL
Definition sai.h:179
@ SAI_LOG_LEVEL_DEBUG
Definition sai.h:164
@ SAI_LOG_LEVEL_NOTICE
Definition sai.h:170
@ SAI_API_QUEUE
Definition sai.h:118
@ SAI_API_SAMPLEPACKET
Definition sai.h:112
@ SAI_API_TWAMP
Definition sai.h:148
@ SAI_API_ARS
Definition sai.h:146
@ SAI_API_IPSEC
Definition sai.h:144
@ SAI_API_GENERIC_PROGRAMMABLE
Definition sai.h:145
@ SAI_API_SYSTEM_PORT
Definition sai.h:142
@ SAI_API_L2MC_GROUP
Definition sai.h:128
@ SAI_API_TUNNEL
Definition sai.h:124
@ SAI_API_SCHEDULER_GROUP
Definition sai.h:120
@ SAI_API_MCAST_FDB
Definition sai.h:130
@ SAI_API_ISOLATION_GROUP
Definition sai.h:137
@ SAI_API_ACL
Definition sai.h:109
@ SAI_API_IPMC
Definition sai.h:126
@ SAI_API_SCHEDULER
Definition sai.h:119
@ SAI_API_NEIGHBOR
Definition sai.h:108
@ SAI_API_NEXT_HOP_GROUP
Definition sai.h:106
@ SAI_API_PORT
Definition sai.h:100
@ SAI_API_MPLS
Definition sai.h:134
@ SAI_API_BRIDGE
Definition sai.h:131
@ SAI_API_COUNTER
Definition sai.h:139
@ SAI_API_BUFFER
Definition sai.h:121
@ SAI_API_SWITCH
Definition sai.h:99
@ SAI_API_NEXT_HOP
Definition sai.h:105
@ SAI_API_QOS_MAP
Definition sai.h:117
@ SAI_API_L2MC
Definition sai.h:125
@ SAI_API_DEBUG_COUNTER
Definition sai.h:140
@ SAI_API_DTEL
Definition sai.h:135
@ SAI_API_MIRROR
Definition sai.h:111
@ SAI_API_NAT
Definition sai.h:138
@ SAI_API_POLICER
Definition sai.h:115
@ SAI_API_MAX
Definition sai.h:149
@ SAI_API_VLAN
Definition sai.h:102
@ SAI_API_LAG
Definition sai.h:114
@ SAI_API_TAM
Definition sai.h:132
@ SAI_API_CUSTOM_RANGE_START
Definition sai.h:152
@ SAI_API_ROUTER_INTERFACE
Definition sai.h:107
@ SAI_API_HOSTIF
Definition sai.h:110
@ SAI_API_BFD
Definition sai.h:136
@ SAI_API_UDF
Definition sai.h:123
@ SAI_API_FDB
Definition sai.h:101
@ SAI_API_UNSPECIFIED
Definition sai.h:98
@ SAI_API_ROUTE
Definition sai.h:104
@ SAI_API_WRED
Definition sai.h:116
@ SAI_API_MY_MAC
Definition sai.h:143
@ SAI_API_RPF_GROUP
Definition sai.h:127
@ SAI_API_IPMC_GROUP
Definition sai.h:129
@ SAI_API_VIRTUAL_ROUTER
Definition sai.h:103
@ SAI_API_STP
Definition sai.h:113
@ SAI_API_ARS_PROFILE
Definition sai.h:147
@ SAI_API_MACSEC
Definition sai.h:141
@ SAI_API_HASH
Definition sai.h:122
@ SAI_API_CUSTOM_RANGE_END
Definition sai.h:155
@ SAI_API_SRV6
Definition sai.h:133
This module defines SAI ACL interface.
This module defines SAI interface for adaptive routing and switching.
This module defines SAI QOS Maps interface.
This module defines SAI BFD interface.
This module defines SAI Bridge.
This module defines SAI Buffer interface.
This module defines SAI Counter interface.
This module defines SAI Debug Counter interface.
This module defines SAI data plane telemetry (DTEL) interface.
This module defines SAI FDB interface.
This module defines SAI Genetic Programmable Extensions (GPE)
This module defines SAI Hash interface.
This module defines SAI host interface.
This module defines SAI IPMC interface.
This module defines SAI IPMC Group interface.
This module defines SAI IPsec interface.
This module defines SAI Isolation Group interface.
This module defines SAI L2MC interface.
This module defines SAI L2MC Group interface.
This module defines SAI LAG interface.
This module defines SAI MACsec interface.
This module defines SAI multicast FDB interface.
This module defines SAI Port Mirror interface.
This module defines SAI MPLS interface.
This module defines SAI My MAC.
This module defines SAI NAT (Network Address Translation) spec.
This module defines SAI Neighbor interface.
This module defines SAI Next Hop interface.
This module defines SAI Next Hop Group interface.
This module defines SAI APIs for bulk retrieval for each object-type.
This module defines SAI QOS Policer interface.
This module defines SAI Port interface.
This module defines SAI QOS Maps interface.
This module defines SAI QOS Queue interface.
This module defines SAI Route Entry interface.
This module defines SAI Router interface.
This module defines SAI RPF Group interface.
This module defines SAI Sample Packet interface.
This module defines SAI QOS Scheduler interface.
This module defines SAI QOS Scheduler Group interface.
This module defines SAI SRV6 Entry interface.
This module defines SAI Status codes.
This module defines SAI STP interface.
This module defines SAI Switch interface.
This module defines SAI System Port interface.
This module defines SAI TAM (Telemetry And Monitoring) spec.
This module defines SAI Tunnel interface.
This module defines SAI Two-Way Active Measurement Protocol interface.
This module defines SAI portable types.
This module defines SAI UDF (User Defined Field) interface.
Define the current version.
This module defines SAI Virtual Router interface.
This module defines SAI VLAN interface.
This module defines SAI QOS WRED interface.
Method table that contains function pointers for services exposed by adapter host for adapter.
Definition sai.h:197
sai_profile_get_next_value_fn profile_get_next_value
Enumerate all the K/V pairs in a profile.
Definition sai.h:209
sai_profile_get_value_fn profile_get_value
Get variable value given its name.
Definition sai.h:201