summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorJoseph Henry <[email protected]>2020-06-16 12:30:21 -0700
committerJoseph Henry <[email protected]>2020-06-16 12:30:21 -0700
commit5f0ee4fc78f438d00f382b4e29ebdde621e7e160 (patch)
treeacd09c55f537464bcd2831b4b8d416d294b1b71f /include
parentfa5c8ef434a31e91f02861bb169f22a9aae7b1f4 (diff)
Fix invalid defaultBondingPolicy conditions, Add ZT_MultipathFlowRebalanceStrategy, Add basic hysteresis mechanism to flow re-assignment
Diffstat (limited to 'include')
-rw-r--r--include/ZeroTierOne.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/include/ZeroTierOne.h b/include/ZeroTierOne.h
index 890e5604..dfb52046 100644
--- a/include/ZeroTierOne.h
+++ b/include/ZeroTierOne.h
@@ -522,6 +522,33 @@ enum ZT_MultipathMonitorStrategy
};
/**
+ * Strategy for re-balancing protocol flows
+ */
+enum ZT_MultipathFlowRebalanceStrategy
+{
+ /**
+ * Flows will only be re-balanced among slaves during
+ * assignment or failover. This minimizes the possibility
+ * of sequence reordering and is thus the default setting.
+ */
+ ZT_MULTIPATH_FLOW_REBALANCE_STRATEGY_PASSIVE = 0,
+
+ /**
+ * Flows that are active may be re-assigned to a new more
+ * suitable slave if it can be done without disrupting the flow.
+ * This setting can sometimes cause sequence re-ordering.
+ */
+ ZT_MULTIPATH_FLOW_REBALANCE_STRATEGY_OPPORTUNISTIC = 0,
+
+ /**
+ * Flows will be continuously re-assigned the most suitable slave
+ * in order to maximize "balance". This can often cause sequence
+ * reordering and is thus only reccomended for protocols like UDP.
+ */
+ ZT_MULTIPATH_FLOW_REBALANCE_STRATEGY_AGGRESSIVE = 2
+};
+
+/**
* Indices for the path quality weight vector
*/
enum ZT_MultipathQualityWeightIndex