diff options
author | Grant Limberg <glimberg@gmail.com> | 2015-05-02 16:54:00 -0700 |
---|---|---|
committer | Grant Limberg <glimberg@gmail.com> | 2015-05-02 16:54:00 -0700 |
commit | 742c59a7c7ca1bcd47984e6db868d6e42580811e (patch) | |
tree | feacc9ce92fdbf42de7163fecbc253eb8c3f73f6 /java/src/com/zerotier/sdk/VirtualNetworkConfig.java | |
parent | e79a6915ff3f4dd498712aa1bc27674cfdcc1f4c (diff) | |
download | infinitytier-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.java | 170 |
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; + } +} |