SAI Metadata
Loading...
Searching...
No Matches
sainat.h
Go to the documentation of this file.
1
25#if !defined (__SAINAT_H_)
26#define __SAINAT_H_
27
28#include <saitypes.h>
29
39typedef enum _sai_nat_type_t
40{
43
46
49
52
55
57
62{
67
76
91
101
115
127
137
147
157
166
175
184
193
202
211
222
227
230
233
235
243{
247 sai_ip4_t src_ip;
248
252 sai_ip4_t dst_ip;
253
257 sai_uint8_t proto;
258
262 sai_uint16_t l4_src_port;
263
267 sai_uint16_t l4_dst_port;
268
270
275{
279 sai_ip4_t src_ip;
280
284 sai_ip4_t dst_ip;
285
289 sai_uint8_t proto;
290
294 sai_uint16_t l4_src_port;
295
299 sai_uint16_t l4_dst_port;
300
302
304{
309
314
316
320typedef struct _sai_nat_entry_t
321{
327 sai_object_id_t switch_id;
328
334 sai_object_id_t vr_id;
335
340
345
347
352{
355
358
360
367{
370
373
375
385typedef sai_status_t (*sai_create_nat_entry_fn)(
386 _In_ const sai_nat_entry_t *nat_entry,
387 _In_ uint32_t attr_count,
388 _In_ const sai_attribute_t *attr_list);
389
397typedef sai_status_t (*sai_remove_nat_entry_fn)(
398 _In_ const sai_nat_entry_t *nat_entry);
399
408typedef sai_status_t (*sai_set_nat_entry_attribute_fn)(
409 _In_ const sai_nat_entry_t *nat_entry,
410 _In_ const sai_attribute_t *attr);
411
421typedef sai_status_t (*sai_get_nat_entry_attribute_fn)(
422 _In_ const sai_nat_entry_t *nat_entry,
423 _In_ uint32_t attr_count,
424 _Inout_ sai_attribute_t *attr_list);
425
435 _In_ uint32_t count,
436 _In_ const sai_nat_event_notification_data_t *data);
437
455typedef sai_status_t (*sai_bulk_create_nat_entry_fn)(
456 _In_ uint32_t object_count,
457 _In_ const sai_nat_entry_t *nat_entry,
458 _In_ const uint32_t *attr_count,
459 _In_ const sai_attribute_t **attr_list,
460 _In_ sai_bulk_op_error_mode_t mode,
461 _Out_ sai_status_t *object_statuses);
462
477typedef sai_status_t (*sai_bulk_remove_nat_entry_fn)(
478 _In_ uint32_t object_count,
479 _In_ const sai_nat_entry_t *nat_entry,
480 _In_ sai_bulk_op_error_mode_t mode,
481 _Out_ sai_status_t *object_statuses);
482
499 _In_ uint32_t object_count,
500 _In_ const sai_nat_entry_t *nat_entry,
501 _In_ const sai_attribute_t *attr_list,
502 _In_ sai_bulk_op_error_mode_t mode,
503 _Out_ sai_status_t *object_statuses);
504
523 _In_ uint32_t object_count,
524 _In_ const sai_nat_entry_t *nat_entry,
525 _In_ const uint32_t *attr_count,
526 _Inout_ sai_attribute_t **attr_list,
527 _In_ sai_bulk_op_error_mode_t mode,
528 _Out_ sai_status_t *object_statuses);
529
534{
539
548
557
566
575
584
593
602
611
616
619
622
624
635typedef sai_status_t (*sai_create_nat_zone_counter_fn)(
636 _Out_ sai_object_id_t *nat_zone_counter_id,
637 _In_ sai_object_id_t switch_id,
638 _In_ uint32_t attr_count,
639 _In_ const sai_attribute_t *attr_list);
640
650typedef sai_status_t (*sai_remove_nat_zone_counter_fn)(
651 _In_ sai_object_id_t nat_zone_counter_id);
652
662 _In_ sai_object_id_t nat_zone_counter_id,
663 _In_ const sai_attribute_t *attr);
664
675 _In_ sai_object_id_t nat_zone_counter_id,
676 _In_ uint32_t attr_count,
677 _Inout_ sai_attribute_t *attr_list);
678
682typedef struct _sai_nat_api_t
683{
688 sai_remove_nat_entry_fn remove_nat_entry;
689 sai_set_nat_entry_attribute_fn set_nat_entry_attribute;
690 sai_get_nat_entry_attribute_fn get_nat_entry_attribute;
691
692 sai_bulk_create_nat_entry_fn create_nat_entries;
693 sai_bulk_remove_nat_entry_fn remove_nat_entries;
694 sai_bulk_set_nat_entry_attribute_fn set_nat_entries_attribute;
695 sai_bulk_get_nat_entry_attribute_fn get_nat_entries_attribute;
696
697 sai_create_nat_zone_counter_fn create_nat_zone_counter;
698 sai_remove_nat_zone_counter_fn remove_nat_zone_counter;
699 sai_set_nat_zone_counter_attribute_fn set_nat_zone_counter_attribute;
700 sai_get_nat_zone_counter_attribute_fn get_nat_zone_counter_attribute;
702
706#endif
sai_status_t(* sai_get_nat_entry_attribute_fn)(_In_ const sai_nat_entry_t *nat_entry, _In_ uint32_t attr_count, _Inout_ sai_attribute_t *attr_list)
Get values for specified NAT entry attributes.
Definition sainat.h:421
_sai_nat_event_t
NAT event type.
Definition sainat.h:352
sai_status_t(* sai_set_nat_entry_attribute_fn)(_In_ const sai_nat_entry_t *nat_entry, _In_ const sai_attribute_t *attr)
Set NAT entry attribute value(s).
Definition sainat.h:408
enum _sai_nat_entry_attr_t sai_nat_entry_attr_t
NAT Entry Attributes for Match.
_sai_nat_type_t
NAT Type.
Definition sainat.h:40
sai_status_t(* sai_create_nat_zone_counter_fn)(_Out_ sai_object_id_t *nat_zone_counter_id, _In_ sai_object_id_t switch_id, _In_ uint32_t attr_count, _In_ const sai_attribute_t *attr_list)
Create and return a NAT zone counter object.
Definition sainat.h:635
_sai_nat_entry_attr_t
NAT Entry Attributes for Match.
Definition sainat.h:62
enum _sai_nat_zone_counter_attr_t sai_nat_zone_counter_attr_t
NAT zone counters for each NAT type.
sai_status_t(* sai_get_nat_zone_counter_attribute_fn)(_In_ sai_object_id_t nat_zone_counter_id, _In_ uint32_t attr_count, _Inout_ sai_attribute_t *attr_list)
Get values for specified NAT zone counter attributes.
Definition sainat.h:674
sai_status_t(* sai_bulk_set_nat_entry_attribute_fn)(_In_ uint32_t object_count, _In_ const sai_nat_entry_t *nat_entry, _In_ const sai_attribute_t *attr_list, _In_ sai_bulk_op_error_mode_t mode, _Out_ sai_status_t *object_statuses)
Bulk set attribute on NAT entry.
Definition sainat.h:498
struct _sai_nat_event_notification_data_t sai_nat_event_notification_data_t
Notification data format received from SAI NAT callback.
struct _sai_nat_api_t sai_nat_api_t
NAT API Router entry methods table retrieved with sai_api_query()
sai_status_t(* sai_remove_nat_entry_fn)(_In_ const sai_nat_entry_t *nat_entry)
Remove NAT entry.
Definition sainat.h:397
sai_status_t(* sai_bulk_create_nat_entry_fn)(_In_ uint32_t object_count, _In_ const sai_nat_entry_t *nat_entry, _In_ const uint32_t *attr_count, _In_ const sai_attribute_t **attr_list, _In_ sai_bulk_op_error_mode_t mode, _Out_ sai_status_t *object_statuses)
Bulk create NAT entry.
Definition sainat.h:455
sai_status_t(* sai_remove_nat_zone_counter_fn)(_In_ sai_object_id_t nat_zone_counter_id)
Deletes a specified NAT zone_counter object.
Definition sainat.h:650
sai_status_t(* sai_bulk_get_nat_entry_attribute_fn)(_In_ uint32_t object_count, _In_ const sai_nat_entry_t *nat_entry, _In_ const uint32_t *attr_count, _Inout_ sai_attribute_t **attr_list, _In_ sai_bulk_op_error_mode_t mode, _Out_ sai_status_t *object_statuses)
Bulk get attribute on NAT entry.
Definition sainat.h:522
sai_status_t(* sai_set_nat_zone_counter_attribute_fn)(_In_ sai_object_id_t nat_zone_counter_id, _In_ const sai_attribute_t *attr)
Set NAT zone counter attribute value(s).
Definition sainat.h:661
enum _sai_nat_type_t sai_nat_type_t
NAT Type.
struct _sai_nat_entry_t sai_nat_entry_t
NAT entry.
_sai_nat_zone_counter_attr_t
NAT zone counters for each NAT type.
Definition sainat.h:534
enum _sai_nat_event_t sai_nat_event_t
NAT event type.
sai_status_t(* sai_create_nat_entry_fn)(_In_ const sai_nat_entry_t *nat_entry, _In_ uint32_t attr_count, _In_ const sai_attribute_t *attr_list)
Create and return a NAT object.
Definition sainat.h:385
struct _sai_nat_entry_key_t sai_nat_entry_key_t
NAT entry keys API can be invoked with extra keys present. Driver MUST pick the right set of keys for...
void(* sai_nat_event_notification_fn)(_In_ uint32_t count, _In_ const sai_nat_event_notification_data_t *data)
NAT notifications.
Definition sainat.h:434
struct _sai_nat_entry_mask_t sai_nat_entry_mask_t
NAT entry key masks.
sai_status_t(* sai_bulk_remove_nat_entry_fn)(_In_ uint32_t object_count, _In_ const sai_nat_entry_t *nat_entry, _In_ sai_bulk_op_error_mode_t mode, _Out_ sai_status_t *object_statuses)
Bulk remove NAT entry.
Definition sainat.h:477
@ SAI_NAT_EVENT_NONE
Definition sainat.h:354
@ SAI_NAT_EVENT_AGED
Definition sainat.h:357
@ SAI_NAT_TYPE_NONE
Definition sainat.h:42
@ SAI_NAT_TYPE_SOURCE_NAT
Definition sainat.h:45
@ SAI_NAT_TYPE_DOUBLE_NAT
Definition sainat.h:51
@ SAI_NAT_TYPE_DESTINATION_NAT
Definition sainat.h:48
@ SAI_NAT_TYPE_DESTINATION_NAT_POOL
Definition sainat.h:54
@ SAI_NAT_ENTRY_ATTR_CUSTOM_RANGE_END
Definition sainat.h:232
@ SAI_NAT_ENTRY_ATTR_L4_SRC_PORT
Replace L4 source port in packet.
Definition sainat.h:146
@ SAI_NAT_ENTRY_ATTR_SRC_IP
Replace source IPv4 address in packet. NAT actions will be (source/destination/both is identified by ...
Definition sainat.h:90
@ SAI_NAT_ENTRY_ATTR_CUSTOM_RANGE_START
Definition sainat.h:229
@ SAI_NAT_ENTRY_ATTR_ENABLE_PACKET_COUNT
Enable/disable packet count.
Definition sainat.h:165
@ SAI_NAT_ENTRY_ATTR_BYTE_COUNT
Per NAT entry byte count.
Definition sainat.h:192
@ SAI_NAT_ENTRY_ATTR_DST_IP
Replace destination IPv4 address in packet. NAT actions will be (source/destination/both is identifie...
Definition sainat.h:126
@ SAI_NAT_ENTRY_ATTR_L4_DST_PORT
Replace L4 destination port in packet.
Definition sainat.h:156
@ SAI_NAT_ENTRY_ATTR_ENABLE_BYTE_COUNT
Enable/disable byte count.
Definition sainat.h:183
@ SAI_NAT_ENTRY_ATTR_HIT_BIT_COR
NAT entry hit bit clear on read flag.
Definition sainat.h:201
@ SAI_NAT_ENTRY_ATTR_VR_ID
Replace virtual router id associate with DST_IP NAT actions will be (source/destination/both is ident...
Definition sainat.h:114
@ SAI_NAT_ENTRY_ATTR_AGING_TIME
NAT entry aging time in seconds.
Definition sainat.h:221
@ SAI_NAT_ENTRY_ATTR_NAT_TYPE
NAT Type defined in sai_nat_type_t.
Definition sainat.h:75
@ SAI_NAT_ENTRY_ATTR_HIT_BIT
Per NAT entry hit bit state.
Definition sainat.h:210
@ SAI_NAT_ENTRY_ATTR_END
End of NAT Entry attributes.
Definition sainat.h:226
@ SAI_NAT_ENTRY_ATTR_PACKET_COUNT
Per NAT entry packet count.
Definition sainat.h:174
@ SAI_NAT_ENTRY_ATTR_SRC_IP_MASK
Mask for source IPv4 address in packet.
Definition sainat.h:100
@ SAI_NAT_ENTRY_ATTR_DST_IP_MASK
Mask for destination IPv4 address in packet.
Definition sainat.h:136
@ SAI_NAT_ENTRY_ATTR_START
Start of Attributes.
Definition sainat.h:66
@ SAI_NAT_ZONE_COUNTER_ATTR_DISCARD_PACKET_COUNT
Discard packet count.
Definition sainat.h:574
@ SAI_NAT_ZONE_COUNTER_ATTR_END
End of Attributes.
Definition sainat.h:615
@ SAI_NAT_ZONE_COUNTER_ATTR_CUSTOM_RANGE_START
Definition sainat.h:618
@ SAI_NAT_ZONE_COUNTER_ATTR_ZONE_ID
NAT Zone ID.
Definition sainat.h:556
@ SAI_NAT_ZONE_COUNTER_ATTR_CUSTOM_RANGE_END
Definition sainat.h:621
@ SAI_NAT_ZONE_COUNTER_ATTR_TRANSLATIONS_PACKET_COUNT
Translations performed packet count.
Definition sainat.h:610
@ SAI_NAT_ZONE_COUNTER_ATTR_TRANSLATION_NEEDED_PACKET_COUNT
Translation needed packet count.
Definition sainat.h:592
@ SAI_NAT_ZONE_COUNTER_ATTR_ENABLE_TRANSLATIONS
Enable/disable translations count.
Definition sainat.h:601
@ SAI_NAT_ZONE_COUNTER_ATTR_START
Start of Attributes.
Definition sainat.h:538
@ SAI_NAT_ZONE_COUNTER_ATTR_ENABLE_DISCARD
Enable/disable discard count.
Definition sainat.h:565
@ SAI_NAT_ZONE_COUNTER_ATTR_ENABLE_TRANSLATION_NEEDED
Enable/disable translation needed count.
Definition sainat.h:583
@ SAI_NAT_ZONE_COUNTER_ATTR_NAT_TYPE
NAT Type defined in sai_nat_type_t.
Definition sainat.h:547
This module defines SAI portable types.
NAT API Router entry methods table retrieved with sai_api_query()
Definition sainat.h:683
sai_create_nat_entry_fn create_nat_entry
SAI NAT API set.
Definition sainat.h:687
Definition sainat.h:304
sai_nat_entry_key_t key
NAT entry keys.
Definition sainat.h:308
sai_nat_entry_mask_t mask
NAT entry keys.
Definition sainat.h:313
NAT entry keys API can be invoked with extra keys present. Driver MUST pick the right set of keys for...
Definition sainat.h:243
sai_uint16_t l4_dst_port
IP layer 4 destination port.
Definition sainat.h:267
sai_ip4_t src_ip
IPv4 source address.
Definition sainat.h:247
sai_ip4_t dst_ip
IPv4 destination address.
Definition sainat.h:252
sai_uint16_t l4_src_port
IP layer 4 source port.
Definition sainat.h:262
sai_uint8_t proto
IP protocol value.
Definition sainat.h:257
NAT entry key masks.
Definition sainat.h:275
sai_uint16_t l4_dst_port
IP layer 4 destination port mask.
Definition sainat.h:299
sai_ip4_t dst_ip
IPv4 destination address mask.
Definition sainat.h:284
sai_ip4_t src_ip
IPv4 source address mask.
Definition sainat.h:279
sai_uint16_t l4_src_port
IP layer 4 source port mask.
Definition sainat.h:294
sai_uint8_t proto
IP protocol mask.
Definition sainat.h:289
NAT entry.
Definition sainat.h:321
sai_object_id_t switch_id
Switch ID.
Definition sainat.h:327
sai_nat_entry_data_t data
NAT entry data.
Definition sainat.h:344
sai_object_id_t vr_id
Virtual Router.
Definition sainat.h:334
sai_nat_type_t nat_type
NAT entry type.
Definition sainat.h:339
Notification data format received from SAI NAT callback.
Definition sainat.h:367