mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2025-06-05 20:13:44 +02:00
Yank PROBE stuff since it's not used and was a premature addition to the protocol.
This commit is contained in:
parent
ffffc0179f
commit
8b65b3e6d7
6 changed files with 1 additions and 79 deletions
|
@ -48,7 +48,6 @@ const char *Packet::verbString(Verb v)
|
||||||
case VERB_NETWORK_MEMBERSHIP_CERTIFICATE: return "NETWORK_MEMBERSHIP_CERTIFICATE";
|
case VERB_NETWORK_MEMBERSHIP_CERTIFICATE: return "NETWORK_MEMBERSHIP_CERTIFICATE";
|
||||||
case VERB_NETWORK_CONFIG_REQUEST: return "NETWORK_CONFIG_REQUEST";
|
case VERB_NETWORK_CONFIG_REQUEST: return "NETWORK_CONFIG_REQUEST";
|
||||||
case VERB_NETWORK_CONFIG_REFRESH: return "NETWORK_CONFIG_REFRESH";
|
case VERB_NETWORK_CONFIG_REFRESH: return "NETWORK_CONFIG_REFRESH";
|
||||||
case VERB_PROBE: return "PROBE";
|
|
||||||
}
|
}
|
||||||
return "(unknown)";
|
return "(unknown)";
|
||||||
}
|
}
|
||||||
|
|
|
@ -225,16 +225,6 @@
|
||||||
#define ZT_PROTO_VERB_NETWORK_CONFIG_REQUEST__OK__IDX_DICT_LEN (ZT_PROTO_VERB_NETWORK_CONFIG_REQUEST__OK__IDX_NETWORK_ID + 8)
|
#define ZT_PROTO_VERB_NETWORK_CONFIG_REQUEST__OK__IDX_DICT_LEN (ZT_PROTO_VERB_NETWORK_CONFIG_REQUEST__OK__IDX_NETWORK_ID + 8)
|
||||||
#define ZT_PROTO_VERB_NETWORK_CONFIG_REQUEST__OK__IDX_DICT (ZT_PROTO_VERB_NETWORK_CONFIG_REQUEST__OK__IDX_DICT_LEN + 2)
|
#define ZT_PROTO_VERB_NETWORK_CONFIG_REQUEST__OK__IDX_DICT (ZT_PROTO_VERB_NETWORK_CONFIG_REQUEST__OK__IDX_DICT_LEN + 2)
|
||||||
|
|
||||||
#define ZT_PROTO_VERB_PROBE_IDX_TIMESTAMP (ZT_PACKET_IDX_PAYLOAD)
|
|
||||||
#define ZT_PROTO_VERB_PROBE_LEN_TIMESTAMP 8
|
|
||||||
#define ZT_PROTO_VERB_PROBE_IDX_MS_SINCE_LAST_SEND (ZT_PROTO_VERB_PROBE_IDX_TIMESTAMP + ZT_PROTO_VERB_PROBE_LEN_TIMESTAMP)
|
|
||||||
#define ZT_PROTO_VERB_PROBE_LEN_MS_SINCE_LAST_SEND 8
|
|
||||||
|
|
||||||
#define ZT_PROTO_VERB_PROBE__OK__IDX_TIMESTAMP (ZT_PACKET_IDX_PAYLOAD)
|
|
||||||
#define ZT_PROTO_VERB_PROBE__OK__LEN_TIMESTAMP 8
|
|
||||||
#define ZT_PROTO_VERB_PROBE__OK__IDX_MS_SINCE_LAST_SEND (ZT_PROTO_VERB_PROBE_IDX_TIMESTAMP + ZT_PROTO_VERB_PROBE_LEN_TIMESTAMP)
|
|
||||||
#define ZT_PROTO_VERB_PROBE__OK__LEN_MS_SINCE_LAST_SEND 8
|
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
|
|
||||||
namespace ZeroTier {
|
namespace ZeroTier {
|
||||||
|
@ -621,28 +611,7 @@ public:
|
||||||
* It does not generate an OK or ERROR message, and is treated only as
|
* It does not generate an OK or ERROR message, and is treated only as
|
||||||
* a hint to refresh now.
|
* a hint to refresh now.
|
||||||
*/
|
*/
|
||||||
VERB_NETWORK_CONFIG_REFRESH = 12,
|
VERB_NETWORK_CONFIG_REFRESH = 12
|
||||||
|
|
||||||
/* Probe peer connection status:
|
|
||||||
* <[8] 64-bit timestamp>
|
|
||||||
* <[8] 64-bit milliseconds since last send to this peer>
|
|
||||||
*
|
|
||||||
* This message is sent to probe the status of a peer and to confirm
|
|
||||||
* new link-layer addresses. Upon receipt an OK is generated which
|
|
||||||
* echoes the time and responds with the number of milliseconds since
|
|
||||||
* the recipient has last sent a packet to the sender.
|
|
||||||
*
|
|
||||||
* Using these delay times, a peer may determine if its current route
|
|
||||||
* to another peer is likely dead and default to another route (e.g.
|
|
||||||
* reverting to relaying).
|
|
||||||
*
|
|
||||||
* OK response payload:
|
|
||||||
* <[8] 64-bit timestamp echoed from request>
|
|
||||||
* <[8] 64-bit milliseconds since last send to requesitng peer>
|
|
||||||
*
|
|
||||||
* ERROR is not generated.
|
|
||||||
*/
|
|
||||||
VERB_PROBE = 13
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -106,8 +106,6 @@ bool PacketDecoder::tryDecode(const RuntimeEnvironment *_r)
|
||||||
return _doNETWORK_CONFIG_REQUEST(_r,peer);
|
return _doNETWORK_CONFIG_REQUEST(_r,peer);
|
||||||
case Packet::VERB_NETWORK_CONFIG_REFRESH:
|
case Packet::VERB_NETWORK_CONFIG_REFRESH:
|
||||||
return _doNETWORK_CONFIG_REFRESH(_r,peer);
|
return _doNETWORK_CONFIG_REFRESH(_r,peer);
|
||||||
case Packet::VERB_PROBE:
|
|
||||||
return _doPROBE(_r,peer);
|
|
||||||
default:
|
default:
|
||||||
// This might be something from a new or old version of the protocol.
|
// This might be something from a new or old version of the protocol.
|
||||||
// Technically it passed MAC so the packet is still valid, but we
|
// Technically it passed MAC so the packet is still valid, but we
|
||||||
|
@ -934,23 +932,4 @@ bool PacketDecoder::_doNETWORK_CONFIG_REFRESH(const RuntimeEnvironment *_r,const
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool PacketDecoder::_doPROBE(const RuntimeEnvironment *_r,const SharedPtr<Peer> &peer)
|
|
||||||
{
|
|
||||||
try {
|
|
||||||
uint64_t ts = at<uint64_t>(ZT_PROTO_VERB_PROBE_IDX_TIMESTAMP);
|
|
||||||
//uint64_t msSinceLastSend = at<uint64_t>(ZT_PROTO_VERB_PROBE_IDX_MS_SINCE_LAST_SEND);
|
|
||||||
Packet outp(source(),_r->identity.address(),Packet::VERB_OK);
|
|
||||||
outp.append((unsigned char)Packet::VERB_PROBE);
|
|
||||||
outp.append(ts);
|
|
||||||
outp.append(peer->lastDirectSend()); // FIXME: need to refactor to also track relayed sends
|
|
||||||
outp.armor(peer->key(),true);
|
|
||||||
_r->demarc->send(_localPort,_remoteAddress,outp.data(),outp.size(),-1);
|
|
||||||
} catch (std::exception &exc) {
|
|
||||||
TRACE("dropped PROBE from %s(%s): unexpected exception: %s",source().toString().c_str(),_remoteAddress.toString().c_str(),exc.what());
|
|
||||||
} catch ( ... ) {
|
|
||||||
TRACE("dropped PROBE from %s(%s): unexpected exception: (unknown)",source().toString().c_str(),_remoteAddress.toString().c_str());
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace ZeroTier
|
} // namespace ZeroTier
|
||||||
|
|
|
@ -122,7 +122,6 @@ private:
|
||||||
bool _doNETWORK_MEMBERSHIP_CERTIFICATE(const RuntimeEnvironment *_r,const SharedPtr<Peer> &peer);
|
bool _doNETWORK_MEMBERSHIP_CERTIFICATE(const RuntimeEnvironment *_r,const SharedPtr<Peer> &peer);
|
||||||
bool _doNETWORK_CONFIG_REQUEST(const RuntimeEnvironment *_r,const SharedPtr<Peer> &peer);
|
bool _doNETWORK_CONFIG_REQUEST(const RuntimeEnvironment *_r,const SharedPtr<Peer> &peer);
|
||||||
bool _doNETWORK_CONFIG_REFRESH(const RuntimeEnvironment *_r,const SharedPtr<Peer> &peer);
|
bool _doNETWORK_CONFIG_REFRESH(const RuntimeEnvironment *_r,const SharedPtr<Peer> &peer);
|
||||||
bool _doPROBE(const RuntimeEnvironment *_r,const SharedPtr<Peer> &peer);
|
|
||||||
|
|
||||||
uint64_t _receiveTime;
|
uint64_t _receiveTime;
|
||||||
Demarc::Port _localPort;
|
Demarc::Port _localPort;
|
||||||
|
|
|
@ -225,20 +225,6 @@ bool Switch::sendHELLO(const SharedPtr<Peer> &dest,Demarc::Port localPort,const
|
||||||
} else return false;
|
} else return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Switch::sendPROBE(const SharedPtr<Peer> &dest,Demarc::Port localPort,const InetAddress &remoteAddr)
|
|
||||||
{
|
|
||||||
uint64_t now = Utils::now();
|
|
||||||
Packet outp(dest->address(),_r->identity.address(),Packet::VERB_PROBE);
|
|
||||||
outp.append(now);
|
|
||||||
outp.append(dest->lastDirectSend()); // FIXME: need to refactor to also track relayed sends
|
|
||||||
outp.armor(dest->key(),true);
|
|
||||||
|
|
||||||
if (_r->demarc->send(localPort,remoteAddr,outp.data(),outp.size(),-1)) {
|
|
||||||
dest->expectResponseTo(outp.packetId(),Packet::VERB_PROBE,localPort,now);
|
|
||||||
return true;
|
|
||||||
} else return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Switch::unite(const Address &p1,const Address &p2,bool force)
|
bool Switch::unite(const Address &p1,const Address &p2,bool force)
|
||||||
{
|
{
|
||||||
if ((p1 == _r->identity.address())||(p2 == _r->identity.address()))
|
if ((p1 == _r->identity.address())||(p2 == _r->identity.address()))
|
||||||
|
|
|
@ -129,16 +129,6 @@ public:
|
||||||
*/
|
*/
|
||||||
bool sendHELLO(const SharedPtr<Peer> &dest,Demarc::Port localPort,const InetAddress &remoteAddr);
|
bool sendHELLO(const SharedPtr<Peer> &dest,Demarc::Port localPort,const InetAddress &remoteAddr);
|
||||||
|
|
||||||
/**
|
|
||||||
* Send a PROBE immediately to the indicated address
|
|
||||||
*
|
|
||||||
* @param localPort Originating local port or ANY_PORT to pick
|
|
||||||
* @param remoteAddr IP address to send to
|
|
||||||
* @param dest Destination peer
|
|
||||||
* @return True if send appears successful
|
|
||||||
*/
|
|
||||||
bool sendPROBE(const SharedPtr<Peer> &dest,Demarc::Port localPort,const InetAddress &remoteAddr);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Send RENDEZVOUS to two peers to permit them to directly connect
|
* Send RENDEZVOUS to two peers to permit them to directly connect
|
||||||
*
|
*
|
||||||
|
|
Loading…
Add table
Reference in a new issue