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>
u32 ckpair_index;
} __clib_packed session_listen_msg_t;
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;
typedef struct session_listen_uri_msg_
{
u32 client_index;
u8 uri[56];
} __clib_packed session_listen_uri_msg_t;
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;
typedef struct session_bound_msg_
{
u32 context;
u32 ckpair_index;
} __clib_packed session_connect_msg_t;
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;
typedef struct session_connect_uri_msg_
{
u32 client_index;
u8 uri[56];
} __clib_packed session_connect_uri_msg_t;
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;
typedef struct session_connected_msg_
{
u32 context;
session_dgram_hdr_t hdr;
} session_tx_context_t;
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;
typedef struct session_evt_elt
{
clib_llist_anchor_t evt_list;
#define SESSION_INVALID_INDEX ((u32)~0)
#define SESSION_INVALID_HANDLE ((u64)~0)
#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 \
#define foreach_session_endpoint_fields \
foreach_transport_endpoint_cfg_fields \