123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170 |
- /*
- * 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 ZT_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 MulticastGroup[] multicastSubscriptions;
- private 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 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 InetSocketAddress[] assignedAddresses() {
- return assignedAddresses;
- }
- }
|