import java.net.SocketAddress;
import java.util.AbstractMap.SimpleImmutableEntry;
import java.util.Map;
+import org.checkerframework.checker.index.qual.NonNegative;
import org.opendaylight.netconf.api.NetconfDocumentedException;
import org.opendaylight.netconf.api.messages.NetconfHelloMessage;
import org.opendaylight.netconf.api.messages.NetconfHelloMessageAdditionalHeader;
NetconfServerSessionNegotiator(final NetconfHelloMessage hello, final long sessionId,
final Promise<NetconfServerSession> promise, final Channel channel, final Timer timer,
- final NetconfServerSessionListener sessionListener, final long connectionTimeoutMillis) {
+ final NetconfServerSessionListener sessionListener, final long connectionTimeoutMillis,
+ final @NonNegative int maximumIncomingChunkSize) {
super(hello, promise, channel, timer, sessionListener, connectionTimeoutMillis,
- DEFAULT_MAXIMUM_INCOMING_CHUNK_SIZE);
+ maximumIncomingChunkSize);
this.sessionId = sessionId;
}
import io.netty.util.concurrent.Promise;
import java.net.SocketAddress;
import java.util.Set;
+import org.checkerframework.checker.index.qual.NonNegative;
import org.opendaylight.netconf.api.NetconfSessionListenerFactory;
import org.opendaylight.netconf.api.messages.NetconfHelloMessage;
import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService;
import org.opendaylight.netconf.impl.osgi.NetconfOperationRouterImpl;
import org.opendaylight.netconf.mapping.api.NetconfOperationService;
import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory;
+import org.opendaylight.netconf.nettyutil.AbstractNetconfSessionNegotiator;
import org.opendaylight.netconf.nettyutil.NetconfSessionNegotiatorFactory;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.Capabilities;
XmlNetconfConstants.URN_IETF_PARAMS_NETCONF_CAPABILITY_NOTIFICATION_1_0
);
+ private final @NonNegative int maximumIncomingChunkSize;
private final Timer timer;
-
private final SessionIdProvider idProvider;
private final NetconfOperationServiceFactory aggregatedOpService;
private final long connectionTimeoutMillis;
private final NetconfMonitoringService monitoringService;
private final Set<String> baseCapabilities;
+ // FIXME: 5.0.0: protected
public NetconfServerSessionNegotiatorFactory(final Timer timer,
- final NetconfOperationServiceFactory netconfOperationProvider,
- final SessionIdProvider idProvider, final long connectionTimeoutMillis,
- final NetconfMonitoringService monitoringService) {
+ final NetconfOperationServiceFactory netconfOperationProvider, final SessionIdProvider idProvider,
+ final long connectionTimeoutMillis, final NetconfMonitoringService monitoringService) {
this(timer, netconfOperationProvider, idProvider, connectionTimeoutMillis, monitoringService, null);
}
+ // FIXME: 5.0.0: protected
public NetconfServerSessionNegotiatorFactory(final Timer timer,
- final NetconfOperationServiceFactory netconfOperationProvider,
- final SessionIdProvider idProvider, final long connectionTimeoutMillis,
- final NetconfMonitoringService monitoringService,
- final Set<String> baseCapabilities) {
+ final NetconfOperationServiceFactory netconfOperationProvider, final SessionIdProvider idProvider,
+ final long connectionTimeoutMillis, final NetconfMonitoringService monitoringService,
+ final Set<String> baseCapabilities) {
+ this(timer, netconfOperationProvider, idProvider, connectionTimeoutMillis, monitoringService, baseCapabilities,
+ AbstractNetconfSessionNegotiator.DEFAULT_MAXIMUM_INCOMING_CHUNK_SIZE);
+ }
+
+ protected NetconfServerSessionNegotiatorFactory(final Timer timer,
+ final NetconfOperationServiceFactory netconfOperationProvider, final SessionIdProvider idProvider,
+ final long connectionTimeoutMillis, final NetconfMonitoringService monitoringService,
+ final Set<String> baseCapabilities, final @NonNegative int maximumIncomingChunkSize) {
this.timer = timer;
aggregatedOpService = netconfOperationProvider;
this.idProvider = idProvider;
this.connectionTimeoutMillis = connectionTimeoutMillis;
this.monitoringService = monitoringService;
+ this.maximumIncomingChunkSize = maximumIncomingChunkSize;
this.baseCapabilities = validateBaseCapabilities(baseCapabilities == null ? DEFAULT_BASE_CAPABILITIES :
baseCapabilities);
}
return new NetconfServerSessionNegotiator(createHelloMessage(sessionId, monitoringService), sessionId, promise,
channel, timer, getListener(Long.toString(sessionId), channel.parent().localAddress()),
- connectionTimeoutMillis);
+ connectionTimeoutMillis, maximumIncomingChunkSize);
}
private NetconfServerSessionListener getListener(final String netconfSessionIdForReporting,
import io.netty.util.Timer;
import java.util.Set;
+import org.checkerframework.checker.index.qual.NonNegative;
import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService;
import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory;
+import org.opendaylight.netconf.nettyutil.AbstractNetconfSessionNegotiator;
public class NetconfServerSessionNegotiatorFactoryBuilder {
private Timer timer;
private long connectionTimeoutMillis;
private NetconfMonitoringService monitoringService;
private Set<String> baseCapabilities;
+ private @NonNegative int maximumIncomingChunkSize =
+ AbstractNetconfSessionNegotiator.DEFAULT_MAXIMUM_INCOMING_CHUNK_SIZE;
public NetconfServerSessionNegotiatorFactoryBuilder() {
}
return this;
}
+ public NetconfServerSessionNegotiatorFactoryBuilder setMaximumIncomingChunkSize(
+ final @NonNegative int maximumIncomingChunkSize) {
+ checkArgument(maximumIncomingChunkSize > 0);
+ this.maximumIncomingChunkSize = maximumIncomingChunkSize;
+ return this;
+ }
public NetconfServerSessionNegotiatorFactory build() {
validate();
return new NetconfServerSessionNegotiatorFactory(timer, aggregatedOpService, idProvider,
- connectionTimeoutMillis, monitoringService, baseCapabilities);
+ connectionTimeoutMillis, monitoringService, baseCapabilities, maximumIncomingChunkSize);
}
-
private void validate() {
requireNonNull(timer, "timer not initialized");
requireNonNull(aggregatedOpService, "NetconfOperationServiceFactory not initialized");