This commit is contained in:
Adam Ierymenko 2016-05-06 11:41:11 -07:00
parent 7913fa7bbd
commit 69d0562e2c

View File

@ -403,12 +403,12 @@ enum ZT_VirtualNetworkRuleType
ZT_NETWORK_RULE_ACTION_ACCEPT = 1, ZT_NETWORK_RULE_ACTION_ACCEPT = 1,
/** /**
* Forward a copy of this frame to an observer (in datum.zt[1]) * Forward a copy of this frame to an observer
*/ */
ZT_NETWORK_RULE_ACTION_TEE = 2, ZT_NETWORK_RULE_ACTION_TEE = 2,
/** /**
* Redirect frame to ZeroTier device in datum.zt[1] regardless of Ethernet addressing or anything else * Explicitly redirect this frame to another device (ignored if this is the target device)
*/ */
ZT_NETWORK_RULE_ACTION_REDIRECT = 3, ZT_NETWORK_RULE_ACTION_REDIRECT = 3,
@ -493,7 +493,7 @@ enum ZT_VirtualNetworkRuleType
ZT_NETWORK_RULE_MATCH_IP_DEST_PORT_RANGE = 47, ZT_NETWORK_RULE_MATCH_IP_DEST_PORT_RANGE = 47,
/** /**
* Packet boolean characteristics * Packet characteristics (set of flags)
*/ */
ZT_NETWORK_RULE_MATCH_CHARACTERISTICS = 48, ZT_NETWORK_RULE_MATCH_CHARACTERISTICS = 48,
@ -510,7 +510,12 @@ enum ZT_VirtualNetworkRuleType
* have no effect until the rules engine is fully implemented. * have no effect until the rules engine is fully implemented.
* *
* Rules are stored in a table in which one or more match entries is followed * Rules are stored in a table in which one or more match entries is followed
* by an action. If more than one match precedes an action * by an action. If more than one match precedes an action, the rule is
* the AND of all matches. An action with no match is always taken since it
* matches anything. If nothing matches, the default action is DROP.
*
* This is designed to be a more memory-efficient way of storing rules than
* a wide table, yet still fast and simple to access in code.
*/ */
typedef struct typedef struct
{ {
@ -522,8 +527,8 @@ typedef struct
* *
* Use "& 0x7f" to get the enum and "& 0x80" to get the NOT flag. * Use "& 0x7f" to get the enum and "& 0x80" to get the NOT flag.
* *
* This is essentially a variant selector determining which field of 'v' is * The union 'v' is a variant type, and this selects which field in 'v' is
* used and its meaning. * actually used and valid.
*/ */
uint8_t t; uint8_t t;