SAI Metadata
Loading...
Searching...
No Matches
saisrv6.h
Go to the documentation of this file.
1
25#if !defined (__SAISRV6_H_)
26#define __SAISRV6_H_
27
28#include <saitypes.h>
29
40{
43
46
49
52
55
57
62{
65
68
71
74
77
80
83
86
89
92
95
98
101
104
107
110
112
117{
120
123
126
129
132
135
138
141
143
148{
153
161
170
179
190
195
198
202
207{
210
214
225typedef sai_status_t (*sai_create_srv6_sidlist_fn)(
226 _Out_ sai_object_id_t *srv6_sidlist_id,
227 _In_ sai_object_id_t switch_id,
228 _In_ uint32_t attr_count,
229 _In_ const sai_attribute_t *attr_list);
230
238typedef sai_status_t (*sai_remove_srv6_sidlist_fn)(
239 _In_ sai_object_id_t srv6_sidlist_id);
240
249typedef sai_status_t (*sai_set_srv6_sidlist_attribute_fn)(
250 _In_ sai_object_id_t srv6_sidlist_id,
251 _In_ const sai_attribute_t *attr);
252
262typedef sai_status_t (*sai_get_srv6_sidlist_attribute_fn)(
263 _In_ sai_object_id_t srv6_sidlist_id,
264 _In_ uint32_t attr_count,
265 _Inout_ sai_attribute_t *attr_list);
266
277typedef sai_status_t (*sai_get_srv6_sidlist_stats_fn)(
278 _In_ sai_object_id_t srv6_sidlist_id,
279 _In_ uint32_t number_of_counters,
280 _In_ const sai_stat_id_t *counter_ids,
281 _Out_ uint64_t *counters);
282
294typedef sai_status_t (*sai_get_srv6_sidlist_stats_ext_fn)(
295 _In_ sai_object_id_t srv6_sidlist_id,
296 _In_ uint32_t number_of_counters,
297 _In_ const sai_stat_id_t *counter_ids,
298 _In_ sai_stats_mode_t mode,
299 _Out_ uint64_t *counters);
300
310typedef sai_status_t (*sai_clear_srv6_sidlist_stats_fn)(
311 _In_ sai_object_id_t srv6_sidlist_id,
312 _In_ uint32_t number_of_counters,
313 _In_ const sai_stat_id_t *counter_ids);
314
319{
324
332
342
351
360
372
384
396
409
414
417
420
422
427{
433 sai_object_id_t switch_id;
434
440 sai_object_id_t vr_id;
441
445 sai_uint8_t locator_block_len;
446
450 sai_uint8_t locator_node_len;
451
455 sai_uint8_t function_len;
456
460 sai_uint8_t args_len;
461
465 sai_ip6_t sid;
466
468
478typedef sai_status_t (*sai_create_my_sid_entry_fn)(
479 _In_ const sai_my_sid_entry_t *my_sid_entry,
480 _In_ uint32_t attr_count,
481 _In_ const sai_attribute_t *attr_list);
482
490typedef sai_status_t (*sai_remove_my_sid_entry_fn)(
491 _In_ const sai_my_sid_entry_t *my_sid_entry);
492
501typedef sai_status_t (*sai_set_my_sid_entry_attribute_fn)(
502 _In_ const sai_my_sid_entry_t *my_sid_entry,
503 _In_ const sai_attribute_t *attr);
504
514typedef sai_status_t (*sai_get_my_sid_entry_attribute_fn)(
515 _In_ const sai_my_sid_entry_t *my_sid_entry,
516 _In_ uint32_t attr_count,
517 _Inout_ sai_attribute_t *attr_list);
518
536typedef sai_status_t (*sai_bulk_create_my_sid_entry_fn)(
537 _In_ uint32_t object_count,
538 _In_ const sai_my_sid_entry_t *my_sid_entry,
539 _In_ const uint32_t *attr_count,
540 _In_ const sai_attribute_t **attr_list,
541 _In_ sai_bulk_op_error_mode_t mode,
542 _Out_ sai_status_t *object_statuses);
543
558typedef sai_status_t (*sai_bulk_remove_my_sid_entry_fn)(
559 _In_ uint32_t object_count,
560 _In_ const sai_my_sid_entry_t *my_sid_entry,
561 _In_ sai_bulk_op_error_mode_t mode,
562 _Out_ sai_status_t *object_statuses);
563
580 _In_ uint32_t object_count,
581 _In_ const sai_my_sid_entry_t *my_sid_entry,
582 _In_ const sai_attribute_t *attr_list,
583 _In_ sai_bulk_op_error_mode_t mode,
584 _Out_ sai_status_t *object_statuses);
585
604 _In_ uint32_t object_count,
605 _In_ const sai_my_sid_entry_t *my_sid_entry,
606 _In_ const uint32_t *attr_count,
607 _Inout_ sai_attribute_t **attr_list,
608 _In_ sai_bulk_op_error_mode_t mode,
609 _Out_ sai_status_t *object_statuses);
610
614typedef struct _sai_srv6_api_t
615{
616 sai_create_srv6_sidlist_fn create_srv6_sidlist;
617 sai_remove_srv6_sidlist_fn remove_srv6_sidlist;
618 sai_set_srv6_sidlist_attribute_fn set_srv6_sidlist_attribute;
619 sai_get_srv6_sidlist_attribute_fn get_srv6_sidlist_attribute;
620 sai_bulk_object_create_fn create_srv6_sidlists;
621 sai_bulk_object_remove_fn remove_srv6_sidlists;
622
623 sai_get_srv6_sidlist_stats_fn get_srv6_sidlist_stats;
624 sai_get_srv6_sidlist_stats_ext_fn get_srv6_sidlist_stats_ext;
625 sai_clear_srv6_sidlist_stats_fn clear_srv6_sidlist_stats;
626
627 sai_create_my_sid_entry_fn create_my_sid_entry;
628 sai_remove_my_sid_entry_fn remove_my_sid_entry;
629 sai_set_my_sid_entry_attribute_fn set_my_sid_entry_attribute;
630 sai_get_my_sid_entry_attribute_fn get_my_sid_entry_attribute;
631
632 sai_bulk_create_my_sid_entry_fn create_my_sid_entries;
633 sai_bulk_remove_my_sid_entry_fn remove_my_sid_entries;
634 sai_bulk_set_my_sid_entry_attribute_fn set_my_sid_entries_attribute;
635 sai_bulk_get_my_sid_entry_attribute_fn get_my_sid_entries_attribute;
636
638
642#endif
struct _sai_srv6_api_t sai_srv6_api_t
SRV6 methods table retrieved with sai_api_query()
enum _sai_my_sid_entry_endpoint_behavior_t sai_my_sid_entry_endpoint_behavior_t
Enum defining Endpoint Behavior.
enum _sai_srv6_sidlist_stat_t sai_srv6_sidlist_stat_t
SRV6 SID List counter IDs.
sai_status_t(* sai_bulk_get_my_sid_entry_attribute_fn)(_In_ uint32_t object_count, _In_ const sai_my_sid_entry_t *my_sid_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)
Bulk get attribute on My SID entry.
Definition saisrv6.h:603
sai_status_t(* sai_remove_srv6_sidlist_fn)(_In_ sai_object_id_t srv6_sidlist_id)
Remove Segment ID List.
Definition saisrv6.h:238
_sai_my_sid_entry_endpoint_behavior_t
Enum defining Endpoint Behavior.
Definition saisrv6.h:62
sai_status_t(* sai_get_srv6_sidlist_stats_fn)(_In_ sai_object_id_t srv6_sidlist_id, _In_ uint32_t number_of_counters, _In_ const sai_stat_id_t *counter_ids, _Out_ uint64_t *counters)
Get SRV6 SID List statistics counters. Deprecated for backward compatibility.
Definition saisrv6.h:277
_sai_my_sid_entry_endpoint_behavior_flavor_t
Enum defining Endpoint Behavior flavors for End, End.X and End.T functions.
Definition saisrv6.h:117
enum _sai_my_sid_entry_endpoint_behavior_flavor_t sai_my_sid_entry_endpoint_behavior_flavor_t
Enum defining Endpoint Behavior flavors for End, End.X and End.T functions.
_sai_srv6_sidlist_stat_t
SRV6 SID List counter IDs.
Definition saisrv6.h:207
sai_status_t(* sai_bulk_set_my_sid_entry_attribute_fn)(_In_ uint32_t object_count, _In_ const sai_my_sid_entry_t *my_sid_entry, _In_ const sai_attribute_t *attr_list, _In_ sai_bulk_op_error_mode_t mode, _Out_ sai_status_t *object_statuses)
Bulk set attribute on My SID entry.
Definition saisrv6.h:579
sai_status_t(* sai_get_srv6_sidlist_stats_ext_fn)(_In_ sai_object_id_t srv6_sidlist_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)
Get SRV6 SID List statistics counters extended.
Definition saisrv6.h:294
sai_status_t(* sai_bulk_remove_my_sid_entry_fn)(_In_ uint32_t object_count, _In_ const sai_my_sid_entry_t *my_sid_entry, _In_ sai_bulk_op_error_mode_t mode, _Out_ sai_status_t *object_statuses)
Bulk remove My SID entries.
Definition saisrv6.h:558
sai_status_t(* sai_get_my_sid_entry_attribute_fn)(_In_ const sai_my_sid_entry_t *my_sid_entry, _In_ uint32_t attr_count, _Inout_ sai_attribute_t *attr_list)
My SID attribute value.
Definition saisrv6.h:514
enum _sai_my_sid_entry_attr_t sai_my_sid_entry_attr_t
Attribute list for My SID.
enum _sai_srv6_sidlist_attr_t sai_srv6_sidlist_attr_t
Attribute data for SRV6 SID List Entry.
enum _sai_srv6_sidlist_type_t sai_srv6_sidlist_type_t
Enum defining Head-end Behavior.
sai_status_t(* sai_remove_my_sid_entry_fn)(_In_ const sai_my_sid_entry_t *my_sid_entry)
Remove My SID entry.
Definition saisrv6.h:490
sai_status_t(* sai_clear_srv6_sidlist_stats_fn)(_In_ sai_object_id_t srv6_sidlist_id, _In_ uint32_t number_of_counters, _In_ const sai_stat_id_t *counter_ids)
Clear SRV6 SID List statistics counters.
Definition saisrv6.h:310
_sai_srv6_sidlist_attr_t
Attribute data for SRV6 SID List Entry.
Definition saisrv6.h:148
sai_status_t(* sai_get_srv6_sidlist_attribute_fn)(_In_ sai_object_id_t srv6_sidlist_id, _In_ uint32_t attr_count, _Inout_ sai_attribute_t *attr_list)
Get Segment ID List attribute value.
Definition saisrv6.h:262
struct _sai_my_sid_entry_t sai_my_sid_entry_t
My SID Entry.
sai_status_t(* sai_create_srv6_sidlist_fn)(_Out_ sai_object_id_t *srv6_sidlist_id, _In_ sai_object_id_t switch_id, _In_ uint32_t attr_count, _In_ const sai_attribute_t *attr_list)
Create Segment ID List.
Definition saisrv6.h:225
sai_status_t(* sai_create_my_sid_entry_fn)(_In_ const sai_my_sid_entry_t *my_sid_entry, _In_ uint32_t attr_count, _In_ const sai_attribute_t *attr_list)
Create My SID entry.
Definition saisrv6.h:478
sai_status_t(* sai_bulk_create_my_sid_entry_fn)(_In_ uint32_t object_count, _In_ const sai_my_sid_entry_t *my_sid_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)
Bulk create My SID entries.
Definition saisrv6.h:536
_sai_my_sid_entry_attr_t
Attribute list for My SID.
Definition saisrv6.h:319
_sai_srv6_sidlist_type_t
Enum defining Head-end Behavior.
Definition saisrv6.h:40
sai_status_t(* sai_set_my_sid_entry_attribute_fn)(_In_ const sai_my_sid_entry_t *my_sid_entry, _In_ const sai_attribute_t *attr)
Set My SID attribute value.
Definition saisrv6.h:501
sai_status_t(* sai_set_srv6_sidlist_attribute_fn)(_In_ sai_object_id_t srv6_sidlist_id, _In_ const sai_attribute_t *attr)
Set Segment ID List attribute value.
Definition saisrv6.h:249
@ SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_T
Definition saisrv6.h:70
@ SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_CUSTOM_RANGE_END
Definition saisrv6.h:109
@ SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_B6_INSERT_RED
Definition saisrv6.h:97
@ SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_B6_ENCAPS
Definition saisrv6.h:88
@ SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_UN
Definition saisrv6.h:100
@ SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_B6_ENCAPS_RED
Definition saisrv6.h:91
@ SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_UA
Definition saisrv6.h:103
@ SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_B6_INSERT
Definition saisrv6.h:94
@ SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_E
Definition saisrv6.h:64
@ SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_DT46
Definition saisrv6.h:85
@ SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_X
Definition saisrv6.h:67
@ SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_DT4
Definition saisrv6.h:82
@ SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_DT6
Definition saisrv6.h:79
@ SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_DX6
Definition saisrv6.h:73
@ SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_DX4
Definition saisrv6.h:76
@ SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_CUSTOM_RANGE_START
Definition saisrv6.h:106
@ SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_FLAVOR_PSP_AND_USD
Definition saisrv6.h:137
@ SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_FLAVOR_USP
Definition saisrv6.h:125
@ SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_FLAVOR_PSP
Definition saisrv6.h:122
@ SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_FLAVOR_PSP_AND_USP_AND_USD
Definition saisrv6.h:140
@ SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_FLAVOR_PSP_AND_USP
Definition saisrv6.h:131
@ SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_FLAVOR_USD
Definition saisrv6.h:128
@ SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_FLAVOR_USD_AND_USP
Definition saisrv6.h:134
@ SAI_MY_SID_ENTRY_ENDPOINT_BEHAVIOR_FLAVOR_NONE
Definition saisrv6.h:119
@ SAI_SRV6_SIDLIST_STAT_OUT_OCTETS
Definition saisrv6.h:212
@ SAI_SRV6_SIDLIST_STAT_OUT_PACKETS
Definition saisrv6.h:209
@ SAI_SRV6_SIDLIST_ATTR_SEGMENT_LIST
List of Segments for Source / Transit.
Definition saisrv6.h:178
@ SAI_SRV6_SIDLIST_ATTR_END
End of attributes.
Definition saisrv6.h:194
@ SAI_SRV6_SIDLIST_ATTR_CUSTOM_RANGE_END
Definition saisrv6.h:200
@ SAI_SRV6_SIDLIST_ATTR_CUSTOM_RANGE_START
Definition saisrv6.h:197
@ SAI_SRV6_SIDLIST_ATTR_TYPE
Transit or Source Type.
Definition saisrv6.h:160
@ SAI_SRV6_SIDLIST_ATTR_TLV_LIST
List of Type Length Values for Source.
Definition saisrv6.h:169
@ SAI_SRV6_SIDLIST_ATTR_NEXT_HOP_ID
Underlay Next hop to use.
Definition saisrv6.h:189
@ SAI_SRV6_SIDLIST_ATTR_START
Start of attributes.
Definition saisrv6.h:152
@ SAI_MY_SID_ENTRY_ATTR_END
End of attributes.
Definition saisrv6.h:413
@ SAI_MY_SID_ENTRY_ATTR_COUNTER_ID
Attach a counter.
Definition saisrv6.h:408
@ SAI_MY_SID_ENTRY_ATTR_ENDPOINT_BEHAVIOR_FLAVOR
Flavor for End, End.X and End.T functions.
Definition saisrv6.h:341
@ SAI_MY_SID_ENTRY_ATTR_PACKET_ACTION
Packet action.
Definition saisrv6.h:350
@ SAI_MY_SID_ENTRY_ATTR_CUSTOM_RANGE_END
Definition saisrv6.h:419
@ SAI_MY_SID_ENTRY_ATTR_ENDPOINT_BEHAVIOR
Endpoint Function.
Definition saisrv6.h:331
@ SAI_MY_SID_ENTRY_ATTR_CUSTOM_RANGE_START
Definition saisrv6.h:416
@ SAI_MY_SID_ENTRY_ATTR_TRAP_PRIORITY
Packet priority for trap/log actions.
Definition saisrv6.h:359
@ SAI_MY_SID_ENTRY_ATTR_NEXT_HOP_ID
Next hop for cross-connect functions.
Definition saisrv6.h:371
@ SAI_MY_SID_ENTRY_ATTR_TUNNEL_ID
Tunnel id for decapsulation.
Definition saisrv6.h:383
@ SAI_MY_SID_ENTRY_ATTR_VRF
VRF for decapsulation and specific table lookup functions.
Definition saisrv6.h:395
@ SAI_MY_SID_ENTRY_ATTR_START
Start of attributes.
Definition saisrv6.h:323
@ SAI_SRV6_SIDLIST_TYPE_ENCAPS
Definition saisrv6.h:48
@ SAI_SRV6_SIDLIST_TYPE_ENCAPS_RED
Definition saisrv6.h:51
@ SAI_SRV6_SIDLIST_TYPE_CUSTOM_RANGE_BASE
Definition saisrv6.h:54
@ SAI_SRV6_SIDLIST_TYPE_INSERT_RED
Definition saisrv6.h:45
@ SAI_SRV6_SIDLIST_TYPE_INSERT
Definition saisrv6.h:42
enum _sai_stats_mode_t sai_stats_mode_t
SAI statistics modes.
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
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
This module defines SAI portable types.
My SID Entry.
Definition saisrv6.h:427
sai_uint8_t locator_node_len
Length of the Locator Node part of the SID.
Definition saisrv6.h:450
sai_uint8_t function_len
Length of the Function part of the SID.
Definition saisrv6.h:455
sai_object_id_t vr_id
Virtual Router ID.
Definition saisrv6.h:440
sai_uint8_t args_len
Length of the Args part of the SID.
Definition saisrv6.h:460
sai_uint8_t locator_block_len
Length of the Locator Block part of the SID.
Definition saisrv6.h:445
sai_ip6_t sid
IPv6 Address for My SID.
Definition saisrv6.h:465
sai_object_id_t switch_id
Switch ID.
Definition saisrv6.h:433
SRV6 methods table retrieved with sai_api_query()
Definition saisrv6.h:615