From b954f0125b9aa9324c4d2f9f25ba8232a94c624a Mon Sep 17 00:00:00 2001 From: Jakub Grajciar Date: Thu, 30 Jan 2020 14:30:04 +0100 Subject: [PATCH] sctp: API cleanup Use consistent API types. Type: fix Signed-off-by: Jakub Grajciar Change-Id: I344ff299e2a20552450d82064c86aecb4403a71d Signed-off-by: Jakub Grajciar --- src/plugins/sctp/sctp.api | 27 +++++++++++++-------------- src/plugins/sctp/sctp_api.c | 29 +++++++++++++++++------------ 2 files changed, 30 insertions(+), 26 deletions(-) diff --git a/src/plugins/sctp/sctp.api b/src/plugins/sctp/sctp.api index fb228617216..22d7d6bb5d6 100644 --- a/src/plugins/sctp/sctp.api +++ b/src/plugins/sctp/sctp.api @@ -13,14 +13,15 @@ * limitations under the License. */ -option version = "1.0.0"; - +option version = "2.0.0"; + +import "vnet/ip/ip_types.api"; + /** \brief Configure SCTP source addresses, for active-open SCTP sessions SCTP src/dst ports are 16 bits @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request - @param is_ipv6 - 1 for ipv6, 0 for ipv4 @param vrf_id - fib table / vrf id for local adjacencies @param src_address - src address that SCTP will use for this sub-conn @param dst_address - dst address that SCTP will use for this sub-conn @@ -28,24 +29,22 @@ option version = "1.0.0"; autoreply define sctp_add_src_dst_connection { u32 client_index; u32 context; - u8 is_ipv6; u32 vrf_id; - u8 src_address[16]; - u8 dst_address[16]; + vl_api_address_t src_address; + vl_api_address_t dst_address; }; - + autoreply define sctp_del_src_dst_connection { u32 client_index; u32 context; - u8 is_ipv6; u32 vrf_id; - u8 src_address[16]; - u8 dst_address[16]; + vl_api_address_t src_address; + vl_api_address_t dst_address; }; - + autoreply define sctp_config { u32 client_index; u32 context; - u8 never_delay_sack; - u8 never_bundle; - }; \ No newline at end of file + bool never_delay_sack; + bool never_bundle; + }; diff --git a/src/plugins/sctp/sctp_api.c b/src/plugins/sctp/sctp_api.c index bc7a69673ec..d804fcb36a4 100644 --- a/src/plugins/sctp/sctp_api.c +++ b/src/plugins/sctp/sctp_api.c @@ -21,6 +21,9 @@ #include #include +#include +#include + #include #include @@ -36,15 +39,15 @@ static void vlib_main_t *vm = vlib_get_main (); vl_api_sctp_add_src_dst_connection_reply_t *rmp; int rv; + ip46_address_t src, dst; + + ip_address_decode (&mp->src_address, &src); + ip_address_decode (&mp->dst_address, &dst); - if (mp->is_ipv6) - rv = sctp_sub_connection_add_ip6 - (vm, - (ip6_address_t *) mp->src_address, (ip6_address_t *) mp->dst_address); + if (ip46_address_is_ip4 (&src) && ip46_address_is_ip4 (&dst)) + rv = sctp_sub_connection_add_ip4 (vm, &src.ip4, &dst.ip4); else - rv = sctp_sub_connection_add_ip4 - (vm, - (ip4_address_t *) mp->src_address, (ip4_address_t *) mp->dst_address); + rv = sctp_sub_connection_add_ip6 (vm, &src.ip6, &dst.ip6); REPLY_MACRO (VL_API_SCTP_ADD_SRC_DST_CONNECTION_REPLY); } @@ -55,13 +58,15 @@ static void { vl_api_sctp_del_src_dst_connection_reply_t *rmp; int rv; + ip46_address_t src, dst; + + ip_address_decode (&mp->src_address, &src); + ip_address_decode (&mp->dst_address, &dst); - if (mp->is_ipv6) - rv = sctp_sub_connection_del_ip6 - ((ip6_address_t *) mp->src_address, (ip6_address_t *) mp->dst_address); + if (ip46_address_is_ip4 (&src) && ip46_address_is_ip4 (&dst)) + rv = sctp_sub_connection_del_ip4 (&src.ip4, &dst.ip4); else - rv = sctp_sub_connection_del_ip4 - ((ip4_address_t *) mp->src_address, (ip4_address_t *) mp->dst_address); + rv = sctp_sub_connection_del_ip6 (&src.ip6, &dst.ip6); REPLY_MACRO (VL_API_SCTP_ADD_SRC_DST_CONNECTION_REPLY); } -- 2.16.6