summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAdam Ierymenko <adam.ierymenko@gmail.com>2016-08-05 15:02:01 -0700
committerAdam Ierymenko <adam.ierymenko@gmail.com>2016-08-05 15:02:01 -0700
commite2f783ebbd39466bc03bf115b20064d222b91944 (patch)
treee1c0bae8b5a180713435b588cecadccc858d22d5 /include
parent4d9b74b171d243abe2d2d6a0039865ece8a4a00c (diff)
downloadinfinitytier-e2f783ebbd39466bc03bf115b20064d222b91944.tar.gz
infinitytier-e2f783ebbd39466bc03bf115b20064d222b91944.zip
.
Diffstat (limited to 'include')
-rw-r--r--include/ZeroTierOne.h85
1 files changed, 75 insertions, 10 deletions
diff --git a/include/ZeroTierOne.h b/include/ZeroTierOne.h
index 2a70417e..aa7ecc2c 100644
--- a/include/ZeroTierOne.h
+++ b/include/ZeroTierOne.h
@@ -165,9 +165,69 @@ extern "C" {
#define ZT_CLUSTER_MAX_MESSAGE_LENGTH (1500 - 48)
/**
- * Packet characteristics flag: packet direction, 1 for incoming 0 for outgoing
+ * Packet characteristics flag: packet direction, 1 if inbound 0 if outbound
*/
-#define ZT_RULE_PACKET_CHARACTERISTICS_0_INBOUND 0x0000000000000001ULL
+#define ZT_RULE_PACKET_CHARACTERISTICS_INBOUND 0x8000000000000000ULL
+
+/**
+ * Packet characteristics flag: TCP left-most reserved bit
+ */
+#define ZT_RULE_PACKET_CHARACTERISTICS_TCP_RESERVED_0 0x0000000000000800ULL
+
+/**
+ * Packet characteristics flag: TCP middle reserved bit
+ */
+#define ZT_RULE_PACKET_CHARACTERISTICS_TCP_RESERVED_1 0x0000000000000400ULL
+
+/**
+ * Packet characteristics flag: TCP right-most reserved bit
+ */
+#define ZT_RULE_PACKET_CHARACTERISTICS_TCP_RESERVED_2 0x0000000000000200ULL
+
+/**
+ * Packet characteristics flag: TCP NS flag
+ */
+#define ZT_RULE_PACKET_CHARACTERISTICS_TCP_NS 0x0000000000000100ULL
+
+/**
+ * Packet characteristics flag: TCP CWR flag
+ */
+#define ZT_RULE_PACKET_CHARACTERISTICS_TCP_CWR 0x0000000000000080ULL
+
+/**
+ * Packet characteristics flag: TCP ECE flag
+ */
+#define ZT_RULE_PACKET_CHARACTERISTICS_TCP_ECE 0x0000000000000040ULL
+
+/**
+ * Packet characteristics flag: TCP URG flag
+ */
+#define ZT_RULE_PACKET_CHARACTERISTICS_TCP_URG 0x0000000000000020ULL
+
+/**
+ * Packet characteristics flag: TCP ACK flag
+ */
+#define ZT_RULE_PACKET_CHARACTERISTICS_TCP_ACK 0x0000000000000010ULL
+
+/**
+ * Packet characteristics flag: TCP PSH flag
+ */
+#define ZT_RULE_PACKET_CHARACTERISTICS_TCP_PSH 0x0000000000000008ULL
+
+/**
+ * Packet characteristics flag: TCP RST flag
+ */
+#define ZT_RULE_PACKET_CHARACTERISTICS_TCP_RST 0x0000000000000004ULL
+
+/**
+ * Packet characteristics flag: TCP SYN flag
+ */
+#define ZT_RULE_PACKET_CHARACTERISTICS_TCP_SYN 0x0000000000000002ULL
+
+/**
+ * Packet characteristics flag: TCP FIN flag
+ */
+#define ZT_RULE_PACKET_CHARACTERISTICS_TCP_FIN 0x0000000000000001ULL
/**
* A null/empty sockaddr (all zero) to signify an unspecified socket address
@@ -533,19 +593,24 @@ enum ZT_VirtualNetworkRuleType
ZT_NETWORK_RULE_MATCH_FRAME_SIZE_RANGE = 49,
/**
- * Match a range of tag values (equality match if start==end)
+ * Match if local and remote tags differ by no more than value, use 0 to check for equality
+ */
+ ZT_NETWORK_RULE_MATCH_TAGS_SAMENESS = 50,
+
+ /**
+ * Match if local and remote tags ANDed together equal value.
*/
- ZT_NETWORK_RULE_MATCH_TAG_VALUE_RANGE = 50,
+ ZT_NETWORK_RULE_MATCH_TAGS_BITWISE_AND = 51,
/**
- * Match if all bits are set in a tag value
+ * Match if local and remote tags ANDed together equal value.
*/
- ZT_NETWORK_RULE_MATCH_TAG_VALUE_BITS_ALL = 51,
+ ZT_NETWORK_RULE_MATCH_TAGS_BITWISE_OR = 52,
/**
- * Match if any bit from a mask is set in a tag value
+ * Match if local and remote tags XORed together equal value.
*/
- ZT_NETWORK_RULE_MATCH_TAG_VALUE_BITS_ANY = 52
+ ZT_NETWORK_RULE_MATCH_TAGS_BITWISE_XOR = 53
};
/**
@@ -650,11 +715,11 @@ typedef struct
uint16_t frameSize[2];
/**
- * For matching tag values
+ * For tag-related rules
*/
struct {
uint32_t id;
- uint32_t value[2]; // only [0] is used for BITS_ALL or BITS_ANY, [0]-[1] for range
+ uint32_t value;
} tag;
} v;
} ZT_VirtualNetworkRule;