summaryrefslogtreecommitdiff
path: root/java/src/com/zerotier/sdk/VirtualNetworkConfig.java
diff options
context:
space:
mode:
authorGrant Limberg <glimberg@gmail.com>2015-05-02 16:54:00 -0700
committerGrant Limberg <glimberg@gmail.com>2015-05-02 16:54:00 -0700
commit742c59a7c7ca1bcd47984e6db868d6e42580811e (patch)
treefeacc9ce92fdbf42de7163fecbc253eb8c3f73f6 /java/src/com/zerotier/sdk/VirtualNetworkConfig.java
parente79a6915ff3f4dd498712aa1bc27674cfdcc1f4c (diff)
downloadinfinitytier-742c59a7c7ca1bcd47984e6db868d6e42580811e.tar.gz
infinitytier-742c59a7c7ca1bcd47984e6db868d6e42580811e.zip
Refactor package name from com.zerotierone.sdk to com.zerotier.sdk
Diffstat (limited to 'java/src/com/zerotier/sdk/VirtualNetworkConfig.java')
-rw-r--r--java/src/com/zerotier/sdk/VirtualNetworkConfig.java170
1 files changed, 170 insertions, 0 deletions
diff --git a/java/src/com/zerotier/sdk/VirtualNetworkConfig.java b/java/src/com/zerotier/sdk/VirtualNetworkConfig.java
new file mode 100644
index 00000000..032ba267
--- /dev/null
+++ b/java/src/com/zerotier/sdk/VirtualNetworkConfig.java
@@ -0,0 +1,170 @@
+/*
+ * ZeroTier One - Network Virtualization Everywhere
+ * Copyright (C) 2011-2015 ZeroTier, Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * --
+ *
+ * ZeroTier may be used and distributed under the terms of the GPLv3, which
+ * are available at: http://www.gnu.org/licenses/gpl-3.0.html
+ *
+ * If you would like to embed ZeroTier into a commercial application or
+ * redistribute it in a modified binary form, please contact ZeroTier Networks
+ * LLC. Start here: http://www.zerotier.com/
+ */
+
+package com.zerotier.sdk;
+
+import java.lang.String;
+import java.util.ArrayList;
+import java.net.InetSocketAddress;
+
+public final class VirtualNetworkConfig {
+ public static final int MAX_MULTICAST_SUBSCRIPTIONS = 4096;
+ public static final int ZT1_MAX_ZT_ASSIGNED_ADDRESSES = 16;
+
+ private long nwid;
+ private long mac;
+ private String name;
+ private VirtualNetworkStatus status;
+ private VirtualNetworkType type;
+ private int mtu;
+ private boolean dhcp;
+ private boolean bridge;
+ private boolean broadcastEnabled;
+ private int portError;
+ private boolean enabled;
+ private long netconfRevision;
+ private ArrayList<MulticastGroup> multicastSubscriptions;
+ private ArrayList<InetSocketAddress> assignedAddresses;
+
+ private VirtualNetworkConfig() {
+
+ }
+
+ /**
+ * 64-bit ZeroTier network ID
+ */
+ public final long networkId() {
+ return nwid;
+ }
+
+ /**
+ * Ethernet MAC (40 bits) that should be assigned to port
+ */
+ public final long macAddress() {
+ return mac;
+ }
+
+ /**
+ * Network name (from network configuration master)
+ */
+ public final String name() {
+ return name;
+ }
+
+ /**
+ * Network configuration request status
+ */
+ public final VirtualNetworkStatus networkStatus() {
+ return status;
+ }
+
+ /**
+ * Network type
+ */
+ public final VirtualNetworkType networkType() {
+ return type;
+ }
+
+ /**
+ * Maximum interface MTU
+ */
+ public final int mtu() {
+ return mtu;
+ }
+
+ /**
+ * If the network this port belongs to indicates DHCP availability
+ *
+ * <p>This is a suggestion. The underlying implementation is free to ignore it
+ * for security or other reasons. This is simply a netconf parameter that
+ * means 'DHCP is available on this network.'</p>
+ */
+ public final boolean isDhcpAvailable() {
+ return dhcp;
+ }
+
+ /**
+ * If this port is allowed to bridge to other networks
+ *
+ * <p>This is informational. If this is false, bridged packets will simply
+ * be dropped and bridging won't work.</p>
+ */
+ public final boolean isBridgeEnabled() {
+ return bridge;
+ }
+
+ /**
+ * If true, this network supports and allows broadcast (ff:ff:ff:ff:ff:ff) traffic
+ */
+ public final boolean broadcastEnabled() {
+ return broadcastEnabled;
+ }
+
+ /**
+ * If the network is in PORT_ERROR state, this is the error most recently returned by the port config callback
+ */
+ public final int portError() {
+ return portError;
+ }
+
+ /**
+ * Is this network enabled? If not, all frames to/from are dropped.
+ */
+ public final boolean isEnabled() {
+ return enabled;
+ }
+
+ /**
+ * Network config revision as reported by netconf master
+ *
+ * <p>If this is zero, it means we're still waiting for our netconf.</p>
+ */
+ public final long netconfRevision() {
+ return netconfRevision;
+ }
+
+ /**
+ * Multicast group subscriptions
+ */
+ public final ArrayList<MulticastGroup> multicastSubscriptions() {
+ return multicastSubscriptions;
+ }
+
+ /**
+ * ZeroTier-assigned addresses (in {@link java.net.InetSocketAddress} objects)
+ *
+ * For IP, the port number of the sockaddr_XX structure contains the number
+ * of bits in the address netmask. Only the IP address and port are used.
+ * Other fields like interface number can be ignored.
+ *
+ * This is only used for ZeroTier-managed address assignments sent by the
+ * virtual network's configuration master.
+ */
+ public final ArrayList<InetSocketAddress> assignedAddresses() {
+ return assignedAddresses;
+ }
+}