Open ydnar opened 3 years ago
If the server ignores max_datagram_frame_size
and sends a datagram anyway, Apple’s QUIC rejects it with a protocol error: DATAGRAM frame size too big
.
Network.framework is aware of the datagram draft, but looks like support is not exposed in the current seed.
When built with Xcode 12 beta 2, swift test
emits the following error:
Symbol not found: _$s7Network16NWMultiplexGroupC2toAcA10NWEndpointO_tcfC
Referenced from: .build/x86_64-apple-macosx/debug/SwiftQUICDatagramExamplePackageTests.xctest/Contents/MacOS/SwiftQUICDatagramExamplePackageTests
Expected in: /usr/lib/swift/libswiftNetwork.dylib)
Looks like the initializer for NWMultiplexGroup(to: endpoint)
is missing from macOS 12 beta 1?
Edit: the file /usr/lib/swift/libswiftNetwork.dylib
doesn’t exist.
Update: this can be compiled and run on macOS 12 beta 2, which was released earlier today.
NWProtocolQUIC.Options
to expose a max_datagram_frame_size
or max_datagram_payload_size
.DATAGRAM frame size too big
Radar link: rdar://79423130
As of build
21A5248p
, the QUIC implementation in macOS 12 does not send the0x20
(max_datagram_payload_size
ormax_datagram_frame_size
) transport parameter.The Go server interprets this as missing or 0, and therefore does not support sending
datagram
frames on the opened connection.The qlog output for client transport parameters: