2 * Copyright (c) 2013 Pantheon Technologies s.r.o. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.openflowjava.protocol.api.connection;
10 import java.net.InetAddress;
13 * Configuration for a switch connection.
17 public interface ConnectionConfiguration {
20 * Returns address to bind.
22 * @return address to bind, if null, all available interfaces will be used
24 InetAddress getAddress();
27 * Returns the port to bind.
29 * @return port to bind
34 * Returns the transport protocol to use.
36 * @return transport protocol to use
38 Object getTransferProtocol();
41 * Returns the TLS configuration.
43 * @return TLS configuration object
45 TlsConfiguration getTlsConfiguration();
48 * Returns the swicth idle timeout.
50 * @return silence time (in milliseconds) - after this time
51 * {@link org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.system.rev130927.SwitchIdleEvent}
52 * message is sent upstream
54 long getSwitchIdleTimeout();
57 * Returns the SSL context.
59 * @return seed for {@link javax.net.ssl.SSLEngine}
61 Object getSslContext();
64 * Returns the thread configuration.
66 * @return thread numbers for TcpHandler's eventloopGroups
68 ThreadConfiguration getThreadConfiguration();
71 * Determines if a barrier shoild be used.
73 * @return boolean value for usability of Barrier
78 * Checks if group add mod messages are enabled.
79 * @return true if group add mod messages are enabled
81 boolean isGroupAddModEnabled();
84 * Returns the queue size.
86 * @return Configurable queue size
88 int getChannelOutboundQueueSize();