diff --git a/include/ZeroTierOne.h b/include/ZeroTierOne.h index 7cbebb328..cf6b21fdd 100644 --- a/include/ZeroTierOne.h +++ b/include/ZeroTierOne.h @@ -803,6 +803,21 @@ typedef struct uint8_t mask; } ipv4; + /** + * Integer range match in packet payload + * + * This allows matching of ranges of integers up to 64 bits wide where + * the range is +/- INT32_MAX. It's packed this way so it fits in 16 + * bytes and doesn't enlarge the overall size of this union. + */ + struct { + uint64_t start; // integer range start + int32_t delta; // +/- offset from start of integer range end + uint16_t idx; // index in packet of integer + uint8_t bits; // number of bits in integer (range: 1-64) + uint8_t endian; // endianness of integer in packet (0 == big, 1 == little) + } intRange; + /** * Packet characteristic flags being matched */ diff --git a/node/Node.cpp b/node/Node.cpp index 871fb21b8..cc076e4d4 100644 --- a/node/Node.cpp +++ b/node/Node.cpp @@ -563,6 +563,7 @@ uint64_t Node::prng() ZT_ResultCode Node::setPhysicalPathConfiguration(const struct sockaddr_storage *pathNetwork, const ZT_PhysicalPathConfiguration *pathConfig) { + RR->topology->setPhysicalPathConfiguration(pathNetwork,pathConfig); return ZT_RESULT_OK; }