SAI Metadata
Loading...
Searching...
No Matches
saihash.h
Go to the documentation of this file.
1
25#if !defined (__SAIHASH_H_)
26#define __SAIHASH_H_
27
28#include <saitypes.h>
29
40{
49
58
61
64
72
80
88
96
99
102
105
108
111
114
117
120
123
126
129
132
135
138
141
144
147
150
153
156
159
162
165
168
171
174
176
181{
186
195
204
213
226
231
234
237
239
244{
249
258
268
278
283
286
289
291
303 _Out_ sai_object_id_t *fine_grained_hash_field_id,
304 _In_ sai_object_id_t switch_id,
305 _In_ uint32_t attr_count,
306 _In_ const sai_attribute_t *attr_list);
307
316 _In_ sai_object_id_t fine_grained_hash_field_id);
317
327 _In_ sai_object_id_t fine_grained_hash_field_id,
328 _In_ const sai_attribute_t *attr);
329
340 _In_ sai_object_id_t fine_grained_hash_field_id,
341 _In_ uint32_t attr_count,
342 _Inout_ sai_attribute_t *attr_list);
343
354typedef sai_status_t (*sai_create_hash_fn)(
355 _Out_ sai_object_id_t *hash_id,
356 _In_ sai_object_id_t switch_id,
357 _In_ uint32_t attr_count,
358 _In_ const sai_attribute_t *attr_list);
359
367typedef sai_status_t (*sai_remove_hash_fn)(
368 _In_ sai_object_id_t hash_id);
369
378typedef sai_status_t (*sai_set_hash_attribute_fn)(
379 _In_ sai_object_id_t hash_id,
380 _In_ const sai_attribute_t *attr);
381
391typedef sai_status_t (*sai_get_hash_attribute_fn)(
392 _In_ sai_object_id_t hash_id,
393 _In_ uint32_t attr_count,
394 _Inout_ sai_attribute_t *attr_list);
395
399typedef struct _sai_hash_api_t
400{
401 sai_create_hash_fn create_hash;
402 sai_remove_hash_fn remove_hash;
403 sai_set_hash_attribute_fn set_hash_attribute;
404 sai_get_hash_attribute_fn get_hash_attribute;
405 sai_create_fine_grained_hash_field_fn create_fine_grained_hash_field;
406 sai_remove_fine_grained_hash_field_fn remove_fine_grained_hash_field;
407 sai_set_fine_grained_hash_field_attribute_fn set_fine_grained_hash_field_attribute;
408 sai_get_fine_grained_hash_field_attribute_fn get_fine_grained_hash_field_attribute;
409
411
415#endif
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.
Definition saihash.h:302
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.
Definition saihash.h:391
sai_status_t(* sai_remove_hash_fn)(_In_ sai_object_id_t hash_id)
Remove hash.
Definition saihash.h:367
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.
Definition saihash.h:354
enum _sai_fine_grained_hash_field_attr_t sai_fine_grained_hash_field_attr_t
Fine-grained hash field attribute IDs.
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.
Definition saihash.h:339
enum _sai_hash_attr_t sai_hash_attr_t
Hash attribute IDs.
struct _sai_hash_api_t sai_hash_api_t
Hash methods, retrieved via sai_api_query()
sai_status_t(* sai_set_hash_attribute_fn)(_In_ sai_object_id_t hash_id, _In_ const sai_attribute_t *attr)
Set hash attribute.
Definition saihash.h:378
_sai_fine_grained_hash_field_attr_t
Fine-grained hash field attribute IDs.
Definition saihash.h:181
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.
Definition saihash.h:326
_sai_hash_attr_t
Hash attribute IDs.
Definition saihash.h:244
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.
Definition saihash.h:315
_sai_native_hash_field_t
Attribute data for SAI native hash fields.
Definition saihash.h:40
enum _sai_native_hash_field_t sai_native_hash_field_t
Attribute data for SAI native hash fields.
@ SAI_FINE_GRAINED_HASH_FIELD_ATTR_IPV6_MASK
Mask for a IPv6 address.
Definition saihash.h:212
@ SAI_FINE_GRAINED_HASH_FIELD_ATTR_START
Start of attributes.
Definition saihash.h:185
@ SAI_FINE_GRAINED_HASH_FIELD_ATTR_IPV4_MASK
Mask for a IPv4 address.
Definition saihash.h:203
@ SAI_FINE_GRAINED_HASH_FIELD_ATTR_END
End of attributes.
Definition saihash.h:230
@ SAI_FINE_GRAINED_HASH_FIELD_ATTR_CUSTOM_RANGE_START
Definition saihash.h:233
@ SAI_FINE_GRAINED_HASH_FIELD_ATTR_CUSTOM_RANGE_END
Definition saihash.h:236
@ SAI_FINE_GRAINED_HASH_FIELD_ATTR_SEQUENCE_ID
Optional field ordering.
Definition saihash.h:225
@ SAI_FINE_GRAINED_HASH_FIELD_ATTR_NATIVE_HASH_FIELD
Hash native field ID.
Definition saihash.h:194
@ SAI_HASH_ATTR_NATIVE_HASH_FIELD_LIST
Hash native fields.
Definition saihash.h:257
@ SAI_HASH_ATTR_FINE_GRAINED_HASH_FIELD_LIST
Hash fine-grained field list.
Definition saihash.h:277
@ SAI_HASH_ATTR_START
Start of attributes.
Definition saihash.h:248
@ SAI_HASH_ATTR_CUSTOM_RANGE_END
Definition saihash.h:288
@ SAI_HASH_ATTR_END
End of attributes.
Definition saihash.h:282
@ SAI_HASH_ATTR_UDF_GROUP_LIST
Hash UDF group.
Definition saihash.h:267
@ SAI_HASH_ATTR_CUSTOM_RANGE_START
Definition saihash.h:285
@ SAI_NATIVE_HASH_FIELD_SRC_MAC
Definition saihash.h:125
@ SAI_NATIVE_HASH_FIELD_L4_DST_PORT
Definition saihash.h:122
@ SAI_NATIVE_HASH_FIELD_NONE
Definition saihash.h:173
@ SAI_NATIVE_HASH_FIELD_MPLS_LABEL_0
Definition saihash.h:155
@ SAI_NATIVE_HASH_FIELD_ETHERTYPE
Definition saihash.h:116
@ SAI_NATIVE_HASH_FIELD_INNER_DST_MAC
Definition saihash.h:149
@ SAI_NATIVE_HASH_FIELD_INNER_SRC_IPV4
Definition saihash.h:98
@ SAI_NATIVE_HASH_FIELD_INNER_IP_PROTOCOL
Definition saihash.h:134
@ SAI_NATIVE_HASH_FIELD_MPLS_LABEL_1
Definition saihash.h:158
@ SAI_NATIVE_HASH_FIELD_SRC_IPV6
Native hash field source IPv6.
Definition saihash.h:87
@ SAI_NATIVE_HASH_FIELD_DST_IPV6
Native hash field destination IPv6.
Definition saihash.h:95
@ SAI_NATIVE_HASH_FIELD_INNER_DST_IPV6
Definition saihash.h:107
@ SAI_NATIVE_HASH_FIELD_MPLS_LABEL_2
Definition saihash.h:161
@ SAI_NATIVE_HASH_FIELD_IN_PORT
Definition saihash.h:131
@ SAI_NATIVE_HASH_FIELD_INNER_L4_SRC_PORT
Definition saihash.h:140
@ SAI_NATIVE_HASH_FIELD_INNER_DST_IP
Definition saihash.h:63
@ SAI_NATIVE_HASH_FIELD_L4_SRC_PORT
Definition saihash.h:119
@ SAI_NATIVE_HASH_FIELD_DST_IPV4
Native hash field destination IPv4.
Definition saihash.h:79
@ SAI_NATIVE_HASH_FIELD_MPLS_LABEL_3
Definition saihash.h:164
@ SAI_NATIVE_HASH_FIELD_VLAN_ID
Definition saihash.h:110
@ SAI_NATIVE_HASH_FIELD_DST_IP
Native hash field destination IP.
Definition saihash.h:57
@ SAI_NATIVE_HASH_FIELD_INNER_L4_DST_PORT
Definition saihash.h:143
@ SAI_NATIVE_HASH_FIELD_INNER_DST_IPV4
Definition saihash.h:101
@ SAI_NATIVE_HASH_FIELD_IPV6_FLOW_LABEL
Definition saihash.h:170
@ SAI_NATIVE_HASH_FIELD_INNER_SRC_IPV6
Definition saihash.h:104
@ SAI_NATIVE_HASH_FIELD_SRC_IP
Native hash field source IP.
Definition saihash.h:48
@ SAI_NATIVE_HASH_FIELD_IP_PROTOCOL
Definition saihash.h:113
@ SAI_NATIVE_HASH_FIELD_MPLS_LABEL_4
Definition saihash.h:167
@ SAI_NATIVE_HASH_FIELD_SRC_IPV4
Native hash field source IPv4.
Definition saihash.h:71
@ SAI_NATIVE_HASH_FIELD_INNER_SRC_MAC
Definition saihash.h:146
@ SAI_NATIVE_HASH_FIELD_DST_MAC
Definition saihash.h:128
@ SAI_NATIVE_HASH_FIELD_MPLS_LABEL_ALL
Definition saihash.h:152
@ SAI_NATIVE_HASH_FIELD_INNER_SRC_IP
Definition saihash.h:60
@ SAI_NATIVE_HASH_FIELD_INNER_ETHERTYPE
Definition saihash.h:137
This module defines SAI portable types.
Hash methods, retrieved via sai_api_query()
Definition saihash.h:400