BUG-50 : added test for Open Message. 56/2356/1
authorDana Kutenicsova <dkutenic@cisco.com>
Mon, 4 Nov 2013 12:37:57 +0000 (13:37 +0100)
committerDana Kutenicsova <dkutenic@cisco.com>
Mon, 4 Nov 2013 12:37:57 +0000 (13:37 +0100)
Change-Id: I77f9eb2b67e3674292f8821aa67fa421e17ffbb4
Signed-off-by: Dana Kutenicsova <dkutenic@cisco.com>
26 files changed:
pcep/api/src/main/java/org/opendaylight/protocol/pcep/PCEPSession.java
pcep/api/src/main/java/org/opendaylight/protocol/pcep/PCEPSessionProposalFactory.java
pcep/api/src/main/yang/pcep-types.yang
pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/AbstractPCEPSessionNegotiator.java
pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/Activator.java
pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/DefaultPCEPSessionNegotiator.java
pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/DefaultPCEPSessionNegotiatorFactory.java
pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/PCEPSessionImpl.java
pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/PCEPSessionProposalFactoryImpl.java
pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/Util.java
pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/PCEPErrorMessageParser.java
pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/message/PCEPOpenMessageParser.java
pcep/impl/src/main/java/org/opendaylight/protocol/pcep/impl/object/PCEPOpenObjectParser.java
pcep/impl/src/test/java/org/opendaylight/protocol/pcep/impl/MockPCE.java
pcep/impl/src/test/java/org/opendaylight/protocol/pcep/impl/PCEPObjectParserTest.java
pcep/impl/src/test/java/org/opendaylight/protocol/pcep/impl/PCEPValidatorTest.java
pcep/impl/src/test/java/org/opendaylight/protocol/pcep/impl/ServerSessionMock.java
pcep/impl/src/test/resources/Open.1.pbin [deleted file]
pcep/impl/src/test/resources/Open.3.bin [deleted file]
pcep/impl/src/test/resources/Open.invalid.bin [deleted file]
pcep/impl/src/test/resources/PCEPOpenMessage1.bin
pcep/testtool/src/main/java/org/opendaylight/protocol/pcep/testtool/Main.java
pcep/testtool/src/test/java/org/opendaylight/protocol/pcep/testtool/PCCMock.java
pcep/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/BundleActivator.java
pcep/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/ServerSessionManager.java
programming/topology-api/.project [new file with mode: 0644]

index 9ff465432e341319643da828174c21223ed034df..dea2496c7638ebe741e8639a95e997a0c983da3f 100644 (file)
@@ -12,7 +12,7 @@ import java.util.concurrent.Future;
 
 import org.opendaylight.protocol.framework.ProtocolSession;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.Message;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.Tlvs;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.open.Tlvs;
 
 /**
  * PCEP Session represents the finite state machine in PCEP, including timers and its purpose is to create a PCEP
@@ -26,7 +26,7 @@ public interface PCEPSession extends ProtocolSession<Message> {
         * Sends message from user to PCE/PCC. If the user sends an Open Message, the session returns an error (open message
         * is only allowed, when a PCEP handshake is in progress). Close message will close the session and free all the
         * resources.
-        *
+        * 
         * @param message message to be sent
         * @return Future promise which will be succeed when the message is enqueued in the socket.
         */
index 1dcf570c8992178dfea7c3df4e6b02e0aea4cc87..cadcc3abc22037bb30ed2cad83f94a2ecfd54c85 100644 (file)
@@ -9,7 +9,7 @@ package org.opendaylight.protocol.pcep;
 
 import java.net.InetSocketAddress;
 
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.OpenObject;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.Open;
 
 /**
  * Factory for generating PCEP Session proposals. Used by a server.
@@ -24,5 +24,5 @@ public interface PCEPSessionProposalFactory {
         * @param sessionId is used for creation of PCEPOpenObject
         * @return specific session proposal
         */
-       public OpenObject getSessionProposal(InetSocketAddress address, int sessionId);
+       public Open getSessionProposal(InetSocketAddress address, int sessionId);
 }
index cb6380c79e969cfe6cf1e5629e9faa812ac14350..2fe8cc1a95decb64da12a418f318463193f61d56 100644 (file)
@@ -351,40 +351,42 @@ module pcep-types {
                description "OPEN Object";
                reference "https://tools.ietf.org/html/rfc5440#section-7.3";
 
-               uses object;
-               container "tlvs" {
-                       uses of-list-tlv;
-                       
-                       uses stateful-capability-tlv;
-
-                       uses predundancy-group-id-tlv;
-
-                       uses lsp-db-version-tlv;
-               }
-
-               leaf version {
-                       type protocol-version;
-                       default 1;
-               }
-
-               leaf keepalive {
-                       // Note: non-presence is equal to '0'
-                       type uint8 {
-                               range 1..255;
+               container open {
+                       uses object;
+                       container "tlvs" {
+                               uses of-list-tlv;
+                               
+                               uses stateful-capability-tlv;
+       
+                               uses predundancy-group-id-tlv;
+       
+                               uses lsp-db-version-tlv;
                        }
-                       mandatory true;
-               }
-
-               leaf dead-timer {
-                       // Note: non-presence is equal to '0'
-                       type uint8 {
-                               range 1..255;
+       
+                       leaf version {
+                               type protocol-version;
+                               default 1;
+                       }
+       
+                       leaf keepalive {
+                               // Note: non-presence is equal to '0'
+                               type uint8 {
+                                       range 1..255;
+                               }
+                               mandatory true;
+                       }
+       
+                       leaf dead-timer {
+                               // Note: non-presence is equal to '0'
+                               type uint8 {
+                                       range 1..255;
+                               }
+                               mandatory true;
+                       }
+       
+                       leaf session-id {
+                               type uint8;
                        }
-                       mandatory true;
-               }
-
-               leaf session-id {
-                       type uint8;
                }
        }
 
@@ -959,9 +961,7 @@ module pcep-types {
 
                        uses message-header;
 
-                       container open {
-                               uses open-object;
-                       }
+                       uses open-object;
                }
        }
 
@@ -1170,9 +1170,7 @@ module pcep-types {
                                }
 
                                case session {
-                                       container open {
-                                               uses open-object;
-                                       }
+                                       uses open-object;
                                }
 
                                case stateful {
index d3c725e130227fd54ed1075734089fb991390578..96abf428ffacd88f14264a2d899b119809e3350e 100644 (file)
@@ -20,14 +20,14 @@ import javax.annotation.concurrent.GuardedBy;
 
 import org.opendaylight.protocol.framework.AbstractSessionNegotiator;
 import org.opendaylight.protocol.pcep.PCEPErrors;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcerr.message.pcerr.message.error.type.Session;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.KeepaliveMessage;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.Message;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.OpenMessage;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.OpenObject;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.PcerrMessage;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.keepalive.message.KeepaliveMessageBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.message.OpenMessageBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.Open;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcerr.message.pcerr.message.error.type.Session;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -80,10 +80,10 @@ public abstract class AbstractPCEPSessionNegotiator extends AbstractSessionNegot
        private Timeout failTimer;
 
        @GuardedBy("this")
-       private OpenObject localPrefs;
+       private Open localPrefs;
 
        @GuardedBy("this")
-       private OpenObject remotePrefs;
+       private Open remotePrefs;
 
        private volatile boolean localOK, openRetry, remoteOK;
 
@@ -97,7 +97,7 @@ public abstract class AbstractPCEPSessionNegotiator extends AbstractSessionNegot
         * 
         * @return Session parameters proposal.
         */
-       protected abstract OpenObject getInitialProposal();
+       protected abstract Open getInitialProposal();
 
        /**
         * Get the revised session parameters proposal based on the feedback the peer has provided to us.
@@ -105,7 +105,7 @@ public abstract class AbstractPCEPSessionNegotiator extends AbstractSessionNegot
         * @param suggestion Peer-provided suggested session parameters
         * @return Session parameters proposal.
         */
-       protected abstract OpenObject getRevisedProposal(OpenObject suggestion);
+       protected abstract Open getRevisedProposal(Open suggestion);
 
        /**
         * Check whether a peer-provided session parameters proposal is acceptable.
@@ -113,7 +113,7 @@ public abstract class AbstractPCEPSessionNegotiator extends AbstractSessionNegot
         * @param proposal peer-proposed session parameters
         * @return true if the proposal is acceptable, false otherwise
         */
-       protected abstract boolean isProposalAcceptable(OpenObject proposal);
+       protected abstract boolean isProposalAcceptable(Open proposal);
 
        /**
         * Given a peer-provided session parameters proposal which we found unacceptable, provide a counter-proposal. The
@@ -122,7 +122,7 @@ public abstract class AbstractPCEPSessionNegotiator extends AbstractSessionNegot
         * @param proposal unacceptable peer proposal
         * @return our counter-proposal, or null if there is no way to negotiate an acceptable proposal
         */
-       protected abstract OpenObject getCounterProposal(OpenObject proposal);
+       protected abstract Open getCounterProposal(Open proposal);
 
        /**
         * Create the protocol session.
@@ -134,7 +134,7 @@ public abstract class AbstractPCEPSessionNegotiator extends AbstractSessionNegot
         * @param remotePrefs Session preferences proposed by the peer and accepted by us.
         * @return New protocol session.
         */
-       protected abstract PCEPSessionImpl createSession(Timer timer, Channel channel, OpenObject localPrefs, OpenObject remotePrefs);
+       protected abstract PCEPSessionImpl createSession(Timer timer, Channel channel, Open localPrefs, Open remotePrefs);
 
        /**
         * Sends PCEP Error Message with one PCEPError.
@@ -182,8 +182,7 @@ public abstract class AbstractPCEPSessionNegotiator extends AbstractSessionNegot
                Preconditions.checkState(this.state == State.Idle);
                this.localPrefs = getInitialProposal();
                final OpenMessage m = new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.message.rev131007.OpenBuilder().setOpenMessage(
-                               new OpenMessageBuilder().setOpen(
-                                               (org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.message.open.message.Open) this.localPrefs).build()).build();
+                               new OpenMessageBuilder().setOpen(this.localPrefs).build()).build();
                this.channel.writeAndFlush(m);
                this.state = State.OpenWait;
                scheduleFailTimer();
@@ -216,7 +215,7 @@ public abstract class AbstractPCEPSessionNegotiator extends AbstractSessionNegot
                                return;
                        } else if (msg instanceof PcerrMessage) {
                                final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcerr.message.PcerrMessage err = ((PcerrMessage) msg).getPcerrMessage();
-                               this.localPrefs = getRevisedProposal((OpenObject) ((Session) err.getErrorType()).getOpen());
+                               this.localPrefs = getRevisedProposal(((Session) err.getErrorType()).getOpen());
                                if (this.localPrefs == null) {
                                        sendErrorMessage(PCEPErrors.PCERR_NON_ACC_SESSION_CHAR);
                                        negotiationFailed(new RuntimeException("Peer suggested unacceptable retry proposal"));
@@ -235,7 +234,7 @@ public abstract class AbstractPCEPSessionNegotiator extends AbstractSessionNegot
                case OpenWait:
                        if (msg instanceof OpenMessage) {
                                final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.message.OpenMessage o = ((OpenMessage) msg).getOpenMessage();
-                               final OpenObject open = o.getOpen();
+                               final Open open = o.getOpen();
                                if (isProposalAcceptable(open)) {
                                        this.channel.writeAndFlush(new KeepaliveMessageBuilder().build());
                                        this.remotePrefs = open;
@@ -258,7 +257,7 @@ public abstract class AbstractPCEPSessionNegotiator extends AbstractSessionNegot
                                        return;
                                }
 
-                               final OpenObject newPrefs = getCounterProposal(open);
+                               final Open newPrefs = getCounterProposal(open);
                                if (newPrefs == null) {
                                        sendErrorMessage(PCEPErrors.NON_ACC_NON_NEG_SESSION_CHAR);
                                        negotiationFailed(new RuntimeException("Peer sent unacceptable session parameters"));
index 7667880b7076f6629e5deb1194faf51f422d1b01..e986664b1bf15d52a9a082bf1016ff2c5345f691 100644 (file)
@@ -96,7 +96,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.typ
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.NotificationObject;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.OfObject;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.OpenMessage;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.OpenObject;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.PathKeyObject;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.PcepErrorObject;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.PcerrMessage;
@@ -116,6 +115,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.typ
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.lsp.error.code.tlv.LspErrorCode;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.lsp.identifiers.tlv.LspIdentifiers;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.of.list.tlv.OfList;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.Open;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.order.tlv.Order;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.overload.duration.tlv.OverloadDuration;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcrep.message.pcrep.message.replies.result.failure.no.path.tlvs.NoPathVector;
@@ -275,7 +275,7 @@ public final class Activator implements PCEPExtensionProviderActivator {
                context.registerObjectParser(PCEPExcludeRouteObjectParser.CLASS, PCEPExcludeRouteObjectParser.TYPE,
                                new PCEPExcludeRouteObjectParser(xroSubReg));
 
-               context.registerObjectSerializer(OpenObject.class, new PCEPOpenObjectParser(tlvReg));
+               context.registerObjectSerializer(Open.class, new PCEPOpenObjectParser(tlvReg));
                context.registerObjectSerializer(RpObject.class, new PCEPRequestParameterObjectParser(tlvReg));
                context.registerObjectSerializer(NoPathObject.class, new PCEPNoPathObjectParser(tlvReg));
                context.registerObjectSerializer(EndpointsObject.class, new PCEPEndPointsObjectParser(tlvReg));
index 13ca7cdd4efc2be1a31f60e403ac70ede11146ee..b64e3be9be7981c67f7622e476dc33e3f4fae143 100644 (file)
@@ -12,8 +12,8 @@ import io.netty.util.Timer;
 import io.netty.util.concurrent.Promise;
 
 import org.opendaylight.protocol.pcep.PCEPSessionListener;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.OpenObject;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.message.open.message.OpenBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.Open;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.OpenBuilder;
 
 import com.google.common.base.Preconditions;
 
@@ -22,7 +22,7 @@ public final class DefaultPCEPSessionNegotiator extends AbstractPCEPSessionNegot
        private final int maxUnknownMessages;
 
        public DefaultPCEPSessionNegotiator(final Timer timer, final Promise<PCEPSessionImpl> promise, final Channel channel,
-                       final PCEPSessionListener listener, final short sessionId, final int maxUnknownMessages, final OpenObject localPrefs) {
+                       final PCEPSessionListener listener, final short sessionId, final int maxUnknownMessages, final Open localPrefs) {
                super(timer, promise, channel);
                this.maxUnknownMessages = maxUnknownMessages;
                this.myLocalPrefs = new OpenBuilder().setKeepalive(localPrefs.getKeepalive()).setDeadTimer(localPrefs.getDeadTimer()).setSessionId(
@@ -30,31 +30,30 @@ public final class DefaultPCEPSessionNegotiator extends AbstractPCEPSessionNegot
                this.listener = Preconditions.checkNotNull(listener);
        }
 
-       private final OpenObject myLocalPrefs;
+       private final Open myLocalPrefs;
 
        @Override
-       protected OpenObject getInitialProposal() {
+       protected Open getInitialProposal() {
                return this.myLocalPrefs;
        }
 
        @Override
-       protected PCEPSessionImpl createSession(final Timer timer, final Channel channel, final OpenObject localPrefs,
-                       final OpenObject remotePrefs) {
+       protected PCEPSessionImpl createSession(final Timer timer, final Channel channel, final Open localPrefs, final Open remotePrefs) {
                return new PCEPSessionImpl(timer, this.listener, this.maxUnknownMessages, channel, localPrefs, remotePrefs);
        }
 
        @Override
-       protected boolean isProposalAcceptable(final OpenObject open) {
+       protected boolean isProposalAcceptable(final Open open) {
                return true;
        }
 
        @Override
-       protected OpenObject getCounterProposal(final OpenObject open) {
+       protected Open getCounterProposal(final Open open) {
                return null;
        }
 
        @Override
-       protected OpenObject getRevisedProposal(final OpenObject suggestion) {
+       protected Open getRevisedProposal(final Open suggestion) {
                return this.myLocalPrefs;
        }
 }
index 982ecfbfcfbe4fe2634efc183f26ccd796a6dc46..6522c32999d3ba93fccf11ac21dca8124e893faf 100644 (file)
@@ -12,16 +12,16 @@ import io.netty.util.Timer;
 import io.netty.util.concurrent.Promise;
 
 import org.opendaylight.protocol.pcep.PCEPSessionListener;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.OpenObject;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.Open;
 
 import com.google.common.base.Preconditions;
 
 public final class DefaultPCEPSessionNegotiatorFactory extends AbstractPCEPSessionNegotiatorFactory {
-       private final OpenObject localPrefs;
+       private final Open localPrefs;
        private final int maxUnknownMessages;
        private final Timer timer;
 
-       public DefaultPCEPSessionNegotiatorFactory(final Timer timer, final OpenObject localPrefs, final int maxUnknownMessages) {
+       public DefaultPCEPSessionNegotiatorFactory(final Timer timer, final Open localPrefs, final int maxUnknownMessages) {
                this.timer = Preconditions.checkNotNull(timer);
                this.localPrefs = Preconditions.checkNotNull(localPrefs);
                this.maxUnknownMessages = maxUnknownMessages;
index 61add80e3c17cb838305c98cb407cfabf867a0ba..d392608af3451fc7a3d653458616dda6c2fd9ff0 100644 (file)
@@ -34,11 +34,11 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.typ
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.KeepaliveMessage;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.Message;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.OpenMessage;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.OpenObject;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.close.message.CCloseMessageBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.close.object.CCloseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.keepalive.message.KeepaliveMessageBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.Tlvs;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.Open;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.open.Tlvs;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -74,12 +74,12 @@ public class PCEPSessionImpl extends AbstractProtocolSession<Message> implements
        /**
         * Open Object with session characteristics that were accepted by another PCE (sent from this session).
         */
-       private final OpenObject localOpen;
+       private final Open localOpen;
 
        /**
         * Open Object with session characteristics for this session (sent from another PCE).
         */
-       private final OpenObject remoteOpen;
+       private final Open remoteOpen;
 
        private static final Logger logger = LoggerFactory.getLogger(PCEPSessionImpl.class);
 
@@ -100,7 +100,7 @@ public class PCEPSessionImpl extends AbstractProtocolSession<Message> implements
        private final KeepaliveMessage kaMessage = (KeepaliveMessage) new KeepaliveMessageBuilder().build();
 
        PCEPSessionImpl(final Timer timer, final PCEPSessionListener listener, final int maxUnknownMessages, final Channel channel,
-                       final OpenObject localOpen, final OpenObject remoteOpen) {
+                       final Open localOpen, final Open remoteOpen) {
                this.listener = Preconditions.checkNotNull(listener);
                this.stateTimer = Preconditions.checkNotNull(timer);
                this.channel = Preconditions.checkNotNull(channel);
@@ -272,7 +272,7 @@ public class PCEPSessionImpl extends AbstractProtocolSession<Message> implements
         * @param value
         * @param open
         */
-       private void sendErrorMessage(final PCEPErrors value, final OpenObject open) {
+       private void sendErrorMessage(final PCEPErrors value, final Open open) {
                this.sendMessage(Util.createErrorMessage(value, open));
        }
 
index 9444921aa2ce354c6cac521e5e223c1746fe4bf4..e11b0a01bd1a77720affefc624db0516602b2b0f 100644 (file)
@@ -10,10 +10,10 @@ package org.opendaylight.protocol.pcep.impl;
 import java.net.InetSocketAddress;
 
 import org.opendaylight.protocol.pcep.PCEPSessionProposalFactory;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.OpenObject;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.message.open.message.OpenBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.Tlvs;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.TlvsBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.Open;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.OpenBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.open.Tlvs;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.open.TlvsBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.stateful.capability.tlv.Stateful.Flags;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.stateful.capability.tlv.StatefulBuilder;
 
@@ -35,7 +35,7 @@ public class PCEPSessionProposalFactoryImpl implements PCEPSessionProposalFactor
        }
 
        @Override
-       public OpenObject getSessionProposal(final InetSocketAddress address, final int sessionId) {
+       public Open getSessionProposal(final InetSocketAddress address, final int sessionId) {
                final Tlvs tlvs = null;
                final TlvsBuilder builder = new TlvsBuilder();
                if (PCEPSessionProposalFactoryImpl.this.stateful) {
index 5eb4fd0a1cc65ff86acc72e5d7326e7e88cba0fe..1a1ffbeb77e40a3ebb224947b893cbf6735edda4 100644 (file)
@@ -20,15 +20,14 @@ import org.opendaylight.protocol.util.ByteArray;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpAddress;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.message.rev131007.PcerrBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.Message;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.OpenObject;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.endpoints.AddressFamily;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.endpoints.address.family.Ipv4;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.Open;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcerr.message.PcerrMessageBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcerr.message.pcerr.message.ErrorType;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcerr.message.pcerr.message.Errors;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcerr.message.pcerr.message.ErrorsBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcerr.message.pcerr.message.error.type.SessionBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcerr.message.pcerr.message.error.type.session.Open;
 
 import com.google.common.collect.Lists;
 
@@ -85,7 +84,7 @@ public final class Util {
                }
        }
 
-       public static Message createErrorMessage(final PCEPErrors e, final OpenObject t) {
+       public static Message createErrorMessage(final PCEPErrors e, final Open t) {
                final PcerrBuilder errMessageBuilder = new PcerrBuilder();
                final PCEPErrorMapping mapping = PCEPErrorMapping.getInstance();
                final PCEPErrorIdentifier id = mapping.getFromErrorsEnum(e);
@@ -93,7 +92,7 @@ public final class Util {
                if (t == null) {
                        return errMessageBuilder.setPcerrMessage(new PcerrMessageBuilder().setErrors(Arrays.asList(err)).build()).build();
                } else {
-                       final ErrorType type = new SessionBuilder().setOpen((Open) t).build();
+                       final ErrorType type = new SessionBuilder().setOpen(t).build();
                        return errMessageBuilder.setPcerrMessage(new PcerrMessageBuilder().setErrors(Arrays.asList(err)).setErrorType(type).build()).build();
                }
        }
index e458ed414e7124c79eef96c27ce8d663a9492a84..1ffa80a35347b86ab057af5ae285de01d9e9d013 100644 (file)
@@ -26,6 +26,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.typ
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.PcepErrorObject;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.PcerrMessage;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.RpObject;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.Open;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcerr.message.PcerrMessageBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcerr.message.pcerr.message.Errors;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcerr.message.pcerr.message.ErrorsBuilder;
@@ -34,7 +35,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.typ
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcerr.message.pcerr.message.error.type.Session;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcerr.message.pcerr.message.error.type.SessionBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcerr.message.pcerr.message.error.type.request.Rps;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcerr.message.pcerr.message.error.type.session.Open;
 
 import com.google.common.collect.Lists;
 
index 270e7cbf770cb4bf2062bdac1d0877c469a719d3..62963acca356ba74e72dd95fbfa48f72c0cda000 100644 (file)
@@ -15,11 +15,12 @@ import org.opendaylight.protocol.pcep.PCEPDeserializerException;
 import org.opendaylight.protocol.pcep.PCEPDocumentedException;
 import org.opendaylight.protocol.pcep.impl.AbstractMessageParser;
 import org.opendaylight.protocol.pcep.spi.ObjectHandlerRegistry;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.message.rev131007.OpenBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.Message;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.Object;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.OpenMessage;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.message.OpenMessageBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.message.open.message.Open;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.Open;
 
 /**
  * Parser for {@link OpenMessage}
@@ -53,8 +54,7 @@ public class PCEPOpenMessageParser extends AbstractMessageParser {
                }
                final List<Object> objs = parseObjects(buffer);
 
-               return new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.message.rev131007.OpenBuilder().setOpenMessage(
-                               validate(objs)).build();
+               return new OpenBuilder().setOpenMessage(validate(objs)).build();
        }
 
        private org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.message.OpenMessage validate(
index bac945ed63feee33884912a64825c3dde68ed1af..581a90cfb31cdcbde5be9c40890f7ecf0e5a8948 100644 (file)
@@ -20,9 +20,10 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.typ
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.Tlv;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.lsp.db.version.tlv.LspDbVersion;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.of.list.tlv.OfList;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.message.open.message.OpenBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.Tlvs;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.TlvsBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.Open;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.OpenBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.open.Tlvs;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.open.TlvsBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.predundancy.group.id.tlv.PredundancyGroupId;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.stateful.capability.tlv.Stateful;
 
@@ -72,7 +73,7 @@ public class PCEPOpenObjectParser extends AbstractObjectWithTlvsParser<TlvsBuild
        }
 
        @Override
-       public OpenObject parseObject(final ObjectHeader header, final byte[] bytes) throws PCEPDeserializerException, PCEPDocumentedException {
+       public Open parseObject(final ObjectHeader header, final byte[] bytes) throws PCEPDeserializerException, PCEPDocumentedException {
                if (bytes == null || bytes.length == 0) {
                        throw new IllegalArgumentException("Array of bytes is mandatory. Can't be null or empty.");
                }
@@ -110,10 +111,10 @@ public class PCEPOpenObjectParser extends AbstractObjectWithTlvsParser<TlvsBuild
 
        @Override
        public byte[] serializeObject(final Object object) {
-               if (!(object instanceof OpenObject)) {
+               if (!(object instanceof Open)) {
                        throw new IllegalArgumentException("Wrong instance of PCEPObject. Passed " + object.getClass() + ". Needed OpenObject.");
                }
-               final OpenObject open = (OpenObject) object;
+               final Open open = (Open) object;
 
                final byte versionFlagMF = (byte) (PCEP_VERSION << (Byte.SIZE - VERSION_SF_LENGTH));
 
index b3e3f5dfdbef019774552c03fe8cce0d4c84562d..a3a3c8051fc3d1c5204d5f34da81e5ca0b19487e 100644 (file)
@@ -15,7 +15,7 @@ import org.opendaylight.protocol.pcep.PCEPSession;
 import org.opendaylight.protocol.pcep.PCEPSessionListener;
 import org.opendaylight.protocol.pcep.PCEPTerminationReason;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.Message;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.OpenObject;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.Open;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -38,7 +38,7 @@ public class MockPCE implements PCEPSessionListener {
                this.session.handleMessage(msg);
        }
 
-       public void sendErrorMessage(final PCEPErrors value, final OpenObject open) {
+       public void sendErrorMessage(final PCEPErrors value, final Open open) {
                this.sendMessage(Util.createErrorMessage(value, open));
        }
 
index 84b87829bfb380818364ff651de24827b8563166..f2479770a0c59667c298bdc75f3b5533e6b44bd9 100644 (file)
@@ -72,7 +72,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.typ
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.lsp.db.version.tlv.LspDbVersionBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.lsp.error.code.tlv.LspErrorCode;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.lsp.error.code.tlv.LspErrorCodeBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.message.open.message.OpenBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.OpenBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.order.tlv.OrderBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.overload.duration.tlv.OverloadDurationBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.path.definition.ExplicitRouteBuilder;
@@ -140,7 +140,7 @@ public class PCEPObjectParserTest {
                                (byte) 0xf0 };
                final PredundancyGroupId tlv3 = new PredundancyGroupIdBuilder().setIdentifier(predundancyBytes).build();
 
-               builder.setTlvs(new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.TlvsBuilder().setStateful(
+               builder.setTlvs(new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.open.TlvsBuilder().setStateful(
                                tlv1).setPredundancyGroupId(tlv3).setLspDbVersion(tlv2).build());
 
                assertEquals(builder.build(), parser.parseObject(new ObjectHeaderImpl(false, false), result));
index 92f6373fe2c29c1299be89e71cf0c1c8600a7f30..0d4d9e0757b7964f75acae57f3174df994e7b00f 100644 (file)
@@ -13,6 +13,7 @@ import io.netty.buffer.ByteBuf;
 import io.netty.buffer.Unpooled;
 
 import java.io.IOException;
+import java.math.BigInteger;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -22,14 +23,23 @@ import org.opendaylight.protocol.pcep.PCEPDeserializerException;
 import org.opendaylight.protocol.pcep.PCEPDocumentedException;
 import org.opendaylight.protocol.pcep.impl.message.PCEPCloseMessageParser;
 import org.opendaylight.protocol.pcep.impl.message.PCEPKeepAliveMessageParser;
+import org.opendaylight.protocol.pcep.impl.message.PCEPOpenMessageParser;
 import org.opendaylight.protocol.pcep.spi.ObjectHandlerRegistry;
 import org.opendaylight.protocol.pcep.spi.pojo.PCEPExtensionProviderContextImpl;
 import org.opendaylight.protocol.util.ByteArray;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.message.rev131007.CloseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.message.rev131007.KeepaliveBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.message.rev131007.OpenBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.ProtocolVersion;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.close.message.CCloseMessageBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.close.object.CCloseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.keepalive.message.KeepaliveMessageBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.lsp.db.version.tlv.LspDbVersion;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.lsp.db.version.tlv.LspDbVersionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.message.OpenMessageBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.stateful.capability.tlv.Stateful;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.stateful.capability.tlv.Stateful.Flags;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.stateful.capability.tlv.StatefulBuilder;
 
 public class PCEPValidatorTest {
 
@@ -68,26 +78,32 @@ public class PCEPValidatorTest {
        // private final PCEPEndPointsObject<IPv4Address> endPoints = new PCEPEndPointsObject<IPv4Address>(this.ip4addr,
        // this.ip4addr);
        //
-       //
-       // @Test
-       // public void testOpenMessageValidationFromBin() throws IOException, DeserializerException, DocumentedException,
-       // PCEPDeserializerException {
-       // assertEquals(
-       // deserMsg("src/test/resources/PCEPOpenMessage1.bin").toString(),
-       // asList(
-       // new PCEPOpenMessage(new PCEPOpenObject(30, 120, 1, asList(new PCEStatefulCapabilityTlv(false, true, true),
-       // new LSPStateDBVersionTlv(0x80))))).toString());
-       //
-       // assertEquals(deserMsg("src/test/resources/Open.1.bin").toString(),
-       // asList(new PCEPOpenMessage(new PCEPOpenObject(1, 4, 1))).toString());
-       //
-       // assertEquals(
-       // deserMsg("src/test/resources/Open.3.bin").toString(),
-       // asList(
-       // new PCEPOpenMessage(new PCEPOpenObject(1, 4, 1, asList(new PCEStatefulCapabilityTlv(false, true, true),
-       // new LSPStateDBVersionTlv(53))))).toString());
-       // }
-       //
+
+       @Test
+       public void testOpenMessageValidationFromBin() throws IOException, DeserializerException, DocumentedException,
+                       PCEPDeserializerException {
+               final byte[] result = ByteArray.fileToBytes("src/test/resources/PCEPOpenMessage1.bin");
+               final PCEPOpenMessageParser parser = new PCEPOpenMessageParser(this.objectRegistry);
+               final OpenMessageBuilder builder = new OpenMessageBuilder();
+
+               final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.OpenBuilder b = new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.OpenBuilder();
+               b.setProcessingRule(false);
+               b.setIgnore(false);
+               b.setVersion(new ProtocolVersion((short) 1));
+               b.setKeepalive((short) 30);
+               b.setDeadTimer((short) 120);
+               b.setSessionId((short) 1);
+               final Stateful tlv1 = new StatefulBuilder().setFlags(new Flags(true, false, true)).build();
+               final LspDbVersion tlv2 = new LspDbVersionBuilder().setVersion(BigInteger.valueOf(0x80L)).build();
+               b.setTlvs(new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.open.TlvsBuilder().setStateful(
+                               tlv1).setLspDbVersion(tlv2).build());
+               builder.setOpen(b.build());
+
+               assertEquals(new OpenBuilder().setOpenMessage(builder.build()).build(), parser.parseMessage(result));
+               final ByteBuf buf = Unpooled.buffer(result.length);
+               parser.serializeMessage(new OpenBuilder().setOpenMessage(builder.build()).build(), buf);
+               assertArrayEquals(result, buf.array());
+       }
 
        @Test
        public void testKeepAliveMessageValidationFromBin() throws IOException, PCEPDeserializerException, PCEPDocumentedException,
index e796e077bfe7218b5c99cd729097ae277e728c02..662b6ce30d61c801c80578d5385d6a0d9bbae781 100644 (file)
@@ -17,7 +17,7 @@ import org.opendaylight.protocol.pcep.PCEPCloseTermination;
 import org.opendaylight.protocol.pcep.PCEPSessionListener;
 import org.opendaylight.protocol.pcep.TerminationReason;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.Message;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.message.open.message.OpenBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.OpenBuilder;
 
 import com.google.common.util.concurrent.Futures;
 
diff --git a/pcep/impl/src/test/resources/Open.1.pbin b/pcep/impl/src/test/resources/Open.1.pbin
deleted file mode 100644 (file)
index 673860c..0000000
Binary files a/pcep/impl/src/test/resources/Open.1.pbin and /dev/null differ
diff --git a/pcep/impl/src/test/resources/Open.3.bin b/pcep/impl/src/test/resources/Open.3.bin
deleted file mode 100644 (file)
index 74d6462..0000000
Binary files a/pcep/impl/src/test/resources/Open.3.bin and /dev/null differ
diff --git a/pcep/impl/src/test/resources/Open.invalid.bin b/pcep/impl/src/test/resources/Open.invalid.bin
deleted file mode 100644 (file)
index 0ce3efd..0000000
Binary files a/pcep/impl/src/test/resources/Open.invalid.bin and /dev/null differ
index b1f75d054785cfcbf265f2c5e08dd9516647f00d..a755e6301fe548e659214ddc0d098119610f654c 100644 (file)
Binary files a/pcep/impl/src/test/resources/PCEPOpenMessage1.bin and b/pcep/impl/src/test/resources/PCEPOpenMessage1.bin differ
index dbce743996e38f12206f7e6bf6d79f3bed7e00e4..e8dd2b4820c1ff02915e5dca3f7f9713f25a3370 100644 (file)
@@ -17,7 +17,7 @@ import org.opendaylight.protocol.pcep.impl.DefaultPCEPSessionNegotiatorFactory;
 import org.opendaylight.protocol.pcep.impl.PCEPDispatcherImpl;
 import org.opendaylight.protocol.pcep.impl.PCEPSessionProposalFactoryImpl;
 import org.opendaylight.protocol.pcep.spi.pojo.PCEPExtensionProviderContextImpl;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.OpenObject;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.Open;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -124,7 +124,7 @@ public class Main {
 
                final PCEPSessionProposalFactory spf = new PCEPSessionProposalFactoryImpl(deadTimerValue, keepAliveValue, stateful, active, versioned, instant, timeout);
 
-               final OpenObject prefs = spf.getSessionProposal(address, 0);
+               final Open prefs = spf.getSessionProposal(address, 0);
 
                final PCEPDispatcherImpl dispatcher = new PCEPDispatcherImpl(PCEPExtensionProviderContextImpl.getSingletonInstance().getMessageHandlerRegistry(), new DefaultPCEPSessionNegotiatorFactory(new HashedWheelTimer(), prefs, 5));
 
index d250f0a3830a4faedff269ccc70a7a9e71dca203..88899670795390464833d384aee66e3df2e64e0c 100644 (file)
@@ -30,8 +30,8 @@ import org.opendaylight.protocol.pcep.impl.PCEPHandlerFactory;
 import org.opendaylight.protocol.pcep.impl.PCEPSessionImpl;
 import org.opendaylight.protocol.pcep.spi.pojo.PCEPExtensionProviderContextImpl;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.Message;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.message.open.message.OpenBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.TlvsBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.OpenBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.open.TlvsBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.predundancy.group.id.tlv.PredundancyGroupIdBuilder;
 
 import com.google.common.base.Preconditions;
index 9835f6cd86d0cda5f0cfbdbb58c20ff8229c1cc9..21cb7ffa554d34763deb294dd82b8d2b5f4db53d 100644 (file)
@@ -22,7 +22,7 @@ import org.opendaylight.protocol.pcep.impl.DefaultPCEPSessionNegotiatorFactory;
 import org.opendaylight.protocol.pcep.impl.PCEPDispatcherImpl;
 import org.opendaylight.protocol.pcep.impl.PCEPSessionProposalFactoryImpl;
 import org.opendaylight.protocol.pcep.spi.pojo.PCEPExtensionProviderContextImpl;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.OpenObject;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.Open;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.slf4j.Logger;
@@ -40,9 +40,8 @@ public final class BundleActivator extends AbstractBindingAwareProvider {
                // FIXME: integration with config subsystem should allow this to be injected as a service
                final InetSocketAddress address = new InetSocketAddress("0.0.0.0", 4189);
                final PCEPSessionProposalFactory spf = new PCEPSessionProposalFactoryImpl(30, 10, true, true, true, true, 0);
-               final OpenObject prefs = spf.getSessionProposal(address, 0);
-               final PCEPDispatcher dispatcher = new PCEPDispatcherImpl(PCEPExtensionProviderContextImpl.getSingletonInstance().getMessageHandlerRegistry(),
-                               new DefaultPCEPSessionNegotiatorFactory(new HashedWheelTimer(), prefs, 5));
+               final Open prefs = spf.getSessionProposal(address, 0);
+               final PCEPDispatcher dispatcher = new PCEPDispatcherImpl(PCEPExtensionProviderContextImpl.getSingletonInstance().getMessageHandlerRegistry(), new DefaultPCEPSessionNegotiatorFactory(new HashedWheelTimer(), prefs, 5));
                final InstanceIdentifier<Topology> topology = InstanceIdentifier.builder().node(Topology.class).toInstance();
 
                final PCEPTopologyProvider exp = new PCEPTopologyProvider(dispatcher, null, dps, topology);
index f780d05584ac7ebc037feab83d1b1cf8de64c445..9408d354fe27c578586f4babf2a81948ecb094a7 100644 (file)
@@ -33,7 +33,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.mes
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.Message;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.PcrptMessage;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.PlspId;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.Tlvs;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.open.Tlvs;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcerr.message.PcerrMessageBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcrpt.message.pcrpt.message.Reports;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcrpt.message.pcrpt.message.reports.Lsp;
@@ -92,7 +92,7 @@ final class ServerSessionManager implements SessionListenerFactory<PCEPSessionLi
                        final String pccId = createNodeId(address);
 
                        // FIXME: after 0.6 yangtools, this cast should not be needed
-                       final Topology topo = (Topology)trans.readOperationalData(topology);
+                       final Topology topo = (Topology) trans.readOperationalData(ServerSessionManager.this.topology);
 
                        for (final Node n : topo.getNode()) {
                                LOG.debug("Matching topology node {} to id {}", n, pccId);
@@ -107,7 +107,7 @@ final class ServerSessionManager implements SessionListenerFactory<PCEPSessionLi
                         */
                        final NodeId id = new NodeId(pccId);
                        final NodeKey nk = new NodeKey(id);
-                       final InstanceIdentifier<Node> nti = InstanceIdentifier.builder(topology).node(Node.class, nk).toInstance();
+                       final InstanceIdentifier<Node> nti = InstanceIdentifier.builder(ServerSessionManager.this.topology).node(Node.class, nk).toInstance();
 
                        final Node ret = new NodeBuilder().setKey(nk).setNodeId(id).build();
 
@@ -132,7 +132,7 @@ final class ServerSessionManager implements SessionListenerFactory<PCEPSessionLi
                        LOG.debug("Peer {} resolved to topology node {}", peerAddress, topoNode);
 
                        // Our augmentation in the topology node
-                       pccBuilder = new PathComputationClientBuilder();
+                       this.pccBuilder = new PathComputationClientBuilder();
 
                        final Tlvs tlvs = session.getRemoteTlvs();
                        final Stateful stateful = tlvs.getStateful();
@@ -142,9 +142,9 @@ final class ServerSessionManager implements SessionListenerFactory<PCEPSessionLi
                                this.pccBuilder.setStateSync(PccSyncState.InitialResync);
                        }
 
-                       topologyAugmentBuilder = new Node1Builder().setPathComputationClient(pccBuilder.build());
-                       topologyAugmentId = InstanceIdentifier.builder(topologyNodeId).node(Node1.class).toInstance();
-                       trans.putRuntimeData(topologyAugmentId, topologyAugmentBuilder.build());
+                       this.topologyAugmentBuilder = new Node1Builder().setPathComputationClient(this.pccBuilder.build());
+                       this.topologyAugmentId = InstanceIdentifier.builder(this.topologyNodeId).node(Node1.class).toInstance();
+                       trans.putRuntimeData(this.topologyAugmentId, this.topologyAugmentBuilder.build());
 
                        // All set, commit the modifications
                        final Future<RpcResult<TransactionStatus>> s = trans.commit();
@@ -167,9 +167,9 @@ final class ServerSessionManager implements SessionListenerFactory<PCEPSessionLi
                        final DataModificationTransaction trans = ServerSessionManager.this.dataProvider.beginTransaction();
 
                        // The session went down. Undo all the Topology changes we have done.
-                       trans.removeRuntimeData(topologyAugmentId);
-                       if (ownsTopology) {
-                               trans.removeRuntimeData(topologyNodeId);
+                       trans.removeRuntimeData(this.topologyAugmentId);
+                       if (this.ownsTopology) {
+                               trans.removeRuntimeData(this.topologyNodeId);
                        }
 
                        /*
@@ -197,8 +197,7 @@ final class ServerSessionManager implements SessionListenerFactory<PCEPSessionLi
                }
 
                private InstanceIdentifier<ReportedLsps> lspIdentifier(final SymbolicPathName name) {
-                       return InstanceIdentifier.builder(topologyAugmentId).
-                                       node(ReportedLsps.class, new ReportedLspsKey(name.getPathName())).toInstance();
+                       return InstanceIdentifier.builder(this.topologyAugmentId).node(ReportedLsps.class, new ReportedLspsKey(name.getPathName())).toInstance();
                }
 
                @Override
@@ -217,9 +216,9 @@ final class ServerSessionManager implements SessionListenerFactory<PCEPSessionLi
 
                                if (lsp.isSync() && !this.synced) {
                                        // Update synchronization flag
-                                       synced = true;
-                                       topologyAugmentBuilder.setPathComputationClient(pccBuilder.setStateSync(PccSyncState.Synchronized).build());
-                                       trans.putRuntimeData(topologyAugmentId, topologyAugmentBuilder.build());
+                                       this.synced = true;
+                                       this.topologyAugmentBuilder.setPathComputationClient(this.pccBuilder.setStateSync(PccSyncState.Synchronized).build());
+                                       trans.putRuntimeData(this.topologyAugmentId, this.topologyAugmentBuilder.build());
                                        LOG.debug("Session {} achieved synchronized state", session);
                                }
 
@@ -273,8 +272,8 @@ final class ServerSessionManager implements SessionListenerFactory<PCEPSessionLi
        private final DataProviderService dataProvider;
        private final InstructionScheduler scheduler;
 
-       public ServerSessionManager(final InstructionScheduler scheduler,
-                       final DataProviderService dataProvider, final InstanceIdentifier<Topology> topology) {
+       public ServerSessionManager(final InstructionScheduler scheduler, final DataProviderService dataProvider,
+                       final InstanceIdentifier<Topology> topology) {
                this.dataProvider = Preconditions.checkNotNull(dataProvider);
                this.topology = Preconditions.checkNotNull(topology);
                this.scheduler = Preconditions.checkNotNull(scheduler);
@@ -309,7 +308,7 @@ final class ServerSessionManager implements SessionListenerFactory<PCEPSessionLi
                        }
                };
 
-               final Failure f = scheduler.submitInstruction(input, e);
+               final Failure f = this.scheduler.submitInstruction(input, e);
                final AddLspOutputBuilder b = new AddLspOutputBuilder();
                if (f != null) {
                        b.setResult(new FailureBuilder().setFailure(f).build());
@@ -328,7 +327,7 @@ final class ServerSessionManager implements SessionListenerFactory<PCEPSessionLi
                        }
                };
 
-               final Failure f = scheduler.submitInstruction(input, e);
+               final Failure f = this.scheduler.submitInstruction(input, e);
                final RemoveLspOutputBuilder b = new RemoveLspOutputBuilder();
                if (f != null) {
                        b.setResult(new FailureBuilder().setFailure(f).build());
@@ -347,7 +346,7 @@ final class ServerSessionManager implements SessionListenerFactory<PCEPSessionLi
                        }
                };
 
-               final Failure f = scheduler.submitInstruction(input, e);
+               final Failure f = this.scheduler.submitInstruction(input, e);
                final UpdateLspOutputBuilder b = new UpdateLspOutputBuilder();
                if (f != null) {
                        b.setResult(new FailureBuilder().setFailure(f).build());
diff --git a/programming/topology-api/.project b/programming/topology-api/.project
new file mode 100644 (file)
index 0000000..b829664
--- /dev/null
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+       <name>programming-topology-api</name>
+       <comment></comment>
+       <projects>
+       </projects>
+       <buildSpec>
+               <buildCommand>
+                       <name>org.eclipse.jdt.core.javabuilder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+               <buildCommand>
+                       <name>org.eclipse.m2e.core.maven2Builder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+       </buildSpec>
+       <natures>
+               <nature>org.eclipse.pde.PluginNature</nature>
+               <nature>org.eclipse.jdt.core.javanature</nature>
+               <nature>org.eclipse.m2e.core.maven2Nature</nature>
+       </natures>
+</projectDescription>