List of usage examples for io.netty.channel.epoll EpollChannelOption TCP_MD5SIG
ChannelOption TCP_MD5SIG
To view the source code for io.netty.channel.epoll EpollChannelOption TCP_MD5SIG.
Click Source Link
From source file:org.opendaylight.protocol.bgp.rib.impl.BGPDispatcherImpl.java
License:Open Source License
protected Bootstrap createClientBootStrap(final Optional<KeyMapping> keys, final EventLoopGroup workerGroup) { final Bootstrap bootstrap = new Bootstrap(); if (Epoll.isAvailable()) { bootstrap.channel(EpollSocketChannel.class); bootstrap.option(EpollChannelOption.EPOLL_MODE, EpollMode.LEVEL_TRIGGERED); } else {//from w ww. j a v a2 s .c o m bootstrap.channel(NioSocketChannel.class); } if (keys.isPresent()) { if (Epoll.isAvailable()) { bootstrap.option(EpollChannelOption.TCP_MD5SIG, keys.get()); } else { throw new UnsupportedOperationException(Epoll.unavailabilityCause().getCause()); } } // Make sure we are doing round-robin processing bootstrap.option(ChannelOption.MAX_MESSAGES_PER_READ, 1); bootstrap.option(ChannelOption.SO_KEEPALIVE, Boolean.TRUE); bootstrap.option(ChannelOption.WRITE_BUFFER_HIGH_WATER_MARK, HIGH_WATER_MARK); bootstrap.option(ChannelOption.WRITE_BUFFER_LOW_WATER_MARK, LOW_WATER_MARK); if (bootstrap.group() == null) { bootstrap.group(workerGroup); } return bootstrap; }
From source file:org.opendaylight.protocol.bmp.impl.BmpDispatcherImpl.java
License:Open Source License
@Override public ChannelFuture createClient(final InetSocketAddress address, final BmpSessionListenerFactory slf, final Optional<KeyMapping> keys) { final Bootstrap b = new Bootstrap(); Preconditions.checkNotNull(address); if (Epoll.isAvailable()) { b.channel(EpollSocketChannel.class); } else {//w w w .j a va 2 s.c o m b.channel(NioSocketChannel.class); } if (keys.isPresent()) { if (Epoll.isAvailable()) { b.option(EpollChannelOption.TCP_MD5SIG, keys.get()); } else { throw new UnsupportedOperationException(Epoll.unavailabilityCause().getCause()); } } b.option(ChannelOption.SO_KEEPALIVE, true); b.option(ChannelOption.CONNECT_TIMEOUT_MILLIS, CONNECT_TIMEOUT); b.group(this.workerGroup); b.handler(new ChannelInitializer<AbstractChannel>() { @Override protected void initChannel(final AbstractChannel ch) throws Exception { ch.pipeline().addLast(BmpDispatcherImpl.this.hf.getDecoders()); ch.pipeline().addLast(BmpDispatcherImpl.this.sessionFactory.getSession(ch, slf)); } }); b.remoteAddress(address); final ChannelFuture channelPromise = b.connect(); channelPromise.addListener(new BmpDispatcherImpl.BootstrapListener(b, address)); return channelPromise; }
From source file:org.opendaylight.protocol.bmp.impl.BmpDispatcherImpl.java
License:Open Source License
@Override public ChannelFuture createServer(final InetSocketAddress address, final BmpSessionListenerFactory slf, final Optional<KeyMapping> keys) { Preconditions.checkNotNull(address); Preconditions.checkNotNull(slf);/* w w w. j a v a 2s. c om*/ final ServerBootstrap b = new ServerBootstrap(); b.childHandler(new ChannelInitializer<Channel>() { @Override protected void initChannel(final Channel ch) throws Exception { ch.pipeline().addLast(BmpDispatcherImpl.this.hf.getDecoders()); ch.pipeline().addLast(BmpDispatcherImpl.this.sessionFactory.getSession(ch, slf)); } }); b.option(ChannelOption.SO_BACKLOG, MAX_CONNECTIONS_COUNT); b.childOption(ChannelOption.ALLOCATOR, PooledByteBufAllocator.DEFAULT); if (Epoll.isAvailable()) { b.channel(EpollServerSocketChannel.class); } else { b.channel(NioServerSocketChannel.class); } if (keys.isPresent()) { if (Epoll.isAvailable()) { b.option(EpollChannelOption.TCP_MD5SIG, keys.get()); } else { throw new UnsupportedOperationException(Epoll.unavailabilityCause().getCause()); } } b.group(this.bossGroup, this.workerGroup); final ChannelFuture f = b.bind(address); LOG.debug("Initiated BMP server {} at {}.", f, address); return f; }
From source file:org.opendaylight.protocol.pcep.impl.PCEPDispatcherImpl.java
License:Open Source License
protected ServerBootstrap createServerBootstrap(final ChannelPipelineInitializer initializer) { final ServerBootstrap b = new ServerBootstrap(); b.childHandler(new ChannelInitializer<SocketChannel>() { @Override// w w w .j a v a 2s . c om protected void initChannel(final SocketChannel ch) { initializer.initializeChannel(ch, new DefaultPromise(PCEPDispatcherImpl.this.executor)); } }); b.option(ChannelOption.SO_BACKLOG, SOCKET_BACKLOG_SIZE); b.childOption(ChannelOption.ALLOCATOR, PooledByteBufAllocator.DEFAULT); if (Epoll.isAvailable()) { b.channel(EpollServerSocketChannel.class); b.childOption(EpollChannelOption.EPOLL_MODE, EpollMode.LEVEL_TRIGGERED); } else { b.channel(NioServerSocketChannel.class); } if (this.keys.isPresent()) { if (Epoll.isAvailable()) { b.option(EpollChannelOption.TCP_MD5SIG, this.keys.get()); } else { throw new UnsupportedOperationException(Epoll.unavailabilityCause().getCause()); } } // Make sure we are doing round-robin processing b.childOption(ChannelOption.MAX_MESSAGES_PER_READ, 1); if (b.group() == null) { b.group(this.bossGroup, this.workerGroup); } return b; }
From source file:org.opendaylight.protocol.pcep.pcc.mock.protocol.PCCDispatcherImpl.java
License:Open Source License
private void setChannelFactory(final Bootstrap bootstrap, final Optional<KeyMapping> keys) { if (Epoll.isAvailable()) { bootstrap.channel(EpollSocketChannel.class); bootstrap.option(EpollChannelOption.EPOLL_MODE, EpollMode.LEVEL_TRIGGERED); } else {/*from w w w.j ava 2s. c om*/ bootstrap.channel(NioSocketChannel.class); } if (keys.isPresent()) { if (Epoll.isAvailable()) { bootstrap.option(EpollChannelOption.TCP_MD5SIG, keys.get()); } else { throw new UnsupportedOperationException(Epoll.unavailabilityCause().getCause()); } } }
From source file:org.opendaylight.sxp.core.service.ConnectFacade.java
License:Open Source License
/** * Create new Connection to Peer/*w ww .j ava 2s . c o m*/ * * @param node SxpNode containing Security options * @param connection SxpConnection containing connection details * @param hf HandlerFactory providing handling of communication * @return ChannelFuture callback */ public static ChannelFuture createClient(SxpNode node, SxpConnection connection, final HandlerFactory hf) { if (!Epoll.isAvailable()) { throw new UnsupportedOperationException(Epoll.unavailabilityCause().getCause()); } Bootstrap bootstrap = new Bootstrap(); if (connection.getPassword() != null && !connection.getPassword().isEmpty()) { bootstrap.option(EpollChannelOption.TCP_MD5SIG, Collections.singletonMap(connection.getDestination().getAddress(), connection.getPassword().getBytes(StandardCharsets.US_ASCII))); } bootstrap.channel(EpollSocketChannel.class); bootstrap.option(ChannelOption.CONNECT_TIMEOUT_MILLIS, Configuration.NETTY_CONNECT_TIMEOUT_MILLIS); RecvByteBufAllocator recvByteBufAllocator = new FixedRecvByteBufAllocator( Configuration.getConstants().getMessageLengthMax()); bootstrap.option(ChannelOption.RCVBUF_ALLOCATOR, recvByteBufAllocator); bootstrap.option(ChannelOption.TCP_NODELAY, true); bootstrap.localAddress(node.getSourceIp().getHostAddress(), 0); bootstrap.group(eventLoopGroup); bootstrap.handler(new ChannelInitializer<SocketChannel>() { @Override protected void initChannel(SocketChannel ch) throws Exception { ch.pipeline().addLast(hf.getDecoders()); ch.pipeline().addLast(hf.getEncoders()); } }); return bootstrap.connect(connection.getDestination()); }
From source file:org.opendaylight.sxp.core.service.ConnectFacade.java
License:Open Source License
/** * Create new Node that listens to incoming connections * * @param node SxpNode containing options * @param hf HandlerFactory providing handling of communication * @return ChannelFuture callback/*from w w w. ja v a2s .com*/ */ public static ChannelFuture createServer(final SxpNode node, final HandlerFactory hf) { if (!Epoll.isAvailable()) { throw new UnsupportedOperationException(Epoll.unavailabilityCause().getCause()); } Map<InetAddress, byte[]> keyMapping = new HashMap<>(); ServerBootstrap bootstrap = new ServerBootstrap(); node.getDomains().forEach(d -> d.getConnectionTemplates().forEach(t -> { if (t.getTemplatePassword() != null && !t.getTemplatePassword().isEmpty()) { final byte[] password = t.getTemplatePassword().getBytes(StandardCharsets.US_ASCII); Search.expandPrefix(t.getTemplatePrefix()) .forEach(inetAddress -> keyMapping.put(inetAddress, password)); } })); Collections2.filter(node.getAllConnections(), CONNECTION_ENTRY_WITH_PASSWORD).forEach(p -> keyMapping .put(p.getDestination().getAddress(), p.getPassword().getBytes(StandardCharsets.US_ASCII))); keyMapping.remove(node.getSourceIp()); bootstrap.channel(EpollServerSocketChannel.class); bootstrap.option(EpollChannelOption.TCP_MD5SIG, keyMapping); bootstrap.group(eventLoopGroup); if (Configuration.NETTY_LOGGER_HANDLER) { bootstrap.handler(new LoggingHandler(LogLevel.INFO)); } bootstrap.childHandler(new ChannelInitializer<SocketChannel>() { @Override protected void initChannel(SocketChannel ch) throws Exception { ch.pipeline().addLast(hf.getDecoders()); ch.pipeline().addLast(hf.getEncoders()); } }); return bootstrap.bind(node.getSourceIp(), node.getServerPort()); }