SAI Metadata
Loading...
Searching...
No Matches
saitypes.h
Go to the documentation of this file.
1
25#if !defined (__SAITYPES_H_)
26#define __SAITYPES_H_
27
34#if defined(_WIN32)
35
36/*
37 * *nix already has lower-case definitions for types.
38 */
39
40typedef UINT8 uint8_t;
41typedef UINT16 uint16_t;
42typedef UINT32 uint32_t;
43typedef INT32 int32_t;
44typedef INT64 int64_t;
45typedef UINT64 uint64_t;
46
47typedef INT32 sai_status_t;
48typedef UINT32 sai_switch_profile_id_t;
49typedef UINT16 sai_vlan_id_t;
50typedef UINT32 sai_attr_id_t;
51typedef UINT8 sai_cos_t;
52typedef UINT8 sai_queue_index_t;
53typedef UINT8 sai_mac_t[6];
54typedef UINT32 sai_ip4_t;
55typedef UINT8 sai_ip6_t[16];
56typedef UINT32 sai_switch_hash_seed_t;
57typedef UINT32 sai_label_id_t;
58typedef UINT32 sai_stat_id_t;
59typedef UINT8 sai_encrypt_key_t[32];
60typedef UINT8 sai_auth_key_t[16];
61typedef UINT8 sai_macsec_sak_t[32];
62typedef UINT8 sai_macsec_auth_key_t[16];
63typedef UINT8 sai_macsec_salt_t[12];
64
65#include <ws2def.h>
66#include <ws2ipdef.h>
67
68#if !defined(__BOOL_DEFINED)
69
70typedef enum
71{
72 false,
73 true
74} _bool;
75
76#define bool _bool
77
78#endif /* __BOOL_DEFINED */
79
84#define PATH_MAX MAX_PATH
85
86#else /* #if defined(_WIN32) */
87
88#include <stdint.h>
89#include <stdbool.h>
90#include <sys/types.h>
91
92typedef int32_t sai_status_t;
93typedef uint32_t sai_switch_profile_id_t;
94typedef uint16_t sai_vlan_id_t;
95typedef uint32_t sai_attr_id_t;
96typedef uint8_t sai_cos_t;
97typedef uint8_t sai_queue_index_t;
98typedef uint8_t sai_mac_t[6];
99typedef uint32_t sai_ip4_t;
100typedef uint8_t sai_ip6_t[16];
101typedef uint32_t sai_switch_hash_seed_t;
102typedef uint32_t sai_label_id_t;
103typedef uint32_t sai_stat_id_t;
104typedef uint8_t sai_encrypt_key_t[32];
105typedef uint8_t sai_auth_key_t[16];
106typedef uint8_t sai_macsec_sak_t[32];
107typedef uint8_t sai_macsec_auth_key_t[16];
108typedef uint8_t sai_macsec_salt_t[12];
109
110#define _In_
111#define _Out_
112#define _Inout_
113#define _In_reads_z_(_LEN_)
114#define _In_reads_opt_z_(_LEN_)
115
116#endif /* _WIN32 */
117
118/*
119 * New common definitions
120 */
121
122typedef uint64_t sai_uint64_t;
123typedef int64_t sai_int64_t;
124typedef uint32_t sai_uint32_t;
125typedef int32_t sai_int32_t;
126typedef uint16_t sai_uint16_t;
127typedef int16_t sai_int16_t;
128typedef uint8_t sai_uint8_t;
129typedef int8_t sai_int8_t;
130typedef size_t sai_size_t;
131typedef uint64_t sai_object_id_t;
132typedef void *sai_pointer_t;
133typedef uint64_t sai_api_version_t;
134
135typedef struct _sai_timespec_t
136{
137 uint64_t tv_sec;
138 uint32_t tv_nsec;
140
145#define SAI_NULL_OBJECT_ID 0L
146
163typedef struct _sai_object_list_t
164{
165 uint32_t count;
166 sai_object_id_t *list;
168
173{
174 SAI_COMMON_API_CREATE = 0,
175 SAI_COMMON_API_REMOVE = 1,
176 SAI_COMMON_API_SET = 2,
177 SAI_COMMON_API_GET = 3,
178 SAI_COMMON_API_BULK_CREATE = 4,
179 SAI_COMMON_API_BULK_REMOVE = 5,
180 SAI_COMMON_API_BULK_SET = 6,
181 SAI_COMMON_API_BULK_GET = 7,
182 SAI_COMMON_API_MAX = 8,
184
189{
191 SAI_OBJECT_TYPE_PORT = 1,
192 SAI_OBJECT_TYPE_LAG = 2,
193 SAI_OBJECT_TYPE_VIRTUAL_ROUTER = 3,
194 SAI_OBJECT_TYPE_NEXT_HOP = 4,
195 SAI_OBJECT_TYPE_NEXT_HOP_GROUP = 5,
196 SAI_OBJECT_TYPE_ROUTER_INTERFACE = 6,
197 SAI_OBJECT_TYPE_ACL_TABLE = 7,
198 SAI_OBJECT_TYPE_ACL_ENTRY = 8,
199 SAI_OBJECT_TYPE_ACL_COUNTER = 9,
200 SAI_OBJECT_TYPE_ACL_RANGE = 10,
201 SAI_OBJECT_TYPE_ACL_TABLE_GROUP = 11,
202 SAI_OBJECT_TYPE_ACL_TABLE_GROUP_MEMBER = 12,
203 SAI_OBJECT_TYPE_HOSTIF = 13,
204 SAI_OBJECT_TYPE_MIRROR_SESSION = 14,
205 SAI_OBJECT_TYPE_SAMPLEPACKET = 15,
206 SAI_OBJECT_TYPE_STP = 16,
207 SAI_OBJECT_TYPE_HOSTIF_TRAP_GROUP = 17,
208 SAI_OBJECT_TYPE_POLICER = 18,
209 SAI_OBJECT_TYPE_WRED = 19,
210 SAI_OBJECT_TYPE_QOS_MAP = 20,
211 SAI_OBJECT_TYPE_QUEUE = 21,
212 SAI_OBJECT_TYPE_SCHEDULER = 22,
213 SAI_OBJECT_TYPE_SCHEDULER_GROUP = 23,
214 SAI_OBJECT_TYPE_BUFFER_POOL = 24,
215 SAI_OBJECT_TYPE_BUFFER_PROFILE = 25,
216 SAI_OBJECT_TYPE_INGRESS_PRIORITY_GROUP = 26,
217 SAI_OBJECT_TYPE_LAG_MEMBER = 27,
218 SAI_OBJECT_TYPE_HASH = 28,
219 SAI_OBJECT_TYPE_UDF = 29,
220 SAI_OBJECT_TYPE_UDF_MATCH = 30,
221 SAI_OBJECT_TYPE_UDF_GROUP = 31,
222 SAI_OBJECT_TYPE_FDB_ENTRY = 32,
223 SAI_OBJECT_TYPE_SWITCH = 33,
224 SAI_OBJECT_TYPE_HOSTIF_TRAP = 34,
225 SAI_OBJECT_TYPE_HOSTIF_TABLE_ENTRY = 35,
226 SAI_OBJECT_TYPE_NEIGHBOR_ENTRY = 36,
227 SAI_OBJECT_TYPE_ROUTE_ENTRY = 37,
228 SAI_OBJECT_TYPE_VLAN = 38,
229 SAI_OBJECT_TYPE_VLAN_MEMBER = 39,
230 SAI_OBJECT_TYPE_HOSTIF_PACKET = 40,
231 SAI_OBJECT_TYPE_TUNNEL_MAP = 41,
232 SAI_OBJECT_TYPE_TUNNEL = 42,
233 SAI_OBJECT_TYPE_TUNNEL_TERM_TABLE_ENTRY = 43,
234 SAI_OBJECT_TYPE_FDB_FLUSH = 44,
235 SAI_OBJECT_TYPE_NEXT_HOP_GROUP_MEMBER = 45,
236 SAI_OBJECT_TYPE_STP_PORT = 46,
237 SAI_OBJECT_TYPE_RPF_GROUP = 47,
238 SAI_OBJECT_TYPE_RPF_GROUP_MEMBER = 48,
239 SAI_OBJECT_TYPE_L2MC_GROUP = 49,
240 SAI_OBJECT_TYPE_L2MC_GROUP_MEMBER = 50,
241 SAI_OBJECT_TYPE_IPMC_GROUP = 51,
242 SAI_OBJECT_TYPE_IPMC_GROUP_MEMBER = 52,
243 SAI_OBJECT_TYPE_L2MC_ENTRY = 53,
244 SAI_OBJECT_TYPE_IPMC_ENTRY = 54,
245 SAI_OBJECT_TYPE_MCAST_FDB_ENTRY = 55,
246 SAI_OBJECT_TYPE_HOSTIF_USER_DEFINED_TRAP = 56,
247 SAI_OBJECT_TYPE_BRIDGE = 57,
248 SAI_OBJECT_TYPE_BRIDGE_PORT = 58,
249 SAI_OBJECT_TYPE_TUNNEL_MAP_ENTRY = 59,
250 SAI_OBJECT_TYPE_TAM = 60,
251 SAI_OBJECT_TYPE_SRV6_SIDLIST = 61,
252 SAI_OBJECT_TYPE_PORT_POOL = 62,
253 SAI_OBJECT_TYPE_INSEG_ENTRY = 63,
259 SAI_OBJECT_TYPE_BFD_SESSION = 69,
260 SAI_OBJECT_TYPE_ISOLATION_GROUP = 70,
261 SAI_OBJECT_TYPE_ISOLATION_GROUP_MEMBER = 71,
262 SAI_OBJECT_TYPE_TAM_MATH_FUNC = 72,
263 SAI_OBJECT_TYPE_TAM_REPORT = 73,
264 SAI_OBJECT_TYPE_TAM_EVENT_THRESHOLD = 74,
265 SAI_OBJECT_TYPE_TAM_TEL_TYPE = 75,
266 SAI_OBJECT_TYPE_TAM_TRANSPORT = 76,
267 SAI_OBJECT_TYPE_TAM_TELEMETRY = 77,
268 SAI_OBJECT_TYPE_TAM_COLLECTOR = 78,
269 SAI_OBJECT_TYPE_TAM_EVENT_ACTION = 79,
270 SAI_OBJECT_TYPE_TAM_EVENT = 80,
271 SAI_OBJECT_TYPE_NAT_ZONE_COUNTER = 81,
272 SAI_OBJECT_TYPE_NAT_ENTRY = 82,
273 SAI_OBJECT_TYPE_TAM_INT = 83,
274 SAI_OBJECT_TYPE_COUNTER = 84,
275 SAI_OBJECT_TYPE_DEBUG_COUNTER = 85,
276 SAI_OBJECT_TYPE_PORT_CONNECTOR = 86,
277 SAI_OBJECT_TYPE_PORT_SERDES = 87,
278 SAI_OBJECT_TYPE_MACSEC = 88,
279 SAI_OBJECT_TYPE_MACSEC_PORT = 89,
280 SAI_OBJECT_TYPE_MACSEC_FLOW = 90,
281 SAI_OBJECT_TYPE_MACSEC_SC = 91,
282 SAI_OBJECT_TYPE_MACSEC_SA = 92,
283 SAI_OBJECT_TYPE_SYSTEM_PORT = 93,
284 SAI_OBJECT_TYPE_FINE_GRAINED_HASH_FIELD = 94,
285 SAI_OBJECT_TYPE_SWITCH_TUNNEL = 95,
286 SAI_OBJECT_TYPE_MY_SID_ENTRY = 96,
287 SAI_OBJECT_TYPE_MY_MAC = 97,
288 SAI_OBJECT_TYPE_NEXT_HOP_GROUP_MAP = 98,
289 SAI_OBJECT_TYPE_IPSEC = 99,
290 SAI_OBJECT_TYPE_IPSEC_PORT = 100,
291 SAI_OBJECT_TYPE_IPSEC_SA = 101,
292 SAI_OBJECT_TYPE_GENERIC_PROGRAMMABLE = 102,
293 SAI_OBJECT_TYPE_ARS_PROFILE = 103,
294 SAI_OBJECT_TYPE_ARS = 104,
295 SAI_OBJECT_TYPE_ACL_TABLE_CHAIN_GROUP = 105,
296 SAI_OBJECT_TYPE_TWAMP_SESSION = 106,
297 SAI_OBJECT_TYPE_TAM_COUNTER_SUBSCRIPTION = 107,
298
301
304
308
309typedef struct _sai_u8_list_t
310{
311 uint32_t count;
312 uint8_t *list;
314
320typedef struct _sai_s8_list_t
321{
322 uint32_t count;
323 int8_t *list;
325
326typedef struct _sai_u16_list_t
327{
328 uint32_t count;
329 uint16_t *list;
331
332typedef struct _sai_s16_list_t
333{
334 uint32_t count;
335 int16_t *list;
337
338typedef struct _sai_u32_list_t
339{
340 uint32_t count;
341 uint32_t *list;
343
344typedef struct _sai_s32_list_t
345{
346 uint32_t count;
347 int32_t *list;
349
350typedef struct _sai_u32_range_t
351{
352 uint32_t min;
353 uint32_t max;
355
356typedef struct _sai_s32_range_t
357{
358 int32_t min;
359 int32_t max;
361
362typedef struct _sai_u16_range_t
363{
364 uint16_t min;
365 uint16_t max;
367
369{
370 uint32_t count;
371 sai_u16_range_t *list;
373
377typedef struct _sai_vlan_list_t
378{
380 uint32_t count;
381
383 sai_vlan_id_t *list;
384
386
387typedef enum _sai_ip_addr_family_t
388{
389 SAI_IP_ADDR_FAMILY_IPV4,
390
391 SAI_IP_ADDR_FAMILY_IPV6
392
393} sai_ip_addr_family_t;
394
398typedef union _sai_ip_addr_t
399{
401 sai_ip4_t ip4;
402
404 sai_ip6_t ip6;
406
407typedef struct _sai_ip_address_t
408{
409 sai_ip_addr_family_t addr_family;
410
414
416{
417 uint32_t count;
418 sai_ip_address_t *list;
420
421typedef struct _sai_ip_prefix_t
422{
423 sai_ip_addr_family_t addr_family;
424
427
431
433{
434 uint32_t count;
435 sai_ip_prefix_t *list;
437
442{
445
448
451
454
456
458{
460
461 uint32_t error_count;
463
465{
468
472
474{
475 uint32_t lane;
476 sai_latch_status_t value;
478
480{
481 uint32_t count;
484
491{
493 sai_uint8_t u8;
494
496 sai_int8_t s8;
497
499 sai_uint16_t u16;
500
502 sai_int16_t s16;
503
505 sai_uint32_t u32;
506
508 sai_int32_t s32;
509
511 sai_uint64_t u64;
512
514 sai_mac_t mac;
515
517 sai_ip4_t ip4;
518
520 sai_ip6_t ip6;
521
525
532{
535
537 sai_uint8_t u8;
538
540 sai_int8_t s8;
541
543 sai_uint16_t u16;
544
546 sai_int16_t s16;
547
549 sai_uint32_t u32;
550
556 sai_int32_t s32;
557
559 sai_uint64_t u64;
560
562 sai_mac_t mac;
563
565 sai_ip4_t ip4;
566
568 sai_ip6_t ip6;
569
571 sai_object_id_t oid;
572
575
579
588{
592 bool enable;
593
604
614
619{
622
624 sai_uint8_t u8;
625
627 sai_int8_t s8;
628
630 sai_uint16_t u16;
631
633 sai_int16_t s16;
634
636 sai_uint32_t u32;
637
643 sai_int32_t s32;
644
646 sai_mac_t mac;
647
649 sai_ip4_t ip4;
650
652 sai_ip6_t ip6;
653
655 sai_object_id_t oid;
656
659
663
672{
676 bool enable;
677
685
687
692{
697
702
707
709
724{
726 sai_cos_t tc;
727
729 sai_uint8_t dscp;
730
732 sai_uint8_t dot1p;
733
735 sai_uint8_t prio;
736
738 sai_uint8_t pg;
739
744 sai_queue_index_t queue_index;
745
748
750 sai_uint8_t mpls_exp;
751
753 sai_uint8_t fc;
754
756
757typedef struct _sai_qos_map_t
758{
761
764
766
768{
770 uint32_t count;
771
774
776
777typedef struct _sai_map_t
778{
780 sai_uint32_t key;
781
783 sai_int32_t value;
784
785} sai_map_t;
786
787typedef struct _sai_map_list_t
788{
790 uint32_t count;
791
794
796
801{
804
807
809
814{
817
820
823
826
828
832typedef struct _sai_acl_chain_t
833{
836
840
842{
844 uint32_t count;
845
848
850
857{
864
875
882
889
891
896{
899
902
905
908
911
914
916
921{
924
927
930
933
936
939
941
946{
949
952
954
959{
962
965
968
971
974
977
980
982
987{
990
993
995 sai_uint32_t avail_num;
996
998
1006{
1008 uint32_t count;
1009
1012
1014
1019{
1022
1025
1028
1032
1036typedef struct _sai_hmac_t
1037{
1038 sai_uint32_t key_id;
1039
1040 sai_uint32_t hmac[8];
1042
1046typedef union _sai_tlv_entry_t
1047{
1049 sai_ip6_t ingress_node;
1050
1052 sai_ip6_t egress_node;
1053
1055 sai_uint32_t opaque_container[4];
1056
1060
1064typedef struct _sai_tlv_t
1065{
1066 sai_tlv_type_t tlv_type;
1067
1071
1075typedef struct _sai_tlv_list_t
1076{
1078 uint32_t count;
1079
1083
1088{
1090 uint32_t count;
1091
1093 sai_ip6_t *list;
1095
1119typedef struct _sai_json_t
1120{
1124
1130{
1131 uint32_t lane;
1132 int32_t left;
1133 int32_t right;
1134 int32_t up;
1135 int32_t down;
1137
1155{
1156 uint32_t count;
1159
1164{
1165 uint32_t lane;
1166 sai_int16_t ppm;
1168
1173{
1174 uint32_t count;
1177
1185{
1186 uint32_t lane;
1187 sai_uint16_t snr;
1189
1194{
1195 uint32_t count;
1198
1203{
1206
1209
1211
1216{
1217 SAI_OUTSEG_TTL_MODE_UNIFORM,
1218
1219 SAI_OUTSEG_TTL_MODE_PIPE,
1220
1222
1227{
1228 SAI_OUTSEG_EXP_MODE_UNIFORM,
1229
1230 SAI_OUTSEG_EXP_MODE_PIPE,
1231
1233
1243{
1245 uint32_t port_id;
1246
1249
1252
1255
1257 uint32_t speed;
1258
1260 uint32_t num_voq;
1261
1263
1268{
1270 uint32_t count;
1271
1275
1280{
1282 uint32_t switch_id;
1283
1287
1292{
1295
1298
1301
1304
1307
1310
1313
1316
1320
1325{
1327 uint32_t count;
1328
1332
1341{
1344
1346 char chardata[32];
1347
1349 sai_uint8_t u8;
1350
1352 sai_int8_t s8;
1353
1355 sai_uint16_t u16;
1356
1358 sai_int16_t s16;
1359
1361 sai_uint32_t u32;
1362
1368 sai_int32_t s32;
1369
1371 sai_uint64_t u64;
1372
1374 sai_int64_t s64;
1375
1377 sai_pointer_t ptr;
1378
1380 sai_mac_t mac;
1381
1383 sai_ip4_t ip4;
1384
1386 sai_ip6_t ip6;
1387
1390
1393
1396
1398 sai_object_id_t oid;
1399
1402
1405
1408
1411
1414
1417
1424
1427
1430
1433
1436
1439
1442
1443 /* TODO UDF also we need flag for UDF */
1444
1450
1456
1462
1465
1468
1471
1474
1477
1480
1483
1485 sai_encrypt_key_t encrypt_key;
1486
1488 sai_auth_key_t authkey;
1489
1491 sai_macsec_sak_t macsecsak;
1492
1494 sai_macsec_auth_key_t macsecauthkey;
1495
1497 sai_macsec_salt_t macsecsalt;
1498
1501
1504
1507
1510
1513
1516
1519
1522
1525
1528
1532
1536typedef struct _sai_attribute_t
1537{
1539 sai_attr_id_t id;
1540
1544
1546{
1553
1558} sai_bulk_op_error_mode_t;
1559
1577typedef sai_status_t (*sai_bulk_object_create_fn)(
1578 _In_ sai_object_id_t switch_id,
1579 _In_ uint32_t object_count,
1580 _In_ const uint32_t *attr_count,
1581 _In_ const sai_attribute_t **attr_list,
1582 _In_ sai_bulk_op_error_mode_t mode,
1583 _Out_ sai_object_id_t *object_id,
1584 _Out_ sai_status_t *object_statuses);
1585
1598typedef sai_status_t (*sai_bulk_object_remove_fn)(
1599 _In_ uint32_t object_count,
1600 _In_ const sai_object_id_t *object_id,
1601 _In_ sai_bulk_op_error_mode_t mode,
1602 _Out_ sai_status_t *object_statuses);
1603
1618typedef sai_status_t (*sai_bulk_object_set_attribute_fn)(
1619 _In_ uint32_t object_count,
1620 _In_ const sai_object_id_t *object_id,
1621 _In_ const sai_attribute_t *attr_list,
1622 _In_ sai_bulk_op_error_mode_t mode,
1623 _Out_ sai_status_t *object_statuses);
1624
1641typedef sai_status_t (*sai_bulk_object_get_attribute_fn)(
1642 _In_ uint32_t object_count,
1643 _In_ const sai_object_id_t *object_id,
1644 _In_ const uint32_t *attr_count,
1645 _Inout_ sai_attribute_t **attr_list,
1646 _In_ sai_bulk_op_error_mode_t mode,
1647 _Out_ sai_status_t *object_statuses);
1648
1658{
1663
1668
1673
1678
1684
1686{
1688 sai_stat_id_t stat_enum;
1689
1698 uint32_t stat_modes;
1699
1701
1703{
1704 uint32_t count;
1706
1708
1710{
1713
1716
1719
1720} sai_object_stage_t;
1721
1723{
1726} sai_health_data_type_t;
1727
1729{
1731 sai_health_data_type_t data_type;
1732
1734
1738#endif
enum _sai_stats_mode_t sai_stats_mode_t
SAI statistics modes.
struct _sai_tlv_t sai_tlv_t
Segment Routing Tag Length Value entry.
enum _sai_acl_bind_point_type_t sai_acl_bind_point_type_t
Attribute data for SAI_ACL_TABLE_ATTR_BIND_POINT.
enum _sai_outseg_type_t sai_outseg_type_t
Enum defining MPLS out segment type.
enum _sai_outseg_exp_mode_t sai_outseg_exp_mode_t
Enum defining MPLS EXP mode for MPLS out segment.
union _sai_acl_action_parameter_t sai_acl_action_parameter_t
enum _sai_object_type_t sai_object_type_t
SAI object type.
struct _sai_acl_chain_t sai_acl_chain_t
Structure for ACL chain stage and corresponding table type.
_sai_acl_table_chain_group_stage_t
Attribute data for SAI_ACL_TABLE_CHAIN_GROUP_ATTR_STAGE.
Definition saitypes.h:814
struct _sai_acl_resource_list_t sai_acl_resource_list_t
List of available ACL resources at each stage and each binding point. This shall be returned when que...
_sai_tam_bind_point_type_t
Attribute data for SAI_TAM_TABLE_ATTR_BIND_POINT.
Definition saitypes.h:959
union _sai_acl_field_data_mask_t sai_acl_field_data_mask_t
Field match mask.
sai_status_t(* sai_bulk_object_get_attribute_fn)(_In_ uint32_t object_count, _In_ const sai_object_id_t *object_id, _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)
Bulk objects get attributes.
Definition saitypes.h:1641
enum _sai_port_err_status_t sai_port_err_status_t
Port error status.
_sai_acl_table_supported_match_type_t
Attribute data for SAI_ACL_TABLE_ATTR_SUPPORTED_MATCH_TYPE.
Definition saitypes.h:801
enum _sai_outseg_ttl_mode_t sai_outseg_ttl_mode_t
Enum defining TTL mode for MPLS out segment.
struct _sai_object_list_t sai_object_list_t
Defines a list of SAI object ids used as SAI attribute value.
_sai_outseg_type_t
Enum defining MPLS out segment type.
Definition saitypes.h:1203
_sai_common_api_t
SAI common API type.
Definition saitypes.h:173
struct _sai_qos_map_params_t sai_qos_map_params_t
Defines QOS map types.
struct _sai_system_port_config_t sai_system_port_config_t
System port configuration attributes.
_sai_outseg_exp_mode_t
Enum defining MPLS EXP mode for MPLS out segment.
Definition saitypes.h:1227
_sai_object_type_t
SAI object type.
Definition saitypes.h:189
sai_status_t(* sai_bulk_object_create_fn)(_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)
Bulk objects creation.
Definition saitypes.h:1577
enum _sai_tam_bind_point_type_t sai_tam_bind_point_type_t
Attribute data for SAI_TAM_TABLE_ATTR_BIND_POINT.
struct _sai_acl_field_data_t sai_acl_field_data_t
Defines a single ACL filter.
struct _sai_segment_list_t sai_segment_list_t
List of Segment Routing segment entries.
sai_status_t(* sai_bulk_object_remove_fn)(_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)
Bulk objects removal.
Definition saitypes.h:1598
_sai_outseg_ttl_mode_t
Enum defining TTL mode for MPLS out segment.
Definition saitypes.h:1216
_sai_object_stage_t
Definition saitypes.h:1710
struct _sai_hmac_t sai_hmac_t
Segment Routing Hash-based Message Authentication Code Tag Length Value Format.
_sai_acl_table_match_type_t
Attribute data for SAI_ACL_TABLE_ATTR_MATCH_TYPE.
Definition saitypes.h:946
_sai_acl_stage_t
Attribute data for SAI_ACL_TABLE_ATTR_STAGE.
Definition saitypes.h:896
struct _sai_system_port_config_list_t sai_system_port_config_list_t
System port configuration list.
enum _sai_common_api_t sai_common_api_t
SAI common API type.
union _sai_ip_addr_t sai_ip_addr_t
enum _sai_acl_table_match_type_t sai_acl_table_match_type_t
Attribute data for SAI_ACL_TABLE_ATTR_MATCH_TYPE.
struct _sai_port_snr_values_t sai_port_snr_values_t
Defines a lane with its SNR.
struct _sai_s8_list_t sai_s8_list_t
Defines a s8 list or string.
struct _sai_tlv_list_t sai_tlv_list_t
List of Segment Routing Tag Length Value entries.
struct _sai_port_eye_values_list_t sai_port_eye_values_list_t
Defines a port's lanes eye values list.
struct _sai_json_t sai_json_t
JSON data type "attributes": [ { "attribute_name": { "sai_metadata": { "sai_attr_value_type": "<SAI_A...
_sai_port_err_status_t
Port error status.
Definition saitypes.h:1292
_sai_bulk_op_error_mode_t
Definition saitypes.h:1546
struct _sai_fabric_port_reachability_t sai_fabric_port_reachability_t
Fabric port reachability.
struct _sai_port_snr_list_t sai_port_snr_list_t
Defines a port's lanes SNR list.
enum _sai_port_prbs_rx_status_t sai_port_prbs_rx_status_t
Attribute data for SAI_PORT_ATTR_PRBS_RX_STATUS.
enum _sai_packet_color_t sai_packet_color_t
Packet Color.
enum _sai_acl_table_chain_group_stage_t sai_acl_table_chain_group_stage_t
Attribute data for SAI_ACL_TABLE_CHAIN_GROUP_ATTR_STAGE.
struct _sai_attribute_t sai_attribute_t
struct _sai_acl_capability_t sai_acl_capability_t
Structure for ACL attributes supported at each stage. action_list alone is added now....
enum _sai_acl_stage_t sai_acl_stage_t
Attribute data for SAI_ACL_TABLE_ATTR_STAGE.
_sai_stats_mode_t
SAI statistics modes.
Definition saitypes.h:1658
_sai_tlv_type_t
Segment Routing Tag Length Value Types.
Definition saitypes.h:1019
struct _sai_port_frequency_offset_ppm_list_t sai_port_frequency_offset_ppm_list_t
Defines a port's lanes frequency offset ppm list.
union _sai_attribute_value_t sai_attribute_value_t
Data Type.
_sai_port_prbs_rx_status_t
Attribute data for SAI_PORT_ATTR_PRBS_RX_STATUS.
Definition saitypes.h:442
sai_status_t(* sai_bulk_object_set_attribute_fn)(_In_ uint32_t object_count, _In_ const sai_object_id_t *object_id, _In_ const sai_attribute_t *attr_list, _In_ sai_bulk_op_error_mode_t mode, _Out_ sai_status_t *object_statuses)
Bulk objects set attributes.
Definition saitypes.h:1618
enum _sai_tlv_type_t sai_tlv_type_t
Segment Routing Tag Length Value Types.
struct _sai_vlan_list_t sai_vlan_list_t
Defines a vlan list data structure.
struct _sai_acl_resource_t sai_acl_resource_t
Structure for ACL Resource Count.
union _sai_acl_field_data_data_t sai_acl_field_data_data_t
ACL field data union.
enum _sai_acl_table_supported_match_type_t sai_acl_table_supported_match_type_t
Attribute data for SAI_ACL_TABLE_ATTR_SUPPORTED_MATCH_TYPE.
struct _sai_port_frequency_offset_ppm_values_t sai_port_frequency_offset_ppm_values_t
Defines a lane with its frequency offset ppm.
union _sai_tlv_entry_t sai_tlv_entry_t
struct _sai_port_err_status_list_t sai_port_err_status_list_t
Attribute data for SAI_PORT_ATTR_ERR_STATUS_LIST.
_sai_health_data_type_t
Definition saitypes.h:1723
_sai_packet_color_t
Packet Color.
Definition saitypes.h:692
struct _sai_acl_action_data_t sai_acl_action_data_t
Defines a single ACL action.
_sai_acl_bind_point_type_t
Attribute data for SAI_ACL_TABLE_ATTR_BIND_POINT.
Definition saitypes.h:921
struct _sai_port_lane_eye_values_t sai_port_lane_eye_values_t
Defines a lane with its eye values with the up and down values being in mV and left and right being i...
@ SAI_ACL_TABLE_CHAIN_GROUP_STAGE_1
Definition saitypes.h:819
@ SAI_ACL_TABLE_CHAIN_GROUP_STAGE_0
Definition saitypes.h:816
@ SAI_ACL_TABLE_CHAIN_GROUP_STAGE_3
Definition saitypes.h:825
@ SAI_ACL_TABLE_CHAIN_GROUP_STAGE_2
Definition saitypes.h:822
@ SAI_TAM_BIND_POINT_TYPE_PORT
Definition saitypes.h:964
@ SAI_TAM_BIND_POINT_TYPE_IPG
Definition saitypes.h:976
@ SAI_TAM_BIND_POINT_TYPE_VLAN
Definition saitypes.h:970
@ SAI_TAM_BIND_POINT_TYPE_QUEUE
Definition saitypes.h:961
@ SAI_TAM_BIND_POINT_TYPE_SWITCH
Definition saitypes.h:973
@ SAI_TAM_BIND_POINT_TYPE_BSP
Definition saitypes.h:979
@ SAI_TAM_BIND_POINT_TYPE_LAG
Definition saitypes.h:967
@ SAI_ACL_TABLE_SUPPORTED_MATCH_TYPE_EXACT
Definition saitypes.h:806
@ SAI_ACL_TABLE_SUPPORTED_MATCH_TYPE_TERNARY
Definition saitypes.h:803
@ SAI_OUTSEG_TYPE_SWAP
Definition saitypes.h:1208
@ SAI_OUTSEG_TYPE_PUSH
Definition saitypes.h:1205
@ SAI_OBJECT_TYPE_DTEL
Definition saitypes.h:254
@ SAI_OBJECT_TYPE_DTEL_QUEUE_REPORT
Definition saitypes.h:255
@ SAI_OBJECT_TYPE_MAX
Definition saitypes.h:300
@ SAI_OBJECT_TYPE_DTEL_INT_SESSION
Definition saitypes.h:256
@ SAI_OBJECT_TYPE_CUSTOM_RANGE_END
Definition saitypes.h:306
@ SAI_OBJECT_TYPE_NULL
Definition saitypes.h:190
@ SAI_OBJECT_TYPE_DTEL_REPORT_SESSION
Definition saitypes.h:257
@ SAI_OBJECT_TYPE_CUSTOM_RANGE_START
Definition saitypes.h:303
@ SAI_OBJECT_TYPE_DTEL_EVENT
Definition saitypes.h:258
@ SAI_OBJECT_STAGE_INGRESS
Definition saitypes.h:1715
@ SAI_OBJECT_STAGE_EGRESS
Definition saitypes.h:1718
@ SAI_OBJECT_STAGE_BOTH
Definition saitypes.h:1712
@ SAI_ACL_TABLE_MATCH_TYPE_EXACT
Definition saitypes.h:951
@ SAI_ACL_TABLE_MATCH_TYPE_TERNARY
Definition saitypes.h:948
@ SAI_ACL_STAGE_INGRESS
Definition saitypes.h:898
@ SAI_ACL_STAGE_POST_INGRESS
Definition saitypes.h:913
@ SAI_ACL_STAGE_EGRESS_MACSEC
Definition saitypes.h:907
@ SAI_ACL_STAGE_INGRESS_MACSEC
Definition saitypes.h:904
@ SAI_ACL_STAGE_PRE_INGRESS
Definition saitypes.h:910
@ SAI_ACL_STAGE_EGRESS
Definition saitypes.h:901
@ SAI_PORT_ERR_STATUS_MAX
Definition saitypes.h:1318
@ SAI_PORT_ERR_STATUS_DATA_UNIT_SIZE
Definition saitypes.h:1297
@ SAI_PORT_ERR_STATUS_DATA_UNIT_CRC_ERROR
Definition saitypes.h:1294
@ SAI_PORT_ERR_STATUS_DATA_UNIT_MISALIGNMENT_ERROR
Definition saitypes.h:1300
@ SAI_PORT_ERR_STATUS_SIGNAL_LOCAL_ERROR
Definition saitypes.h:1306
@ SAI_PORT_ERR_STATUS_CRC_RATE
Definition saitypes.h:1312
@ SAI_PORT_ERR_STATUS_CODE_GROUP_ERROR
Definition saitypes.h:1303
@ SAI_PORT_ERR_STATUS_REMOTE_FAULT_STATUS
Definition saitypes.h:1315
@ SAI_PORT_ERR_STATUS_NO_RX_REACHABILITY
Definition saitypes.h:1309
@ SAI_BULK_OP_ERROR_MODE_IGNORE_ERROR
Bulk operation error handling mode where operation ignores the failures and continues to create other...
Definition saitypes.h:1557
@ SAI_BULK_OP_ERROR_MODE_STOP_ON_ERROR
Bulk operation error handling mode where operation stops on the first failed creation.
Definition saitypes.h:1552
@ SAI_STATS_MODE_BULK_READ_AND_CLEAR
Bulk read and clear after reading.
Definition saitypes.h:1682
@ SAI_STATS_MODE_READ_AND_CLEAR
Read and clear after reading.
Definition saitypes.h:1667
@ SAI_STATS_MODE_READ
Read statistics.
Definition saitypes.h:1662
@ SAI_STATS_MODE_BULK_CLEAR
Bulk clear statistics.
Definition saitypes.h:1677
@ SAI_STATS_MODE_BULK_READ
Bulk read statistics.
Definition saitypes.h:1672
@ SAI_TLV_TYPE_OPAQUE
Definition saitypes.h:1027
@ SAI_TLV_TYPE_INGRESS
Definition saitypes.h:1021
@ SAI_TLV_TYPE_EGRESS
Definition saitypes.h:1024
@ SAI_TLV_TYPE_HMAC
Definition saitypes.h:1030
@ SAI_PORT_PRBS_RX_STATUS_LOCK_WITH_ERRORS
Definition saitypes.h:447
@ SAI_PORT_PRBS_RX_STATUS_OK
Definition saitypes.h:444
@ SAI_PORT_PRBS_RX_STATUS_LOST_LOCK
Definition saitypes.h:453
@ SAI_PORT_PRBS_RX_STATUS_NOT_LOCKED
Definition saitypes.h:450
@ SAI_HEALTH_DATA_TYPE_GENERAL
Definition saitypes.h:1725
@ SAI_PACKET_COLOR_YELLOW
Color Yellow.
Definition saitypes.h:701
@ SAI_PACKET_COLOR_RED
Color Red.
Definition saitypes.h:706
@ SAI_PACKET_COLOR_GREEN
Color Green.
Definition saitypes.h:696
@ SAI_ACL_BIND_POINT_TYPE_ROUTER_INTERFACE
Definition saitypes.h:932
@ SAI_ACL_BIND_POINT_TYPE_VLAN
Definition saitypes.h:929
@ SAI_ACL_BIND_POINT_TYPE_SWITCH
Definition saitypes.h:938
@ SAI_ACL_BIND_POINT_TYPE_ROUTER_INTF
Definition saitypes.h:935
@ SAI_ACL_BIND_POINT_TYPE_PORT
Definition saitypes.h:923
@ SAI_ACL_BIND_POINT_TYPE_LAG
Definition saitypes.h:926
Defines a single ACL action.
Definition saitypes.h:672
bool enable
Action enable/disable.
Definition saitypes.h:676
sai_acl_action_parameter_t parameter
Action parameter.
Definition saitypes.h:684
Structure for ACL attributes supported at each stage. action_list alone is added now....
Definition saitypes.h:857
bool is_non_contiguous_bits_exact_match_supported
Non contiguous bit match supported.
Definition saitypes.h:888
bool is_action_list_mandatory
Output from get function.
Definition saitypes.h:863
sai_acl_table_supported_match_type_t supported_match_type
Supported match type.
Definition saitypes.h:881
sai_s32_list_t action_list
Output from get function.
Definition saitypes.h:874
sai_acl_chain_t * list
Definition saitypes.h:847
Structure for ACL chain stage and corresponding table type.
Definition saitypes.h:833
sai_acl_table_chain_group_stage_t chain_group_stage
Definition saitypes.h:835
sai_acl_table_supported_match_type_t supported_match_type
Definition saitypes.h:838
Defines a single ACL filter.
Definition saitypes.h:588
bool enable
Match enable/disable.
Definition saitypes.h:592
sai_acl_field_data_data_t data
Expected AND result using match mask above with packet field value where applicable.
Definition saitypes.h:612
sai_acl_field_data_mask_t mask
Field match mask.
Definition saitypes.h:603
List of available ACL resources at each stage and each binding point. This shall be returned when que...
Definition saitypes.h:1006
sai_acl_resource_t * list
Definition saitypes.h:1011
Structure for ACL Resource Count.
Definition saitypes.h:987
sai_uint32_t avail_num
Definition saitypes.h:995
sai_acl_bind_point_type_t bind_point
Definition saitypes.h:992
sai_acl_stage_t stage
Definition saitypes.h:989
sai_attribute_value_t value
Definition saitypes.h:1542
sai_attr_id_t id
Definition saitypes.h:1539
Fabric port reachability.
Definition saitypes.h:1280
Segment Routing Hash-based Message Authentication Code Tag Length Value Format.
Definition saitypes.h:1037
sai_ip_addr_t addr
Definition saitypes.h:412
sai_ip_addr_t mask
Definition saitypes.h:429
sai_ip_addr_t addr
Definition saitypes.h:426
JSON data type "attributes": [ { "attribute_name": { "sai_metadata": { "sai_attr_value_type": "<SAI_A...
Definition saitypes.h:1120
sai_s8_list_t json
Definition saitypes.h:1122
uint32_t count
Definition saitypes.h:790
sai_map_t * list
Definition saitypes.h:793
sai_int32_t value
Definition saitypes.h:783
sai_uint32_t key
Definition saitypes.h:780
Defines a list of SAI object ids used as SAI attribute value.
Definition saitypes.h:164
Attribute data for SAI_PORT_ATTR_ERR_STATUS_LIST.
Definition saitypes.h:1325
sai_port_err_status_t * list
Definition saitypes.h:1330
Defines a port's lanes eye values list.
Definition saitypes.h:1155
Defines a port's lanes frequency offset ppm list.
Definition saitypes.h:1173
Defines a lane with its frequency offset ppm.
Definition saitypes.h:1164
Defines a lane with its eye values with the up and down values being in mV and left and right being i...
Definition saitypes.h:1130
Defines a port's lanes SNR list.
Definition saitypes.h:1194
Defines a lane with its SNR.
Definition saitypes.h:1185
sai_qos_map_t * list
Definition saitypes.h:773
Defines QOS map types.
Definition saitypes.h:724
sai_uint8_t mpls_exp
Definition saitypes.h:750
sai_packet_color_t color
Definition saitypes.h:747
sai_uint8_t dot1p
Definition saitypes.h:732
sai_queue_index_t queue_index
Egress port queue OID is not known at the time of map creation. Using queue index for maps.
Definition saitypes.h:744
sai_qos_map_params_t key
Definition saitypes.h:760
sai_qos_map_params_t value
Definition saitypes.h:763
Defines a s8 list or string.
Definition saitypes.h:321
List of Segment Routing segment entries.
Definition saitypes.h:1088
sai_ip6_t * list
Definition saitypes.h:1093
sai_stat_id_t stat_enum
Definition saitypes.h:1688
uint32_t stat_modes
Bit mask of supported statistics modes (sai_stats_mode_t)
Definition saitypes.h:1698
sai_health_data_type_t data_type
Definition saitypes.h:1731
System port configuration list.
Definition saitypes.h:1268
sai_system_port_config_t * list
Definition saitypes.h:1273
System port configuration attributes.
Definition saitypes.h:1243
uint32_t attached_core_port_index
Definition saitypes.h:1254
List of Segment Routing Tag Length Value entries.
Definition saitypes.h:1076
sai_tlv_t * list
Definition saitypes.h:1081
uint32_t count
Definition saitypes.h:1078
Segment Routing Tag Length Value entry.
Definition saitypes.h:1065
sai_tlv_entry_t entry
Definition saitypes.h:1069
Defines a vlan list data structure.
Definition saitypes.h:378
sai_vlan_id_t * list
Definition saitypes.h:383
uint32_t count
Definition saitypes.h:380
sai_object_list_t objlist
Definition saitypes.h:658
sai_ip_address_t ipaddr
Definition saitypes.h:661
ACL field data union.
Definition saitypes.h:532
sai_object_list_t objlist
Definition saitypes.h:574
sai_object_id_t oid
Definition saitypes.h:571
Field match mask.
Definition saitypes.h:491
sai_s16_list_t s16list
Definition saitypes.h:1413
sai_map_list_t maplist
Definition saitypes.h:1441
sai_qos_map_list_t qosmap
Definition saitypes.h:1438
sai_ip_prefix_t ipprefix
Definition saitypes.h:1392
sai_ip_address_t ipaddr
Definition saitypes.h:1389
sai_segment_list_t segmentlist
Definition saitypes.h:1473
sai_s32_list_t s32list
Definition saitypes.h:1423
sai_auth_key_t authkey
Definition saitypes.h:1488
sai_macsec_salt_t macsecsalt
Definition saitypes.h:1497
sai_system_port_config_list_t sysportconfiglist
Definition saitypes.h:1503
sai_timespec_t timespec
Definition saitypes.h:1482
sai_u32_list_t u32list
Definition saitypes.h:1416
sai_ip_address_list_t ipaddrlist
Definition saitypes.h:1476
sai_object_list_t objlist
Definition saitypes.h:1401
sai_acl_action_data_t aclaction
Definition saitypes.h:1455
sai_macsec_sak_t macsecsak
Definition saitypes.h:1491
sai_u16_range_list_t u16rangelist
Definition saitypes.h:1432
sai_port_err_status_list_t porterror
Definition saitypes.h:1509
sai_latch_status_t latchstatus
Definition saitypes.h:1515
sai_port_lane_latch_status_list_t portlanelatchstatuslist
Definition saitypes.h:1512
sai_acl_resource_list_t aclresource
Definition saitypes.h:1467
sai_encrypt_key_t encrypt_key
Definition saitypes.h:1485
sai_s8_list_t s8list
Definition saitypes.h:1407
sai_port_frequency_offset_ppm_list_t portfrequencyoffsetppmlist
Definition saitypes.h:1527
sai_u32_range_t u32range
Definition saitypes.h:1426
sai_port_eye_values_list_t porteyevalues
Definition saitypes.h:1479
sai_object_id_t oid
Definition saitypes.h:1398
sai_macsec_auth_key_t macsecauthkey
Definition saitypes.h:1494
sai_prbs_rx_state_t rx_state
Definition saitypes.h:1395
sai_vlan_list_t vlanlist
Definition saitypes.h:1435
sai_acl_capability_t aclcapability
Definition saitypes.h:1464
sai_u8_list_t u8list
Definition saitypes.h:1404
sai_acl_field_data_t aclfield
Definition saitypes.h:1449
sai_s32_range_t s32range
Definition saitypes.h:1429
sai_port_snr_list_t portsnrlist
Definition saitypes.h:1530
sai_system_port_config_t sysportconfig
Definition saitypes.h:1500
sai_acl_field_data_mask_t aclmask
Definition saitypes.h:1461
sai_fabric_port_reachability_t reachability
Definition saitypes.h:1506
sai_ip_prefix_list_t ipprefixlist
Definition saitypes.h:1521
sai_acl_chain_list_t aclchainlist
Definition saitypes.h:1524
sai_pointer_t ptr
Definition saitypes.h:1377
sai_u16_list_t u16list
Definition saitypes.h:1410
sai_tlv_list_t tlvlist
Definition saitypes.h:1470
sai_ip4_t ip4
Definition saitypes.h:401
sai_ip6_t ip6
Definition saitypes.h:404
Definition saitypes.h:1047
sai_ip6_t ingress_node
Definition saitypes.h:1049
sai_uint32_t opaque_container[4]
Definition saitypes.h:1055
sai_ip6_t egress_node
Definition saitypes.h:1052
sai_hmac_t hmac
Definition saitypes.h:1058