Skip to content

Reduce extra copies and allocations in OpenSSL Abstraction #5737

@anrossi

Description

@anrossi

The OpenSSL abstraction has its own record management code (MakeNewRecord, SplitAddRecord, GetIncompleteRecord, ProcessNewMessage) which copies the buffered data from MsQuic into its own linked buffers. Since MsQuic will buffer data until it is consumed from the TLS layer, this record management could be simplified to either just point to the records in MsQuic's buffer, or to eschew the record management altogether and use MsQuic's buffer and indicate when a record's bytes have been consumed.
The copied data potentially slows down handshake processing due to the double-copy (copied once from the packet to the MsQuic-managed TLS buffer and then copied into the OpenSSL abstraction's record management layer). It also adds complexity where it is already complex code.

Metadata

Metadata

Assignees

Type

Projects

Status

No status

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions