FD.io VPP
v18.10-34-gcce845e
Vector Packet Processing
|
NAT plugin virtual fragmentation reassembly. More...
Go to the source code of this file.
Functions | |
static u32 | nat_reass_get_nbuckets (u8 is_ip6) |
static_always_inline void | nat_ip4_reass_get_frags_inline (nat_reass_ip4_t *reass, u32 **bi) |
static_always_inline void | nat_ip6_reass_get_frags_inline (nat_reass_ip6_t *reass, u32 **bi) |
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... | |
static_always_inline nat_reass_ip4_t * | nat_ip4_reass_lookup (nat_reass_ip4_key_t *k, f64 now) |
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... | |
static_always_inline nat_reass_ip6_t * | nat_ip6_reass_lookup (nat_reass_ip6_key_t *k, f64 now) |
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... | |
clib_error_t * | nat_reass_init (vlib_main_t *vm) |
Initialize NAT virtual fragmentation reassembly. More... | |
static clib_error_t * | nat_reass_command_fn (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd) |
static int | nat_ip4_reass_walk_cli (nat_reass_ip4_t *reass, void *ctx) |
static int | nat_ip6_reass_walk_cli (nat_reass_ip6_t *reass, void *ctx) |
static clib_error_t * | show_nat_reass_command_fn (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd) |
Variables | |
nat_reass_main_t | nat_reass_main |
static vlib_cli_command_t | nat_reass_command |
(constructor) VLIB_CLI_COMMAND (nat_reass_command) More... | |
static vlib_cli_command_t | show_nat_reass_command |
(constructor) VLIB_CLI_COMMAND (show_nat_reass_command) More... | |
NAT plugin virtual fragmentation reassembly.
Definition in file nat_reass.c.
Cache fragment.
reass | Reassembly data. |
bi | Buffer index. |
bi_to_drop | Fragments to drop. |
Definition at line 338 of file nat_reass.c.
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.
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.
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.
static_always_inline void nat_ip4_reass_get_frags_inline | ( | nat_reass_ip4_t * | reass, |
u32 ** | bi | ||
) |
Definition at line 47 of file nat_reass.c.
static_always_inline nat_reass_ip4_t* nat_ip4_reass_lookup | ( | nat_reass_ip4_key_t * | k, |
f64 | now | ||
) |
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.
|
static |
Definition at line 726 of file nat_reass.c.
Cache fragment.
reass | Reassembly data. |
bi | Buffer index. |
bi_to_drop | Fragments to drop. |
Definition at line 544 of file nat_reass.c.
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.
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.
static_always_inline void nat_ip6_reass_get_frags_inline | ( | nat_reass_ip6_t * | reass, |
u32 ** | bi | ||
) |
Definition at line 66 of file nat_reass.c.
static_always_inline nat_reass_ip6_t* nat_ip6_reass_lookup | ( | nat_reass_ip6_key_t * | k, |
f64 | now | ||
) |
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.
|
static |
Definition at line 779 of file nat_reass.c.
|
static |
Get maximum number of fragmets per reassembly.
is_ip6 | 1 if IPv6, 0 if IPv4. |
Definition at line 157 of file nat_reass.c.
Get maximum number of concurrent reassemblies.
is_ip6 | 1 if IPv6, 0 if IPv4. |
Definition at line 146 of file nat_reass.c.
Get reassembly timeout.
is_ip6 | 1 if IPv6, 0 if IPv4. |
Definition at line 135 of file nat_reass.c.
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.
Get status of virtual fragmentation reassembly.
is_ip6 | 1 if IPv6, 0 if IPv4. |
Definition at line 168 of file nat_reass.c.
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.
|
static |
|
static |
(constructor) VLIB_CLI_COMMAND (nat_reass_command)
Definition at line 816 of file nat_reass.c.
nat_reass_main_t nat_reass_main |
Definition at line 24 of file nat_reass.c.
|
static |
(constructor) VLIB_CLI_COMMAND (show_nat_reass_command)
Definition at line 824 of file nat_reass.c.