SAI Metadata
Loading...
Searching...
No Matches
SAI - MACsec specific API definitions

Classes

struct  _sai_macsec_api_t
 MACsec methods table retrieved with sai_api_query() More...
 

Typedefs

typedef enum _sai_macsec_direction_t sai_macsec_direction_t
 MACsec direction types For PHY ASIC Egress is system to line direction and ingress is the opposite.
 
typedef enum _sai_macsec_cipher_suite_t sai_macsec_cipher_suite_t
 MACsec Cipher Suites.
 
typedef enum _sai_macsec_max_secure_associations_per_sc_t sai_macsec_max_secure_associations_per_sc_t
 Max number of secure associations for each secure channel.
 
typedef enum _sai_macsec_attr_t sai_macsec_attr_t
 Attribute Id for sai_macsec.
 
typedef enum _sai_macsec_port_attr_t sai_macsec_port_attr_t
 Attribute Id for sai_macsec_port.
 
typedef enum _sai_macsec_port_stat_t sai_macsec_port_stat_t
 MACsec port counter IDs in sai_get_macsec_stats() call.
 
typedef enum _sai_macsec_flow_attr_t sai_macsec_flow_attr_t
 Attribute Id for sai_macsec_flow.
 
typedef enum _sai_macsec_flow_stat_t sai_macsec_flow_stat_t
 MACsec flow counter IDs in sai_get_macsec_stats() call.
 
typedef enum _sai_macsec_sc_attr_t sai_macsec_sc_attr_t
 Attribute Id for sai_macsec_sc.
 
typedef enum _sai_macsec_sc_stat_t sai_macsec_sc_stat_t
 MACsec Secure Channel counter IDs in sai_get_macsec_sc_stats() call.
 
typedef enum _sai_macsec_sa_attr_t sai_macsec_sa_attr_t
 Attribute Id for sai_macsec_sa.
 
typedef enum _sai_macsec_sa_stat_t sai_macsec_sa_stat_t
 MACsec flow counter IDs in sai_get_macsec_sa_stats() call. Some of these counters appear as per Secure Channel counters in 802.1ae MIB. The application (NOS) has to add these per Secure Association counters to get the per Secure Channel value.
 
typedef sai_status_t(* sai_create_macsec_fn) (_Out_ sai_object_id_t *macsec_id, _In_ sai_object_id_t switch_id, _In_ uint32_t attr_count, _In_ const sai_attribute_t *attr_list)
 Create a MACsec object.
 
typedef sai_status_t(* sai_remove_macsec_fn) (_In_ sai_object_id_t macsec_id)
 Delete the MACsec object.
 
typedef sai_status_t(* sai_set_macsec_attribute_fn) (_In_ sai_object_id_t macsec_id, _In_ const sai_attribute_t *attr)
 Set MACsec attribute.
 
typedef sai_status_t(* sai_get_macsec_attribute_fn) (_In_ sai_object_id_t macsec_id, _In_ uint32_t attr_count, _Inout_ sai_attribute_t *attr_list)
 Get MACsec attribute.
 
typedef sai_status_t(* sai_create_macsec_port_fn) (_Out_ sai_object_id_t *macsec_port_id, _In_ sai_object_id_t switch_id, _In_ uint32_t attr_count, _In_ const sai_attribute_t *attr_list)
 Create a MACsec port.
 
typedef sai_status_t(* sai_remove_macsec_port_fn) (_In_ sai_object_id_t macsec_port_id)
 Delete a MACsec port.
 
typedef sai_status_t(* sai_set_macsec_port_attribute_fn) (_In_ sai_object_id_t macsec_port_id, _In_ const sai_attribute_t *attr)
 Set MACsec port attribute.
 
typedef sai_status_t(* sai_get_macsec_port_attribute_fn) (_In_ sai_object_id_t macsec_port_id, _In_ uint32_t attr_count, _Inout_ sai_attribute_t *attr_list)
 Get MACsec port attribute.
 
typedef sai_status_t(* sai_get_macsec_port_stats_fn) (_In_ sai_object_id_t macsec_port_id, _In_ uint32_t number_of_counters, _In_ const sai_stat_id_t *counter_ids, _Out_ uint64_t *counters)
 Get MACsec port counters.
 
typedef sai_status_t(* sai_get_macsec_port_stats_ext_fn) (_In_ sai_object_id_t macsec_port_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 MACsec port counters extended.
 
typedef sai_status_t(* sai_clear_macsec_port_stats_fn) (_In_ sai_object_id_t macsec_port_id, _In_ uint32_t number_of_counters, _In_ const sai_stat_id_t *counter_ids)
 Clear MACsec port counters.
 
typedef sai_status_t(* sai_create_macsec_flow_fn) (_Out_ sai_object_id_t *macsec_flow_id, _In_ sai_object_id_t switch_id, _In_ uint32_t attr_count, _In_ const sai_attribute_t *attr_list)
 Create a MACsec flow.
 
typedef sai_status_t(* sai_remove_macsec_flow_fn) (_In_ sai_object_id_t macsec_flow_id)
 Delete a MACsec flow.
 
typedef sai_status_t(* sai_set_macsec_flow_attribute_fn) (_In_ sai_object_id_t macsec_flow_id, _In_ const sai_attribute_t *attr)
 Set MACsec flow attribute.
 
typedef sai_status_t(* sai_get_macsec_flow_attribute_fn) (_In_ sai_object_id_t macsec_flow_id, _In_ uint32_t attr_count, _Inout_ sai_attribute_t *attr_list)
 Get MACsec flow attribute.
 
typedef sai_status_t(* sai_get_macsec_flow_stats_fn) (_In_ sai_object_id_t macsec_flow_id, _In_ uint32_t number_of_counters, _In_ const sai_stat_id_t *counter_ids, _Out_ uint64_t *counters)
 Get MACsec flow counters.
 
typedef sai_status_t(* sai_get_macsec_flow_stats_ext_fn) (_In_ sai_object_id_t macsec_flow_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 MACsec flow counters extended.
 
typedef sai_status_t(* sai_clear_macsec_flow_stats_fn) (_In_ sai_object_id_t macsec_flow_id, _In_ uint32_t number_of_counters, _In_ const sai_stat_id_t *counter_ids)
 Clear MACsec flow counters.
 
typedef sai_status_t(* sai_create_macsec_sc_fn) (_Out_ sai_object_id_t *macsec_sc_id, _In_ sai_object_id_t switch_id, _In_ uint32_t attr_count, _In_ const sai_attribute_t *attr_list)
 Create a MACsec Secure Channel.
 
typedef sai_status_t(* sai_remove_macsec_sc_fn) (_In_ sai_object_id_t macsec_sc_id)
 Delete a MACsec Secure Channel.
 
typedef sai_status_t(* sai_set_macsec_sc_attribute_fn) (_In_ sai_object_id_t macsec_sc_id, _In_ const sai_attribute_t *attr)
 Set MACsec Secure Channel attribute.
 
typedef sai_status_t(* sai_get_macsec_sc_attribute_fn) (_In_ sai_object_id_t macsec_sc_id, _In_ uint32_t attr_count, _Inout_ sai_attribute_t *attr_list)
 Get MACsec Secure Channel attribute.
 
typedef sai_status_t(* sai_get_macsec_sc_stats_fn) (_In_ sai_object_id_t macsec_sc_id, _In_ uint32_t number_of_counters, _In_ const sai_stat_id_t *counter_ids, _Out_ uint64_t *counters)
 Get MACsec Secure Channel counters.
 
typedef sai_status_t(* sai_get_macsec_sc_stats_ext_fn) (_In_ sai_object_id_t macsec_sc_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 MACsec Secure Channel counters extended.
 
typedef sai_status_t(* sai_clear_macsec_sc_stats_fn) (_In_ sai_object_id_t macsec_sc_id, _In_ uint32_t number_of_counters, _In_ const sai_stat_id_t *counter_ids)
 Clear MACsec Secure Channel counters.
 
typedef sai_status_t(* sai_create_macsec_sa_fn) (_Out_ sai_object_id_t *macsec_sa_id, _In_ sai_object_id_t switch_id, _In_ uint32_t attr_count, _In_ const sai_attribute_t *attr_list)
 Create a MACsec Secure Association.
 
typedef sai_status_t(* sai_remove_macsec_sa_fn) (_In_ sai_object_id_t macsec_sa_id)
 Delete a MACsec Secure Association.
 
typedef sai_status_t(* sai_set_macsec_sa_attribute_fn) (_In_ sai_object_id_t macsec_sa_id, _In_ const sai_attribute_t *attr)
 Set MACsec Secure Association attribute.
 
typedef sai_status_t(* sai_get_macsec_sa_attribute_fn) (_In_ sai_object_id_t macsec_sa_id, _In_ uint32_t attr_count, _Inout_ sai_attribute_t *attr_list)
 Get MACsec Secure Association attribute.
 
typedef sai_status_t(* sai_get_macsec_sa_stats_fn) (_In_ sai_object_id_t macsec_sa_id, _In_ uint32_t number_of_counters, _In_ const sai_stat_id_t *counter_ids, _Out_ uint64_t *counters)
 Get MACsec Secure Association counters.
 
typedef sai_status_t(* sai_get_macsec_sa_stats_ext_fn) (_In_ sai_object_id_t macsec_sa_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 MACsec Secure Association counters extended.
 
typedef sai_status_t(* sai_clear_macsec_sa_stats_fn) (_In_ sai_object_id_t macsec_sa_id, _In_ uint32_t number_of_counters, _In_ const sai_stat_id_t *counter_ids)
 Clear MACsec Secure Association counters.
 
typedef struct _sai_macsec_api_t sai_macsec_api_t
 MACsec methods table retrieved with sai_api_query()
 

Enumerations

enum  _sai_macsec_direction_t { SAI_MACSEC_DIRECTION_EGRESS , SAI_MACSEC_DIRECTION_INGRESS }
 MACsec direction types For PHY ASIC Egress is system to line direction and ingress is the opposite. More...
 
enum  _sai_macsec_cipher_suite_t { SAI_MACSEC_CIPHER_SUITE_GCM_AES_128 , SAI_MACSEC_CIPHER_SUITE_GCM_AES_256 , SAI_MACSEC_CIPHER_SUITE_GCM_AES_XPN_128 , SAI_MACSEC_CIPHER_SUITE_GCM_AES_XPN_256 }
 MACsec Cipher Suites. More...
 
enum  _sai_macsec_max_secure_associations_per_sc_t { SAI_MACSEC_MAX_SECURE_ASSOCIATIONS_PER_SC_TWO , SAI_MACSEC_MAX_SECURE_ASSOCIATIONS_PER_SC_FOUR }
 Max number of secure associations for each secure channel. More...
 
enum  _sai_macsec_attr_t {
  SAI_MACSEC_ATTR_START , SAI_MACSEC_ATTR_DIRECTION = SAI_MACSEC_ATTR_START , SAI_MACSEC_ATTR_SWITCHING_MODE_CUT_THROUGH_SUPPORTED , SAI_MACSEC_ATTR_SWITCHING_MODE_STORE_AND_FORWARD_SUPPORTED ,
  SAI_MACSEC_ATTR_STATS_MODE_READ_SUPPORTED , SAI_MACSEC_ATTR_STATS_MODE_READ_CLEAR_SUPPORTED , SAI_MACSEC_ATTR_SCI_IN_INGRESS_MACSEC_ACL , SAI_MACSEC_ATTR_SUPPORTED_CIPHER_SUITE_LIST ,
  SAI_MACSEC_ATTR_PN_32BIT_SUPPORTED , SAI_MACSEC_ATTR_XPN_64BIT_SUPPORTED , SAI_MACSEC_ATTR_GCM_AES128_SUPPORTED , SAI_MACSEC_ATTR_GCM_AES256_SUPPORTED ,
  SAI_MACSEC_ATTR_SECTAG_OFFSETS_SUPPORTED , SAI_MACSEC_ATTR_SYSTEM_SIDE_MTU , SAI_MACSEC_ATTR_WARM_BOOT_SUPPORTED , SAI_MACSEC_ATTR_WARM_BOOT_ENABLE ,
  SAI_MACSEC_ATTR_CTAG_TPID , SAI_MACSEC_ATTR_STAG_TPID , SAI_MACSEC_ATTR_MAX_VLAN_TAGS_PARSED , SAI_MACSEC_ATTR_STATS_MODE ,
  SAI_MACSEC_ATTR_PHYSICAL_BYPASS_ENABLE , SAI_MACSEC_ATTR_SUPPORTED_PORT_LIST , SAI_MACSEC_ATTR_AVAILABLE_MACSEC_FLOW , SAI_MACSEC_ATTR_FLOW_LIST ,
  SAI_MACSEC_ATTR_AVAILABLE_MACSEC_SC , SAI_MACSEC_ATTR_AVAILABLE_MACSEC_SA , SAI_MACSEC_ATTR_MAX_SECURE_ASSOCIATIONS_PER_SC , SAI_MACSEC_ATTR_END ,
  SAI_MACSEC_ATTR_CUSTOM_RANGE_START = 0x10000000 , SAI_MACSEC_ATTR_CUSTOM_RANGE_END
}
 Attribute Id for sai_macsec. More...
 
enum  _sai_macsec_port_attr_t {
  SAI_MACSEC_PORT_ATTR_START , SAI_MACSEC_PORT_ATTR_MACSEC_DIRECTION = SAI_MACSEC_PORT_ATTR_START , SAI_MACSEC_PORT_ATTR_PORT_ID , SAI_MACSEC_PORT_ATTR_CTAG_ENABLE ,
  SAI_MACSEC_PORT_ATTR_STAG_ENABLE , SAI_MACSEC_PORT_ATTR_SWITCH_SWITCHING_MODE , SAI_MACSEC_PORT_ATTR_END , SAI_MACSEC_PORT_ATTR_CUSTOM_RANGE_START = 0x10000000 ,
  SAI_MACSEC_PORT_ATTR_CUSTOM_RANGE_END
}
 Attribute Id for sai_macsec_port. More...
 
enum  _sai_macsec_port_stat_t { SAI_MACSEC_PORT_STAT_PRE_MACSEC_DROP_PKTS , SAI_MACSEC_PORT_STAT_CONTROL_PKTS , SAI_MACSEC_PORT_STAT_DATA_PKTS }
 MACsec port counter IDs in sai_get_macsec_stats() call. More...
 
enum  _sai_macsec_flow_attr_t {
  SAI_MACSEC_FLOW_ATTR_START , SAI_MACSEC_FLOW_ATTR_MACSEC_DIRECTION = SAI_MACSEC_FLOW_ATTR_START , SAI_MACSEC_FLOW_ATTR_ACL_ENTRY_LIST , SAI_MACSEC_FLOW_ATTR_SC_LIST ,
  SAI_MACSEC_FLOW_ATTR_END , SAI_MACSEC_FLOW_ATTR_CUSTOM_RANGE_START = 0x10000000 , SAI_MACSEC_FLOW_ATTR_CUSTOM_RANGE_END
}
 Attribute Id for sai_macsec_flow. More...
 
enum  _sai_macsec_flow_stat_t {
  SAI_MACSEC_FLOW_STAT_OTHER_ERR , SAI_MACSEC_FLOW_STAT_OCTETS_UNCONTROLLED , SAI_MACSEC_FLOW_STAT_OCTETS_CONTROLLED , SAI_MACSEC_FLOW_STAT_OUT_OCTETS_COMMON ,
  SAI_MACSEC_FLOW_STAT_UCAST_PKTS_UNCONTROLLED , SAI_MACSEC_FLOW_STAT_UCAST_PKTS_CONTROLLED , SAI_MACSEC_FLOW_STAT_MULTICAST_PKTS_UNCONTROLLED , SAI_MACSEC_FLOW_STAT_MULTICAST_PKTS_CONTROLLED ,
  SAI_MACSEC_FLOW_STAT_BROADCAST_PKTS_UNCONTROLLED , SAI_MACSEC_FLOW_STAT_BROADCAST_PKTS_CONTROLLED , SAI_MACSEC_FLOW_STAT_CONTROL_PKTS , SAI_MACSEC_FLOW_STAT_PKTS_UNTAGGED ,
  SAI_MACSEC_FLOW_STAT_IN_TAGGED_CONTROL_PKTS , SAI_MACSEC_FLOW_STAT_OUT_PKTS_TOO_LONG , SAI_MACSEC_FLOW_STAT_IN_PKTS_NO_TAG , SAI_MACSEC_FLOW_STAT_IN_PKTS_BAD_TAG ,
  SAI_MACSEC_FLOW_STAT_IN_PKTS_NO_SCI , SAI_MACSEC_FLOW_STAT_IN_PKTS_UNKNOWN_SCI , SAI_MACSEC_FLOW_STAT_IN_PKTS_OVERRUN
}
 MACsec flow counter IDs in sai_get_macsec_stats() call. More...
 
enum  _sai_macsec_sc_attr_t {
  SAI_MACSEC_SC_ATTR_START , SAI_MACSEC_SC_ATTR_MACSEC_DIRECTION = SAI_MACSEC_SC_ATTR_START , SAI_MACSEC_SC_ATTR_FLOW_ID , SAI_MACSEC_SC_ATTR_MACSEC_SCI ,
  SAI_MACSEC_SC_ATTR_MACSEC_EXPLICIT_SCI_ENABLE , SAI_MACSEC_SC_ATTR_MACSEC_SECTAG_OFFSET , SAI_MACSEC_SC_ATTR_ACTIVE_EGRESS_SA_ID , SAI_MACSEC_SC_ATTR_MACSEC_REPLAY_PROTECTION_ENABLE ,
  SAI_MACSEC_SC_ATTR_MACSEC_REPLAY_PROTECTION_WINDOW , SAI_MACSEC_SC_ATTR_SA_LIST , SAI_MACSEC_SC_ATTR_MACSEC_CIPHER_SUITE , SAI_MACSEC_SC_ATTR_ENCRYPTION_ENABLE ,
  SAI_MACSEC_SC_ATTR_END , SAI_MACSEC_SC_ATTR_CUSTOM_RANGE_START = 0x10000000 , SAI_MACSEC_SC_ATTR_CUSTOM_RANGE_END
}
 Attribute Id for sai_macsec_sc. More...
 
enum  _sai_macsec_sc_stat_t { SAI_MACSEC_SC_STAT_SA_NOT_IN_USE }
 MACsec Secure Channel counter IDs in sai_get_macsec_sc_stats() call. More...
 
enum  _sai_macsec_sa_attr_t {
  SAI_MACSEC_SA_ATTR_START , SAI_MACSEC_SA_ATTR_MACSEC_DIRECTION = SAI_MACSEC_SA_ATTR_START , SAI_MACSEC_SA_ATTR_SC_ID , SAI_MACSEC_SA_ATTR_AN ,
  SAI_MACSEC_SA_ATTR_SAK , SAI_MACSEC_SA_ATTR_SALT , SAI_MACSEC_SA_ATTR_AUTH_KEY , SAI_MACSEC_SA_ATTR_CONFIGURED_EGRESS_XPN ,
  SAI_MACSEC_SA_ATTR_CURRENT_XPN , SAI_MACSEC_SA_ATTR_XPN = SAI_MACSEC_SA_ATTR_CURRENT_XPN , SAI_MACSEC_SA_ATTR_MINIMUM_INGRESS_XPN , SAI_MACSEC_SA_ATTR_MINIMUM_XPN = SAI_MACSEC_SA_ATTR_MINIMUM_INGRESS_XPN ,
  SAI_MACSEC_SA_ATTR_MACSEC_SSCI , SAI_MACSEC_SA_ATTR_END , SAI_MACSEC_SA_ATTR_CUSTOM_RANGE_START = 0x10000000 , SAI_MACSEC_SA_ATTR_CUSTOM_RANGE_END
}
 Attribute Id for sai_macsec_sa. More...
 
enum  _sai_macsec_sa_stat_t {
  SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED , SAI_MACSEC_SA_STAT_OCTETS_PROTECTED , SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED , SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED ,
  SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED , SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED , SAI_MACSEC_SA_STAT_IN_PKTS_LATE , SAI_MACSEC_SA_STAT_IN_PKTS_INVALID ,
  SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID , SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA , SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA , SAI_MACSEC_SA_STAT_IN_PKTS_OK
}
 MACsec flow counter IDs in sai_get_macsec_sa_stats() call. Some of these counters appear as per Secure Channel counters in 802.1ae MIB. The application (NOS) has to add these per Secure Association counters to get the per Secure Channel value. More...
 

Detailed Description

Typedef Documentation

◆ sai_clear_macsec_flow_stats_fn

typedef sai_status_t(* sai_clear_macsec_flow_stats_fn) (_In_ sai_object_id_t macsec_flow_id, _In_ uint32_t number_of_counters, _In_ const sai_stat_id_t *counter_ids)

Clear MACsec flow counters.

Parameters
[in]macsec_flow_idMACsec flow id
[in]number_of_countersNumber of counters in the array
[in]counter_idsSpecifies the array of counter ids
Returns
SAI_STATUS_SUCCESS on success, failure status code on error

Definition at line 1189 of file saimacsec.h.

◆ sai_clear_macsec_port_stats_fn

typedef sai_status_t(* sai_clear_macsec_port_stats_fn) (_In_ sai_object_id_t macsec_port_id, _In_ uint32_t number_of_counters, _In_ const sai_stat_id_t *counter_ids)

Clear MACsec port counters.

Parameters
[in]macsec_port_idMACsec port id
[in]number_of_countersNumber of counters in the array
[in]counter_idsSpecifies the array of counter ids
Returns
SAI_STATUS_SUCCESS on success, failure status code on error

Definition at line 1089 of file saimacsec.h.

◆ sai_clear_macsec_sa_stats_fn

typedef sai_status_t(* sai_clear_macsec_sa_stats_fn) (_In_ sai_object_id_t macsec_sa_id, _In_ uint32_t number_of_counters, _In_ const sai_stat_id_t *counter_ids)

Clear MACsec Secure Association counters.

Parameters
[in]macsec_sa_idMACsec Secure Association id
[in]number_of_countersNumber of counters in the array
[in]counter_idsSpecifies the array of counter ids
Returns
SAI_STATUS_SUCCESS on success, failure status code on error

Definition at line 1389 of file saimacsec.h.

◆ sai_clear_macsec_sc_stats_fn

typedef sai_status_t(* sai_clear_macsec_sc_stats_fn) (_In_ sai_object_id_t macsec_sc_id, _In_ uint32_t number_of_counters, _In_ const sai_stat_id_t *counter_ids)

Clear MACsec Secure Channel counters.

Parameters
[in]macsec_sc_idMACsec Secure Channel id
[in]number_of_countersNumber of counters in the array
[in]counter_idsSpecifies the array of counter ids
Returns
SAI_STATUS_SUCCESS on success, failure status code on error

Definition at line 1289 of file saimacsec.h.

◆ sai_create_macsec_flow_fn

typedef sai_status_t(* sai_create_macsec_flow_fn) (_Out_ sai_object_id_t *macsec_flow_id, _In_ sai_object_id_t switch_id, _In_ uint32_t attr_count, _In_ const sai_attribute_t *attr_list)

Create a MACsec flow.

Parameters
[out]macsec_flow_idThe MACsec flow id
[in]switch_idThe switch/PHY Object id
[in]attr_countNumber of attributes
[in]attr_listArray of attributes
Returns
SAI_STATUS_SUCCESS on success, failure status code on error

Definition at line 1104 of file saimacsec.h.

◆ sai_create_macsec_fn

typedef sai_status_t(* sai_create_macsec_fn) (_Out_ sai_object_id_t *macsec_id, _In_ sai_object_id_t switch_id, _In_ uint32_t attr_count, _In_ const sai_attribute_t *attr_list)

Create a MACsec object.

Parameters
[out]macsec_idThe MACsec object id associated with this switch/PHY
[in]switch_idThe switch/PHY Object id
[in]attr_countNumber of attributes
[in]attr_listArray of attributes
Returns
SAI_STATUS_SUCCESS on success, failure status code on error

Definition at line 952 of file saimacsec.h.

◆ sai_create_macsec_port_fn

typedef sai_status_t(* sai_create_macsec_port_fn) (_Out_ sai_object_id_t *macsec_port_id, _In_ sai_object_id_t switch_id, _In_ uint32_t attr_count, _In_ const sai_attribute_t *attr_list)

Create a MACsec port.

Parameters
[out]macsec_port_idThe MACsec port id
[in]switch_idThe switch/PHY Object id
[in]attr_countNumber of attributes
[in]attr_listArray of attributes
Returns
SAI_STATUS_SUCCESS on success, failure status code on error

Definition at line 1004 of file saimacsec.h.

◆ sai_create_macsec_sa_fn

typedef sai_status_t(* sai_create_macsec_sa_fn) (_Out_ sai_object_id_t *macsec_sa_id, _In_ sai_object_id_t switch_id, _In_ uint32_t attr_count, _In_ const sai_attribute_t *attr_list)

Create a MACsec Secure Association.

Parameters
[out]macsec_sa_idThe MACsec Secure Association id
[in]switch_idThe switch/PHY Object id
[in]attr_countNumber of attributes
[in]attr_listArray of attributes
Returns
SAI_STATUS_SUCCESS on success, failure status code on error

Definition at line 1304 of file saimacsec.h.

◆ sai_create_macsec_sc_fn

typedef sai_status_t(* sai_create_macsec_sc_fn) (_Out_ sai_object_id_t *macsec_sc_id, _In_ sai_object_id_t switch_id, _In_ uint32_t attr_count, _In_ const sai_attribute_t *attr_list)

Create a MACsec Secure Channel.

Parameters
[out]macsec_sc_idThe MACsec Secure Channel id
[in]switch_idThe switch/PHY Object id
[in]attr_countNumber of attributes
[in]attr_listArray of attributes
Returns
SAI_STATUS_SUCCESS on success, failure status code on error

Definition at line 1204 of file saimacsec.h.

◆ sai_get_macsec_attribute_fn

typedef sai_status_t(* sai_get_macsec_attribute_fn) (_In_ sai_object_id_t macsec_id, _In_ uint32_t attr_count, _Inout_ sai_attribute_t *attr_list)

Get MACsec attribute.

Parameters
[in]macsec_idThe MACsec object id associated with this switch/PHY
[in]attr_countNumber of attributes
[in,out]attr_listArray of attributes
Returns
SAI_STATUS_SUCCESS on success, failure status code on error

Definition at line 989 of file saimacsec.h.

◆ sai_get_macsec_flow_attribute_fn

typedef sai_status_t(* sai_get_macsec_flow_attribute_fn) (_In_ sai_object_id_t macsec_flow_id, _In_ uint32_t attr_count, _Inout_ sai_attribute_t *attr_list)

Get MACsec flow attribute.

Parameters
[in]macsec_flow_idMACsec flow id
[in]attr_countNumber of attributes
[in,out]attr_listArray of attributes
Returns
SAI_STATUS_SUCCESS on success, failure status code on error

Definition at line 1141 of file saimacsec.h.

◆ sai_get_macsec_flow_stats_ext_fn

typedef sai_status_t(* sai_get_macsec_flow_stats_ext_fn) (_In_ sai_object_id_t macsec_flow_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 MACsec flow counters extended.

Parameters
[in]macsec_flow_idMACsec flow id
[in]number_of_countersNumber of counters in the array
[in]counter_idsSpecifies the array of counter ids
[in]modeShould match SAI_MACSEC_ATTR_STATS_MODE
[out]countersArray of resulting counter values.
Returns
SAI_STATUS_SUCCESS on success, failure status code on error

Definition at line 1173 of file saimacsec.h.

◆ sai_get_macsec_flow_stats_fn

typedef sai_status_t(* sai_get_macsec_flow_stats_fn) (_In_ sai_object_id_t macsec_flow_id, _In_ uint32_t number_of_counters, _In_ const sai_stat_id_t *counter_ids, _Out_ uint64_t *counters)

Get MACsec flow counters.

Parameters
[in]macsec_flow_idMACsec flow id
[in]number_of_countersNumber of counters in the array
[in]counter_idsSpecifies the array of counter ids
[out]countersArray of resulting counter values.
Returns
SAI_STATUS_SUCCESS on success, failure status code on error

Definition at line 1156 of file saimacsec.h.

◆ sai_get_macsec_port_attribute_fn

typedef sai_status_t(* sai_get_macsec_port_attribute_fn) (_In_ sai_object_id_t macsec_port_id, _In_ uint32_t attr_count, _Inout_ sai_attribute_t *attr_list)

Get MACsec port attribute.

Parameters
[in]macsec_port_idMACsec port id
[in]attr_countNumber of attributes
[in,out]attr_listArray of attributes
Returns
SAI_STATUS_SUCCESS on success, failure status code on error

Definition at line 1041 of file saimacsec.h.

◆ sai_get_macsec_port_stats_ext_fn

typedef sai_status_t(* sai_get_macsec_port_stats_ext_fn) (_In_ sai_object_id_t macsec_port_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 MACsec port counters extended.

Parameters
[in]macsec_port_idMACsec port id
[in]number_of_countersNumber of counters in the array
[in]counter_idsSpecifies the array of counter ids
[in]modeShould match SAI_MACSEC_ATTR_STATS_MODE
[out]countersArray of resulting counter values.
Returns
SAI_STATUS_SUCCESS on success, failure status code on error

Definition at line 1073 of file saimacsec.h.

◆ sai_get_macsec_port_stats_fn

typedef sai_status_t(* sai_get_macsec_port_stats_fn) (_In_ sai_object_id_t macsec_port_id, _In_ uint32_t number_of_counters, _In_ const sai_stat_id_t *counter_ids, _Out_ uint64_t *counters)

Get MACsec port counters.

Parameters
[in]macsec_port_idMACsec port id
[in]number_of_countersNumber of counters in the array
[in]counter_idsSpecifies the array of counter ids
[out]countersArray of resulting counter values.
Returns
SAI_STATUS_SUCCESS on success, failure status code on error

Definition at line 1056 of file saimacsec.h.

◆ sai_get_macsec_sa_attribute_fn

typedef sai_status_t(* sai_get_macsec_sa_attribute_fn) (_In_ sai_object_id_t macsec_sa_id, _In_ uint32_t attr_count, _Inout_ sai_attribute_t *attr_list)

Get MACsec Secure Association attribute.

Parameters
[in]macsec_sa_idMACsec Secure Association id
[in]attr_countNumber of attributes
[in,out]attr_listArray of attributes
Returns
SAI_STATUS_SUCCESS on success, failure status code on error

Definition at line 1341 of file saimacsec.h.

◆ sai_get_macsec_sa_stats_ext_fn

typedef sai_status_t(* sai_get_macsec_sa_stats_ext_fn) (_In_ sai_object_id_t macsec_sa_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 MACsec Secure Association counters extended.

Parameters
[in]macsec_sa_idMACsec Secure Association id
[in]number_of_countersNumber of counters in the array
[in]counter_idsSpecifies the array of counter ids
[in]modeShould match SAI_MACSEC_ATTR_STATS_MODE
[out]countersArray of resulting counter values.
Returns
SAI_STATUS_SUCCESS on success, failure status code on error

Definition at line 1373 of file saimacsec.h.

◆ sai_get_macsec_sa_stats_fn

typedef sai_status_t(* sai_get_macsec_sa_stats_fn) (_In_ sai_object_id_t macsec_sa_id, _In_ uint32_t number_of_counters, _In_ const sai_stat_id_t *counter_ids, _Out_ uint64_t *counters)

Get MACsec Secure Association counters.

Parameters
[in]macsec_sa_idMACsec Secure Association id
[in]number_of_countersNumber of counters in the array
[in]counter_idsSpecifies the array of counter ids
[out]countersArray of resulting counter values.
Returns
SAI_STATUS_SUCCESS on success, failure status code on error

Definition at line 1356 of file saimacsec.h.

◆ sai_get_macsec_sc_attribute_fn

typedef sai_status_t(* sai_get_macsec_sc_attribute_fn) (_In_ sai_object_id_t macsec_sc_id, _In_ uint32_t attr_count, _Inout_ sai_attribute_t *attr_list)

Get MACsec Secure Channel attribute.

Parameters
[in]macsec_sc_idMACsec Secure Channel id
[in]attr_countNumber of attributes
[in,out]attr_listArray of attributes
Returns
SAI_STATUS_SUCCESS on success, failure status code on error

Definition at line 1241 of file saimacsec.h.

◆ sai_get_macsec_sc_stats_ext_fn

typedef sai_status_t(* sai_get_macsec_sc_stats_ext_fn) (_In_ sai_object_id_t macsec_sc_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 MACsec Secure Channel counters extended.

Parameters
[in]macsec_sc_idMACsec Secure Channel id
[in]number_of_countersNumber of counters in the array
[in]counter_idsSpecifies the array of counter ids
[in]modeShould match SAI_MACSEC_ATTR_STATS_MODE
[out]countersArray of resulting counter values.
Returns
SAI_STATUS_SUCCESS on success, failure status code on error

Definition at line 1273 of file saimacsec.h.

◆ sai_get_macsec_sc_stats_fn

typedef sai_status_t(* sai_get_macsec_sc_stats_fn) (_In_ sai_object_id_t macsec_sc_id, _In_ uint32_t number_of_counters, _In_ const sai_stat_id_t *counter_ids, _Out_ uint64_t *counters)

Get MACsec Secure Channel counters.

Parameters
[in]macsec_sc_idMACsec Secure Channel id
[in]number_of_countersNumber of counters in the array
[in]counter_idsSpecifies the array of counter ids
[out]countersArray of resulting counter values.
Returns
SAI_STATUS_SUCCESS on success, failure status code on error

Definition at line 1256 of file saimacsec.h.

◆ sai_macsec_max_secure_associations_per_sc_t

Max number of secure associations for each secure channel.

An implementation may support either two or four associations depending on whether it stores the secure association number in one or two bits.

◆ sai_remove_macsec_flow_fn

typedef sai_status_t(* sai_remove_macsec_flow_fn) (_In_ sai_object_id_t macsec_flow_id)

Delete a MACsec flow.

Parameters
[in]macsec_flow_idThe MACsec flow id
Returns
SAI_STATUS_SUCCESS on success, failure status code on error

Definition at line 1117 of file saimacsec.h.

◆ sai_remove_macsec_fn

typedef sai_status_t(* sai_remove_macsec_fn) (_In_ sai_object_id_t macsec_id)

Delete the MACsec object.

Parameters
[in]macsec_idThe MACsec object id associated with this switch/PHY
Returns
SAI_STATUS_SUCCESS on success, failure status code on error

Definition at line 965 of file saimacsec.h.

◆ sai_remove_macsec_port_fn

typedef sai_status_t(* sai_remove_macsec_port_fn) (_In_ sai_object_id_t macsec_port_id)

Delete a MACsec port.

Parameters
[in]macsec_port_idThe MACsec port id
Returns
SAI_STATUS_SUCCESS on success, failure status code on error

Definition at line 1017 of file saimacsec.h.

◆ sai_remove_macsec_sa_fn

typedef sai_status_t(* sai_remove_macsec_sa_fn) (_In_ sai_object_id_t macsec_sa_id)

Delete a MACsec Secure Association.

Parameters
[in]macsec_sa_idThe MACsec Secure Association id
Returns
SAI_STATUS_SUCCESS on success, failure status code on error

Definition at line 1317 of file saimacsec.h.

◆ sai_remove_macsec_sc_fn

typedef sai_status_t(* sai_remove_macsec_sc_fn) (_In_ sai_object_id_t macsec_sc_id)

Delete a MACsec Secure Channel.

Parameters
[in]macsec_sc_idThe MACsec Secure Channel id
Returns
SAI_STATUS_SUCCESS on success, failure status code on error

Definition at line 1217 of file saimacsec.h.

◆ sai_set_macsec_attribute_fn

typedef sai_status_t(* sai_set_macsec_attribute_fn) (_In_ sai_object_id_t macsec_id, _In_ const sai_attribute_t *attr)

Set MACsec attribute.

Parameters
[in]macsec_idThe MACsec object id associated with this switch/PHY
[in]attrAttribute
Returns
SAI_STATUS_SUCCESS on success, failure status code on error

Definition at line 976 of file saimacsec.h.

◆ sai_set_macsec_flow_attribute_fn

typedef sai_status_t(* sai_set_macsec_flow_attribute_fn) (_In_ sai_object_id_t macsec_flow_id, _In_ const sai_attribute_t *attr)

Set MACsec flow attribute.

Parameters
[in]macsec_flow_idThe MACsec flow id
[in]attrAttribute
Returns
SAI_STATUS_SUCCESS on success, failure status code on error

Definition at line 1128 of file saimacsec.h.

◆ sai_set_macsec_port_attribute_fn

typedef sai_status_t(* sai_set_macsec_port_attribute_fn) (_In_ sai_object_id_t macsec_port_id, _In_ const sai_attribute_t *attr)

Set MACsec port attribute.

Parameters
[in]macsec_port_idThe MACsec port id
[in]attrAttribute
Returns
SAI_STATUS_SUCCESS on success, failure status code on error

Definition at line 1028 of file saimacsec.h.

◆ sai_set_macsec_sa_attribute_fn

typedef sai_status_t(* sai_set_macsec_sa_attribute_fn) (_In_ sai_object_id_t macsec_sa_id, _In_ const sai_attribute_t *attr)

Set MACsec Secure Association attribute.

Parameters
[in]macsec_sa_idThe MACsec Secure Association id
[in]attrAttribute
Returns
SAI_STATUS_SUCCESS on success, failure status code on error

Definition at line 1328 of file saimacsec.h.

◆ sai_set_macsec_sc_attribute_fn

typedef sai_status_t(* sai_set_macsec_sc_attribute_fn) (_In_ sai_object_id_t macsec_sc_id, _In_ const sai_attribute_t *attr)

Set MACsec Secure Channel attribute.

Parameters
[in]macsec_sc_idThe MACsec Secure Channel id
[in]attrAttribute
Returns
SAI_STATUS_SUCCESS on success, failure status code on error

Definition at line 1228 of file saimacsec.h.

Enumeration Type Documentation

◆ _sai_macsec_attr_t

Attribute Id for sai_macsec.

Enumerator
SAI_MACSEC_ATTR_START 

Start of MACsec attributes.

SAI_MACSEC_ATTR_DIRECTION 

MACsec direction.

Value Type:
sai_macsec_direction_t
Flags:
MANDATORY_ON_CREATE | CREATE_ONLY
SAI_MACSEC_ATTR_SWITCHING_MODE_CUT_THROUGH_SUPPORTED 

SAI_SWITCH_SWITCHING_MODE_CUT_THROUGH supported.

Value Type:
bool
Flags:
READ_ONLY
SAI_MACSEC_ATTR_SWITCHING_MODE_STORE_AND_FORWARD_SUPPORTED 

SAI_SWITCH_SWITCHING_MODE_STORE_AND_FORWARD supported.

Value Type:
bool
Flags:
READ_ONLY
SAI_MACSEC_ATTR_STATS_MODE_READ_SUPPORTED 

SAI_STATS_MODE_READ supported.

Value Type:
bool
Flags:
READ_ONLY
SAI_MACSEC_ATTR_STATS_MODE_READ_CLEAR_SUPPORTED 

SAI_STATS_MODE_READ_CLEAR supported.

Value Type:
bool
Flags:
READ_ONLY
SAI_MACSEC_ATTR_SCI_IN_INGRESS_MACSEC_ACL 

Indicates if ingress can use SCI only as an ACL field.

False means one 1 flow can be associated with multiple ACL entries and multiple SC. True means SCI can only be used as ACL field i.e. 1 ingress flow can be associated with only 1 ACL entry and 1 SC. Valid only for ingress.

Value Type:
bool
Flags:
READ_ONLY
SAI_MACSEC_ATTR_SUPPORTED_CIPHER_SUITE_LIST 

List of supported cipher-suites.

Value Type:
sai_s32_list_t sai_macsec_cipher_suite_t
Flags:
READ_ONLY
SAI_MACSEC_ATTR_PN_32BIT_SUPPORTED 

Indicates if 32-bit Packer Number (PN) is supported. This is deprecated, subsumed under SAI_MACSEC_ATTR_SUPPORTED_CIPHER_SUITE_LIST.

Value Type:
bool
Flags:
READ_ONLY
Deprecated:
true
SAI_MACSEC_ATTR_XPN_64BIT_SUPPORTED 

Indicates if 64-bit Extended Packer Number (PN) is supported. This is deprecated, subsumed under SAI_MACSEC_ATTR_SUPPORTED_CIPHER_SUITE_LIST.

Value Type:
bool
Flags:
READ_ONLY
Deprecated:
true
SAI_MACSEC_ATTR_GCM_AES128_SUPPORTED 

Indicates if GCM-AES128 cipher-suite is supported. This is deprecated, subsumed under SAI_MACSEC_ATTR_SUPPORTED_CIPHER_SUITE_LIST.

Value Type:
bool
Flags:
READ_ONLY
Deprecated:
true
SAI_MACSEC_ATTR_GCM_AES256_SUPPORTED 

Indicates if GCM-AES256 cipher-suite is supported. This is deprecated, subsumed under SAI_MACSEC_ATTR_SUPPORTED_CIPHER_SUITE_LIST.

Value Type:
bool
Flags:
READ_ONLY
Deprecated:
true
SAI_MACSEC_ATTR_SECTAG_OFFSETS_SUPPORTED 

List of supported SecTAG offset values for both ingress parsing and for egress.

Value Type:
sai_u8_list_t
Flags:
READ_ONLY
SAI_MACSEC_ATTR_SYSTEM_SIDE_MTU 

MACsec MTU capability on system side (not including MACsec overhead).

Value Type:
sai_uint16_t
Flags:
READ_ONLY
IsVlan:
false
SAI_MACSEC_ATTR_WARM_BOOT_SUPPORTED 

Warm boot is supported for all saimacsec objects.

Value Type:
bool
Flags:
READ_ONLY
SAI_MACSEC_ATTR_WARM_BOOT_ENABLE 

When false disables creation of saimacsec objects during warm-boot.

Value Type:
bool
Flags:
CREATE_AND_SET
Default value:
false
SAI_MACSEC_ATTR_CTAG_TPID 

TPID value used to identify packet C-tag.

Value Type:
sai_uint16_t
Flags:
CREATE_AND_SET
IsVlan:
false
Default value:
0x8100
SAI_MACSEC_ATTR_STAG_TPID 

TPID value used to identify packet S-tag.

Value Type:
sai_uint16_t
Flags:
CREATE_AND_SET
IsVlan:
false
Default value:
0x88A8
SAI_MACSEC_ATTR_MAX_VLAN_TAGS_PARSED 

Maximum number of VLAN tags to parse.

Value Type:
sai_uint8_t
Flags:
CREATE_AND_SET
Default value:
0
SAI_MACSEC_ATTR_STATS_MODE 

Global setting of read-clear or read-only for statistics read. The mode parameter for get_macsec_<foo>_stats_ext should match this.

Value Type:
sai_stats_mode_t
Flags:
CREATE_AND_SET
Default value:
SAI_STATS_MODE_READ_AND_CLEAR
SAI_MACSEC_ATTR_PHYSICAL_BYPASS_ENABLE 

Enables physical bypass of MACsec module. Packets can physically bypass MACsec module only when there is no macsec_port object associated with and MACsec-capable port.

Value Type:
bool
Flags:
CREATE_AND_SET
Default value:
false
SAI_MACSEC_ATTR_SUPPORTED_PORT_LIST 

List of ports that can support MACsec.

Value Type:
sai_object_list_t
Flags:
READ_ONLY
Allowed object types
SAI_OBJECT_TYPE_PORT
SAI_MACSEC_ATTR_AVAILABLE_MACSEC_FLOW 

Available MACsec flows.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_MACSEC_ATTR_FLOW_LIST 

List of MACsec flow associated with this MACsec object.

Value Type:
sai_object_list_t
Flags:
READ_ONLY
Allowed object types
SAI_OBJECT_TYPE_MACSEC_FLOW
SAI_MACSEC_ATTR_AVAILABLE_MACSEC_SC 

Available MACsec Secure Channels.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_MACSEC_ATTR_AVAILABLE_MACSEC_SA 

Available MACsec Secure Associations.

Value Type:
sai_uint32_t
Flags:
READ_ONLY
SAI_MACSEC_ATTR_MAX_SECURE_ASSOCIATIONS_PER_SC 

MACsec Secure Associations Limit.

Value Type:
sai_macsec_max_secure_associations_per_sc_t
Flags:
READ_ONLY
SAI_MACSEC_ATTR_END 

End of MACsec attributes.

SAI_MACSEC_ATTR_CUSTOM_RANGE_START 

Custom range base value.

SAI_MACSEC_ATTR_CUSTOM_RANGE_END 

End of custom range base.

Definition at line 73 of file saimacsec.h.

◆ _sai_macsec_cipher_suite_t

MACsec Cipher Suites.

Definition at line 49 of file saimacsec.h.

◆ _sai_macsec_direction_t

MACsec direction types For PHY ASIC Egress is system to line direction and ingress is the opposite.

Definition at line 40 of file saimacsec.h.

◆ _sai_macsec_flow_attr_t

Attribute Id for sai_macsec_flow.

Enumerator
SAI_MACSEC_FLOW_ATTR_START 

Start of MACsec Flow attributes.

SAI_MACSEC_FLOW_ATTR_MACSEC_DIRECTION 

MACsec direction.

Value Type:
sai_macsec_direction_t
Flags:
MANDATORY_ON_CREATE | CREATE_ONLY
SAI_MACSEC_FLOW_ATTR_ACL_ENTRY_LIST 

List of MACsec ACL entries associated with this flow.

Value Type:
sai_object_list_t
Flags:
READ_ONLY
Allowed object types
SAI_OBJECT_TYPE_ACL_ENTRY
SAI_MACSEC_FLOW_ATTR_SC_LIST 

List of MACsec Secure Channels associated with this flow.

Value Type:
sai_object_list_t
Flags:
READ_ONLY
Allowed object types
SAI_OBJECT_TYPE_MACSEC_SC
SAI_MACSEC_FLOW_ATTR_END 

End of MACsec Flow attributes.

SAI_MACSEC_FLOW_ATTR_CUSTOM_RANGE_START 

Custom range base value.

SAI_MACSEC_FLOW_ATTR_CUSTOM_RANGE_END 

End of custom range base.

Definition at line 428 of file saimacsec.h.

◆ _sai_macsec_flow_stat_t

MACsec flow counter IDs in sai_get_macsec_stats() call.

Enumerator
SAI_MACSEC_FLOW_STAT_OTHER_ERR 

Packets dropped/error for In or Out interface before MACsec processing for controlled and uncontrolled port, not in 802.1ae MIB.

SAI_MACSEC_FLOW_STAT_OCTETS_UNCONTROLLED 

IEEE 802.1ae defined ifOutOctets or ifInOctets for MACSEC uncontrolled port.

SAI_MACSEC_FLOW_STAT_OCTETS_CONTROLLED 

IEEE 802.1ae defined ifOutOctets or ifInOctets for MACSEC controlled port.

SAI_MACSEC_FLOW_STAT_OUT_OCTETS_COMMON 

IEEE 802.1ae defined ifOutOctets for MACSEC common port.

SAI_MACSEC_FLOW_STAT_UCAST_PKTS_UNCONTROLLED 

IEEE 802.1ae defined ifOutUcastPkts or ifInUcastPkts for MACSEC uncontrolled port.

SAI_MACSEC_FLOW_STAT_UCAST_PKTS_CONTROLLED 

IEEE 802.1ae defined ifOutUcastPkts or ifInUcastPkts for MACSEC controlled port.

SAI_MACSEC_FLOW_STAT_MULTICAST_PKTS_UNCONTROLLED 

IEEE 802.1ae defined ifOutMulticastPkts or ifInMulticastPkts for MACSEC uncontrolled port.

SAI_MACSEC_FLOW_STAT_MULTICAST_PKTS_CONTROLLED 

IEEE 802.1ae defined ifOutMulticastPkts or ifInMulticastPkts for MACSEC controlled port.

SAI_MACSEC_FLOW_STAT_BROADCAST_PKTS_UNCONTROLLED 

IEEE 802.1ae defined ifOutBroadcastPkts or ifInBroadcastPkts for MACSEC uncontrolled port.

SAI_MACSEC_FLOW_STAT_BROADCAST_PKTS_CONTROLLED 

IEEE 802.1ae defined ifOutBroadcastPkts or ifInBroadcastPkts for MACSEC controlled port.

SAI_MACSEC_FLOW_STAT_CONTROL_PKTS 

Control packets which are not secured (using MACsec uncontrolled port) - not in 802.1ae MIB.

SAI_MACSEC_FLOW_STAT_PKTS_UNTAGGED 

IEEE 802.1ae defined OutPktsUntagged or InPktsUntagged.

SAI_MACSEC_FLOW_STAT_IN_TAGGED_CONTROL_PKTS 

Control packets with SecTAG which are not secured (using MACsec uncontrolled port) - not in 802.1ae MIB.

SAI_MACSEC_FLOW_STAT_OUT_PKTS_TOO_LONG 

IEEE 802.1ae defined OutPktsTooLong. Valid for egress, always returns 0 for ingress.

SAI_MACSEC_FLOW_STAT_IN_PKTS_NO_TAG 

IEEE 802.1ae defined InPktsNoTag. Valid for ingress, always returns 0 for egress.

SAI_MACSEC_FLOW_STAT_IN_PKTS_BAD_TAG 

IEEE 802.1ae defined InPktsBadTag. Valid for ingress, always returns 0 for egress.

SAI_MACSEC_FLOW_STAT_IN_PKTS_NO_SCI 

IEEE 802.1ae defined InPktsNoSci. Valid for ingress, always returns 0 for egress.

SAI_MACSEC_FLOW_STAT_IN_PKTS_UNKNOWN_SCI 

IEEE 802.1ae defined InPktsUnknownSci. Valid for ingress, always returns 0 for egress.

SAI_MACSEC_FLOW_STAT_IN_PKTS_OVERRUN 

IEEE 802.1ae defined InPktsOverrun. Valid for ingress, always returns 0 for egress.

Definition at line 480 of file saimacsec.h.

◆ _sai_macsec_max_secure_associations_per_sc_t

Max number of secure associations for each secure channel.

An implementation may support either two or four associations depending on whether it stores the secure association number in one or two bits.

Definition at line 64 of file saimacsec.h.

◆ _sai_macsec_port_attr_t

Attribute Id for sai_macsec_port.

Enumerator
SAI_MACSEC_PORT_ATTR_START 

Start of MACsec Port attributes.

SAI_MACSEC_PORT_ATTR_MACSEC_DIRECTION 

MACsec direction.

Value Type:
sai_macsec_direction_t
Flags:
MANDATORY_ON_CREATE | CREATE_ONLY
SAI_MACSEC_PORT_ATTR_PORT_ID 

Associated port id.

Value Type:
sai_object_id_t
Flags:
MANDATORY_ON_CREATE | CREATE_ONLY
Allowed object types
SAI_OBJECT_TYPE_PORT
SAI_MACSEC_PORT_ATTR_CTAG_ENABLE 

Enable vlan tag parsing for C-tag TPID.

Value Type:
bool
Flags:
CREATE_AND_SET
Default value:
false
SAI_MACSEC_PORT_ATTR_STAG_ENABLE 

Enable vlan tag parsing for S-tag TPID.

Value Type:
bool
Flags:
CREATE_AND_SET
Default value:
false
SAI_MACSEC_PORT_ATTR_SWITCH_SWITCHING_MODE 

Switching mode for port. If configured as cut-through, the IPG for Tx MAC in the switch ASIC has to be increased to accommodate the MACsec packet size expansion.

Value Type:
sai_switch_switching_mode_t
Flags:
CREATE_AND_SET
Default value:
SAI_SWITCH_SWITCHING_MODE_CUT_THROUGH
SAI_MACSEC_PORT_ATTR_END 

End of MACsec Port attributes.

SAI_MACSEC_PORT_ATTR_CUSTOM_RANGE_START 

Custom range base value.

SAI_MACSEC_PORT_ATTR_CUSTOM_RANGE_END 

End of custom range base.

Definition at line 335 of file saimacsec.h.

◆ _sai_macsec_port_stat_t

MACsec port counter IDs in sai_get_macsec_stats() call.

Enumerator
SAI_MACSEC_PORT_STAT_PRE_MACSEC_DROP_PKTS 

Malformed packets dropped before MACsec processing, not in 802.1ae MIB.

SAI_MACSEC_PORT_STAT_CONTROL_PKTS 

Packets classified as control packets for MACsec processing, not in 802.1ae MIB.

SAI_MACSEC_PORT_STAT_DATA_PKTS 

Packets classified as data packets for MACsec processing, not in 802.1ae MIB.

Definition at line 407 of file saimacsec.h.

◆ _sai_macsec_sa_attr_t

Attribute Id for sai_macsec_sa.

Enumerator
SAI_MACSEC_SA_ATTR_START 

Start of MACsec Secure Association attributes.

SAI_MACSEC_SA_ATTR_MACSEC_DIRECTION 

MACsec direction.

Value Type:
sai_macsec_direction_t
Flags:
MANDATORY_ON_CREATE | CREATE_ONLY
SAI_MACSEC_SA_ATTR_SC_ID 

MACSEC Secure Channel object id.

Value Type:
sai_object_id_t
Flags:
MANDATORY_ON_CREATE | CREATE_ONLY
Allowed object types
SAI_OBJECT_TYPE_MACSEC_SC
SAI_MACSEC_SA_ATTR_AN 

AN value (2-bit) for this Secure Channel, carried in MACsec packet SecTAG. The value must be distinct from other Secure Associations for the same Secure Channel.

Value Type:
sai_uint8_t
Flags:
MANDATORY_ON_CREATE | CREATE_ONLY
SAI_MACSEC_SA_ATTR_SAK 

MACsec SAK (Secure Association Key) used for encryption/decryption. Network Byte order. 128-bit SAK uses only Bytes 16..31.

Value Type:
sai_macsec_sak_t
Flags:
MANDATORY_ON_CREATE | CREATE_ONLY
SAI_MACSEC_SA_ATTR_SALT 

MACsec Salt used for encryption/decryption. Network Byte order.

Valid when SAI_MACSEC_SC_ATTR_MACSEC_CIPHER_SUITE == SAI_MACSEC_CIPHER_SUITE_GCM_AES_XPN_128 or SAI_MACSEC_SC_ATTR_MACSEC_CIPHER_SUITE == SAI_MACSEC_CIPHER_SUITE_GCM_AES_XPN_256.

Value Type:
sai_macsec_salt_t
Flags:
MANDATORY_ON_CREATE | CREATE_ONLY
SAI_MACSEC_SA_ATTR_AUTH_KEY 

MACsec Authentication Key Network Byte order.

Value Type:
sai_macsec_auth_key_t
Flags:
MANDATORY_ON_CREATE | CREATE_ONLY
SAI_MACSEC_SA_ATTR_CONFIGURED_EGRESS_XPN 

Configured value of next MACsec egress packet number (PN/XPN).

Value Type:
sai_uint64_t
Flags:
CREATE_AND_SET
Default value:
0
Valid only when:
SAI_MACSEC_SA_ATTR_MACSEC_DIRECTION == SAI_MACSEC_DIRECTION_EGRESS
SAI_MACSEC_SA_ATTR_CURRENT_XPN 

MACsec current packet number (PN/XPN). For ingress, largest received packet number. For egress, 1 less than the next packet number.

Value Type:
sai_uint64_t
Flags:
READ_ONLY
SAI_MACSEC_SA_ATTR_XPN 
Ignored:
- for backward compatibility
SAI_MACSEC_SA_ATTR_MINIMUM_INGRESS_XPN 

Configured minimum acceptable ingress MACsec packet number (PN/XPN). Updated by value from MACsec peer by Key Agreement protocol.

Value Type:
sai_uint64_t
Flags:
CREATE_AND_SET
Default value:
1
Valid only when:
SAI_MACSEC_SA_ATTR_MACSEC_DIRECTION == SAI_MACSEC_DIRECTION_INGRESS
SAI_MACSEC_SA_ATTR_MINIMUM_XPN 
Ignored:
- for backward compatibility
SAI_MACSEC_SA_ATTR_MACSEC_SSCI 

SSCI value for this Secure Association Host Byte Order.

Valid when SAI_MACSEC_SC_ATTR_MACSEC_CIPHER_SUITE == SAI_MACSEC_CIPHER_SUITE_GCM_AES_XPN_128 or SAI_MACSEC_SC_ATTR_MACSEC_CIPHER_SUITE == SAI_MACSEC_CIPHER_SUITE_GCM_AES_XPN_256.

Value Type:
sai_uint32_t
Flags:
MANDATORY_ON_CREATE | CREATE_ONLY
SAI_MACSEC_SA_ATTR_END 

End of MACsec Secure Association attributes.

SAI_MACSEC_SA_ATTR_CUSTOM_RANGE_START 

Custom range base value.

SAI_MACSEC_SA_ATTR_CUSTOM_RANGE_END 

End of custom range base.

Definition at line 730 of file saimacsec.h.

◆ _sai_macsec_sa_stat_t

MACsec flow counter IDs in sai_get_macsec_sa_stats() call. Some of these counters appear as per Secure Channel counters in 802.1ae MIB. The application (NOS) has to add these per Secure Association counters to get the per Secure Channel value.

Enumerator
SAI_MACSEC_SA_STAT_OCTETS_ENCRYPTED 

The sum of this count over all Secure Associations of a Secure Channel gives 802.1ae statistics outOctetsEncrypted for egress and inOctetsDecrypted for ingress.

SAI_MACSEC_SA_STAT_OCTETS_PROTECTED 

The sum of this count over Secure Associations gives 802.1ae statistics outOctetsProtected for egress and inOctetsValidated for ingress.

SAI_MACSEC_SA_STAT_OUT_PKTS_ENCRYPTED 

The sum of this count over Secure Associations gives 802.1ae statistics OutPktsEncrypted. Valid for egress, always returns 0 for ingress.

SAI_MACSEC_SA_STAT_OUT_PKTS_PROTECTED 

The sum of this count over Secure Associations gives 802.1ae statistics OutPktsProtected. Valid for egress, always returns 0 for ingress.

SAI_MACSEC_SA_STAT_IN_PKTS_UNCHECKED 

The sum of this count over Secure Associations gives 802.1ae statistics InPktsUnchecked. Valid for ingress, always returns 0 for egress.

SAI_MACSEC_SA_STAT_IN_PKTS_DELAYED 

The sum of this count over Secure Associations gives 802.1ae statistics InPktsDelayed. Valid for ingress, always returns 0 for egress.

SAI_MACSEC_SA_STAT_IN_PKTS_LATE 

The sum of this count over Secure Associations gives 802.1ae statistics InPktsLate. Valid for ingress, always returns 0 for egress.

SAI_MACSEC_SA_STAT_IN_PKTS_INVALID 

IEEE 802.1ae defined InPktsInvalid. Valid for ingress, always returns 0 for egress.

SAI_MACSEC_SA_STAT_IN_PKTS_NOT_VALID 

IEEE 802.1ae defined InPktsNotValid. Valid for ingress, always returns 0 for egress.

SAI_MACSEC_SA_STAT_IN_PKTS_NOT_USING_SA 

IEEE 802.1ae defined InPktsNotUsingSA. Valid for ingress, always returns 0 for egress.

SAI_MACSEC_SA_STAT_IN_PKTS_UNUSED_SA 

IEEE 802.1ae defined InPktsUnusedSA. Valid for ingress, always returns 0 for egress.

SAI_MACSEC_SA_STAT_IN_PKTS_OK 

IEEE 802.1ae defined InPktsOk. Valid for ingress, always returns 0 for egress.

Definition at line 861 of file saimacsec.h.

◆ _sai_macsec_sc_attr_t

Attribute Id for sai_macsec_sc.

Enumerator
SAI_MACSEC_SC_ATTR_START 

Start of MACsec Secure Channel attributes.

SAI_MACSEC_SC_ATTR_MACSEC_DIRECTION 

MACsec direction.

Value Type:
sai_macsec_direction_t
Flags:
MANDATORY_ON_CREATE | CREATE_ONLY
SAI_MACSEC_SC_ATTR_FLOW_ID 

MACsec flow object id.

Value Type:
sai_object_id_t
Flags:
MANDATORY_ON_CREATE | CREATE_ONLY
Allowed object types
SAI_OBJECT_TYPE_MACSEC_FLOW
SAI_MACSEC_SC_ATTR_MACSEC_SCI 

SCI value for this Secure Channel, carried in MACsec packet SecTAG. The MAC address of SCI is stored in the lowest memory address, The port id of SCI is stored in the highest memory address.

Value Type:
sai_uint64_t
Flags:
MANDATORY_ON_CREATE | CREATE_ONLY
SAI_MACSEC_SC_ATTR_MACSEC_EXPLICIT_SCI_ENABLE 

Explicit SCI enable for this Secure Channel.

Value Type:
bool
Flags:
CREATE_AND_SET
Default value:
false
Valid only when:
SAI_MACSEC_SC_ATTR_MACSEC_DIRECTION == SAI_MACSEC_DIRECTION_EGRESS
SAI_MACSEC_SC_ATTR_MACSEC_SECTAG_OFFSET 

SecTAG offset for this Secure Channel with respect to 802.1ae standard SecTAG location.

Value Type:
sai_uint8_t
Flags:
CREATE_AND_SET
Default value:
0
SAI_MACSEC_SC_ATTR_ACTIVE_EGRESS_SA_ID 

Active MACsec SA identifier.

Value Type:
sai_object_id_t
Flags:
READ_ONLY
Allowed object types
SAI_OBJECT_TYPE_MACSEC_SA
SAI_MACSEC_SC_ATTR_MACSEC_REPLAY_PROTECTION_ENABLE 

Replay protection enable for this Secure Channel.

Value Type:
bool
Flags:
CREATE_AND_SET
Default value:
true
Valid only when:
SAI_MACSEC_SC_ATTR_MACSEC_DIRECTION == SAI_MACSEC_DIRECTION_INGRESS
SAI_MACSEC_SC_ATTR_MACSEC_REPLAY_PROTECTION_WINDOW 

Replay protection window for this Secure Channel.

Value Type:
sai_uint32_t
Flags:
CREATE_AND_SET
Default value:
0
Valid only when:
SAI_MACSEC_SC_ATTR_MACSEC_DIRECTION == SAI_MACSEC_DIRECTION_INGRESS
SAI_MACSEC_SC_ATTR_SA_LIST 

MACsec SA list.

Value Type:
sai_object_list_t
Flags:
READ_ONLY
Allowed object types
SAI_OBJECT_TYPE_MACSEC_SA
SAI_MACSEC_SC_ATTR_MACSEC_CIPHER_SUITE 

Cipher suite for this Secure Channel.

Value Type:
sai_macsec_cipher_suite_t
Flags:
MANDATORY_ON_CREATE | CREATE_AND_SET
SAI_MACSEC_SC_ATTR_ENCRYPTION_ENABLE 

True means encryption is enabled. False means encryption is disabled.

Value Type:
bool
Flags:
CREATE_AND_SET
Default value:
true
SAI_MACSEC_SC_ATTR_END 

End of MACsec Secure Channel attributes.

SAI_MACSEC_SC_ATTR_CUSTOM_RANGE_START 

Custom range base value.

SAI_MACSEC_SC_ATTR_CUSTOM_RANGE_END 

End of custom range base.

Definition at line 589 of file saimacsec.h.

◆ _sai_macsec_sc_stat_t

MACsec Secure Channel counter IDs in sai_get_macsec_sc_stats() call.

Enumerator
SAI_MACSEC_SC_STAT_SA_NOT_IN_USE 

Packets that have valid SCI, but the AN value does not have associated SA - not in 802.1ae MIB. Provides the sum of InPktsNotUsingSA for all invalid SAs for a SC.

Definition at line 717 of file saimacsec.h.