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

This module defines SAI Hash interface. More...

#include <saitypes.h>

Go to the source code of this file.

Classes

struct  _sai_hash_api_t
 Hash methods, retrieved via sai_api_query() More...
 

Typedefs

typedef enum _sai_native_hash_field_t sai_native_hash_field_t
 Attribute data for SAI native hash fields.
 
typedef enum _sai_fine_grained_hash_field_attr_t sai_fine_grained_hash_field_attr_t
 Fine-grained hash field attribute IDs.
 
typedef enum _sai_hash_attr_t sai_hash_attr_t
 Hash attribute IDs.
 
typedef sai_status_t(* sai_create_fine_grained_hash_field_fn) (_Out_ sai_object_id_t *fine_grained_hash_field_id, _In_ sai_object_id_t switch_id, _In_ uint32_t attr_count, _In_ const sai_attribute_t *attr_list)
 Create fine-grained hash field.
 
typedef sai_status_t(* sai_remove_fine_grained_hash_field_fn) (_In_ sai_object_id_t fine_grained_hash_field_id)
 Remove fine-grained hash field.
 
typedef sai_status_t(* sai_set_fine_grained_hash_field_attribute_fn) (_In_ sai_object_id_t fine_grained_hash_field_id, _In_ const sai_attribute_t *attr)
 Set fine-grained hash field attribute.
 
typedef sai_status_t(* sai_get_fine_grained_hash_field_attribute_fn) (_In_ sai_object_id_t fine_grained_hash_field_id, _In_ uint32_t attr_count, _Inout_ sai_attribute_t *attr_list)
 Get fine-grained hash field attribute value.
 
typedef sai_status_t(* sai_create_hash_fn) (_Out_ sai_object_id_t *hash_id, _In_ sai_object_id_t switch_id, _In_ uint32_t attr_count, _In_ const sai_attribute_t *attr_list)
 Create hash.
 
typedef sai_status_t(* sai_remove_hash_fn) (_In_ sai_object_id_t hash_id)
 Remove hash.
 
typedef sai_status_t(* sai_set_hash_attribute_fn) (_In_ sai_object_id_t hash_id, _In_ const sai_attribute_t *attr)
 Set hash attribute.
 
typedef sai_status_t(* sai_get_hash_attribute_fn) (_In_ sai_object_id_t hash_id, _In_ uint32_t attr_count, _Inout_ sai_attribute_t *attr_list)
 Get hash attribute value.
 
typedef struct _sai_hash_api_t sai_hash_api_t
 Hash methods, retrieved via sai_api_query()
 

Enumerations

enum  _sai_native_hash_field_t {
  SAI_NATIVE_HASH_FIELD_SRC_IP = 0x00000000 , SAI_NATIVE_HASH_FIELD_DST_IP = 0x00000001 , SAI_NATIVE_HASH_FIELD_INNER_SRC_IP = 0x00000002 , SAI_NATIVE_HASH_FIELD_INNER_DST_IP = 0x00000003 ,
  SAI_NATIVE_HASH_FIELD_SRC_IPV4 = 0x00000019 , SAI_NATIVE_HASH_FIELD_DST_IPV4 = 0x0000001a , SAI_NATIVE_HASH_FIELD_SRC_IPV6 = 0x0000001b , SAI_NATIVE_HASH_FIELD_DST_IPV6 = 0x0000001c ,
  SAI_NATIVE_HASH_FIELD_INNER_SRC_IPV4 = 0x0000001d , SAI_NATIVE_HASH_FIELD_INNER_DST_IPV4 = 0x0000001e , SAI_NATIVE_HASH_FIELD_INNER_SRC_IPV6 = 0x0000001f , SAI_NATIVE_HASH_FIELD_INNER_DST_IPV6 = 0x00000020 ,
  SAI_NATIVE_HASH_FIELD_VLAN_ID = 0x00000004 , SAI_NATIVE_HASH_FIELD_IP_PROTOCOL = 0x00000005 , SAI_NATIVE_HASH_FIELD_ETHERTYPE = 0x00000006 , SAI_NATIVE_HASH_FIELD_L4_SRC_PORT = 0x00000007 ,
  SAI_NATIVE_HASH_FIELD_L4_DST_PORT = 0x00000008 , SAI_NATIVE_HASH_FIELD_SRC_MAC = 0x00000009 , SAI_NATIVE_HASH_FIELD_DST_MAC = 0x0000000a , SAI_NATIVE_HASH_FIELD_IN_PORT = 0x0000000b ,
  SAI_NATIVE_HASH_FIELD_INNER_IP_PROTOCOL = 0x0000000c , SAI_NATIVE_HASH_FIELD_INNER_ETHERTYPE = 0x0000000d , SAI_NATIVE_HASH_FIELD_INNER_L4_SRC_PORT = 0x0000000e , SAI_NATIVE_HASH_FIELD_INNER_L4_DST_PORT = 0x0000000f ,
  SAI_NATIVE_HASH_FIELD_INNER_SRC_MAC = 0x00000010 , SAI_NATIVE_HASH_FIELD_INNER_DST_MAC = 0x00000011 , SAI_NATIVE_HASH_FIELD_MPLS_LABEL_ALL = 0x00000012 , SAI_NATIVE_HASH_FIELD_MPLS_LABEL_0 = 0x00000013 ,
  SAI_NATIVE_HASH_FIELD_MPLS_LABEL_1 = 0x00000014 , SAI_NATIVE_HASH_FIELD_MPLS_LABEL_2 = 0x00000015 , SAI_NATIVE_HASH_FIELD_MPLS_LABEL_3 = 0x00000016 , SAI_NATIVE_HASH_FIELD_MPLS_LABEL_4 = 0x00000017 ,
  SAI_NATIVE_HASH_FIELD_IPV6_FLOW_LABEL = 0x00000018 , SAI_NATIVE_HASH_FIELD_NONE = 0x00000021
}
 Attribute data for SAI native hash fields. More...
 
enum  _sai_fine_grained_hash_field_attr_t {
  SAI_FINE_GRAINED_HASH_FIELD_ATTR_START , SAI_FINE_GRAINED_HASH_FIELD_ATTR_NATIVE_HASH_FIELD = SAI_FINE_GRAINED_HASH_FIELD_ATTR_START , SAI_FINE_GRAINED_HASH_FIELD_ATTR_IPV4_MASK , SAI_FINE_GRAINED_HASH_FIELD_ATTR_IPV6_MASK ,
  SAI_FINE_GRAINED_HASH_FIELD_ATTR_SEQUENCE_ID , SAI_FINE_GRAINED_HASH_FIELD_ATTR_END , SAI_FINE_GRAINED_HASH_FIELD_ATTR_CUSTOM_RANGE_START = 0x10000000 , SAI_FINE_GRAINED_HASH_FIELD_ATTR_CUSTOM_RANGE_END
}
 Fine-grained hash field attribute IDs. More...
 
enum  _sai_hash_attr_t {
  SAI_HASH_ATTR_START , SAI_HASH_ATTR_NATIVE_HASH_FIELD_LIST = SAI_HASH_ATTR_START , SAI_HASH_ATTR_UDF_GROUP_LIST , SAI_HASH_ATTR_FINE_GRAINED_HASH_FIELD_LIST ,
  SAI_HASH_ATTR_END , SAI_HASH_ATTR_CUSTOM_RANGE_START = 0x10000000 , SAI_HASH_ATTR_CUSTOM_RANGE_END
}
 Hash attribute IDs. More...
 

Detailed Description

This module defines SAI Hash 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 saihash.h.