diff options
author | Aloys Augustin <aloaugus@cisco.com> | 2019-07-25 17:08:32 +0200 |
---|---|---|
committer | Florin Coras <florin.coras@gmail.com> | 2019-07-30 16:29:05 +0000 |
commit | 1c2af06852fb6d7788f0f4926d062c11e5869ead (patch) | |
tree | 43eb02a3137b7057f7f00ea0ed79835e2b7adeac /src/plugins/quic/quic.h | |
parent | f25e7cfa5c615e1972d5823b65ca579f951d68a5 (diff) |
quic: cleanup and refactorisation
Change-Id: I031a60ac010b55110f32f0a08e19b1156aeda268
Type: refactor
Signed-off-by: Aloys Augustin <aloaugus@cisco.com>
Diffstat (limited to 'src/plugins/quic/quic.h')
-rw-r--r-- | src/plugins/quic/quic.h | 42 |
1 files changed, 23 insertions, 19 deletions
diff --git a/src/plugins/quic/quic.h b/src/plugins/quic/quic.h index de27f2ac7d5..a7ce4dd57ad 100644 --- a/src/plugins/quic/quic.h +++ b/src/plugins/quic/quic.h @@ -83,37 +83,30 @@ typedef enum quic_ctx_flags_ QUIC_F_IS_LISTENER = (1 << 1), } quic_ctx_flags_t; -/* *INDENT-OFF* */ -typedef struct quic_ctx_id_ +/* This structure is used to implement the concept of VPP connection for QUIC. + * We create one per connection and one per stream. */ +typedef struct quic_ctx_ { - union { /** QUIC ctx case */ - struct { + union + { + transport_connection_t connection; + struct + { /** QUIC ctx case */ quicly_conn_t *conn; u32 listener_ctx_id; u32 client_opaque; u8 *srv_hostname; u8 conn_state; u8 udp_is_ip4; + u8 _qctx_end_marker; /* Leave this at the end */ }; - struct { /** STREAM ctx case */ + struct + { /** STREAM ctx case */ quicly_stream_t *stream; u32 quic_connection_ctx_id; + u8 _sctx_end_marker; /* Leave this at the end */ }; }; -} quic_ctx_id_t; -/* *INDENT-ON* */ - -STATIC_ASSERT (sizeof (quic_ctx_id_t) <= 42, "ctx id must be less than 42"); - -/* This structure is used to implement the concept of VPP connection for QUIC. - * We create one per connection and one per stream. */ -typedef struct quic_ctx_ -{ - union - { - transport_connection_t connection; - quic_ctx_id_t c_quic_ctx_id; - }; session_handle_t udp_session_handle; u32 timer_handle; u32 parent_app_wrk_id; @@ -121,6 +114,17 @@ typedef struct quic_ctx_ u8 flags; } quic_ctx_t; +/* Make sure our custom fields don't overlap with the fields we use in + .connection +*/ +STATIC_ASSERT (offsetof (quic_ctx_t, _qctx_end_marker) <= + TRANSPORT_CONN_ID_LEN, + "connection data must be less than TRANSPORT_CONN_ID_LEN bytes"); +STATIC_ASSERT (offsetof (quic_ctx_t, _sctx_end_marker) <= + TRANSPORT_CONN_ID_LEN, + "connection data must be less than TRANSPORT_CONN_ID_LEN bytes"); + + typedef struct quic_stream_data_ { u32 ctx_id; |