SAI Metadata
Loading...
Searching...
No Matches
saimacsec.h File Reference

This module defines SAI MACsec interface. More...

#include <saitypes.h>

Go to the source code of this file.

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

This module defines SAI MACsec interface.

Copyright (c) 2014 Microsoft Open Technologies, Inc.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0

THIS CODE IS PROVIDED ON AN AS IS BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY OR NON-INFRINGEMENT.

See the Apache Version 2.0 License for specific language governing permissions and limitations under the License.

Microsoft would like to thank the following companies for their review and assistance with these files: Intel Corporation, Mellanox Technologies Ltd, Dell Products, L.P., Facebook, Inc., Marvell International Ltd.

Definition in file saimacsec.h.