aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFlorin Coras <fcoras@cisco.com>2019-10-16 11:21:41 -0700
committerFlorin Coras <florin.coras@gmail.com>2019-10-16 22:42:54 +0000
commite24a4bc023b880cb01aeaf8ffea98f44dd66ef4a (patch)
treedef4dc147d4fcfc1801a18075176f98a82af7fa4
parent8a8b05c526883fe34b83239a3c4f56087d1df9e5 (diff)
session: increase max ctrl msg size
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 <fcoras@cisco.com>
-rw-r--r--src/vnet/session/application_interface.h12
-rw-r--r--src/vnet/session/session.h2
-rw-r--r--src/vnet/session/session_types.h1
3 files changed, 13 insertions, 2 deletions
diff --git a/src/vnet/session/application_interface.h b/src/vnet/session/application_interface.h
index e5e36b841d1..d907287198a 100644
--- a/src/vnet/session/application_interface.h
+++ b/src/vnet/session/application_interface.h
@@ -298,6 +298,9 @@ typedef struct session_listen_msg_
u32 ckpair_index;
} __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;
@@ -305,6 +308,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;
@@ -371,6 +377,9 @@ typedef struct session_connect_msg_
u32 ckpair_index;
} __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;
@@ -378,6 +387,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;
diff --git a/src/vnet/session/session.h b/src/vnet/session/session.h
index cb0cac7cda6..1d3ae0ca4b2 100644
--- a/src/vnet/session/session.h
+++ b/src/vnet/session/session.h
@@ -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;
diff --git a/src/vnet/session/session_types.h b/src/vnet/session/session_types.h
index bb309f2f31c..c2bb4dd56cb 100644
--- a/src/vnet/session/session_types.h
+++ b/src/vnet/session/session_types.h
@@ -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 \