Add special Twice-NAT feature (VPP-1221)
[vpp.git] / src / plugins / nat / nat.api
index 69b6045..23c89ad 100644 (file)
@@ -352,6 +352,9 @@ define nat44_interface_output_feature_details {
     @param vfr_id - VRF ID
     @param twice_nat - if 1 translate external host address and port, only for
                        1:1 NAPT (addr_only must be 0)
+    @param self_twice_nat - if 1 translate external host address and port
+                            whenever external host address equals
+                            local address of internal host
     @param out2in_only - if 1 rule match only out2in direction
     @param tag - opaque string tag
 */
@@ -368,6 +371,7 @@ autoreply define nat44_add_del_static_mapping {
   u32 external_sw_if_index;
   u32 vrf_id;
   u8 twice_nat;
+  u8 self_twice_nat;
   u8 out2in_only;
   u8 tag[64];
 };
@@ -392,6 +396,9 @@ define nat44_static_mapping_dump {
     @param external_sw_if_index - external interface
     @param vfr_id - VRF ID
     @param twice_nat - if 1 translate external host address and port
+    @param self_twice_nat - if 1 translate external host address and port
+                            whenever external host address equals
+                            local address of internal host
     @param out2in_only - if 1 rule match only out2in direction
     @param tag - opaque string tag
 */
@@ -406,6 +413,7 @@ define nat44_static_mapping_details {
   u32 external_sw_if_index;
   u32 vrf_id;
   u8 twice_nat;
+  u8 self_twice_nat;
   u8 out2in_only;
   u8 tag[64];
 };
@@ -584,6 +592,9 @@ typeonly manual_endian define nat44_lb_addr_port {
     @param protocol - IP protocol number of the service
     @param vrf_id - internal network VRF ID
     @param twice_nat - if 1 translate external host address and port
+    @param self_twice_nat - if 1 translate external host address and port
+                            whenever external host address equals
+                            local address of internal host
     @param out2in_only - if 1 rule match only out2in direction
     @param tag - opaque string tag
     @param local_num - number of local network nodes
@@ -598,6 +609,7 @@ autoreply manual_endian define nat44_add_del_lb_static_mapping {
   u8 protocol;
   u32 vrf_id;
   u8 twice_nat;
+  u8 self_twice_nat;
   u8 out2in_only;
   u8 tag[64];
   u8 local_num;
@@ -621,6 +633,9 @@ define nat44_lb_static_mapping_dump {
     @param protocol - IP protocol number of the service
     @param vrf_id - internal network VRF ID
     @param twice_nat - if 1 translate external host address and port
+    @param self_twice_nat - if 1 translate external host address and port
+                            whenever external host address equals
+                            local address of internal host
     @param out2in_only - if 1 rule match only out2in direction
     @param tag - opaque string tag
     @param local_num - number of local network nodes
@@ -633,6 +648,7 @@ manual_endian define nat44_lb_static_mapping_details {
   u8 protocol;
   u32 vrf_id;
   u8 twice_nat;
+  u8 self_twice_nat;
   u8 out2in_only;
   u8 tag[64];
   u8 local_num;