diff options
author | Nathan Skrzypczak <nathan.skrzypczak@gmail.com> | 2019-12-03 16:25:11 +0100 |
---|---|---|
committer | Florin Coras <florin.coras@gmail.com> | 2019-12-11 16:44:24 +0000 |
commit | c00f480ba080847417b4ecb41118d5079f9860c7 (patch) | |
tree | ade498d4789dd3202c79e66e178c7663179999d9 /src/vnet/session | |
parent | f98e59b86d886ad819e98e88b672dbd7c9560edf (diff) |
quic: Add support for unidirectional streams
Type: feature
Change-Id: I3a642626a444504594c5e3df40dbc92df54136f0
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
Diffstat (limited to 'src/vnet/session')
-rw-r--r-- | src/vnet/session/application_interface.h | 2 | ||||
-rw-r--r-- | src/vnet/session/session_api.c | 1 | ||||
-rw-r--r-- | src/vnet/session/session_node.c | 1 | ||||
-rw-r--r-- | src/vnet/session/session_types.h | 2 |
4 files changed, 6 insertions, 0 deletions
diff --git a/src/vnet/session/application_interface.h b/src/vnet/session/application_interface.h index 3a4f9928d04..ec29d18b59b 100644 --- a/src/vnet/session/application_interface.h +++ b/src/vnet/session/application_interface.h @@ -361,6 +361,7 @@ typedef struct session_accepted_msg_ u64 segment_handle; uword vpp_event_queue_address; transport_endpoint_t rmt; + u8 flags; } __clib_packed session_accepted_msg_t; typedef struct session_accepted_reply_msg_ @@ -386,6 +387,7 @@ typedef struct session_connect_msg_ u64 parent_handle; u32 ckpair_index; u8 crypto_engine; + u8 flags; } __clib_packed session_connect_msg_t; STATIC_ASSERT (sizeof (session_connect_msg_t) <= SESSION_CTRL_MSG_MAX_SIZE, diff --git a/src/vnet/session/session_api.c b/src/vnet/session/session_api.c index 0846e571919..99e00a78bf3 100644 --- a/src/vnet/session/session_api.c +++ b/src/vnet/session/session_api.c @@ -196,6 +196,7 @@ mq_send_session_accepted_cb (session_t * s) mp->server_rx_fifo = pointer_to_uword (s->rx_fifo); mp->server_tx_fifo = pointer_to_uword (s->tx_fifo); mp->segment_handle = session_segment_handle (s); + mp->flags = s->flags; if (session_has_transport (s)) { diff --git a/src/vnet/session/session_node.c b/src/vnet/session/session_node.c index 191be7ea3fc..f3ba9e77bcf 100644 --- a/src/vnet/session/session_node.c +++ b/src/vnet/session/session_node.c @@ -117,6 +117,7 @@ session_mq_connect_handler (void *data) a->sep_ext.parent_handle = mp->parent_handle; a->sep_ext.ckpair_index = mp->ckpair_index; a->sep_ext.crypto_engine = mp->crypto_engine; + a->sep_ext.flags = mp->flags; if (mp->hostname_len) { vec_validate (a->sep_ext.hostname, mp->hostname_len - 1); diff --git a/src/vnet/session/session_types.h b/src/vnet/session/session_types.h index 6d7f84f4c3f..16d48431572 100644 --- a/src/vnet/session/session_types.h +++ b/src/vnet/session/session_types.h @@ -47,6 +47,7 @@ typedef struct _session_endpoint_cfg u64 parent_handle; u32 ckpair_index; u8 crypto_engine; + u8 flags; } session_endpoint_cfg_t; #define SESSION_IP46_ZERO \ @@ -152,6 +153,7 @@ typedef enum _(PROXY, "proxy") \ _(CUSTOM_TX, "custom-tx") \ _(IS_MIGRATING, "migrating") \ + _(UNIDIRECTIONAL, "unidirectional") \ typedef enum session_flags_bits_ { |