summary |
shortlog |
log |
commit | commitdiff |
review |
tree
raw |
patch |
inline | side by side (from parent 1:
e159106)
Netconf connector will reattempt connection if the session to remote device is dropped.
Increase sleep factor in netconf connector from 1.0 to 1.5.
This prevents connection attempt every second in case remote device is not comming back for longer time.
Connection attempts span increases gradually.
Change-Id: Icc4b993942e9cc6897c0da858eb867afa4c8aa87
Signed-off-by: Maros Marsalek <mmarsale@cisco.com>
import org.opendaylight.controller.netconf.client.NetconfClientDispatcherImpl;
import org.opendaylight.controller.netconf.client.conf.NetconfClientConfiguration;
import org.opendaylight.controller.netconf.client.conf.NetconfClientConfigurationBuilder;
import org.opendaylight.controller.netconf.client.NetconfClientDispatcherImpl;
import org.opendaylight.controller.netconf.client.conf.NetconfClientConfiguration;
import org.opendaylight.controller.netconf.client.conf.NetconfClientConfigurationBuilder;
+import org.opendaylight.controller.netconf.client.conf.NetconfReconnectingClientConfiguration;
+import org.opendaylight.controller.netconf.client.conf.NetconfReconnectingClientConfigurationBuilder;
import org.opendaylight.controller.netconf.util.handler.ssh.authentication.LoginPassword;
import org.opendaylight.controller.sal.binding.api.data.DataProviderService;
import org.opendaylight.controller.sal.connect.netconf.NetconfDevice;
import org.opendaylight.controller.sal.connect.netconf.NetconfDeviceListener;
import org.opendaylight.protocol.framework.ReconnectStrategy;
import org.opendaylight.controller.netconf.util.handler.ssh.authentication.LoginPassword;
import org.opendaylight.controller.sal.binding.api.data.DataProviderService;
import org.opendaylight.controller.sal.connect.netconf.NetconfDevice;
import org.opendaylight.controller.sal.connect.netconf.NetconfDeviceListener;
import org.opendaylight.protocol.framework.ReconnectStrategy;
+import org.opendaylight.protocol.framework.ReconnectStrategyFactory;
import org.opendaylight.protocol.framework.TimedReconnectStrategy;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
import org.opendaylight.protocol.framework.TimedReconnectStrategy;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
this.bundleContext = bundleContext;
}
this.bundleContext = bundleContext;
}
- public NetconfClientConfiguration getClientConfig(final NetconfDevice device) {
+ public NetconfReconnectingClientConfiguration getClientConfig(final NetconfDevice device) {
InetSocketAddress socketAddress = getSocketAddress();
ReconnectStrategy strategy = getReconnectStrategy();
long clientConnectionTimeoutMillis = getConnectionTimeoutMillis();
InetSocketAddress socketAddress = getSocketAddress();
ReconnectStrategy strategy = getReconnectStrategy();
long clientConnectionTimeoutMillis = getConnectionTimeoutMillis();
- return NetconfClientConfigurationBuilder.create()
+ return NetconfReconnectingClientConfigurationBuilder.create()
.withAddress(socketAddress)
.withConnectionTimeoutMillis(clientConnectionTimeoutMillis)
.withReconnectStrategy(strategy)
.withAddress(socketAddress)
.withConnectionTimeoutMillis(clientConnectionTimeoutMillis)
.withReconnectStrategy(strategy)
.withProtocol(getTcpOnly() ?
NetconfClientConfiguration.NetconfClientProtocol.TCP :
NetconfClientConfiguration.NetconfClientProtocol.SSH)
.withProtocol(getTcpOnly() ?
NetconfClientConfiguration.NetconfClientProtocol.TCP :
NetconfClientConfiguration.NetconfClientProtocol.SSH)
+ .withConnectStrategyFactory(new ReconnectStrategyFactory() {
+ @Override
+ public ReconnectStrategy createReconnectStrategy() {
+ return getReconnectStrategy();
+ }
+ })
logger.trace("Setting {} on {} to infinity", maxConnectionAttemptsJmxAttribute, this);
connectionAttempts = null;
}
logger.trace("Setting {} on {} to infinity", maxConnectionAttemptsJmxAttribute, this);
connectionAttempts = null;
}
- double sleepFactor = 1.0;
+ double sleepFactor = 1.5;
int minSleep = 1000;
Long maxSleep = null;
Long deadline = null;
int minSleep = 1000;
Long maxSleep = null;
Long deadline = null;
import org.opendaylight.controller.md.sal.common.api.data.DataReader;
import org.opendaylight.controller.netconf.client.NetconfClientDispatcher;
import org.opendaylight.controller.netconf.client.conf.NetconfClientConfiguration;
import org.opendaylight.controller.md.sal.common.api.data.DataReader;
import org.opendaylight.controller.netconf.client.NetconfClientDispatcher;
import org.opendaylight.controller.netconf.client.conf.NetconfClientConfiguration;
+import org.opendaylight.controller.netconf.client.conf.NetconfReconnectingClientConfiguration;
import org.opendaylight.controller.sal.binding.api.data.DataProviderService;
import org.opendaylight.controller.sal.core.api.Broker.ProviderSession;
import org.opendaylight.controller.sal.core.api.Broker.RpcRegistration;
import org.opendaylight.controller.sal.binding.api.data.DataProviderService;
import org.opendaylight.controller.sal.core.api.Broker.ProviderSession;
import org.opendaylight.controller.sal.core.api.Broker.RpcRegistration;
private boolean rollbackSupported;
private boolean rollbackSupported;
- private NetconfClientConfiguration clientConfig;
+ private NetconfReconnectingClientConfiguration clientConfig;
private volatile DataProviderService dataProviderService;
public NetconfDevice(String name) {
private volatile DataProviderService dataProviderService;
public NetconfDevice(String name) {
logger.info("Starting NETCONF Client {} for address {}", name, socketAddress);
logger.info("Starting NETCONF Client {} for address {}", name, socketAddress);
- dispatcher.createClient(clientConfig);
+ dispatcher.createReconnectingClient(clientConfig);
}
Optional<SchemaContext> getSchemaContext() {
}
Optional<SchemaContext> getSchemaContext() {
this.dispatcher = dispatcher;
}
this.dispatcher = dispatcher;
}
- public void setClientConfig(final NetconfClientConfiguration clientConfig) {
+ public void setClientConfig(final NetconfReconnectingClientConfiguration clientConfig) {
this.clientConfig = clientConfig;
}
this.clientConfig = clientConfig;
}