X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fplugins%2Fnat%2Fnat.api;h=f41428b70bb5c09c00b18b9dd7d26350f1ef66d6;hb=b686508c4edff42dac2ab140318de8aacb2ac18b;hp=8e37567a9e8ad0af7a95b88ed9b98294559bd61a;hpb=878c646aea9b9ccf68011ffd964694c43bbe5fdd;p=vpp.git diff --git a/src/plugins/nat/nat.api b/src/plugins/nat/nat.api index 8e37567a9e8..f41428b70bb 100644 --- a/src/plugins/nat/nat.api +++ b/src/plugins/nat/nat.api @@ -13,7 +13,7 @@ * limitations under the License. */ -option version = "4.0.0"; +option version = "4.1.0"; /** * @file nat.api @@ -277,6 +277,96 @@ define nat_get_timeouts_reply { u32 icmp; }; +/** \brief Set address and port assignment algorithm + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param alg - address and port assignment algorithm: + 0 - default, 1 - MAP-E, 2 - port range + (see nat_addr_and_port_alloc_alg_t in nat.h) + @param psid_offset - number of offset bits (valid only for MAP-E alg) + @param psid_length - length of PSID (valid only for MAP-E alg) + @param psid - Port Set Identifier (PSID) value (valid only for MAP-E alg) + @param start_port - beginning of the port range + @param end_port - end of the port range +*/ +autoreply define nat_set_addr_and_port_alloc_alg { + u32 client_index; + u32 context; + u8 alg; + u8 psid_offset; + u8 psid_length; + u16 psid; + u16 start_port; + u16 end_port; +}; + +/** \brief Get address and port assignment algorithm + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request +*/ +define nat_get_addr_and_port_alloc_alg { + u32 client_index; + u32 context; +}; + +/** \brief Get address and port assignment algorithm reply + @param context - sender context, to match reply w/ request + @param retval - return code + @param alg - address and port assignment algorithm: + 0 - default, 1 - MAP-E, 2 - port range + (see nat_addr_and_port_alloc_alg_t in nat.h) + @param psid_offset - number of offset bits (valid only for MAP-E alg) + @param psid_length - length of PSID (valid only for MAP-E alg) + @param psid - Port Set Identifier (PSID) value (valid only for MAP-E alg) + @param start_port - beginning of the port range + @param end_port - end of the port range +*/ +define nat_get_addr_and_port_alloc_alg_reply { + u32 context; + i32 retval; + u8 alg; + u8 psid_offset; + u8 psid_length; + u16 psid; + u16 start_port; + u16 end_port; +}; + +/** \brief Set TCP MSS rewriting configuration + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param mss_value - MSS value to be used for MSS rewriting + @param enable - disable(0)/enable(1) MSS rewriting feature +*/ +autoreply define nat_set_mss_clamping { + u32 client_index; + u32 context; + u16 mss_value; + u8 enable; +}; + +/** \brief Get TCP MSS rewriting configuration + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request +*/ +define nat_get_mss_clamping { + u32 client_index; + u32 context; +}; + +/** \brief Get TCP MSS rewriting configuration reply + @param context - sender context, to match reply w/ request + @param retval - return code + @param mss_value - MSS value to be used for MSS rewriting + @param enable - disable(0)/enable(1) MSS rewriting feature +*/ +define nat_get_mss_clamping_reply { + u32 context; + i32 retval; + u16 mss_value; + u8 enable; +}; + /* * NAT44 APIs */ @@ -668,6 +758,8 @@ typeonly manual_endian define nat44_lb_addr_port { local address of internal host @param out2in_only - if 1 rule match only out2in direction @param tag - opaque string tag + @param affinity - if 0 disabled, otherwise client IP affinity sticky time + in seconds @param local_num - number of local network nodes @param locals - local network nodes */ @@ -682,10 +774,30 @@ autoreply manual_endian define nat44_add_del_lb_static_mapping { u8 self_twice_nat; u8 out2in_only; u8 tag[64]; - u8 local_num; + u32 affinity; + u32 local_num; vl_api_nat44_lb_addr_port_t locals[local_num]; }; +/** \brief Add/delete NAT44 load-balancing static mapping rule backend + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param is_add - 1 if add, 0 if delete + @param external_addr - external IPv4 address of the service + @param external_port - external L4 port number of the service + @param protocol - IP protocol number of the service + @param local - local network node +*/ +autoreply define nat44_lb_static_mapping_add_del_local { + u32 client_index; + u32 context; + u8 is_add; + u8 external_addr[4]; + u16 external_port; + u8 protocol; + vl_api_nat44_lb_addr_port_t local; +}; + /** \brief Dump NAT44 load-balancing static mapping rules @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request @@ -707,6 +819,8 @@ define nat44_lb_static_mapping_dump { local address of internal host @param out2in_only - if 1 rule match only out2in direction @param tag - opaque string tag + @param affinity - if 0 disabled, otherwise client IP affinity sticky time + in seconds @param local_num - number of local network nodes @param locals - local network nodes */ @@ -719,7 +833,8 @@ manual_endian define nat44_lb_static_mapping_details { u8 self_twice_nat; u8 out2in_only; u8 tag[64]; - u8 local_num; + u32 affinity; + u32 local_num; vl_api_nat44_lb_addr_port_t locals[local_num]; };