X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=bgp%2Ftesttool%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fprotocol%2Fbgp%2Ftesttool%2FBGPSpeakerMock.java;h=fd5698cf0a8dad58e25b856b0258d4864e209a72;hb=e6d9fbf96737ba5d69a77ac79127b348d13d6a7a;hp=44b2c1313e009ea2feedd87702b3b73eef8fe4a8;hpb=8585c012ad3ee71854ecb2ee0e9bcc1f51bd296e;p=bgpcep.git diff --git a/bgp/testtool/src/test/java/org/opendaylight/protocol/bgp/testtool/BGPSpeakerMock.java b/bgp/testtool/src/test/java/org/opendaylight/protocol/bgp/testtool/BGPSpeakerMock.java index 44b2c1313e..fd5698cf0a 100644 --- a/bgp/testtool/src/test/java/org/opendaylight/protocol/bgp/testtool/BGPSpeakerMock.java +++ b/bgp/testtool/src/test/java/org/opendaylight/protocol/bgp/testtool/BGPSpeakerMock.java @@ -9,76 +9,55 @@ package org.opendaylight.protocol.bgp.testtool; import com.google.common.base.Preconditions; import io.netty.channel.nio.NioEventLoopGroup; -import io.netty.channel.socket.SocketChannel; import io.netty.util.concurrent.DefaultPromise; import io.netty.util.concurrent.GlobalEventExecutor; -import io.netty.util.concurrent.Promise; import java.net.InetSocketAddress; import java.util.HashMap; import java.util.Map; import org.opendaylight.protocol.bgp.parser.BGPDocumentedException; -import org.opendaylight.protocol.bgp.parser.BGPSessionListener; import org.opendaylight.protocol.bgp.parser.spi.pojo.ServiceLoaderBGPExtensionProviderContext; +import org.opendaylight.protocol.bgp.rib.impl.BGPDispatcherImpl; import org.opendaylight.protocol.bgp.rib.impl.BGPHandlerFactory; import org.opendaylight.protocol.bgp.rib.impl.BGPServerSessionNegotiatorFactory; import org.opendaylight.protocol.bgp.rib.impl.BGPSessionImpl; import org.opendaylight.protocol.bgp.rib.impl.BGPSessionProposalImpl; import org.opendaylight.protocol.bgp.rib.impl.spi.BGPPeerRegistry; import org.opendaylight.protocol.bgp.rib.impl.spi.BGPSessionPreferences; -import org.opendaylight.protocol.bgp.rib.impl.spi.BGPSessionValidator; -import org.opendaylight.protocol.bgp.rib.impl.spi.ReusableBGPPeer; -import org.opendaylight.protocol.framework.AbstractDispatcher; -import org.opendaylight.protocol.framework.ProtocolSession; -import org.opendaylight.protocol.framework.SessionListener; -import org.opendaylight.protocol.framework.SessionNegotiatorFactory; +import org.opendaylight.protocol.bgp.rib.spi.BGPSessionListener; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.AsNumber; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpAddress; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Address; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev131125.LinkstateAddressFamily; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev131125.LinkstateSubsequentAddressFamily; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev150210.LinkstateAddressFamily; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev150210.LinkstateSubsequentAddressFamily; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919.Open; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.AddressFamily; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.Ipv4AddressFamily; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.SubsequentAddressFamily; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.UnicastSubsequentAddressFamily; -import org.opendaylight.yangtools.yang.binding.Notification; -public class BGPSpeakerMock, L extends SessionListener> extends AbstractDispatcher { +public class BGPSpeakerMock { - private final SessionNegotiatorFactory negotiatorFactory; + private final BGPServerSessionNegotiatorFactory negotiatorFactory; private final BGPHandlerFactory factory; + private final BGPDispatcherImpl disp; + private final BGPPeerRegistry peerRegistry; + private final Map, Class> tables; - public BGPSpeakerMock(final SessionNegotiatorFactory negotiatorFactory, final BGPHandlerFactory factory, - final DefaultPromise defaultPromise) { - super(GlobalEventExecutor.INSTANCE, new NioEventLoopGroup(), new NioEventLoopGroup()); + private BGPSpeakerMock(final BGPServerSessionNegotiatorFactory negotiatorFactory, final BGPHandlerFactory factory, + final DefaultPromise defaultPromise) { + this.disp = new BGPDispatcherImpl(null, new NioEventLoopGroup(), new NioEventLoopGroup()); this.negotiatorFactory = Preconditions.checkNotNull(negotiatorFactory); this.factory = Preconditions.checkNotNull(factory); - } - public void createServer(final InetSocketAddress address) { - super.createServer(address, new PipelineInitializer() { + this.peerRegistry = new BGPPeerRegistry() { @Override - public void initializeChannel(final SocketChannel ch, final Promise promise) { - ch.pipeline().addLast(BGPSpeakerMock.this.factory.getDecoders()); - ch.pipeline().addLast("negotiator", - BGPSpeakerMock.this.negotiatorFactory.getSessionNegotiator(null, ch, promise)); - ch.pipeline().addLast(BGPSpeakerMock.this.factory.getEncoders()); + public void addPeer(final IpAddress ip, final BGPSessionListener peer, final BGPSessionPreferences prefs) { } - }); - } - public static void main(final String[] args) throws Exception { - final Map, Class> tables = new HashMap<>(); - tables.put(Ipv4AddressFamily.class, UnicastSubsequentAddressFamily.class); - tables.put(LinkstateAddressFamily.class, LinkstateSubsequentAddressFamily.class); - - final BGPPeerRegistry peerRegistry = new BGPPeerRegistry() { @Override - public void addPeer(final IpAddress ip, final ReusableBGPPeer peer, final BGPSessionPreferences prefs) {} - - @Override - public void removePeer(final IpAddress ip) {} + public void removePeer(final IpAddress ip) { + } @Override public boolean isPeerConfigured(final IpAddress ip) { @@ -86,30 +65,40 @@ public class BGPSpeakerMock, L extends SessionLi } @Override - public BGPSessionListener getPeer(final IpAddress ip, final Ipv4Address sourceId, final Ipv4Address remoteId) throws BGPDocumentedException { + public BGPSessionListener getPeer(final IpAddress ip, final Ipv4Address sourceId, final Ipv4Address remoteId, final Open open) throws BGPDocumentedException { return new SpeakerSessionListener(); } @Override public BGPSessionPreferences getPeerPreferences(final IpAddress ip) { - return new BGPSessionProposalImpl((short) 90, new AsNumber(72L), new Ipv4Address("127.0.0.2"), tables).getProposal(); + return new BGPSessionProposalImpl((short) 90, new AsNumber(72L), new Ipv4Address("127.0.0.2"), BGPSpeakerMock.this.tables, new AsNumber(72L)).getProposal(); } @Override public void close() throws Exception { } - }; - final SessionNegotiatorFactory snf = new BGPServerSessionNegotiatorFactory(new BGPSessionValidator() { @Override - public void validate(final Open openObj, final BGPSessionPreferences prefs) throws BGPDocumentedException { - // NOOP + public void removePeerSession(final IpAddress ip) { } - }, peerRegistry); + }; + + this.tables = new HashMap<>(); + this.tables.put(Ipv4AddressFamily.class, UnicastSubsequentAddressFamily.class); + this.tables.put(LinkstateAddressFamily.class, LinkstateSubsequentAddressFamily.class); + } + + public void main(final String[] args) { - final BGPSpeakerMock mock = new BGPSpeakerMock<>(snf, new BGPHandlerFactory(ServiceLoaderBGPExtensionProviderContext.getSingletonInstance().getMessageRegistry()), new DefaultPromise(GlobalEventExecutor.INSTANCE)); + final BGPServerSessionNegotiatorFactory snf = new BGPServerSessionNegotiatorFactory(this.peerRegistry); + + final BGPSpeakerMock mock = new BGPSpeakerMock(snf, new BGPHandlerFactory(ServiceLoaderBGPExtensionProviderContext.getSingletonInstance().getMessageRegistry()), new DefaultPromise(GlobalEventExecutor.INSTANCE)); mock.createServer(new InetSocketAddress("127.0.0.2", 12345)); } + + private void createServer(final InetSocketAddress address) { + this.disp.createServer(this.peerRegistry,address); + } }