* represents a single QUIC connection. All QUIC_PORT instances must belong
* to a QUIC_ENGINE.
*
- * A QUIC engine is the root engine in a QUIC event domain, and is responsible
+ * TODO(QUIC SERVER): Currently a QUIC_PORT belongs to a single QUIC_CHANNEL.
+ * This will cease to be the case once connection migration and/or multipath is
+ * implemented, so in future a channel might be associated with multiple ports.
+ *
+ * A QUIC engine is the root object in a QUIC event domain, and is responsible
* for managing event processing for all QUIC ports and channels (e.g. timeouts,
* clock management, the QUIC_REACTOR instance, etc.).
*/
const char *propq;
/*
- * This must be a mutex the lifetime of which will exceed that of the port
- * and all channels. The instantiator of the port is responsible for
- * providing a mutex as this makes it easier to handle instantiation and
+ * This must be a mutex the lifetime of which will exceed that of the engine
+ * and all ports and channels. The instantiator of the engine is responsible
+ * for providing a mutex as this makes it easier to handle instantiation and
* teardown of channels in situations potentially requiring locking.
*
* Note that this is a MUTEX not a RWLOCK as it needs to be an OS mutex for
/*
* Master synchronisation mutex for the entire QUIC event domain. Used for
* thread assisted mode synchronisation. We don't own this; the instantiator
- * of the port passes it to us and is responsible for freeing it after port
- * destruction.
+ * of the engine passes it to us and is responsible for freeing it after
+ * engine destruction.
*/
CRYPTO_MUTEX *mutex;
QUIC_ENGINE *engine;
/*
- * QUIC_ENGINE keeps the channels which belong to it on a list for
- * bookkeeping purposes.
+ * QUIC_ENGINE keeps the ports which belong to it on a list for bookkeeping
+ * purposes.
*/
OSSL_LIST_MEMBER(port, QUIC_PORT);