Browse Source

Temporarily blacklist he.net IPv6 tunnel addresses for paths: these usually have a very low MTU which causes packet loss and other issues.

Adam Ierymenko 9 years ago
parent
commit
82348e1537
1 changed files with 8 additions and 0 deletions
  1. 8 0
      node/Path.hpp

+ 8 - 0
node/Path.hpp

@@ -243,6 +243,14 @@ public:
 				case InetAddress::IP_SCOPE_PSEUDOPRIVATE:
 				case InetAddress::IP_SCOPE_SHARED:
 				case InetAddress::IP_SCOPE_GLOBAL:
+					if (a.ss_family == AF_INET6) {
+						// TEMPORARY HACK: for now, we are going to blacklist he.net IPv6
+						// tunnels due to very spotty performance and low MTU issues over
+						// these IPv6 tunnel links.
+						const uint8_t *ipd = reinterpret_cast<const uint8_t *>(reinterpret_cast<const struct sockaddr_in6 *>(&a)->sin6_addr.s6_addr);
+						if ((ipd[0] == 0x20)&&(ipd[1] == 0x01)&&(ipd[2] == 0x04)&&(ipd[3] == 0x70))
+							return false;
+					}
 					return true;
 				default:
 					return false;