sctp: API cleanup 71/24671/3
authorJakub Grajciar <jgrajcia@cisco.com>
Thu, 30 Jan 2020 13:30:04 +0000 (14:30 +0100)
committerOle Trøan <otroan@employees.org>
Mon, 10 Feb 2020 13:27:38 +0000 (13:27 +0000)
Use consistent API types.

Type: fix

Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
Change-Id: I344ff299e2a20552450d82064c86aecb4403a71d
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
src/plugins/sctp/sctp.api
src/plugins/sctp/sctp_api.c

index fb22861..22d7d6b 100644 (file)
  * 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;
+ };
index bc7a696..d804fcb 100644 (file)
@@ -21,6 +21,9 @@
 #include <vlibapi/api.h>
 #include <vlibmemory/api.h>
 
+#include <vnet/ip/ip_types_api.h>
+#include <vnet/format_fns.h>
+
 #include <sctp/sctp.h>
 
 #include <sctp/sctp.api_enum.h>
@@ -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);
 }