diff options
author | Adam Ierymenko <adam.ierymenko@gmail.com> | 2015-02-04 11:59:02 -0800 |
---|---|---|
committer | Adam Ierymenko <adam.ierymenko@gmail.com> | 2015-02-04 11:59:02 -0800 |
commit | 89f0c948f8b581028bc76b244253d2188205f0ef (patch) | |
tree | 6bf7c75c42ec04d2ab13e008e29f23165a27e049 | |
parent | eeed31b39639df7e89a2e8ae641d0c3939fa4078 (diff) | |
download | infinitytier-89f0c948f8b581028bc76b244253d2188205f0ef.tar.gz infinitytier-89f0c948f8b581028bc76b244253d2188205f0ef.zip |
Physical address change message verb.
-rw-r--r-- | node/Packet.cpp | 1 | ||||
-rw-r--r-- | node/Packet.hpp | 79 |
2 files changed, 41 insertions, 39 deletions
diff --git a/node/Packet.cpp b/node/Packet.cpp index 25d96745..113b9c58 100644 --- a/node/Packet.cpp +++ b/node/Packet.cpp @@ -50,6 +50,7 @@ const char *Packet::verbString(Verb v) case VERB_NETWORK_CONFIG_REFRESH: return "NETWORK_CONFIG_REFRESH"; case VERB_MULTICAST_GATHER: return "MULTICAST_GATHER"; case VERB_MULTICAST_FRAME: return "MULTICAST_FRAME"; + case VERB_PHYSICAL_ADDRESS_CHANGED: return "PHYSICAL_ADDRESS_CHANGED"; } return "(unknown)"; } diff --git a/node/Packet.hpp b/node/Packet.hpp index 4b82c2cc..a5144cb0 100644 --- a/node/Packet.hpp +++ b/node/Packet.hpp @@ -222,43 +222,6 @@ #define ZT_PROTO_VERB_EXT_FRAME_LEN_ETHERTYPE 2 #define ZT_PROTO_VERB_EXT_FRAME_IDX_PAYLOAD (ZT_PROTO_VERB_EXT_FRAME_IDX_ETHERTYPE + ZT_PROTO_VERB_EXT_FRAME_LEN_ETHERTYPE) -// P5_MULTICAST_FRAME is deprecated -#define ZT_PROTO_VERB_P5_MULTICAST_FRAME_IDX_PROPAGATION_DEPTH (ZT_PACKET_IDX_PAYLOAD) -#define ZT_PROTO_VERB_P5_MULTICAST_FRAME_LEN_PROPAGATION_DEPTH 2 -#define ZT_PROTO_VERB_P5_MULTICAST_FRAME_IDX_PROPAGATION_FIFO (ZT_PROTO_VERB_P5_MULTICAST_FRAME_IDX_PROPAGATION_DEPTH + ZT_PROTO_VERB_P5_MULTICAST_FRAME_LEN_PROPAGATION_DEPTH) -#define ZT_PROTO_VERB_P5_MULTICAST_FRAME_LEN_PROPAGATION_FIFO 320 -#define ZT_PROTO_VERB_P5_MULTICAST_FRAME_IDX_PROPAGATION_BLOOM (ZT_PROTO_VERB_P5_MULTICAST_FRAME_IDX_PROPAGATION_FIFO + ZT_PROTO_VERB_P5_MULTICAST_FRAME_LEN_PROPAGATION_FIFO) -#define ZT_PROTO_VERB_P5_MULTICAST_FRAME_LEN_PROPAGATION_BLOOM 1024 -#define ZT_PROTO_VERB_P5_MULTICAST_FRAME_IDX_FLAGS (ZT_PROTO_VERB_P5_MULTICAST_FRAME_IDX_PROPAGATION_BLOOM + ZT_PROTO_VERB_P5_MULTICAST_FRAME_LEN_PROPAGATION_BLOOM) -#define ZT_PROTO_VERB_P5_MULTICAST_FRAME_LEN_FLAGS 1 -#define ZT_PROTO_VERB_P5_MULTICAST_FRAME_IDX__START_OF_SIGNED_PORTION (ZT_PROTO_VERB_P5_MULTICAST_FRAME_IDX_FLAGS) -#define ZT_PROTO_VERB_P5_MULTICAST_FRAME_IDX_NETWORK_ID (ZT_PROTO_VERB_P5_MULTICAST_FRAME_IDX_FLAGS + ZT_PROTO_VERB_P5_MULTICAST_FRAME_LEN_FLAGS) -#define ZT_PROTO_VERB_P5_MULTICAST_FRAME_LEN_NETWORK_ID 8 -#define ZT_PROTO_VERB_P5_MULTICAST_FRAME_IDX_PROPAGATION_BLOOM_NONCE (ZT_PROTO_VERB_P5_MULTICAST_FRAME_IDX_NETWORK_ID + ZT_PROTO_VERB_P5_MULTICAST_FRAME_LEN_NETWORK_ID) -#define ZT_PROTO_VERB_P5_MULTICAST_FRAME_LEN_PROPAGATION_BLOOM_NONCE 2 -#define ZT_PROTO_VERB_P5_MULTICAST_FRAME_IDX_PROPAGATION_PREFIX_BITS (ZT_PROTO_VERB_P5_MULTICAST_FRAME_IDX_PROPAGATION_BLOOM_NONCE + ZT_PROTO_VERB_P5_MULTICAST_FRAME_LEN_PROPAGATION_BLOOM_NONCE) -#define ZT_PROTO_VERB_P5_MULTICAST_FRAME_LEN_PROPAGATION_PREFIX_BITS 1 -#define ZT_PROTO_VERB_P5_MULTICAST_FRAME_IDX_PROPAGATION_PREFIX (ZT_PROTO_VERB_P5_MULTICAST_FRAME_IDX_PROPAGATION_PREFIX_BITS + ZT_PROTO_VERB_P5_MULTICAST_FRAME_LEN_PROPAGATION_PREFIX_BITS) -#define ZT_PROTO_VERB_P5_MULTICAST_FRAME_LEN_PROPAGATION_PREFIX 1 -#define ZT_PROTO_VERB_P5_MULTICAST_FRAME_IDX_ORIGIN (ZT_PROTO_VERB_P5_MULTICAST_FRAME_IDX_PROPAGATION_PREFIX + ZT_PROTO_VERB_P5_MULTICAST_FRAME_LEN_PROPAGATION_PREFIX) -#define ZT_PROTO_VERB_P5_MULTICAST_FRAME_LEN_ORIGIN 5 -#define ZT_PROTO_VERB_P5_MULTICAST_FRAME_IDX_ORIGIN_MCID (ZT_PROTO_VERB_P5_MULTICAST_FRAME_IDX_ORIGIN + ZT_PROTO_VERB_P5_MULTICAST_FRAME_LEN_ORIGIN) -#define ZT_PROTO_VERB_P5_MULTICAST_FRAME_LEN_ORIGIN_MCID 3 -#define ZT_PROTO_VERB_P5_MULTICAST_FRAME_IDX_GUID (ZT_PROTO_VERB_P5_MULTICAST_FRAME_IDX_ORIGIN) -#define ZT_PROTO_VERB_P5_MULTICAST_FRAME_LEN_GUID 8 -#define ZT_PROTO_VERB_P5_MULTICAST_FRAME_IDX_SOURCE_MAC (ZT_PROTO_VERB_P5_MULTICAST_FRAME_IDX_ORIGIN_MCID + ZT_PROTO_VERB_P5_MULTICAST_FRAME_LEN_ORIGIN_MCID) -#define ZT_PROTO_VERB_P5_MULTICAST_FRAME_LEN_SOURCE_MAC 6 -#define ZT_PROTO_VERB_P5_MULTICAST_FRAME_IDX_DEST_MAC (ZT_PROTO_VERB_P5_MULTICAST_FRAME_IDX_SOURCE_MAC + ZT_PROTO_VERB_P5_MULTICAST_FRAME_LEN_SOURCE_MAC) -#define ZT_PROTO_VERB_P5_MULTICAST_FRAME_LEN_DEST_MAC 6 -#define ZT_PROTO_VERB_P5_MULTICAST_FRAME_IDX_DEST_ADI (ZT_PROTO_VERB_P5_MULTICAST_FRAME_IDX_DEST_MAC + ZT_PROTO_VERB_P5_MULTICAST_FRAME_LEN_DEST_MAC) -#define ZT_PROTO_VERB_P5_MULTICAST_FRAME_LEN_DEST_ADI 4 -#define ZT_PROTO_VERB_P5_MULTICAST_FRAME_IDX_ETHERTYPE (ZT_PROTO_VERB_P5_MULTICAST_FRAME_IDX_DEST_ADI + ZT_PROTO_VERB_P5_MULTICAST_FRAME_LEN_DEST_ADI) -#define ZT_PROTO_VERB_P5_MULTICAST_FRAME_LEN_ETHERTYPE 2 -#define ZT_PROTO_VERB_P5_MULTICAST_FRAME_IDX_FRAME_LEN (ZT_PROTO_VERB_P5_MULTICAST_FRAME_IDX_ETHERTYPE + ZT_PROTO_VERB_P5_MULTICAST_FRAME_LEN_ETHERTYPE) -#define ZT_PROTO_VERB_P5_MULTICAST_FRAME_LEN_FRAME_LEN 2 -#define ZT_PROTO_VERB_P5_MULTICAST_FRAME_IDX_FRAME (ZT_PROTO_VERB_P5_MULTICAST_FRAME_IDX_FRAME_LEN + ZT_PROTO_VERB_P5_MULTICAST_FRAME_LEN_FRAME_LEN) -#define ZT_PROTO_VERB_P5_MULTICAST_FRAME_FLAGS_HAS_MEMBERSHIP_CERTIFICATE 0x01 - #define ZT_PROTO_VERB_NETWORK_CONFIG_REQUEST_IDX_NETWORK_ID (ZT_PACKET_IDX_PAYLOAD) #define ZT_PROTO_VERB_NETWORK_CONFIG_REQUEST_IDX_DICT_LEN (ZT_PROTO_VERB_NETWORK_CONFIG_REQUEST_IDX_NETWORK_ID + 8) #define ZT_PROTO_VERB_NETWORK_CONFIG_REQUEST_IDX_DICT (ZT_PROTO_VERB_NETWORK_CONFIG_REQUEST_IDX_DICT_LEN + 2) @@ -603,7 +566,7 @@ public: */ VERB_EXT_FRAME = 7, - /* DEPRECATED -- legacy support only, will go away completely soon */ + /* DEPRECATED */ VERB_P5_MULTICAST_FRAME = 8, /* Announce interest in multicast group(s): @@ -754,7 +717,45 @@ public: * <[6] multicast group MAC> * <[4] 32-bit multicast group ADI> */ - VERB_MULTICAST_FRAME = 14 + VERB_MULTICAST_FRAME = 14, + + /* Message sent to notify of a change in underlying address: + * <[1] flags> + * <[1] address type> + * <[2] 16-bit length of address> + * <[...] new address> + * + * Flags: + * 0x01 - Address was confirmed (if unset no confirmation was done) + * + * Address types: + * 0x01 - IPv4/UDP + * 0x02 - IPv6/UDP + * 0x03 - IPv4/TCP + * 0x04 - IPv6/TCP + * 0x05 - Ethernet MAC (raw framing address) + * 0x06 - Bluetooth MAC + * 0x07 - HTTP URL + * (other values are reserved) + * + * Address formats: + * IPv4: 32-bit address, 16-bit port in network byte order + * IPv6: 128-bit address, 16-bit port in network byte order + * Ethernet: 48-bit / 6-byte MAC + * Bluetooth: 48-bit / 6-byte Bluetooth MAC + * HTTP URL: ASCII string containing endpoint URL + * + * This should be sent by peers when a new remote address is detected by + * way of a new packet from a previously unknown underlying physical + * address. It may also be sent with flag 0x01 set once a new address is + * confirmed via a bi-directional transaction, indicating a higher + * confidence level. + * + * Peers can use this message to trigger reconnection semantics when + * mobility, DHCP reassignment, VM migration, or other factors lead to + * a change in physical address. + */ + VERB_PHYSICAL_ADDRESS_CHANGED = 15 }; /** |