SAI Metadata
Loading...
Searching...
No Matches
saivlan.h
Go to the documentation of this file.
1
25#if !defined (__SAIVLAN_H_)
26#define __SAIVLAN_H_
27
28#include <saitypes.h>
29
39#define SAI_VLAN_COUNTER_SET_DEFAULT 0
40
45{
46 SAI_VLAN_TAGGING_MODE_UNTAGGED,
47
48 SAI_VLAN_TAGGING_MODE_TAGGED,
49
50 SAI_VLAN_TAGGING_MODE_PRIORITY_TAGGED
51
53
58{
59 SAI_VLAN_MCAST_LOOKUP_KEY_TYPE_MAC_DA,
60
61 SAI_VLAN_MCAST_LOOKUP_KEY_TYPE_XG,
62
63 SAI_VLAN_MCAST_LOOKUP_KEY_TYPE_SG,
64
65 SAI_VLAN_MCAST_LOOKUP_KEY_TYPE_XG_AND_SG
66
68
74{
83
86
89
97
99
105{
110
119
128
139
151
164
173
182
201
218
235
253
269
285
296
305
324
333
352
361
380
392
402
407
410
413
415
420{
425
434
445
454
459
462
465
467
472{
473 SAI_VLAN_STAT_IN_OCTETS,
474 SAI_VLAN_STAT_IN_PACKETS,
475 SAI_VLAN_STAT_IN_UCAST_PKTS,
476 SAI_VLAN_STAT_IN_NON_UCAST_PKTS,
477 SAI_VLAN_STAT_IN_DISCARDS,
478 SAI_VLAN_STAT_IN_ERRORS,
479 SAI_VLAN_STAT_IN_UNKNOWN_PROTOS,
480 SAI_VLAN_STAT_OUT_OCTETS,
481 SAI_VLAN_STAT_OUT_PACKETS,
482 SAI_VLAN_STAT_OUT_UCAST_PKTS,
483 SAI_VLAN_STAT_OUT_NON_UCAST_PKTS,
484 SAI_VLAN_STAT_OUT_DISCARDS,
485 SAI_VLAN_STAT_OUT_ERRORS,
486 SAI_VLAN_STAT_OUT_QLEN
487
489
500typedef sai_status_t (*sai_create_vlan_fn)(
501 _Out_ sai_object_id_t *vlan_id,
502 _In_ sai_object_id_t switch_id,
503 _In_ uint32_t attr_count,
504 _In_ const sai_attribute_t *attr_list);
505
513typedef sai_status_t (*sai_remove_vlan_fn)(
514 _In_ sai_object_id_t vlan_id);
515
524typedef sai_status_t (*sai_set_vlan_attribute_fn)(
525 _In_ sai_object_id_t vlan_id,
526 _In_ const sai_attribute_t *attr);
527
537typedef sai_status_t (*sai_get_vlan_attribute_fn)(
538 _In_ sai_object_id_t vlan_id,
539 _In_ uint32_t attr_count,
540 _Inout_ sai_attribute_t *attr_list);
541
552typedef sai_status_t (*sai_create_vlan_member_fn)(
553 _Out_ sai_object_id_t *vlan_member_id,
554 _In_ sai_object_id_t switch_id,
555 _In_ uint32_t attr_count,
556 _In_ const sai_attribute_t *attr_list);
557
565typedef sai_status_t (*sai_remove_vlan_member_fn)(
566 _In_ sai_object_id_t vlan_member_id);
567
576typedef sai_status_t (*sai_set_vlan_member_attribute_fn)(
577 _In_ sai_object_id_t vlan_member_id,
578 _In_ const sai_attribute_t *attr);
579
589typedef sai_status_t (*sai_get_vlan_member_attribute_fn)(
590 _In_ sai_object_id_t vlan_member_id,
591 _In_ uint32_t attr_count,
592 _Inout_ sai_attribute_t *attr_list);
593
604typedef sai_status_t (*sai_get_vlan_stats_fn)(
605 _In_ sai_object_id_t vlan_id,
606 _In_ uint32_t number_of_counters,
607 _In_ const sai_stat_id_t *counter_ids,
608 _Out_ uint64_t *counters);
609
621typedef sai_status_t (*sai_get_vlan_stats_ext_fn)(
622 _In_ sai_object_id_t vlan_id,
623 _In_ uint32_t number_of_counters,
624 _In_ const sai_stat_id_t *counter_ids,
625 _In_ sai_stats_mode_t mode,
626 _Out_ uint64_t *counters);
627
637typedef sai_status_t (*sai_clear_vlan_stats_fn)(
638 _In_ sai_object_id_t vlan_id,
639 _In_ uint32_t number_of_counters,
640 _In_ const sai_stat_id_t *counter_ids);
641
645typedef struct _sai_vlan_api_t
646{
647 sai_create_vlan_fn create_vlan;
648 sai_remove_vlan_fn remove_vlan;
649 sai_set_vlan_attribute_fn set_vlan_attribute;
650 sai_get_vlan_attribute_fn get_vlan_attribute;
651 sai_create_vlan_member_fn create_vlan_member;
652 sai_remove_vlan_member_fn remove_vlan_member;
653 sai_set_vlan_member_attribute_fn set_vlan_member_attribute;
654 sai_get_vlan_member_attribute_fn get_vlan_member_attribute;
655 sai_bulk_object_create_fn create_vlan_members;
656 sai_bulk_object_remove_fn remove_vlan_members;
657 sai_get_vlan_stats_fn get_vlan_stats;
658 sai_get_vlan_stats_ext_fn get_vlan_stats_ext;
659 sai_clear_vlan_stats_fn clear_vlan_stats;
660
662
666#endif
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
sai_status_t(* sai_get_vlan_stats_fn)(_In_ sai_object_id_t vlan_id, _In_ uint32_t number_of_counters, _In_ const sai_stat_id_t *counter_ids, _Out_ uint64_t *counters)
Get vlan statistics counters. Deprecated for backward compatibility.
Definition saivlan.h:604
enum _sai_vlan_tagging_mode_t sai_vlan_tagging_mode_t
Attribute data for tagging_mode parameter.
_sai_vlan_member_attr_t
List of VLAN Member Attributes.
Definition saivlan.h:420
sai_status_t(* sai_get_vlan_stats_ext_fn)(_In_ sai_object_id_t vlan_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 vlan statistics counters extended.
Definition saivlan.h:621
_sai_vlan_flood_control_type_t
Attribute data for unknown unicast, unknown multicast and broadcast flood controls.
Definition saivlan.h:74
enum _sai_vlan_member_attr_t sai_vlan_member_attr_t
List of VLAN Member Attributes.
_sai_vlan_mcast_lookup_key_type_t
Attribute data for multicast_lookup_key_type parameter.
Definition saivlan.h:58
enum _sai_vlan_mcast_lookup_key_type_t sai_vlan_mcast_lookup_key_type_t
Attribute data for multicast_lookup_key_type parameter.
sai_status_t(* sai_set_vlan_member_attribute_fn)(_In_ sai_object_id_t vlan_member_id, _In_ const sai_attribute_t *attr)
Set VLAN Member Attribute.
Definition saivlan.h:576
enum _sai_vlan_stat_t sai_vlan_stat_t
VLAN counter IDs in sai_get_vlan_stats() call.
sai_status_t(* sai_create_vlan_fn)(_Out_ sai_object_id_t *vlan_id, _In_ sai_object_id_t switch_id, _In_ uint32_t attr_count, _In_ const sai_attribute_t *attr_list)
Create a VLAN.
Definition saivlan.h:500
sai_status_t(* sai_clear_vlan_stats_fn)(_In_ sai_object_id_t vlan_id, _In_ uint32_t number_of_counters, _In_ const sai_stat_id_t *counter_ids)
Clear vlan statistics counters.
Definition saivlan.h:637
enum _sai_vlan_attr_t sai_vlan_attr_t
Attribute Id in sai_set_vlan_attribute() and sai_get_vlan_attribute() calls.
_sai_vlan_tagging_mode_t
Attribute data for tagging_mode parameter.
Definition saivlan.h:45
sai_status_t(* sai_create_vlan_member_fn)(_Out_ sai_object_id_t *vlan_member_id, _In_ sai_object_id_t switch_id, _In_ uint32_t attr_count, _In_ const sai_attribute_t *attr_list)
Create VLAN Member.
Definition saivlan.h:552
_sai_vlan_attr_t
Attribute Id in sai_set_vlan_attribute() and sai_get_vlan_attribute() calls.
Definition saivlan.h:105
_sai_vlan_stat_t
VLAN counter IDs in sai_get_vlan_stats() call.
Definition saivlan.h:472
sai_status_t(* sai_remove_vlan_fn)(_In_ sai_object_id_t vlan_id)
Remove VLAN.
Definition saivlan.h:513
enum _sai_vlan_flood_control_type_t sai_vlan_flood_control_type_t
Attribute data for unknown unicast, unknown multicast and broadcast flood controls.
sai_status_t(* sai_remove_vlan_member_fn)(_In_ sai_object_id_t vlan_member_id)
Remove VLAN Member.
Definition saivlan.h:565
sai_status_t(* sai_get_vlan_member_attribute_fn)(_In_ sai_object_id_t vlan_member_id, _In_ uint32_t attr_count, _Inout_ sai_attribute_t *attr_list)
Get VLAN Member Attribute.
Definition saivlan.h:589
sai_status_t(* sai_get_vlan_attribute_fn)(_In_ sai_object_id_t vlan_id, _In_ uint32_t attr_count, _Inout_ sai_attribute_t *attr_list)
Get VLAN Attribute.
Definition saivlan.h:537
sai_status_t(* sai_set_vlan_attribute_fn)(_In_ sai_object_id_t vlan_id, _In_ const sai_attribute_t *attr)
Set VLAN Attribute.
Definition saivlan.h:524
struct _sai_vlan_api_t sai_vlan_api_t
VLAN methods table retrieved with sai_api_query()
@ SAI_VLAN_MEMBER_ATTR_START
Start of attributes.
Definition saivlan.h:424
@ SAI_VLAN_MEMBER_ATTR_CUSTOM_RANGE_START
Definition saivlan.h:461
@ SAI_VLAN_MEMBER_ATTR_BRIDGE_PORT_ID
Bridge port ID.
Definition saivlan.h:444
@ SAI_VLAN_MEMBER_ATTR_VLAN_TAGGING_MODE
VLAN tagging mode.
Definition saivlan.h:453
@ SAI_VLAN_MEMBER_ATTR_VLAN_ID
VLAN ID.
Definition saivlan.h:433
@ SAI_VLAN_MEMBER_ATTR_CUSTOM_RANGE_END
Definition saivlan.h:464
@ SAI_VLAN_MEMBER_ATTR_END
End of attributes.
Definition saivlan.h:458
@ SAI_VLAN_FLOOD_CONTROL_TYPE_COMBINED
Flood on all vlan members and L2MC group.
Definition saivlan.h:96
@ SAI_VLAN_FLOOD_CONTROL_TYPE_NONE
Definition saivlan.h:85
@ SAI_VLAN_FLOOD_CONTROL_TYPE_L2MC_GROUP
Definition saivlan.h:88
@ SAI_VLAN_FLOOD_CONTROL_TYPE_ALL
Flood on all vlan members.
Definition saivlan.h:82
@ SAI_VLAN_ATTR_META_DATA
User based Meta Data.
Definition saivlan.h:295
@ SAI_VLAN_ATTR_UNKNOWN_MULTICAST_FLOOD_GROUP
Unknown multicast flood group.
Definition saivlan.h:351
@ SAI_VLAN_ATTR_CUSTOM_IGMP_SNOOPING_ENABLE
IGMP Snooping enable or disable control for VLAN.
Definition saivlan.h:391
@ SAI_VLAN_ATTR_LEARN_DISABLE
To disable learning on a VLAN.
Definition saivlan.h:163
@ SAI_VLAN_ATTR_UNKNOWN_UNICAST_FLOOD_CONTROL_TYPE
Unknown unicast flood control type.
Definition saivlan.h:304
@ SAI_VLAN_ATTR_BROADCAST_FLOOD_GROUP
Broadcast flood group.
Definition saivlan.h:379
@ SAI_VLAN_ATTR_EGRESS_ACL
VLAN bind point for egress ACL object.
Definition saivlan.h:284
@ SAI_VLAN_ATTR_UNKNOWN_UNICAST_FLOOD_GROUP
Unknown unicast flood group.
Definition saivlan.h:323
@ SAI_VLAN_ATTR_BROADCAST_FLOOD_CONTROL_TYPE
Broadcast flood control type.
Definition saivlan.h:360
@ SAI_VLAN_ATTR_MAX_LEARNED_ADDRESSES
Maximum number of learned MAC addresses.
Definition saivlan.h:138
@ SAI_VLAN_ATTR_IPV4_MCAST_LOOKUP_KEY_TYPE
To set IPv4 multicast lookup key on a VLAN.
Definition saivlan.h:172
@ SAI_VLAN_ATTR_CUSTOM_RANGE_START
Definition saivlan.h:409
@ SAI_VLAN_ATTR_END
End of attributes.
Definition saivlan.h:406
@ SAI_VLAN_ATTR_UNKNOWN_NON_IP_MCAST_OUTPUT_GROUP_ID
L2MC Group ID that unknown non-IP mcast packets forwarded to.
Definition saivlan.h:200
@ SAI_VLAN_ATTR_VLAN_ID
Vlan Id.
Definition saivlan.h:118
@ SAI_VLAN_ATTR_START
Start of attributes.
Definition saivlan.h:109
@ SAI_VLAN_ATTR_IPV6_MCAST_LOOKUP_KEY_TYPE
To set IPv6 multicast lookup key on a VLAN.
Definition saivlan.h:181
@ SAI_VLAN_ATTR_UNKNOWN_IPV6_MCAST_OUTPUT_GROUP_ID
L2MC Group ID that unknown IPv6 mcast packets forwarded to.
Definition saivlan.h:234
@ SAI_VLAN_ATTR_CUSTOM_RANGE_END
Definition saivlan.h:412
@ SAI_VLAN_ATTR_TAM_OBJECT
Vlan bind point for TAM object.
Definition saivlan.h:401
@ SAI_VLAN_ATTR_MEMBER_LIST
List of vlan members in a VLAN.
Definition saivlan.h:127
@ SAI_VLAN_ATTR_UNKNOWN_IPV4_MCAST_OUTPUT_GROUP_ID
L2MC Group ID that unknown IPv4 mcast packets forwarded to.
Definition saivlan.h:217
@ SAI_VLAN_ATTR_UNKNOWN_MULTICAST_FLOOD_CONTROL_TYPE
Unknown unicast flood control type.
Definition saivlan.h:332
@ SAI_VLAN_ATTR_UNKNOWN_LINKLOCAL_MCAST_OUTPUT_GROUP_ID
L2MC Group ID that unknown linklocal mcast packets forwarded to.
Definition saivlan.h:252
@ SAI_VLAN_ATTR_INGRESS_ACL
VLAN bind point for ingress ACL object.
Definition saivlan.h:268
@ SAI_VLAN_ATTR_STP_INSTANCE
STP Instance that the VLAN is associated to.
Definition saivlan.h:150
This module defines SAI portable types.
VLAN methods table retrieved with sai_api_query()
Definition saivlan.h:646