vcl: support connected udp listens
Request connected udp listener behavior by setting VPPCOM_ATTR_SET_CONNECTED attribute with vppcom_session_attr Type: feature Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: Iba95155c0f41cea8c6e1a4263946270d49c213ac (cherry picked from commit 1e96617d952e2d5d8cc367a226702f8f825ed039)
This commit is contained in:
Florin Coras
committed by
Florin Coras
parent
53b5233057
commit
7037fde018
@ -209,6 +209,8 @@ vcl_send_session_listen (vcl_worker_t * wrk, vcl_session_t * s)
|
||||
clib_memcpy_fast (&mp->ip, &s->transport.lcl_ip, sizeof (mp->ip));
|
||||
mp->port = s->transport.lcl_port;
|
||||
mp->proto = s->session_type;
|
||||
if (s->flags & VCL_SESSION_F_CONNECTED)
|
||||
mp->flags = TRANSPORT_CFG_F_CONNECTED;
|
||||
app_send_ctrl_evt_to_vpp (mq, app_evt);
|
||||
}
|
||||
|
||||
@ -3597,6 +3599,11 @@ vppcom_session_attr (uint32_t session_handle, uint32_t op,
|
||||
*(int *) buffer = SHUT_RDWR;
|
||||
*buflen = sizeof (int);
|
||||
break;
|
||||
|
||||
case VPPCOM_ATTR_SET_CONNECTED:
|
||||
session->flags |= VCL_SESSION_F_CONNECTED;
|
||||
break;
|
||||
|
||||
default:
|
||||
rv = VPPCOM_EINVAL;
|
||||
break;
|
||||
|
@ -160,6 +160,7 @@ typedef enum
|
||||
VPPCOM_ATTR_SET_TCP_USER_MSS,
|
||||
VPPCOM_ATTR_SET_SHUT,
|
||||
VPPCOM_ATTR_GET_SHUT,
|
||||
VPPCOM_ATTR_SET_CONNECTED,
|
||||
} vppcom_attr_op_t;
|
||||
|
||||
typedef struct _vcl_poll
|
||||
|
@ -315,6 +315,7 @@ typedef struct session_listen_msg_
|
||||
ip46_address_t ip;
|
||||
u32 ckpair_index;
|
||||
u8 crypto_engine;
|
||||
u8 flags;
|
||||
} __clib_packed session_listen_msg_t;
|
||||
|
||||
STATIC_ASSERT (sizeof (session_listen_msg_t) <= SESSION_CTRL_MSG_MAX_SIZE,
|
||||
|
@ -60,6 +60,7 @@ session_mq_listen_handler (void *data)
|
||||
a->sep_ext.crypto_engine = mp->crypto_engine;
|
||||
a->app_index = app->app_index;
|
||||
a->wrk_map_index = mp->wrk_index;
|
||||
a->sep_ext.transport_flags = mp->flags;
|
||||
|
||||
if ((rv = vnet_listen (a)))
|
||||
clib_warning ("listen returned: %d", rv);
|
||||
|
Reference in New Issue
Block a user