summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/ZeroTierOne.h58
1 files changed, 44 insertions, 14 deletions
diff --git a/include/ZeroTierOne.h b/include/ZeroTierOne.h
index 0c22ae9d..e0f6ca28 100644
--- a/include/ZeroTierOne.h
+++ b/include/ZeroTierOne.h
@@ -155,6 +155,11 @@ extern "C" {
#define ZT_CIRCUIT_TEST_MAX_HOP_BREADTH 8
/**
+ * Circuit test report flag: upstream peer authorized in path (e.g. by network COM)
+ */
+#define ZT_CIRCUIT_TEST_REPORT_FLAGS_UPSTREAM_AUTHORIZED_IN_PATH 0x0000000000000001ULL
+
+/**
* Maximum number of cluster members (and max member ID plus one)
*/
#define ZT_CLUSTER_MAX_MEMBERS 128
@@ -865,19 +870,28 @@ enum ZT_VirtualNetworkConfigOperation
ZT_VIRTUAL_NETWORK_CONFIG_OPERATION_DESTROY = 4
};
+enum ZT_RelayPolicy
+{
+ ZT_RELAY_POLICY_NEVER = 0,
+ ZT_RELAY_POLICY_TRUSTED = 1,
+ ZT_RELAY_POLICY_ALWAYS = 2
+};
+
/**
* What trust hierarchy role does this peer have?
*/
-enum ZT_PeerRole {
+enum ZT_PeerRole
+{
ZT_PEER_ROLE_LEAF = 0, // ordinary node
- ZT_PEER_ROLE_RELAY = 1, // relay node
- ZT_PEER_ROLE_ROOT = 2 // root server
+ ZT_PEER_ROLE_UPSTREAM = 1, // upstream node
+ ZT_PEER_ROLE_ROOT = 2 // global root
};
/**
* Vendor ID
*/
-enum ZT_Vendor {
+enum ZT_Vendor
+{
ZT_VENDOR_UNSPECIFIED = 0,
ZT_VENDOR_ZEROTIER = 1
};
@@ -885,7 +899,8 @@ enum ZT_Vendor {
/**
* Platform type
*/
-enum ZT_Platform {
+enum ZT_Platform
+{
ZT_PLATFORM_UNSPECIFIED = 0,
ZT_PLATFORM_LINUX = 1,
ZT_PLATFORM_WINDOWS = 2,
@@ -900,13 +915,15 @@ enum ZT_Platform {
ZT_PLATFORM_VXWORKS = 11,
ZT_PLATFORM_FREERTOS = 12,
ZT_PLATFORM_SYSBIOS = 13,
- ZT_PLATFORM_HURD = 14
+ ZT_PLATFORM_HURD = 14,
+ ZT_PLATFORM_WEB = 15
};
/**
* Architecture type
*/
-enum ZT_Architecture {
+enum ZT_Architecture
+{
ZT_ARCHITECTURE_UNSPECIFIED = 0,
ZT_ARCHITECTURE_X86 = 1,
ZT_ARCHITECTURE_X64 = 2,
@@ -921,7 +938,8 @@ enum ZT_Architecture {
ZT_ARCHITECTURE_SPARC32 = 11,
ZT_ARCHITECTURE_SPARC64 = 12,
ZT_ARCHITECTURE_DOTNET_CLR = 13,
- ZT_ARCHITECTURE_JAVA_JVM = 14
+ ZT_ARCHITECTURE_JAVA_JVM = 14,
+ ZT_ARCHITECTURE_WEB = 15
};
/**
@@ -960,6 +978,11 @@ typedef struct
unsigned int mtu;
/**
+ * Recommended MTU to avoid fragmentation at the physical layer (hint)
+ */
+ unsigned int physicalMtu;
+
+ /**
* If nonzero, the network this port belongs to indicates DHCP availability
*
* This is a suggestion. The underlying implementation is free to ignore it
@@ -1219,17 +1242,12 @@ typedef struct {
uint64_t timestamp;
/**
- * Timestamp on remote device
- */
- uint64_t remoteTimestamp;
-
- /**
* 64-bit packet ID of packet received by the reporting device
*/
uint64_t sourcePacketId;
/**
- * Flags (currently unused, will be zero)
+ * Flags
*/
uint64_t flags;
@@ -1591,6 +1609,9 @@ typedef int (*ZT_PathCheckFunction)(
* Note that this can take a few seconds the first time it's called, as it
* will generate an identity.
*
+ * TODO: should consolidate function pointers into versioned structure for
+ * better API stability.
+ *
* @param node Result: pointer is set to new node instance on success
* @param uptr User pointer to pass to functions/callbacks
* @param now Current clock in milliseconds
@@ -1682,6 +1703,15 @@ enum ZT_ResultCode ZT_Node_processVirtualNetworkFrame(
enum ZT_ResultCode ZT_Node_processBackgroundTasks(ZT_Node *node,uint64_t now,volatile uint64_t *nextBackgroundTaskDeadline);
/**
+ * Set node's relay policy
+ *
+ * @param node Node instance
+ * @param rp New relay policy
+ * @return OK(0) or error code
+ */
+enum ZT_ResultCode ZT_Node_setRelayPolicy(ZT_Node *node,enum ZT_RelayPolicy rp);
+
+/**
* Join a network
*
* This may generate calls to the port config callback before it returns,