diff options
author | Filip Varga <fivarga@cisco.com> | 2022-02-23 15:45:48 -0800 |
---|---|---|
committer | Ole Tr�an <otroan@employees.org> | 2022-04-01 13:26:04 +0000 |
commit | 691c630b79ec2230b67944c8a9f77f95b49d95ad (patch) | |
tree | c27778fb111ef4d85d3c712ee0b68b0574f26d82 /src/plugins/nat/nat44-ed/nat44_ed.api | |
parent | b68108203a59e12f4b4435caba164072e234f0aa (diff) |
nat: VRF routing & FIB improvements
This patch affects how destination fib is choosen during session
creation. Default behavior of choosing fib based on output
interfaces is kept.
Configuration gives you the ability to change default behavior
to direct or restrict traffic between different FIB tables.
NAT specific VRF routing options:
a) keeping communication in the same VRF
b) option to add multiple destination VRFs
c) option to control the resolution order of destination VRFs
TX FIB resolution is based on looking up RX FIB entry in NATs
VRF table and picking the first FIB that resolves
destination address.
Ticket: VPP-2009
Type: improvement
Change-Id: If500c48d7ce3466533ad9581c0847870788fc4fb
Signed-off-by: Filip Varga <fivarga@cisco.com>
Diffstat (limited to 'src/plugins/nat/nat44-ed/nat44_ed.api')
-rw-r--r-- | src/plugins/nat/nat44-ed/nat44_ed.api | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/src/plugins/nat/nat44-ed/nat44_ed.api b/src/plugins/nat/nat44-ed/nat44_ed.api index afb55021bec..88496a3f16e 100644 --- a/src/plugins/nat/nat44-ed/nat44_ed.api +++ b/src/plugins/nat/nat44-ed/nat44_ed.api @@ -198,6 +198,58 @@ define nat_worker_details { string name[64]; }; +/** \brief Add/delete inter VRF NAT44-ED routing table + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param table_vrf_id - id of (rx) VRF used for resolving + destination (tx) VRF during dynamic + session creation + @param is_add - if true add else del +*/ +autoreply define nat44_ed_add_del_vrf_table { + u32 client_index; + u32 context; + u32 table_vrf_id; + bool is_add; +}; + +/** \brief Add/del inter VRF NAT44-ED route record + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param table_vrf_id - id of the VRF NAT routing table + @param vrf_id - id of resolving destination (tx) VRF table + @param is_add - if true add else del +*/ +autoreply define nat44_ed_add_del_vrf_route { + u32 client_index; + u32 context; + u32 table_vrf_id; + u32 vrf_id; + bool is_add; +}; + +/** \brief Dump NAT44-ED inter VRF NAT routing tables + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request +*/ +define nat44_ed_vrf_tables_dump { + u32 client_index; + u32 context; +}; + +/** \brief NAT44-ED inter VRF NAT routing table details response + @param context - sender context, to match reply w/ request + @param table_vrf_id - id of the VRF NAT routing table + @param n_vrf_ids - number of vrf_ids + @param vrf_ids - ids of resolving destination (tx) VRFs +*/ +define nat44_ed_vrf_tables_details { + u32 context; + u32 table_vrf_id; + u32 n_vrf_ids; + u32 vrf_ids[n_vrf_ids]; +}; + /** \brief Set TCP MSS rewriting configuration @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request |