session: increase max ctrl msg size 10/23010/2
authorFlorin Coras <[email protected]>
Wed, 16 Oct 2019 18:21:41 +0000 (11:21 -0700)
committerAndrew Yourtchenko <[email protected]>
Thu, 31 Oct 2019 12:13:57 +0000 (12:13 +0000)
Type: fix

Connect ctrl message recently outgrew the maximum ctrl msg size, so
increase the limit. Also add static asserts for messages that could
potentially exceed the limit.

Change-Id: I0d3e32e0d4d67d7e222cff14ddba59a0c3fb8b00
Signed-off-by: Florin Coras <[email protected]>
(cherry picked from commit e24a4bc023b880cb01aeaf8ffea98f44dd66ef4a)

src/vnet/session/application_interface.h
src/vnet/session/session.h
src/vnet/session/session_types.h

index 015a297..748b1b5 100644 (file)
@@ -273,6 +273,9 @@ typedef struct session_listen_msg_
   ip46_address_t ip;
 } __clib_packed session_listen_msg_t;
 
+STATIC_ASSERT (sizeof (session_listen_msg_t) <= SESSION_CTRL_MSG_MAX_SIZE,
+              "msg too large");
+
 typedef struct session_listen_uri_msg_
 {
   u32 client_index;
@@ -280,6 +283,9 @@ typedef struct session_listen_uri_msg_
   u8 uri[56];
 } __clib_packed session_listen_uri_msg_t;
 
+STATIC_ASSERT (sizeof (session_listen_uri_msg_t) <= SESSION_CTRL_MSG_MAX_SIZE,
+              "msg too large");
+
 typedef struct session_bound_msg_
 {
   u32 context;
@@ -345,6 +351,9 @@ typedef struct session_connect_msg_
   u64 parent_handle;
 } __clib_packed session_connect_msg_t;
 
+STATIC_ASSERT (sizeof (session_connect_msg_t) <= SESSION_CTRL_MSG_MAX_SIZE,
+              "msg too large");
+
 typedef struct session_connect_uri_msg_
 {
   u32 client_index;
@@ -352,6 +361,9 @@ typedef struct session_connect_uri_msg_
   u8 uri[56];
 } __clib_packed session_connect_uri_msg_t;
 
+STATIC_ASSERT (sizeof (session_connect_uri_msg_t) <=
+              SESSION_CTRL_MSG_MAX_SIZE, "msg too large");
+
 typedef struct session_connected_msg_
 {
   u32 context;
index cb0cac7..1d3ae0c 100644 (file)
@@ -62,8 +62,6 @@ typedef struct session_tx_context_
   session_dgram_hdr_t hdr;
 } session_tx_context_t;
 
-#define SESSION_CTRL_MSG_MAX_SIZE 64
-
 typedef struct session_evt_elt
 {
   clib_llist_anchor_t evt_list;
index bf45855..17a0340 100644 (file)
@@ -21,6 +21,7 @@
 
 #define SESSION_INVALID_INDEX ((u32)~0)
 #define SESSION_INVALID_HANDLE ((u64)~0)
+#define SESSION_CTRL_MSG_MAX_SIZE 68
 
 #define foreach_session_endpoint_fields                                \
   foreach_transport_endpoint_cfg_fields                                \