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
clib_memcpy_fast (&mp->ip, &s->transport.lcl_ip, sizeof (mp->ip));
mp->port = s->transport.lcl_port;
mp->proto = s->session_type;
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);
}
app_send_ctrl_evt_to_vpp (mq, app_evt);
}
*(int *) buffer = SHUT_RDWR;
*buflen = sizeof (int);
break;
*(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;
default:
rv = VPPCOM_EINVAL;
break;
VPPCOM_ATTR_SET_TCP_USER_MSS,
VPPCOM_ATTR_SET_SHUT,
VPPCOM_ATTR_GET_SHUT,
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
} vppcom_attr_op_t;
typedef struct _vcl_poll
ip46_address_t ip;
u32 ckpair_index;
u8 crypto_engine;
ip46_address_t ip;
u32 ckpair_index;
u8 crypto_engine;
} __clib_packed session_listen_msg_t;
STATIC_ASSERT (sizeof (session_listen_msg_t) <= SESSION_CTRL_MSG_MAX_SIZE,
} __clib_packed session_listen_msg_t;
STATIC_ASSERT (sizeof (session_listen_msg_t) <= SESSION_CTRL_MSG_MAX_SIZE,
a->sep_ext.crypto_engine = mp->crypto_engine;
a->app_index = app->app_index;
a->wrk_map_index = mp->wrk_index;
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);
if ((rv = vnet_listen (a)))
clib_warning ("listen returned: %d", rv);