rawrtc / rawrtc-data-channel

A standalone WebRTC and ORTC data channel implementation.
BSD 2-Clause "Simplified" License
52 stars 6 forks source link

CRC32C checksum calculation #27

Closed lgrahl closed 5 years ago

lgrahl commented 5 years ago

We can instruct the usrsctp stack to offload CRC32C calculation in which case we can leverage hardware CRC instructions.

weinrank commented 5 years ago

I have an experimental branch which (also) includes CRC32C hardware offload: https://github.com/weinrank/usrsctp/tree/skunkworks

If you want to cherry pick I'll create a patch/branch which only includes the CRC32C code.

lgrahl commented 5 years ago

Woops, I missed that I've already done this:

https://github.com/rawrtc/rawrtc-data-channel/blob/e5db6eaaeb2a3bf01cc91fb9cca6878e781854df/src/librawrtcdc/sctp_transport.c#L1119:L1129 https://github.com/rawrtc/rawrtc-data-channel/blob/e5db6eaaeb2a3bf01cc91fb9cca6878e781854df/src/librawrtcdc/sctp_transport.c#L3000:L3025

@weinrank Thanks for the offer, though. :+1: Let me know once that branch gets merged in which case we can remove our own CRC32C code.

Also, since you're here, a friendly ping that RAWRTC still needs a backport of usrsctp_handle_timers to be able to transition to the upstream usrsctp version (https://github.com/sctplab/usrsctp/issues/292).