BUG-3888 : refactoring, removed unused session validators 68/24768/2
authorDana Kutenicsova <dkutenic@cisco.com>
Tue, 4 Aug 2015 14:55:19 +0000 (16:55 +0200)
committerDana Kutenicsova <dkutenic@cisco.com>
Wed, 5 Aug 2015 07:13:02 +0000 (09:13 +0200)
Now that validate method was moved to PeerRegistry, the
validators are unusued, so remove them. Safely removed
also API methods, since they are within rib-impl package.

Change-Id: I7791321e910bc53c70a5b00544b8662929ba4d1e
Signed-off-by: Dana Kutenicsova <dkutenic@cisco.com>
16 files changed:
bgp/rib-impl/src/main/java/org/opendaylight/controller/config/yang/bgp/rib/impl/BGPPeerAcceptorModule.java
bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/AbstractBGPSessionNegotiator.java
bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/BGPClientSessionNegotiator.java
bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/BGPClientSessionNegotiatorFactory.java
bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/BGPClientSessionValidator.java [deleted file]
bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/BGPDispatcherImpl.java
bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/BGPServerSessionNegotiator.java
bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/BGPServerSessionNegotiatorFactory.java
bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/BGPServerSessionValidator.java [deleted file]
bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/spi/BGPDispatcher.java
bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/spi/BGPServerDispatcher.java
bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/spi/BGPSessionValidator.java [deleted file]
bgp/rib-impl/src/test/java/org/opendaylight/controller/config/yang/bgp/rib/impl/BGPPeerAcceptorModuleTest.java
bgp/rib-impl/src/test/java/org/opendaylight/protocol/bgp/rib/impl/BGPDispatcherImplTest.java
bgp/rib-impl/src/test/java/org/opendaylight/protocol/bgp/rib/impl/FSMTest.java
bgp/testtool/src/test/java/org/opendaylight/protocol/bgp/testtool/BGPSpeakerMock.java

index c223f7a588db2ef0e25f2f6131f584e2218909ea..a7491ee7011c091779c95e62b8b975403c473d0c 100644 (file)
@@ -11,7 +11,6 @@ import java.net.InetSocketAddress;
 import java.net.UnknownHostException;
 import java.security.AccessControlException;
 import org.opendaylight.controller.config.api.JmxAttributeValidationException;
-import org.opendaylight.protocol.bgp.rib.impl.BGPServerSessionValidator;
 
 /**
 * BGP peer acceptor that handles incoming bgp connections.
@@ -44,7 +43,7 @@ public class BGPPeerAcceptorModule extends org.opendaylight.controller.config.ya
 
     @Override
     public java.lang.AutoCloseable createInstance() {
-        final ChannelFuture future = getAcceptingBgpDispatcherDependency().createServer(getAcceptingPeerRegistryDependency(), getAddress(), new BGPServerSessionValidator());
+        final ChannelFuture future = getAcceptingBgpDispatcherDependency().createServer(getAcceptingPeerRegistryDependency(), getAddress());
 
         // Validate future success
         future.addListener(new GenericFutureListener<Future<Void>>() {
index ed91c55ae466d2f3c603ff19d005438d1f3af663..d1c5dd2aa27f58506f38aa6103d8a0b21bd68762 100644 (file)
@@ -18,11 +18,11 @@ import io.netty.channel.ChannelInboundHandlerAdapter;
 import io.netty.util.concurrent.Promise;
 import java.util.concurrent.TimeUnit;
 import javax.annotation.concurrent.GuardedBy;
+import org.opendaylight.protocol.bgp.parser.AsNumberUtil;
 import org.opendaylight.protocol.bgp.parser.BGPDocumentedException;
 import org.opendaylight.protocol.bgp.parser.BGPError;
 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.spi.BGPSessionListener;
 import org.opendaylight.protocol.bgp.rib.spi.SessionNegotiator;
 import org.opendaylight.protocol.util.Values;
@@ -75,7 +75,6 @@ public abstract class AbstractBGPSessionNegotiator extends ChannelInboundHandler
 
     private static final Logger LOG = LoggerFactory.getLogger(AbstractBGPSessionNegotiator.class);
     private final BGPPeerRegistry registry;
-    private final BGPSessionValidator sessionValidator;
     private final Promise<BGPSessionImpl> promise;
     private final Channel channel;
     @GuardedBy("this")
@@ -85,11 +84,10 @@ public abstract class AbstractBGPSessionNegotiator extends ChannelInboundHandler
     private BGPSessionImpl session;
 
     public AbstractBGPSessionNegotiator(final Promise<BGPSessionImpl> promise, final Channel channel,
-            final BGPPeerRegistry registry, final BGPSessionValidator sessionValidator) {
+            final BGPPeerRegistry registry) {
         this.promise = Preconditions.checkNotNull(promise);
         this.channel = Preconditions.checkNotNull(channel);
         this.registry = registry;
-        this.sessionValidator = sessionValidator;
     }
 
     private synchronized void startNegotiation() {
@@ -194,13 +192,6 @@ public abstract class AbstractBGPSessionNegotiator extends ChannelInboundHandler
     }
 
     private void handleOpen(final Open openObj) {
-        try {
-            this.sessionValidator.validate(openObj, getPreferences());
-        } catch (final BGPDocumentedException e) {
-            negotiationFailed(e);
-            return;
-        }
-
         try {
             final BGPSessionListener peer = this.registry.getPeer(getRemoteIp(), getSourceId(openObj, getPreferences()), getDestinationId(openObj, getPreferences()), getAsNumber(openObj, getPreferences()), openObj);
             sendMessage(new KeepaliveBuilder().build());
@@ -244,7 +235,9 @@ public abstract class AbstractBGPSessionNegotiator extends ChannelInboundHandler
      * @param preferences Local BGP speaker preferences
      * @return AS Number of device that initiate connection
      */
-    protected abstract AsNumber getAsNumber(final Open openMsg, final BGPSessionPreferences preferences);
+    protected AsNumber getAsNumber(final Open openMsg, final BGPSessionPreferences preferences) {
+        return AsNumberUtil.advertizedAsNumber(openMsg);
+    }
 
     public synchronized State getState() {
         return this.state;
index 423c7881d737d35a92075a15e4e5e7c9c255d7ac..625b93eabef036751e5db682916532624c0a4362 100644 (file)
@@ -9,11 +9,8 @@ package org.opendaylight.protocol.bgp.rib.impl;
 
 import io.netty.channel.Channel;
 import io.netty.util.concurrent.Promise;
-import org.opendaylight.protocol.bgp.parser.AsNumberUtil;
 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.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.Ipv4Address;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919.Open;
 
@@ -23,8 +20,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.mess
 public final class BGPClientSessionNegotiator extends AbstractBGPSessionNegotiator {
 
     public BGPClientSessionNegotiator(final Promise<BGPSessionImpl> promise, final Channel channel,
-            final BGPPeerRegistry registry, final BGPSessionValidator sessionValidator) {
-        super(promise, channel, registry, sessionValidator);
+            final BGPPeerRegistry registry) {
+        super(promise, channel, registry);
     }
 
     @Override
@@ -36,9 +33,4 @@ public final class BGPClientSessionNegotiator extends AbstractBGPSessionNegotiat
     protected Ipv4Address getSourceId(final Open openMsg, final BGPSessionPreferences preferences) {
         return openMsg.getBgpIdentifier();
     }
-
-    @Override
-    protected AsNumber getAsNumber(final Open openMsg, final BGPSessionPreferences preferences) {
-        return AsNumberUtil.advertizedAsNumber(openMsg);
-    }
 }
index 4b6736a177aceb8a6480e665ef55f96d06661785..9912068df8bfe58872bd47e03ee7656d602e1ab5 100644 (file)
@@ -15,16 +15,14 @@ import org.opendaylight.protocol.bgp.rib.spi.SessionNegotiator;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.AsNumber;
 
 public final class BGPClientSessionNegotiatorFactory implements BGPSessionNegotiatorFactory<BGPSessionImpl> {
-    private final BGPClientSessionValidator validator;
     private final BGPPeerRegistry peerRegistry;
 
     public BGPClientSessionNegotiatorFactory(final AsNumber remoteAs, final BGPPeerRegistry peerRegistry) {
         this.peerRegistry = peerRegistry;
-        this.validator = new BGPClientSessionValidator(remoteAs);
     }
 
     @Override
     public SessionNegotiator getSessionNegotiator(final Channel channel, final Promise<BGPSessionImpl> promise) {
-        return new BGPClientSessionNegotiator(promise, channel, peerRegistry, validator);
+        return new BGPClientSessionNegotiator(promise, channel, this.peerRegistry);
     }
 }
diff --git a/bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/BGPClientSessionValidator.java b/bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/BGPClientSessionValidator.java
deleted file mode 100644 (file)
index 0443e04..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.protocol.bgp.rib.impl;
-
-import com.google.common.base.Optional;
-import io.netty.buffer.ByteBuf;
-import io.netty.buffer.Unpooled;
-import java.util.List;
-import org.opendaylight.protocol.bgp.parser.AsNumberUtil;
-import org.opendaylight.protocol.bgp.parser.BGPDocumentedException;
-import org.opendaylight.protocol.bgp.parser.BGPError;
-import org.opendaylight.protocol.bgp.parser.impl.message.open.As4CapabilityHandler;
-import org.opendaylight.protocol.bgp.rib.impl.spi.BGPSessionPreferences;
-import org.opendaylight.protocol.bgp.rib.impl.spi.BGPSessionValidator;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.AsNumber;
-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.message.rev130919.open.message.BgpParameters;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919.open.message.bgp.parameters.OptionalCapabilities;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919.open.message.bgp.parameters.optional.capabilities.CParameters;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919.open.message.bgp.parameters.optional.capabilities.CParametersBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919.open.message.bgp.parameters.optional.capabilities.c.parameters.As4BytesCapability;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Validates Bgp sessions established from current device to remote.
- */
-public class BGPClientSessionValidator implements BGPSessionValidator {
-
-    private static final Logger LOG = LoggerFactory.getLogger(BGPClientSessionValidator.class);
-
-    private final AsNumber remoteAs;
-
-    public BGPClientSessionValidator(final AsNumber remoteAs) {
-        this.remoteAs = remoteAs;
-    }
-
-    /**
-     * Validates with exception:
-     * <ul>
-     * <li>correct remote AS attribute</li>
-     * <li>non empty BgpParameters collection</li>
-     * </ul>
-     *
-     * Validates with log message:
-     * <ul>
-     * <li>local BgpParameters are superset of remote BgpParameters</li>
-     * </ul>
-     */
-    @Override
-    public void validate(final Open openObj, final BGPSessionPreferences localPref) throws BGPDocumentedException {
-        final AsNumber as = AsNumberUtil.advertizedAsNumber(openObj);
-        if (!this.remoteAs.equals(as)) {
-            LOG.warn("Unexpected remote AS number. Expecting {}, got {}", this.remoteAs, as);
-            throw new BGPDocumentedException("Peer AS number mismatch", BGPError.BAD_PEER_AS);
-        }
-        //https://tools.ietf.org/html/rfc6286#section-2.2
-        if (openObj.getBgpIdentifier() != null &&  openObj.getBgpIdentifier().equals(localPref.getBgpId())) {
-            LOG.warn("Remote and local BGP Identifiers are the same: {}", openObj.getBgpIdentifier());
-            throw new BGPDocumentedException("Remote and local BGP Identifiers are the same.", BGPError.BAD_BGP_ID);
-        }
-
-        final List<BgpParameters> prefs = openObj.getBgpParameters();
-        if (prefs != null) {
-            if(getAs4BytesCapability(localPref.getParams()).isPresent() && !getAs4BytesCapability(prefs).isPresent()) {
-                throw new BGPDocumentedException("The peer must advertise AS4Bytes capability.", BGPError.UNSUPPORTED_CAPABILITY,
-                        serializeAs4BytesCapability(getAs4BytesCapability(localPref.getParams()).get()));
-            }
-            if (!prefs.containsAll(localPref.getParams())) {
-                LOG.info("BGP Open message session parameters differ, session still accepted.");
-            }
-        } else {
-            throw new BGPDocumentedException("Open message unacceptable. Check the configuration of BGP speaker.", BGPError.UNSPECIFIC_OPEN_ERROR);
-        }
-    }
-
-    private static Optional<As4BytesCapability> getAs4BytesCapability(final List<BgpParameters> prefs) {
-        for(final BgpParameters param : prefs) {
-            for (final OptionalCapabilities capa : param.getOptionalCapabilities()) {
-                final CParameters cParam = capa.getCParameters();
-                if(cParam.getAs4BytesCapability() !=null) {
-                    return Optional.of(cParam.getAs4BytesCapability());
-                }
-            }
-        }
-        return Optional.absent();
-    }
-
-    private static byte[] serializeAs4BytesCapability(final As4BytesCapability as4Capability) {
-        final ByteBuf buffer = Unpooled.buffer(1 /*CODE*/ + 1 /*LENGTH*/ + Integer.SIZE / Byte.SIZE /*4 byte value*/);
-        final As4CapabilityHandler serializer = new As4CapabilityHandler();
-        serializer.serializeCapability(new CParametersBuilder().setAs4BytesCapability(as4Capability).build(), buffer);
-        return buffer.array();
-    }
-}
index a7313ee941c1c3da63c26a65a67b779fe4d06543..34bf54f201be414f682b63f731d4ff0141cfcc7e 100644 (file)
@@ -30,7 +30,6 @@ import org.opendaylight.protocol.bgp.rib.impl.protocol.BGPProtocolSessionPromise
 import org.opendaylight.protocol.bgp.rib.impl.protocol.BGPReconnectPromise;
 import org.opendaylight.protocol.bgp.rib.impl.spi.BGPDispatcher;
 import org.opendaylight.protocol.bgp.rib.impl.spi.BGPPeerRegistry;
-import org.opendaylight.protocol.bgp.rib.impl.spi.BGPSessionValidator;
 import org.opendaylight.protocol.bgp.rib.impl.spi.ChannelPipelineInitializer;
 import org.opendaylight.protocol.bgp.rib.spi.BGPSession;
 import org.opendaylight.protocol.bgp.rib.spi.BGPSessionNegotiatorFactory;
@@ -120,8 +119,8 @@ public class BGPDispatcherImpl implements BGPDispatcher, AutoCloseable {
     }
 
     @Override
-    public ChannelFuture createServer(final BGPPeerRegistry registry, final InetSocketAddress address, final BGPSessionValidator sessionValidator) {
-        final BGPServerSessionNegotiatorFactory snf = new BGPServerSessionNegotiatorFactory(sessionValidator, registry);
+    public ChannelFuture createServer(final BGPPeerRegistry registry, final InetSocketAddress address) {
+        final BGPServerSessionNegotiatorFactory snf = new BGPServerSessionNegotiatorFactory(registry);
         final ChannelPipelineInitializer initializer = BGPChannel.createChannelPipelineInitializer
             (BGPDispatcherImpl.this.hf.getDecoders(), snf, BGPDispatcherImpl.this.hf.getEncoders());
         final ServerBootstrap b = new ServerBootstrap();
index 327d62ab70d6a9fc591664485db89d1a095f2271..e72f982270693e6e06a17efbf5291dde60a16558 100644 (file)
@@ -10,11 +10,8 @@ package org.opendaylight.protocol.bgp.rib.impl;
 
 import io.netty.channel.Channel;
 import io.netty.util.concurrent.Promise;
-import org.opendaylight.protocol.bgp.parser.AsNumberUtil;
 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.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.Ipv4Address;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919.Open;
 
@@ -24,8 +21,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.mess
 public final class BGPServerSessionNegotiator extends AbstractBGPSessionNegotiator {
 
     public BGPServerSessionNegotiator(final Promise<BGPSessionImpl> promise, final Channel channel,
-            final BGPPeerRegistry registry, final BGPSessionValidator sessionValidator) {
-        super(promise, channel, registry, sessionValidator);
+            final BGPPeerRegistry registry) {
+        super(promise, channel, registry);
     }
 
     @Override
@@ -37,9 +34,4 @@ public final class BGPServerSessionNegotiator extends AbstractBGPSessionNegotiat
     protected Ipv4Address getDestinationId(final Open openMsg, final BGPSessionPreferences preferences) {
         return openMsg.getBgpIdentifier();
     }
-
-    @Override
-    protected AsNumber getAsNumber(final Open openMsg, final BGPSessionPreferences preferences) {
-        return AsNumberUtil.advertizedAsNumber(openMsg);
-    }
 }
index 8726a797bada63c408e4f699a3f7b42f2e1f8810..86b0f0fb82f234bf57df9fb9f10645efbe4b44a7 100644 (file)
@@ -7,25 +7,21 @@
  */
 package org.opendaylight.protocol.bgp.rib.impl;
 
-import com.google.common.base.Preconditions;
 import io.netty.channel.Channel;
 import io.netty.util.concurrent.Promise;
 import org.opendaylight.protocol.bgp.rib.impl.spi.BGPPeerRegistry;
-import org.opendaylight.protocol.bgp.rib.impl.spi.BGPSessionValidator;
 import org.opendaylight.protocol.bgp.rib.spi.BGPSessionNegotiatorFactory;
 import org.opendaylight.protocol.bgp.rib.spi.SessionNegotiator;
 
 public final class BGPServerSessionNegotiatorFactory implements BGPSessionNegotiatorFactory<BGPSessionImpl> {
-    private final BGPSessionValidator validator;
     private final BGPPeerRegistry registry;
 
-    public BGPServerSessionNegotiatorFactory(final BGPSessionValidator sessionValidator, final BGPPeerRegistry registry) {
+    public BGPServerSessionNegotiatorFactory(final BGPPeerRegistry registry) {
         this.registry = registry;
-        this.validator = Preconditions.checkNotNull(sessionValidator);
     }
 
     @Override
     public SessionNegotiator getSessionNegotiator(final Channel channel, final Promise<BGPSessionImpl> promise) {
-        return new BGPServerSessionNegotiator(promise, channel, registry, validator);
+        return new BGPServerSessionNegotiator(promise, channel, this.registry);
     }
 }
diff --git a/bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/BGPServerSessionValidator.java b/bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/BGPServerSessionValidator.java
deleted file mode 100644 (file)
index 76f8da7..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.protocol.bgp.rib.impl;
-
-import org.opendaylight.protocol.bgp.parser.BGPDocumentedException;
-import org.opendaylight.protocol.bgp.rib.impl.spi.BGPSessionPreferences;
-import org.opendaylight.protocol.bgp.rib.impl.spi.BGPSessionValidator;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919.Open;
-
-/**
- * Validates Bgp sessions established from remote devices.
- */
-public final class BGPServerSessionValidator implements BGPSessionValidator {
-
-    @Override
-    public void validate(final Open openObj, final BGPSessionPreferences localPref) throws BGPDocumentedException {
-        // No validation performed, org.opendaylight.protocol.bgp.rib.impl.AbstractBGPSessionNegotiator checks if peer is configured
-    }
-}
index 91a43fb1d1d1ec58f2d48dce26474435fb4a61a0..5579dffce88aa92a88290aa2ff972f33b1da0bc4 100644 (file)
@@ -51,9 +51,8 @@ public interface BGPDispatcher{
      *
      * @param peerRegistry BGP peer registry
      * @param address Peer address
-     * @param sessionValidator BGPSessionValidator
      *
      * @return ChannelFuture promising a client session
      */
-    ChannelFuture createServer(BGPPeerRegistry peerRegistry, InetSocketAddress address, BGPSessionValidator sessionValidator);
+    ChannelFuture createServer(BGPPeerRegistry peerRegistry, InetSocketAddress address);
 }
index 80e01c2d8f2d4c302b61fc84ab96f6ee40b2e45e..c2977140aaaca6226958a1455ed6b4c5afe18fb2 100644 (file)
@@ -21,19 +21,17 @@ public interface BGPServerDispatcher {
      *
      * @param peerRegistry BGP peer registry
      * @param address server address
-     * @param sessionValidator BGPSessionValidator
      * @return ChannelFuture promising a server session
      */
-    ChannelFuture createServer(BGPPeerRegistry peerRegistry, InetSocketAddress address, BGPSessionValidator sessionValidator);
+    ChannelFuture createServer(BGPPeerRegistry peerRegistry, InetSocketAddress address);
 
     /**
      * Create new BGP server to accept incoming bgp connections (bound to provided socket address).
      *
      * @param peerRegistry BGP peer registry
      * @param address server address
-     * @param sessionValidator BGPSessionValidator
      * @param keys KeyMapping
      * @return ChannelFuture promising a server session
      */
-    ChannelFuture createServer(BGPPeerRegistry peerRegistry, InetSocketAddress address, BGPSessionValidator sessionValidator, KeyMapping keys);
+    ChannelFuture createServer(BGPPeerRegistry peerRegistry, InetSocketAddress address, KeyMapping keys);
 }
diff --git a/bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/spi/BGPSessionValidator.java b/bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/spi/BGPSessionValidator.java
deleted file mode 100644 (file)
index a55d854..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.protocol.bgp.rib.impl.spi;
-
-import org.opendaylight.protocol.bgp.parser.BGPDocumentedException;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919.Open;
-
-/**
- * BGP Session validator. Validates established sessions with bgp peers after OPEN message is received
- */
-public interface BGPSessionValidator {
-
-    void validate(final Open openObj, final BGPSessionPreferences localPref) throws BGPDocumentedException;
-}
index a6fe83a93dacebc83c9709635094cde759b23763..05f45610e676df52f4f444b0f17d5dc7cea1d1c3 100644 (file)
@@ -43,7 +43,6 @@ import org.opendaylight.controller.config.yang.bgp.parser.spi.SimpleBGPExtension
 import org.opendaylight.controller.config.yang.netty.threadgroup.NettyThreadgroupModuleFactory;
 import org.opendaylight.protocol.bgp.rib.impl.spi.BGPDispatcher;
 import org.opendaylight.protocol.bgp.rib.impl.spi.BGPPeerRegistry;
-import org.opendaylight.protocol.bgp.rib.impl.spi.BGPSessionValidator;
 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.PortNumber;
 
@@ -74,8 +73,8 @@ public class BGPPeerAcceptorModuleTest extends AbstractConfigTest {
             final CommitStatus status = createRegistryInstance(Optional.<String>absent(), Optional.<Integer>absent(), true, true);
             assertBeanCount(1, FACTORY_NAME);
             assertStatus(status, 3, 0, 0);
-            verify(dispatcher).createServer(any(BGPPeerRegistry.class), any(InetSocketAddress.class), any(BGPSessionValidator.class));
-        } catch (ValidationException e) {
+            verify(dispatcher).createServer(any(BGPPeerRegistry.class), any(InetSocketAddress.class));
+        } catch (final ValidationException e) {
             if(!PlatformDependent.isWindows() && !PlatformDependent.isRoot()) {
                 Assert.assertTrue(e.getMessage().contains("Unable to bind port"));
             } else {
@@ -89,7 +88,7 @@ public class BGPPeerAcceptorModuleTest extends AbstractConfigTest {
         final CommitStatus status = createRegistryInstance(Optional.of("127.0.0.1"), Optional.of(1790), true, true);
         assertBeanCount(1, FACTORY_NAME);
         assertStatus(status, 3, 0, 0);
-        verify(dispatcher).createServer(any(BGPPeerRegistry.class), any(InetSocketAddress.class), any(BGPSessionValidator.class));
+        verify(dispatcher).createServer(any(BGPPeerRegistry.class), any(InetSocketAddress.class));
     }
 
     private CommitStatus createRegistryInstance(final Optional<String> address, final Optional<Integer> port, final boolean addRegistry, final boolean addDispatcher ) throws InstanceAlreadyExistsException, ValidationException, ConflictingVersionException {
@@ -135,7 +134,7 @@ public class BGPPeerAcceptorModuleTest extends AbstractConfigTest {
         doReturn(mock(ChannelFuture.class)).when(channel).close();
         doReturn(channel).when(future).channel();
         doReturn(mock(ChannelFuture.class)).when(future).addListener(any(GenericFutureListener.class));
-        doReturn(future).when(dispatcher).createServer(any(BGPPeerRegistry.class), any(InetSocketAddress.class), any(BGPSessionValidator.class));
+        doReturn(future).when(dispatcher).createServer(any(BGPPeerRegistry.class), any(InetSocketAddress.class));
         doNothing().when(dispatcher).close();
     }
 
index 5f2671e651d5d53963599c10194581001373b8b0..3b213ca540005c28d6911d709760317256e8626b 100644 (file)
@@ -78,7 +78,7 @@ public class BGPDispatcherImplTest {
         this.clientDispatcher = new TestClientDispatcher(group, group, ServiceLoaderBGPExtensionProviderContext.getSingletonInstance().getMessageRegistry(),
                 CLIENT_ADDRESS);
 
-        final ChannelFuture future = this.dispatcher.createServer(this.registry, ADDRESS, new BGPServerSessionValidator());
+        final ChannelFuture future = this.dispatcher.createServer(this.registry, ADDRESS);
         future.addListener(new GenericFutureListener<Future<Void>>() {
             @Override
             public void operationComplete(final Future<Void> future) {
@@ -113,7 +113,7 @@ public class BGPDispatcherImplTest {
         this.registry.addPeer(new IpAddress(new Ipv4Address(CLIENT_ADDRESS2.getAddress().getHostAddress())), listener, createPreferences(CLIENT_ADDRESS2));
         final Future<Void> cf = this.clientDispatcher.createReconnectingClient(CLIENT_ADDRESS2, AS_NUMBER, this.registry,
                 new ReconnectStrategyFctImpl(), Optional.<InetSocketAddress>absent());
-        final Channel channel2 = this.dispatcher.createServer(this.registry, CLIENT_ADDRESS2, new BGPServerSessionValidator()).channel();
+        final Channel channel2 = this.dispatcher.createServer(this.registry, CLIENT_ADDRESS2).channel();
         Thread.sleep(1000);
         Assert.assertTrue(listener.up);
         Assert.assertTrue(channel2.isActive());
index cb17767ab9cdc280f703b9398ae043d4fdc9aa3f..1ce90a132bfe8092b681dcd013bacf75685bbd47 100644 (file)
@@ -115,7 +115,7 @@ public class FSMTest {
         final BGPPeerRegistry peerRegistry = new StrictBGPPeerRegistry();
         peerRegistry.addPeer(new IpAddress(new Ipv4Address(peerAddress.getHostAddress())), new SimpleSessionListener(), prefs);
 
-        this.clientSession = new BGPClientSessionNegotiator(new DefaultPromise<BGPSessionImpl>(GlobalEventExecutor.INSTANCE), this.speakerListener, peerRegistry, new BGPClientSessionValidator(new AsNumber(30L)));
+        this.clientSession = new BGPClientSessionNegotiator(new DefaultPromise<BGPSessionImpl>(GlobalEventExecutor.INSTANCE), this.speakerListener, peerRegistry);
         doAnswer(new Answer<Object>() {
             @Override
             public Object answer(final InvocationOnMock invocation) {
@@ -139,7 +139,7 @@ public class FSMTest {
 
     @Test
     public void testDenyPeer() {
-        this.clientSession = new BGPClientSessionNegotiator(new DefaultPromise<BGPSessionImpl>(GlobalEventExecutor.INSTANCE), this.speakerListener, new StrictBGPPeerRegistry(), new BGPClientSessionValidator(new AsNumber(30L)));
+        this.clientSession = new BGPClientSessionNegotiator(new DefaultPromise<BGPSessionImpl>(GlobalEventExecutor.INSTANCE), this.speakerListener, new StrictBGPPeerRegistry());
         this.clientSession.channelActive(null);
         assertEquals(1, this.receivedMsgs.size());
         assertTrue(this.receivedMsgs.get(0) instanceof Notify);
@@ -164,7 +164,7 @@ public class FSMTest {
         this.clientSession.channelActive(null);
         assertEquals(1, this.receivedMsgs.size());
         assertTrue(this.receivedMsgs.get(0) instanceof Open);
-        this.clientSession.handleMessage(new OpenBuilder().setMyAsNumber(30).setHoldTimer(1).setVersion(new ProtocolVersion((short) 4)).build());
+        this.clientSession.handleMessage(new OpenBuilder().setMyAsNumber(30).setHoldTimer(1).setBgpIdentifier(new Ipv4Address("127.0.0.1")).setVersion(new ProtocolVersion((short) 4)).build());
         assertEquals(2, this.receivedMsgs.size());
         assertTrue(this.receivedMsgs.get(1) instanceof Notify);
         final Notification m = this.receivedMsgs.get(this.receivedMsgs.size() - 1);
index 3144f896e1cb177834a5cb9cb5181b2e0b2a0f71..f12ac4f751209fa6a1ba4ccbd00bf26d811ac850 100644 (file)
@@ -23,7 +23,6 @@ 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.bgp.rib.spi.BGPSessionListener;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.AsNumber;
@@ -93,12 +92,7 @@ public class BGPSpeakerMock {
 
     public void main(final String[] args) {
 
-        final BGPServerSessionNegotiatorFactory snf = new BGPServerSessionNegotiatorFactory(new BGPSessionValidator() {
-            @Override
-            public void validate(final Open openObj, final BGPSessionPreferences prefs) throws BGPDocumentedException {
-                // NOOP
-            }
-        }, this.peerRegistry);
+        final BGPServerSessionNegotiatorFactory snf = new BGPServerSessionNegotiatorFactory(this.peerRegistry);
 
         final BGPSpeakerMock mock = new BGPSpeakerMock(snf, new BGPHandlerFactory(ServiceLoaderBGPExtensionProviderContext.getSingletonInstance().getMessageRegistry()), new DefaultPromise<BGPSessionImpl>(GlobalEventExecutor.INSTANCE));
 
@@ -106,11 +100,6 @@ public class BGPSpeakerMock {
     }
 
     private void createServer(final InetSocketAddress address) {
-        this.disp.createServer(this.peerRegistry,address, new BGPSessionValidator() {
-            @Override
-            public void validate(final Open openObj, final BGPSessionPreferences prefs) throws BGPDocumentedException {
-                // NOOP
-            }
-        });
+        this.disp.createServer(this.peerRegistry,address);
     }
 }