OPNFLWPLUG-968: The channelOutboundQueueSize is made configurable:
[openflowplugin.git] / openflowjava / openflow-protocol-api / src / main / java / org / opendaylight / openflowjava / protocol / api / connection / ConnectionConfiguration.java
1 /*
2  * Copyright (c) 2013 Pantheon Technologies s.r.o. and others. All rights reserved.
3  *
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
7  */
8 package org.opendaylight.openflowjava.protocol.api.connection;
9
10 import java.net.InetAddress;
11
12 /**
13  * Configuration for a switch connection.
14  *
15  * @author mirehak
16  */
17 public interface ConnectionConfiguration {
18
19     /**
20      * Returns address to bind.
21      *
22      * @return address to bind, if null, all available interfaces will be used
23      */
24     InetAddress getAddress();
25
26     /**
27      * Returns the port to bind.
28      *
29      * @return port to bind
30      */
31     int getPort();
32
33     /**
34      * Returns the transport protocol to use.
35      *
36      * @return transport protocol to use
37      */
38     Object getTransferProtocol();
39
40     /**
41      * Returns the TLS configuration.
42      *
43      * @return TLS configuration object
44      */
45     TlsConfiguration getTlsConfiguration();
46
47     /**
48      * Returns the swicth idle timeout.
49      *
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
53      */
54     long getSwitchIdleTimeout();
55
56     /**
57      * Returns the SSL context.
58      *
59      * @return seed for {@link javax.net.ssl.SSLEngine}
60      */
61     Object getSslContext();
62
63     /**
64      * Returns the thread configuration.
65      *
66      * @return thread numbers for TcpHandler's eventloopGroups
67      */
68     ThreadConfiguration getThreadConfiguration();
69
70     /**
71      * Determines if a barrier shoild be used.
72      *
73      * @return boolean value for usability of Barrier
74      */
75     boolean useBarrier();
76
77     /**
78      * Checks if group add mod messages are enabled.
79      * @return true if group add mod messages are enabled
80      */
81     boolean isGroupAddModEnabled();
82
83     /**
84      * Returns the queue size.
85      *
86      * @return Configurable queue size
87      */
88     int getChannelOutboundQueueSize();
89 }