import io.netty.channel.ChannelInitializer;
import io.netty.channel.ChannelOption;
import io.netty.channel.EventLoopGroup;
-import io.netty.channel.FixedRecvByteBufAllocator;
import io.netty.channel.WriteBufferWaterMark;
import io.netty.channel.epoll.Epoll;
import io.netty.channel.epoll.EpollChannelOption;
public class BGPDispatcherImpl implements BGPDispatcher, AutoCloseable {
private static final Logger LOG = LoggerFactory.getLogger(BGPDispatcherImpl.class);
private static final int SOCKET_BACKLOG_SIZE = 128;
- private static final int FIX_BUFFER_SIZE = 1;
private static final long TIMEOUT = 10;
private static final WriteBufferWaterMark WATER_MARK = new WriteBufferWaterMark(128 * 1024, 256 * 1024);
}
// Make sure we are doing round-robin processing
- bootstrap.option(ChannelOption.RCVBUF_ALLOCATOR, new FixedRecvByteBufAllocator(FIX_BUFFER_SIZE));
+ bootstrap.option(ChannelOption.RCVBUF_ALLOCATOR, BGPMessageHeaderDecoder.getRecvAllocator());
bootstrap.option(ChannelOption.SO_KEEPALIVE, Boolean.TRUE);
bootstrap.option(ChannelOption.WRITE_BUFFER_WATER_MARK, WATER_MARK);
bootstrap.option(ChannelOption.SO_REUSEADDR, reuseAddress);
serverBootstrap.childOption(ChannelOption.WRITE_BUFFER_WATER_MARK, WATER_MARK);
// Make sure we are doing round-robin processing
- serverBootstrap.option(ChannelOption.RCVBUF_ALLOCATOR, new FixedRecvByteBufAllocator(FIX_BUFFER_SIZE));
+ serverBootstrap.option(ChannelOption.RCVBUF_ALLOCATOR, BGPMessageHeaderDecoder.getRecvAllocator());
if (serverBootstrap.config().group() == null) {
serverBootstrap.group(this.bossGroup, this.workerGroup);
*/
package org.opendaylight.protocol.bgp.rib.impl;
+import io.netty.channel.FixedRecvByteBufAllocator;
import io.netty.handler.codec.LengthFieldBasedFrameDecoder;
/**
private static final int EXTENDED_MAX_FRAME_SIZE = 65535;
+ // Allocators
+ private static final FixedRecvByteBufAllocator RECV_ALLOCATOR = new FixedRecvByteBufAllocator(MAX_FRAME_SIZE);
+ private static final FixedRecvByteBufAllocator EXTENDED_RECV_ALLOCATOR =
+ new FixedRecvByteBufAllocator(EXTENDED_MAX_FRAME_SIZE);
+
/*
0 1 2 3
super(maxFrameSize, MARKER_SIZE, LENGTH_SIZE, -MARKER_SIZE - LENGTH_SIZE, 0);
}
+ static FixedRecvByteBufAllocator getRecvAllocator() {
+ return RECV_ALLOCATOR;
+ }
+
+ static FixedRecvByteBufAllocator getExtendedRecvAllocator() {
+ return EXTENDED_RECV_ALLOCATOR;
+ }
+
static BGPMessageHeaderDecoder getBGPMessageHeaderDecoder() {
return new BGPMessageHeaderDecoder(MAX_FRAME_SIZE);
}
static BGPMessageHeaderDecoder getExtendedBGPMessageHeaderDecoder() {
return new BGPMessageHeaderDecoder(EXTENDED_MAX_FRAME_SIZE);
}
-
-
}