FD.io VPP  v19.08-27-gf4dcae4
Vector Packet Processing
quic.h File Reference
+ Include dependency graph for quic.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  quic_ctx_
 
struct  quic_session_cache_
 
struct  quic_stream_data_
 
struct  quic_worker_ctx_
 
struct  quic_main_
 

Macros

#define QUIC_DEBUG   0
 
#define QUIC_TSTAMP_RESOLUTION   0.001 /* QUIC tick resolution (1ms) */
 
#define QUIC_TIMER_HANDLE_INVALID   ((u32) ~0)
 
#define QUIC_SESSION_INVALID   ((u32) ~0 - 1)
 
#define QUIC_MAX_PACKET_SIZE   1280
 
#define QUIC_INT_MAX   0x3FFFFFFFFFFFFFFF
 
#define QUIC_FIFO_SIZE   (64 << 10)
 
#define QUIC_SEND_PACKET_VEC_SIZE   16
 
#define QUICLY_QUIC_BIT   0x40
 
#define QUICLY_PACKET_TYPE_INITIAL   (QUICLY_LONG_HEADER_BIT | QUICLY_QUIC_BIT | 0)
 
#define QUICLY_PACKET_TYPE_0RTT   (QUICLY_LONG_HEADER_BIT | QUICLY_QUIC_BIT | 0x10)
 
#define QUICLY_PACKET_TYPE_HANDSHAKE   (QUICLY_LONG_HEADER_BIT | QUICLY_QUIC_BIT | 0x20)
 
#define QUICLY_PACKET_TYPE_RETRY   (QUICLY_LONG_HEADER_BIT | QUICLY_QUIC_BIT | 0x30)
 
#define QUICLY_PACKET_TYPE_BITMASK   0xf0
 
#define QUIC_ERROR_FULL_FIFO   0xff10
 
#define QUIC_APP_ERROR_CLOSE_NOTIFY   QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE(0)
 
#define QUIC_APP_ALLOCATION_ERROR   QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE(0x1)
 
#define QUIC_APP_ACCEPT_NOTIFY_ERROR   QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE(0x2)
 
#define QUIC_APP_CONNECT_NOTIFY_ERROR   QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE(0x3)
 
#define QUIC_DBG(_lvl, _fmt, _args...)
 

Typedefs

typedef enum quic_ctx_conn_state_ quic_ctx_conn_state_t
 
typedef enum quic_ctx_flags_ quic_ctx_flags_t
 
typedef struct quic_ctx_ quic_ctx_t
 
typedef enum quic_crypto_engine_ quic_crypto_engine_t
 
typedef struct quic_session_cache_ quic_session_cache_t
 
typedef struct quic_stream_data_ quic_stream_data_t
 
typedef struct quic_worker_ctx_ quic_worker_ctx_t
 
typedef struct quic_main_ quic_main_t
 

Enumerations

enum  quic_ctx_conn_state_ {
  QUIC_CONN_STATE_OPENED, QUIC_CONN_STATE_HANDSHAKE, QUIC_CONN_STATE_READY, QUIC_CONN_STATE_PASSIVE_CLOSING,
  QUIC_CONN_STATE_PASSIVE_CLOSING_APP_CLOSED, QUIC_CONN_STATE_PASSIVE_CLOSING_QUIC_CLOSED, QUIC_CONN_STATE_ACTIVE_CLOSING
}
 
enum  quic_ctx_flags_ { QUIC_F_IS_STREAM = (1 << 0), QUIC_F_IS_LISTENER = (1 << 1) }
 
enum  quic_crypto_engine_ { CRYPTO_ENGINE_VPP, CRYPTO_ENGINE_PICOTLS }
 

Functions

 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")
 

Macro Definition Documentation

#define QUIC_APP_ACCEPT_NOTIFY_ERROR   QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE(0x2)

Definition at line 57 of file quic.h.

#define QUIC_APP_ALLOCATION_ERROR   QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE(0x1)

Definition at line 56 of file quic.h.

#define QUIC_APP_CONNECT_NOTIFY_ERROR   QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE(0x3)

Definition at line 58 of file quic.h.

#define QUIC_APP_ERROR_CLOSE_NOTIFY   QUICLY_ERROR_FROM_APPLICATION_ERROR_CODE(0)

Definition at line 55 of file quic.h.

#define QUIC_DBG (   _lvl,
  _fmt,
  _args... 
)

Definition at line 65 of file quic.h.

#define QUIC_DEBUG   0

Definition at line 34 of file quic.h.

#define QUIC_ERROR_FULL_FIFO   0xff10

Definition at line 54 of file quic.h.

#define QUIC_FIFO_SIZE   (64 << 10)

Definition at line 41 of file quic.h.

#define QUIC_INT_MAX   0x3FFFFFFFFFFFFFFF

Definition at line 40 of file quic.h.

#define QUIC_MAX_PACKET_SIZE   1280

Definition at line 38 of file quic.h.

#define QUIC_SEND_PACKET_VEC_SIZE   16

Definition at line 42 of file quic.h.

#define QUIC_SESSION_INVALID   ((u32) ~0 - 1)

Definition at line 37 of file quic.h.

#define QUIC_TIMER_HANDLE_INVALID   ((u32) ~0)

Definition at line 36 of file quic.h.

#define QUIC_TSTAMP_RESOLUTION   0.001 /* QUIC tick resolution (1ms) */

Definition at line 35 of file quic.h.

#define QUICLY_PACKET_TYPE_0RTT   (QUICLY_LONG_HEADER_BIT | QUICLY_QUIC_BIT | 0x10)

Definition at line 48 of file quic.h.

#define QUICLY_PACKET_TYPE_BITMASK   0xf0

Definition at line 51 of file quic.h.

#define QUICLY_PACKET_TYPE_HANDSHAKE   (QUICLY_LONG_HEADER_BIT | QUICLY_QUIC_BIT | 0x20)

Definition at line 49 of file quic.h.

#define QUICLY_PACKET_TYPE_INITIAL   (QUICLY_LONG_HEADER_BIT | QUICLY_QUIC_BIT | 0)

Definition at line 47 of file quic.h.

#define QUICLY_PACKET_TYPE_RETRY   (QUICLY_LONG_HEADER_BIT | QUICLY_QUIC_BIT | 0x30)

Definition at line 50 of file quic.h.

#define QUICLY_QUIC_BIT   0x40

Definition at line 45 of file quic.h.

Typedef Documentation

typedef struct quic_ctx_ quic_ctx_t
typedef struct quic_main_ quic_main_t

Enumeration Type Documentation

Enumerator
CRYPTO_ENGINE_VPP 
CRYPTO_ENGINE_PICOTLS 

Definition at line 127 of file quic.h.

Enumerator
QUIC_CONN_STATE_OPENED 
QUIC_CONN_STATE_HANDSHAKE 
QUIC_CONN_STATE_READY 
QUIC_CONN_STATE_PASSIVE_CLOSING 
QUIC_CONN_STATE_PASSIVE_CLOSING_APP_CLOSED 
QUIC_CONN_STATE_PASSIVE_CLOSING_QUIC_CLOSED 
QUIC_CONN_STATE_ACTIVE_CLOSING 

Definition at line 68 of file quic.h.

Enumerator
QUIC_F_IS_STREAM 
QUIC_F_IS_LISTENER 

Definition at line 80 of file quic.h.

Function Documentation

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"   
)