![]() |
FD.io VPP
v18.10-34-gcce845e
Vector Packet Processing
|
NAT plugin virtual fragmentation reassembly. More...
Include dependency graph for nat_reass.h:
This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Data Structures | |
| struct | nat_reass_ip4_key_t |
| struct | nat_reass_ip6_key_t |
| struct | nat_reass_main_t |
Macros | |
| #define | NAT_REASS_TIMEOUT_DEFAULT 2 |
| #define | NAT_MAX_REASS_DEAFULT 1024 |
| #define | NAT_MAX_FRAG_DEFAULT 5 |
| #define | NAT_REASS_HT_LOAD_FACTOR (0.75) |
| #define | NAT_REASS_FLAG_MAX_FRAG_DROP 1 |
| #define | NAT_REASS_FLAG_CLASSIFY_ED_CONTINUE 2 |
| #define | NAT_REASS_FLAG_ED_DONT_TRANSLATE 4 |
Typedefs | |
| typedef int(* | nat_ip4_reass_walk_fn_t) (nat_reass_ip4_t *reass, void *ctx) |
| Call back function when walking IPv4 reassemblies, non-zero return value stop walk. More... | |
| typedef int(* | nat_ip6_reass_walk_fn_t) (nat_reass_ip6_t *reass, void *ctx) |
| Call back function when walking IPv6 reassemblies, non-zero return value stop walk. More... | |
Enumerations | |
| enum | { NAT_REASS_IP4_CLASSIFY_NONE, NAT_REASS_IP4_CLASSIFY_NEXT_IN2OUT, NAT_REASS_IP4_CLASSIFY_NEXT_OUT2IN } |
Functions | |
| typedef | CLIB_PACKED (struct{nat_reass_ip4_key_t key;u32 lru_list_index;u32 sess_index;u32 thread_index;f64 last_heard;u32 frags_per_reass_list_head_index;u8 frag_n;u8 flags;u8 classify_next;}) nat_reass_ip4_t |
| typedef | CLIB_PACKED (struct{nat_reass_ip6_key_t key;u32 lru_list_index;u32 sess_index;f64 last_heard;u32 frags_per_reass_list_head_index;u8 frag_n;u8 flags;}) nat_reass_ip6_t |
| int | nat_reass_set (u32 timeout, u16 max_reass, u8 max_frag, u8 drop_frag, u8 is_ip6) |
| Set NAT virtual fragmentation reassembly configuration. More... | |
| u32 | nat_reass_get_timeout (u8 is_ip6) |
| Get reassembly timeout. More... | |
| u16 | nat_reass_get_max_reass (u8 is_ip6) |
| Get maximum number of concurrent reassemblies. More... | |
| u8 | nat_reass_get_max_frag (u8 is_ip6) |
| Get maximum number of fragmets per reassembly. More... | |
| u8 | nat_reass_is_drop_frag (u8 is_ip6) |
| Get status of virtual fragmentation reassembly. More... | |
| clib_error_t * | nat_reass_init (vlib_main_t *vm) |
| Initialize NAT virtual fragmentation reassembly. More... | |
| nat_reass_ip4_t * | nat_ip4_reass_find (ip4_address_t src, ip4_address_t dst, u16 frag_id, u8 proto) |
| Find reassembly. More... | |
| nat_reass_ip4_t * | nat_ip4_reass_find_or_create (ip4_address_t src, ip4_address_t dst, u16 frag_id, u8 proto, u8 reset_timeout, u32 **bi_to_drop) |
| Find or create reassembly. More... | |
| int | nat_ip4_reass_add_fragment (nat_reass_ip4_t *reass, u32 bi, u32 **bi_to_drop) |
| Cache fragment. More... | |
| void | nat_ip4_reass_get_frags (nat_reass_ip4_t *reass, u32 **bi) |
| Get cached fragments. More... | |
| void | nat_ip4_reass_walk (nat_ip4_reass_walk_fn_t fn, void *ctx) |
| Walk IPv4 reassemblies. More... | |
| nat_reass_ip6_t * | nat_ip6_reass_find_or_create (ip6_address_t src, ip6_address_t dst, u32 frag_id, u8 proto, u8 reset_timeout, u32 **bi_to_drop) |
| Find or create reassembly. More... | |
| int | nat_ip6_reass_add_fragment (nat_reass_ip6_t *reass, u32 bi, u32 **bi_to_drop) |
| Cache fragment. More... | |
| void | nat_ip6_reass_get_frags (nat_reass_ip6_t *reass, u32 **bi) |
| Get cached fragments. More... | |
| void | nat_ip6_reass_walk (nat_ip6_reass_walk_fn_t fn, void *ctx) |
| Walk IPv6 reassemblies. More... | |
NAT plugin virtual fragmentation reassembly.
Definition in file nat_reass.h.
| #define NAT_MAX_FRAG_DEFAULT 5 |
Definition at line 30 of file nat_reass.h.
| #define NAT_MAX_REASS_DEAFULT 1024 |
Definition at line 29 of file nat_reass.h.
| #define NAT_REASS_FLAG_CLASSIFY_ED_CONTINUE 2 |
Definition at line 34 of file nat_reass.h.
| #define NAT_REASS_FLAG_ED_DONT_TRANSLATE 4 |
Definition at line 35 of file nat_reass.h.
| #define NAT_REASS_FLAG_MAX_FRAG_DROP 1 |
Definition at line 33 of file nat_reass.h.
| #define NAT_REASS_HT_LOAD_FACTOR (0.75) |
Definition at line 31 of file nat_reass.h.
| #define NAT_REASS_TIMEOUT_DEFAULT 2 |
Definition at line 28 of file nat_reass.h.
| typedef int(* nat_ip4_reass_walk_fn_t) (nat_reass_ip4_t *reass, void *ctx) |
Call back function when walking IPv4 reassemblies, non-zero return value stop walk.
Definition at line 258 of file nat_reass.h.
| typedef int(* nat_ip6_reass_walk_fn_t) (nat_reass_ip6_t *reass, void *ctx) |
Call back function when walking IPv6 reassemblies, non-zero return value stop walk.
Definition at line 309 of file nat_reass.h.
| anonymous enum |
| Enumerator | |
|---|---|
| NAT_REASS_IP4_CLASSIFY_NONE | |
| NAT_REASS_IP4_CLASSIFY_NEXT_IN2OUT | |
| NAT_REASS_IP4_CLASSIFY_NEXT_OUT2IN | |
Definition at line 54 of file nat_reass.h.
| typedef CLIB_PACKED | ( | struct{nat_reass_ip4_key_t key;u32 lru_list_index;u32 sess_index;u32 thread_index;f64 last_heard;u32 frags_per_reass_list_head_index;u8 frag_n;u8 flags;u8 classify_next;} | ) |
| typedef CLIB_PACKED | ( | struct{nat_reass_ip6_key_t key;u32 lru_list_index;u32 sess_index;f64 last_heard;u32 frags_per_reass_list_head_index;u8 frag_n;u8 flags;} | ) |
Cache fragment.
| reass | Reassembly data. |
| bi | Buffer index. |
| bi_to_drop | Fragments to drop. |
Definition at line 338 of file nat_reass.c.
Here is the call graph for this function:
Here is the caller graph for this function:| nat_reass_ip4_t* nat_ip4_reass_find | ( | ip4_address_t | src, |
| ip4_address_t | dst, | ||
| u16 | frag_id, | ||
| u8 | proto | ||
| ) |
Find reassembly.
| src | Source IPv4 address. |
| dst | Destination IPv4 address. |
| frag_id | Fragment ID. |
| proto | L4 protocol. |
Definition at line 199 of file nat_reass.c.
Here is the call graph for this function:
Here is the caller graph for this function:| nat_reass_ip4_t* nat_ip4_reass_find_or_create | ( | ip4_address_t | src, |
| ip4_address_t | dst, | ||
| u16 | frag_id, | ||
| u8 | proto, | ||
| u8 | reset_timeout, | ||
| u32 ** | bi_to_drop | ||
| ) |
Find or create reassembly.
| src | Source IPv4 address. |
| dst | Destination IPv4 address. |
| frag_id | Fragment ID. |
| proto | L4 protocol. |
| reset_timeout | If non-zero value reset timeout. |
| bi_to_drop | Fragments to drop. |
Definition at line 220 of file nat_reass.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void nat_ip4_reass_get_frags | ( | nat_reass_ip4_t * | reass, |
| u32 ** | bi | ||
| ) |
Get cached fragments.
| reass | Reassembly data. |
| bi | Vector of buffer indexes. |
Definition at line 370 of file nat_reass.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void nat_ip4_reass_walk | ( | nat_ip4_reass_walk_fn_t | fn, |
| void * | ctx | ||
| ) |
Walk IPv4 reassemblies.
| fn | The function to invoke on each entry visited. |
| ctx | A context passed in the visit function. |
Definition at line 382 of file nat_reass.c.
Here is the call graph for this function:
Here is the caller graph for this function:Cache fragment.
| reass | Reassembly data. |
| bi | Buffer index. |
| bi_to_drop | Fragments to drop. |
Definition at line 544 of file nat_reass.c.
Here is the call graph for this function:
Here is the caller graph for this function:| nat_reass_ip6_t* nat_ip6_reass_find_or_create | ( | ip6_address_t | src, |
| ip6_address_t | dst, | ||
| u32 | frag_id, | ||
| u8 | proto, | ||
| u8 | reset_timeout, | ||
| u32 ** | bi_to_drop | ||
| ) |
Find or create reassembly.
| src | Source IPv6 address. |
| dst | Destination IPv6 address. |
| frag_id | Fragment ID. |
| proto | L4 protocol. |
| reset_timeout | If non-zero value reset timeout. |
| bi_to_drop | Fragments to drop. |
Definition at line 426 of file nat_reass.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void nat_ip6_reass_get_frags | ( | nat_reass_ip6_t * | reass, |
| u32 ** | bi | ||
| ) |
Get cached fragments.
| reass | Reassembly data. |
| bi | Vector of buffer indexes. |
Definition at line 576 of file nat_reass.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void nat_ip6_reass_walk | ( | nat_ip6_reass_walk_fn_t | fn, |
| void * | ctx | ||
| ) |
Walk IPv6 reassemblies.
| fn | The function to invoke on each entry visited. |
| ctx | A context passed in the visit function. |
Definition at line 588 of file nat_reass.c.
Here is the call graph for this function:
Here is the caller graph for this function:Get maximum number of fragmets per reassembly.
| is_ip6 | 1 if IPv6, 0 if IPv4. |
Definition at line 157 of file nat_reass.c.
Here is the caller graph for this function:Get maximum number of concurrent reassemblies.
| is_ip6 | 1 if IPv6, 0 if IPv4. |
Definition at line 146 of file nat_reass.c.
Here is the caller graph for this function:Get reassembly timeout.
| is_ip6 | 1 if IPv6, 0 if IPv4. |
Definition at line 135 of file nat_reass.c.
Here is the caller graph for this function:| clib_error_t* nat_reass_init | ( | vlib_main_t * | vm | ) |
Initialize NAT virtual fragmentation reassembly.
| vm | vlib main. |
Definition at line 607 of file nat_reass.c.
Here is the call graph for this function:
Here is the caller graph for this function:Get status of virtual fragmentation reassembly.
| is_ip6 | 1 if IPv6, 0 if IPv4. |
Definition at line 168 of file nat_reass.c.
Here is the caller graph for this function:Set NAT virtual fragmentation reassembly configuration.
| timeout | Reassembly timeout. |
| max_reass | Maximum number of concurrent reassemblies. |
| max_frag | Maximum number of fragmets per reassembly |
| drop_frag | If zero translate fragments, otherwise drop fragments. |
| is_ip6 | 1 if IPv6, 0 if IPv4. |
Definition at line 85 of file nat_reass.c.
Here is the call graph for this function:
Here is the caller graph for this function: