Browse Source

Set medium-priority DSCP value for DTLS handshake

Paul-Louis Ageneau 2 years ago
parent
commit
fe91ecc1f9
1 changed files with 10 additions and 4 deletions
  1. 10 4
      src/impl/dtlstransport.cpp

+ 10 - 4
src/impl/dtlstransport.cpp

@@ -94,6 +94,10 @@ DtlsTransport::DtlsTransport(shared_ptr<IceTransport> lower, certificate_ptr cer
 		gnutls_deinit(mSession);
 		gnutls_deinit(mSession);
 		throw;
 		throw;
 	}
 	}
+
+	// Set recommended medium-priority DSCP value for handshake
+	// See https://www.rfc-editor.org/rfc/rfc8837.html#section-5
+	mCurrentDscp = 10; // AF11: Assured Forwarding class 1, low drop probability
 }
 }
 
 
 DtlsTransport::~DtlsTransport() {
 DtlsTransport::~DtlsTransport() {
@@ -156,8 +160,7 @@ 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;
+	message->dscp = mCurrentDscp;
 
 
 	bool result = Transport::outgoing(std::move(message));
 	bool result = Transport::outgoing(std::move(message));
 	mOutgoingResult = result;
 	mOutgoingResult = result;
@@ -455,6 +458,10 @@ DtlsTransport::DtlsTransport(shared_ptr<IceTransport> lower, certificate_ptr cer
 			SSL_CTX_free(mCtx);
 			SSL_CTX_free(mCtx);
 		throw;
 		throw;
 	}
 	}
+
+	// Set recommended medium-priority DSCP value for handshake
+	// See https://www.rfc-editor.org/rfc/rfc8837.html#section-5
+	mCurrentDscp = 10; // AF11: Assured Forwarding class 1, low drop probability
 }
 }
 
 
 DtlsTransport::~DtlsTransport() {
 DtlsTransport::~DtlsTransport() {
@@ -510,8 +517,7 @@ 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;
+	message->dscp = mCurrentDscp;
 
 
 	bool result = Transport::outgoing(std::move(message));
 	bool result = Transport::outgoing(std::move(message));
 	mOutgoingResult = result;
 	mOutgoingResult = result;