Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
nat: remove nat44-ed relation between SM and addr
[vpp.git]
/
src
/
plugins
/
nat
/
nat44-ed
/
nat44_ed.h
diff --git
a/src/plugins/nat/nat44-ed/nat44_ed.h
b/src/plugins/nat/nat44-ed/nat44_ed.h
index
d8cc0d3
..
9772f1e
100644
(file)
--- a/
src/plugins/nat/nat44-ed/nat44_ed.h
+++ b/
src/plugins/nat/nat44-ed/nat44_ed.h
@@
-63,10
+63,6
@@
typedef enum nat44_config_flags_t_
typedef struct
{
typedef struct
{
- /* nat44 plugin features */
- u8 static_mapping_only;
- u8 connection_tracking;
-
u32 inside_vrf;
u32 outside_vrf;
u32 inside_vrf;
u32 outside_vrf;
@@
-450,6
+446,7
@@
typedef struct
typedef struct
{
typedef struct
{
+ u8 is_resolved;
ip4_address_t l_addr;
ip4_address_t pool_addr;
u16 l_port;
ip4_address_t l_addr;
ip4_address_t pool_addr;
u16 l_port;
@@
-459,7
+456,21
@@
typedef struct
ip_protocol_t proto;
u32 flags;
u8 *tag;
ip_protocol_t proto;
u32 flags;
u8 *tag;
-} snat_static_map_resolve_t;
+} snat_static_mapping_resolve_t;
+
+typedef struct
+{
+ u8 is_resolved;
+ u8 is_twice_nat;
+ u32 sw_if_index;
+} snat_address_resolve_t;
+
+typedef struct
+{
+ u32 count;
+ u32 sw_if_index;
+ ip4_address_t addr;
+} snat_fib_entry_reg_t;
typedef struct
{
typedef struct
{
@@
-533,9
+544,8
@@
typedef struct snat_main_s
/* Vector of twice NAT addresses for external hosts */
snat_address_t *twice_nat_addresses;
/* Vector of twice NAT addresses for external hosts */
snat_address_t *twice_nat_addresses;
- /* sw_if_indices whose intfc addresses should be auto-added */
- u32 *auto_add_sw_if_indices;
- u32 *auto_add_sw_if_indices_twice_nat;
+ /* first interface address should be auto-added */
+ snat_address_resolve_t *addr_to_resolve;
/* Address and port allocation function */
nat_alloc_out_addr_and_port_function_t *alloc_addr_and_port;
/* Address and port allocation function */
nat_alloc_out_addr_and_port_function_t *alloc_addr_and_port;
@@
-555,8
+565,11
@@
typedef struct snat_main_s
/* vector of outside fibs */
nat_outside_fib_t *outside_fibs;
/* vector of outside fibs */
nat_outside_fib_t *outside_fibs;
+ /* vector of fib entries */
+ snat_fib_entry_reg_t *fib_entry_reg;
+
/* vector of interface address static mappings to resolve. */
/* vector of interface address static mappings to resolve. */
- snat_static_map
_resolve_t *
to_resolve;
+ snat_static_map
ping_resolve_t *sm_
to_resolve;
/* Randomize port allocation order */
u32 random_seed;
/* Randomize port allocation order */
u32 random_seed;
@@
-576,10
+589,6
@@
typedef struct snat_main_s
/* If forwarding is enabled */
u8 forwarding_enabled;
/* If forwarding is enabled */
u8 forwarding_enabled;
- /* static mapping config */
- u8 static_mapping_only;
- u8 static_mapping_connection_tracking;
-
/* Is translation memory size calculated or user defined */
u8 translation_memory_size_set;
/* Is translation memory size calculated or user defined */
u8 translation_memory_size_set;
@@
-651,9
+660,6
@@
typedef struct snat_main_s
fib_source_t fib_src_hi;
fib_source_t fib_src_low;
fib_source_t fib_src_hi;
fib_source_t fib_src_low;
- /* pat - dynamic mapping enabled or conneciton tracking */
- u8 pat;
-
/* number of worker handoff frame queue elements */
u32 frame_queue_nelts;
/* number of worker handoff frame queue elements */
u32 frame_queue_nelts;
@@
-876,7
+882,7
@@
int nat44_ed_add_output_interface (u32 sw_if_index);
int nat44_ed_del_output_interface (u32 sw_if_index);
int nat44_ed_add_address (ip4_address_t *addr, u32 vrf_id, u8 twice_nat);
int nat44_ed_del_output_interface (u32 sw_if_index);
int nat44_ed_add_address (ip4_address_t *addr, u32 vrf_id, u8 twice_nat);
-int nat44_ed_del_address (ip4_address_t addr, u8
delete_sm, u8
twice_nat);
+int nat44_ed_del_address (ip4_address_t addr, u8 twice_nat);
int nat44_ed_add_interface_address (u32 sw_if_index, u8 twice_nat);
int nat44_ed_del_interface_address (u32 sw_if_index, u8 twice_nat);
int nat44_ed_add_interface_address (u32 sw_if_index, u8 twice_nat);
int nat44_ed_del_interface_address (u32 sw_if_index, u8 twice_nat);