diff options
author | Jakub Grajciar <jgrajcia@cisco.com> | 2020-01-03 10:02:32 +0100 |
---|---|---|
committer | Ole Trøan <otroan@employees.org> | 2020-01-03 13:14:47 +0000 |
commit | 956819afa9a7150a05239432289a881898dae138 (patch) | |
tree | 116552f4164f725719f304bec48cb9361047db94 | |
parent | 99c7b395e9cb72667b2cb8ffd7c987d42b48ea13 (diff) |
tcp: api clenup
Use consistent API types.
Type: fix
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
Change-Id: I48f08cc657c28ad1eef50c917a560425137bb70e
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
-rw-r--r-- | src/vnet/tcp/tcp.api | 16 | ||||
-rw-r--r-- | src/vnet/tcp/tcp_api.c | 24 |
2 files changed, 25 insertions, 15 deletions
diff --git a/src/vnet/tcp/tcp.api b/src/vnet/tcp/tcp.api index cfef9d62848..d745e0268b0 100644 --- a/src/vnet/tcp/tcp.api +++ b/src/vnet/tcp/tcp.api @@ -13,8 +13,10 @@ * limitations under the License. */ -option version = "1.0.0"; - +option version = "2.0.0"; + +import "vnet/ip/ip_types.api"; + /** \brief Configure TCP source addresses, for active-open TCP sessions TCP src/dst ports are 16 bits, with the low-order 1024 ports @@ -22,9 +24,9 @@ option version = "1.0.0"; source IP addresses if one wishes to initiate a large number of connections. - Each of those addresses needs to have a receive adjacency - + Each of those addresses needs to have a receive adjacency - either a /32 or a /128 - and vpp needs to answer (proxy) arps or - neighbor discovery requests for the addresses. + neighbor discovery requests for the addresses. @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request @@ -36,9 +38,7 @@ option version = "1.0.0"; autoreply define tcp_configure_src_addresses { u32 client_index; u32 context; - u8 is_ipv6; u32 vrf_id; - u8 first_address[16]; - u8 last_address[16]; + vl_api_address_t first_address; + vl_api_address_t last_address; }; - diff --git a/src/vnet/tcp/tcp_api.c b/src/vnet/tcp/tcp_api.c index db488e1c52a..ac4314f0e83 100644 --- a/src/vnet/tcp/tcp_api.c +++ b/src/vnet/tcp/tcp_api.c @@ -22,6 +22,8 @@ #include <vnet/tcp/tcp.h> +#include <vnet/ip/ip_types_api.h> + #include <vnet/vnet_msg_enum.h> #define vl_typedefs /* define message structures */ @@ -51,20 +53,28 @@ static void vl_api_tcp_configure_src_addresses_reply_t *rmp; u32 vrf_id; int rv; + ip46_address_t first_address, last_address; + ip46_type_t fa_af, la_af; vrf_id = clib_net_to_host_u32 (mp->vrf_id); - if (mp->is_ipv6) + fa_af = ip_address_decode (&mp->first_address, &first_address); + la_af = ip_address_decode (&mp->last_address, &last_address); + + if (fa_af != la_af) + { + rv = VNET_API_ERROR_INVALID_VALUE; + goto error; + } + + if (fa_af == IP46_TYPE_IP6) rv = tcp_configure_v6_source_address_range - (vm, - (ip6_address_t *) mp->first_address, - (ip6_address_t *) mp->last_address, vrf_id); + (vm, &first_address.ip6, &last_address.ip6, vrf_id); else rv = tcp_configure_v4_source_address_range - (vm, - (ip4_address_t *) mp->first_address, - (ip4_address_t *) mp->last_address, vrf_id); + (vm, &first_address.ip4, &last_address.ip4, vrf_id); +error: REPLY_MACRO (VL_API_TCP_CONFIGURE_SRC_ADDRESSES_REPLY); } |