session udp: fix transport flags and migration
[vpp.git] / src / plugins / quic / quic.c
index 3991656..14002a2 100644 (file)
@@ -1182,6 +1182,7 @@ quic_connect_stream (session_t * quic_session, session_endpoint_cfg_t * sep)
   app_worker_t *app_wrk;
   quic_ctx_t *qctx, *sctx;
   u32 sctx_index;
+  u8 is_unidir;
   int rv;
 
   /*  Find base session to which the user want to attach a stream */
@@ -1225,9 +1226,8 @@ quic_connect_stream (session_t * quic_session, session_endpoint_cfg_t * sep)
   if (!conn || !quicly_connection_is_ready (conn))
     return -1;
 
-  if ((rv =
-       quicly_open_stream (conn, &stream,
-                          sep->flags & SESSION_F_UNIDIRECTIONAL)))
+  is_unidir = sep->transport_flags & TRANSPORT_CFG_F_UNIDIRECTIONAL;
+  if ((rv = quicly_open_stream (conn, &stream, is_unidir)))
     {
       QUIC_DBG (2, "Stream open failed with %d", rv);
       return -1;
@@ -1246,7 +1246,7 @@ quic_connect_stream (session_t * quic_session, session_endpoint_cfg_t * sep)
   stream_session->listener_handle = quic_session_handle;
   stream_session->session_type =
     session_type_from_proto_and_ip (TRANSPORT_PROTO_QUIC, qctx->udp_is_ip4);
-  if (sep->flags & SESSION_F_UNIDIRECTIONAL)
+  if (is_unidir)
     stream_session->flags |= SESSION_F_UNIDIRECTIONAL;
 
   sctx->c_s_index = stream_session->session_index;
@@ -1312,7 +1312,7 @@ quic_connect_connection (session_endpoint_cfg_t * sep)
   vec_terminate_c_string (ctx->srv_hostname);
 
   clib_memcpy (&cargs->sep, sep, sizeof (session_endpoint_cfg_t));
-  cargs->sep.transport_proto = TRANSPORT_PROTO_UDPC;
+  cargs->sep.transport_proto = TRANSPORT_PROTO_UDP;
   cargs->app_index = qm->app_index;
   cargs->api_context = ctx_index;
 
@@ -1320,6 +1320,7 @@ quic_connect_connection (session_endpoint_cfg_t * sep)
   app = application_get (app_wrk->app_index);
   ctx->parent_app_id = app_wrk->app_index;
   cargs->sep_ext.ns_index = app->ns_index;
+  cargs->sep_ext.transport_flags = TRANSPORT_CFG_F_CONNECTED;
 
   ctx->crypto_engine = sep->crypto_engine;
   ctx->ckpair_index = sep->ckpair_index;
@@ -1427,7 +1428,8 @@ quic_start_listen (u32 quic_listen_session_index, transport_endpoint_t * tep)
   args->app_index = qm->app_index;
   args->sep_ext = *sep;
   args->sep_ext.ns_index = app->ns_index;
-  args->sep_ext.transport_proto = TRANSPORT_PROTO_UDPC;
+  args->sep_ext.transport_proto = TRANSPORT_PROTO_UDP;
+  args->sep_ext.transport_flags = TRANSPORT_CFG_F_CONNECTED;
   if ((rv = vnet_listen (args)))
     return rv;