SAI Metadata
Loading...
Searching...
No Matches
sainexthopgroup.h
Go to the documentation of this file.
1
25#if !defined (__SAINEXTHOPGROUP_H_)
26#define __SAINEXTHOPGROUP_H_
27
28#include <saitypes.h>
29
40{
43
46
49
52
55
58
59 /* Other types of next hop group to be defined in the future, e.g., WCMP */
60
62
67{
70
73
75
80{
83
86
88
93{
98
106
115
124
134
147
161
174
186
199
210
218
226
234
239
242
245
247
249{
254
263
272
284
295
305
323
337
351
364
375
380
383
386
387} sai_next_hop_group_member_attr_t;
388
390{
393
394} sai_next_hop_group_map_type_t;
395
397{
402
410
419
424
427
430
431} sai_next_hop_group_map_attr_t;
432
443typedef sai_status_t (*sai_create_next_hop_group_fn)(
444 _Out_ sai_object_id_t *next_hop_group_id,
445 _In_ sai_object_id_t switch_id,
446 _In_ uint32_t attr_count,
447 _In_ const sai_attribute_t *attr_list);
448
456typedef sai_status_t (*sai_remove_next_hop_group_fn)(
457 _In_ sai_object_id_t next_hop_group_id);
458
468 _In_ sai_object_id_t next_hop_group_id,
469 _In_ const sai_attribute_t *attr);
470
481 _In_ sai_object_id_t next_hop_group_id,
482 _In_ uint32_t attr_count,
483 _Inout_ sai_attribute_t *attr_list);
484
496 _Out_ sai_object_id_t *next_hop_group_member_id,
497 _In_ sai_object_id_t switch_id,
498 _In_ uint32_t attr_count,
499 _In_ const sai_attribute_t *attr_list);
500
509 _In_ sai_object_id_t next_hop_group_member_id);
510
520 _In_ sai_object_id_t next_hop_group_member_id,
521 _In_ const sai_attribute_t *attr);
522
533 _In_ sai_object_id_t next_hop_group_member_id,
534 _In_ uint32_t attr_count,
535 _Inout_ sai_attribute_t *attr_list);
536
547typedef sai_status_t (*sai_create_next_hop_group_map_fn)(
548 _Out_ sai_object_id_t *next_hop_group_map_id,
549 _In_ sai_object_id_t switch_id,
550 _In_ uint32_t attr_count,
551 _In_ const sai_attribute_t *attr_list);
552
560typedef sai_status_t (*sai_remove_next_hop_group_map_fn)(
561 _In_ sai_object_id_t next_hop_group_map_id);
562
572 _In_ sai_object_id_t next_hop_group_map_id,
573 _In_ const sai_attribute_t *attr);
574
585 _In_ sai_object_id_t next_hop_group_map_id,
586 _In_ uint32_t attr_count,
587 _Inout_ sai_attribute_t *attr_list);
588
593{
594 sai_create_next_hop_group_fn create_next_hop_group;
595 sai_remove_next_hop_group_fn remove_next_hop_group;
596 sai_set_next_hop_group_attribute_fn set_next_hop_group_attribute;
597 sai_get_next_hop_group_attribute_fn get_next_hop_group_attribute;
598 sai_create_next_hop_group_member_fn create_next_hop_group_member;
599 sai_remove_next_hop_group_member_fn remove_next_hop_group_member;
600 sai_set_next_hop_group_member_attribute_fn set_next_hop_group_member_attribute;
601 sai_get_next_hop_group_member_attribute_fn get_next_hop_group_member_attribute;
602 sai_bulk_object_create_fn create_next_hop_group_members;
603 sai_bulk_object_remove_fn remove_next_hop_group_members;
604 sai_create_next_hop_group_map_fn create_next_hop_group_map;
605 sai_remove_next_hop_group_map_fn remove_next_hop_group_map;
606 sai_set_next_hop_group_map_attribute_fn set_next_hop_group_map_attribute;
607 sai_get_next_hop_group_map_attribute_fn get_next_hop_group_map_attribute;
608 sai_bulk_object_set_attribute_fn set_next_hop_group_members_attribute;
609 sai_bulk_object_get_attribute_fn get_next_hop_group_members_attribute;
611
615#endif
struct _sai_next_hop_group_api_t sai_next_hop_group_api_t
Next Hop methods table retrieved with sai_api_query()
sai_status_t(* sai_remove_next_hop_group_map_fn)(_In_ sai_object_id_t next_hop_group_map_id)
Remove next hop group map.
sai_status_t(* sai_get_next_hop_group_attribute_fn)(_In_ sai_object_id_t next_hop_group_id, _In_ uint32_t attr_count, _Inout_ sai_attribute_t *attr_list)
Get Next Hop Group attribute.
sai_status_t(* sai_set_next_hop_group_attribute_fn)(_In_ sai_object_id_t next_hop_group_id, _In_ const sai_attribute_t *attr)
Set Next Hop Group attribute.
sai_status_t(* sai_create_next_hop_group_fn)(_Out_ sai_object_id_t *next_hop_group_id, _In_ sai_object_id_t switch_id, _In_ uint32_t attr_count, _In_ const sai_attribute_t *attr_list)
Create next hop group.
sai_status_t(* sai_remove_next_hop_group_member_fn)(_In_ sai_object_id_t next_hop_group_member_id)
Remove next hop group member.
sai_status_t(* sai_remove_next_hop_group_fn)(_In_ sai_object_id_t next_hop_group_id)
Remove next hop group.
sai_status_t(* sai_create_next_hop_group_map_fn)(_Out_ sai_object_id_t *next_hop_group_map_id, _In_ sai_object_id_t switch_id, _In_ uint32_t attr_count, _In_ const sai_attribute_t *attr_list)
Create next hop group map.
_sai_next_hop_group_type_t
Next hop group type.
enum _sai_next_hop_group_attr_t sai_next_hop_group_attr_t
Attribute id for next hop.
_sai_next_hop_group_map_attr_t
sai_status_t(* sai_set_next_hop_group_map_attribute_fn)(_In_ sai_object_id_t next_hop_group_map_id, _In_ const sai_attribute_t *attr)
Set Next Hop Group map attribute.
enum _sai_next_hop_group_member_observed_role_t sai_next_hop_group_member_observed_role_t
Next hop group member observed role.
_sai_next_hop_group_member_observed_role_t
Next hop group member observed role.
sai_status_t(* sai_get_next_hop_group_map_attribute_fn)(_In_ sai_object_id_t next_hop_group_map_id, _In_ uint32_t attr_count, _Inout_ sai_attribute_t *attr_list)
Get next hop group map attribute.
_sai_next_hop_group_attr_t
Attribute id for next hop.
_sai_next_hop_group_map_type_t
sai_status_t(* sai_set_next_hop_group_member_attribute_fn)(_In_ sai_object_id_t next_hop_group_member_id, _In_ const sai_attribute_t *attr)
Set Next Hop Group member attribute.
_sai_next_hop_group_member_attr_t
enum _sai_next_hop_group_type_t sai_next_hop_group_type_t
Next hop group type.
sai_status_t(* sai_create_next_hop_group_member_fn)(_Out_ sai_object_id_t *next_hop_group_member_id, _In_ sai_object_id_t switch_id, _In_ uint32_t attr_count, _In_ const sai_attribute_t *attr_list)
Create next hop group member.
_sai_next_hop_group_member_configured_role_t
Next hop group member configured protection role.
sai_status_t(* sai_get_next_hop_group_member_attribute_fn)(_In_ sai_object_id_t next_hop_group_member_id, _In_ uint32_t attr_count, _Inout_ sai_attribute_t *attr_list)
Get Next Hop Group member attribute.
enum _sai_next_hop_group_member_configured_role_t sai_next_hop_group_member_configured_role_t
Next hop group member configured protection role.
@ SAI_NEXT_HOP_GROUP_TYPE_FINE_GRAIN_ECMP
@ SAI_NEXT_HOP_GROUP_TYPE_DYNAMIC_ORDERED_ECMP
@ SAI_NEXT_HOP_GROUP_TYPE_PROTECTION
@ SAI_NEXT_HOP_GROUP_TYPE_DYNAMIC_UNORDERED_ECMP
@ SAI_NEXT_HOP_GROUP_TYPE_CLASS_BASED
@ SAI_NEXT_HOP_GROUP_TYPE_ECMP
@ SAI_NEXT_HOP_GROUP_MAP_ATTR_END
End of attributes.
@ SAI_NEXT_HOP_GROUP_MAP_ATTR_CUSTOM_RANGE_START
@ SAI_NEXT_HOP_GROUP_MAP_ATTR_CUSTOM_RANGE_END
@ SAI_NEXT_HOP_GROUP_MAP_ATTR_MAP_TO_VALUE_LIST
Next hop group entries associated with this map.
@ SAI_NEXT_HOP_GROUP_MAP_ATTR_START
Start of attributes.
@ SAI_NEXT_HOP_GROUP_MAP_ATTR_TYPE
Next hop group map type.
@ SAI_NEXT_HOP_GROUP_MEMBER_OBSERVED_ROLE_ACTIVE
@ SAI_NEXT_HOP_GROUP_MEMBER_OBSERVED_ROLE_INACTIVE
@ SAI_NEXT_HOP_GROUP_ATTR_ARS_NEXT_HOP_REASSIGNMENTS
Number of ARS next hop reassignments done.
@ SAI_NEXT_HOP_GROUP_ATTR_SET_SWITCHOVER
Trigger a switch-over from primary to backup next hop.
@ SAI_NEXT_HOP_GROUP_ATTR_HIERARCHICAL_NEXTHOP
Hierarchical next hop group level. true: Nexthop group consists of tunnel and IP nexthop false: Nexth...
@ SAI_NEXT_HOP_GROUP_ATTR_REAL_SIZE
Real group size.
@ SAI_NEXT_HOP_GROUP_ATTR_NEXT_HOP_MEMBER_LIST
Next hop member list.
@ SAI_NEXT_HOP_GROUP_ATTR_TYPE
Next hop group type.
@ SAI_NEXT_HOP_GROUP_ATTR_CONFIGURED_SIZE
Configured group size.
@ SAI_NEXT_HOP_GROUP_ATTR_CUSTOM_RANGE_END
@ SAI_NEXT_HOP_GROUP_ATTR_ARS_OBJECT_ID
Adaptive routing and switching object for this group.
@ SAI_NEXT_HOP_GROUP_ATTR_START
Start of attributes.
@ SAI_NEXT_HOP_GROUP_ATTR_ARS_PACKET_DROPS
Number of packets dropped by ARS mechanism.
@ SAI_NEXT_HOP_GROUP_ATTR_END
End of attributes.
@ SAI_NEXT_HOP_GROUP_ATTR_COUNTER_ID
Attach a counter.
@ SAI_NEXT_HOP_GROUP_ATTR_SELECTION_MAP
Next hop group selection map.
@ SAI_NEXT_HOP_GROUP_ATTR_CUSTOM_RANGE_START
@ SAI_NEXT_HOP_GROUP_ATTR_ARS_PORT_REASSIGNMENTS
Number of ARS port reassignments done.
@ SAI_NEXT_HOP_GROUP_ATTR_NEXT_HOP_COUNT
Number of next hops in the group.
@ SAI_NEXT_HOP_GROUP_MAP_TYPE_FORWARDING_CLASS_TO_INDEX
@ SAI_NEXT_HOP_GROUP_MEMBER_ATTR_NEXT_HOP_GROUP_ID
Next hop group id.
@ SAI_NEXT_HOP_GROUP_MEMBER_ATTR_WEIGHT
Member weights.
@ SAI_NEXT_HOP_GROUP_MEMBER_ATTR_NEXT_HOP_ID
Next hop id.
@ SAI_NEXT_HOP_GROUP_MEMBER_ATTR_SEQUENCE_ID
Object's sequence ID for enforcing the members' order.
@ SAI_NEXT_HOP_GROUP_MEMBER_ATTR_OBSERVED_ROLE
The actual role in protection group.
@ SAI_NEXT_HOP_GROUP_MEMBER_ATTR_ARS_ALTERNATE_PATH
Next hop group member is part of primary or alternate path set false: Next hop group member is part o...
@ SAI_NEXT_HOP_GROUP_MEMBER_ATTR_INDEX
Object index in the fine grain ECMP table.
@ SAI_NEXT_HOP_GROUP_MEMBER_ATTR_COUNTER_ID
Attach a counter.
@ SAI_NEXT_HOP_GROUP_MEMBER_ATTR_START
Start of attributes.
@ SAI_NEXT_HOP_GROUP_MEMBER_ATTR_END
End of attributes.
@ SAI_NEXT_HOP_GROUP_MEMBER_ATTR_MONITORED_OBJECT
The object to be monitored for this next hop.
@ SAI_NEXT_HOP_GROUP_MEMBER_ATTR_CUSTOM_RANGE_START
@ SAI_NEXT_HOP_GROUP_MEMBER_ATTR_CUSTOM_RANGE_END
@ SAI_NEXT_HOP_GROUP_MEMBER_ATTR_CONFIGURED_ROLE
Configured role in the protection group.
@ SAI_NEXT_HOP_GROUP_MEMBER_CONFIGURED_ROLE_PRIMARY
@ SAI_NEXT_HOP_GROUP_MEMBER_CONFIGURED_ROLE_STANDBY
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
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
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
This module defines SAI portable types.
Next Hop methods table retrieved with sai_api_query()