To simplify hardware offload on transmit, it will be useful to use an opaque NIC driver generated handle (e.g., 4 bytes) for each connection ID. This handle should be provided alongside transmitted packets. Hardware can use this handle to reduce the overhead of looking up the state for this packet, and possibly also to skip parsing the QUIC header if software can guarantee a specific format.
Also, can you explain how the ConnectionIdLength would be useful on the NDIS_QUIC_ENCRYPTION_NET_BUFFER_LIST_INFO associated with every packet? Is it really necessary to pass this data---that doesn't change---with every packet of a flow?
To simplify hardware offload on transmit, it will be useful to use an opaque NIC driver generated handle (e.g., 4 bytes) for each connection ID. This handle should be provided alongside transmitted packets. Hardware can use this handle to reduce the overhead of looking up the state for this packet, and possibly also to skip parsing the QUIC header if software can guarantee a specific format.
Also, can you explain how the ConnectionIdLength would be useful on the NDIS_QUIC_ENCRYPTION_NET_BUFFER_LIST_INFO associated with every packet? Is it really necessary to pass this data---that doesn't change---with every packet of a flow?