|
@@ -491,9 +491,18 @@ void DtlsTransport::incoming(message_ptr message) {
|
|
}
|
|
}
|
|
|
|
|
|
bool DtlsTransport::outgoing(message_ptr message) {
|
|
bool DtlsTransport::outgoing(message_ptr message) {
|
|
- if (message->dscp == 0)
|
|
|
|
- message->dscp = mCurrentDscp;
|
|
|
|
-
|
|
|
|
|
|
+ if (message->dscp == 0) {
|
|
|
|
+ // DTLS handshake packet
|
|
|
|
+ if (state() != DtlsTransport::State::Connected) {
|
|
|
|
+ // Set recommended high-priority DSCP value
|
|
|
|
+ // See https://datatracker.ietf.org/doc/html/rfc8837#section-5
|
|
|
|
+ message->dscp = 18; // AF21(18), Assured Forwarding class 2, low drop probability
|
|
|
|
+ // User packet
|
|
|
|
+ }else {
|
|
|
|
+ message->dscp = mCurrentDscp;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
return Transport::outgoing(std::move(message));
|
|
return Transport::outgoing(std::move(message));
|
|
}
|
|
}
|
|
|
|
|