From 4f4c0761fb641e1aed76a1e8c4ede5c968c86256 Mon Sep 17 00:00:00 2001 From: "michal.polkorab" Date: Thu, 12 Sep 2013 09:56:31 -0700 Subject: [PATCH] Renamed packages to org.opendaylight.openflowjava.protocol.impl.* Renamed class names to match cammelCase Signed-off-by: michal.polkorab --- openflow-protocol-impl/pom.xml | 1 - .../protocol/impl/core/OF13Codec.java} | 14 +-- .../protocol/impl/core/OFFrameDecoder.java} | 12 +-- .../impl/core/OFVersionDetector.java} | 12 +-- .../core}/PublishingChannelInitializer.java | 4 +- .../impl/core}/SslContextFactory.java | 2 +- .../protocol/impl/core}/SslKeyStore.java | 2 +- .../impl/core}/SslTrustManagerFactory.java | 2 +- .../protocol/impl/core}/TcpHandler.java | 2 +- .../protocol/impl/core}/TlsDetector.java | 8 +- .../impl/deserialization/DecoderTable.java | 97 ++++++++++++++++++ .../DeserializationFactory.java | 32 ++++++ .../deserialization/MessageTypeCodeKey.java | 2 +- .../impl/deserialization/OFDeserializer.java} | 4 +- .../factories/BarrierReplyMessageFactory.java | 41 ++++++++ .../factories/EchoReplyMessageFactory.java | 6 +- .../factories/EchoRequestMessageFactory.java | 6 +- .../factories/ExperimenterMessageFactory.java | 46 +++++++++ .../FeaturesReplyMessageFactory.java | 6 +- .../factories/HelloMessageFactory.java | 6 +- .../impl}/serialization/EncoderTable.java | 14 +-- .../impl}/serialization/MessageTypeKey.java | 2 +- .../impl/serialization/OFSerializer.java} | 4 +- .../serialization/SerializationFactory.java | 26 +++++ .../factories/HelloInputMessageFactory.java | 10 +- .../protocol/impl}/util/ByteBufUtils.java | 2 +- .../lib/deserialization/DecoderTable.java | 60 ----------- .../DeserializationFactory.java | 65 ------------ .../serialization/SerializationFactory.java | 59 ----------- .../protocol/impl}/clients/SimpleClient.java | 2 +- .../impl}/clients/SimpleClientHandler.java | 4 +- .../clients/SimpleClientInitializer.java | 4 +- .../protocol/impl/core}/DummyDecoder.java | 2 +- .../impl/core}/OFFrameDecoderTest.java | 16 +-- .../impl/core}/OFVersionDetectorTest.java | 12 +-- .../protocol/impl/core/TcpHandlerTest.java} | 10 +- .../protocol/impl/core/TlsDetectorTest.java} | 10 +- .../BarrierReplyMessageFactoryTest.java | 29 ++++++ .../EchoReplyMessageFactoryTest.java | 6 +- .../EchoRequestMessageFactoryTest.java | 6 +- .../ExperimenterMessageFactoryTest.java | 33 ++++++ .../FeaturesReplyMessageFactoryTest.java | 6 +- .../factories/HelloMessageFactoryTest.java | 6 +- .../HelloInputMessageFactoryTest.java | 9 +- .../protocol/impl}/util/BufferHelper.java | 2 +- .../impl/core}/OFBinaryMessageInput.txt | Bin 46 files changed, 413 insertions(+), 291 deletions(-) rename openflow-protocol-impl/src/main/java/org/{openflow/lib/Of13Codec.java => opendaylight/openflowjava/protocol/impl/core/OF13Codec.java} (87%) rename openflow-protocol-impl/src/main/java/org/{openflow/lib/OfFrameDecoder.java => opendaylight/openflowjava/protocol/impl/core/OFFrameDecoder.java} (87%) rename openflow-protocol-impl/src/main/java/org/{openflow/lib/OfVersionDetector.java => opendaylight/openflowjava/protocol/impl/core/OFVersionDetector.java} (86%) rename openflow-protocol-impl/src/main/java/org/{openflow/lib => opendaylight/openflowjava/protocol/impl/core}/PublishingChannelInitializer.java (83%) rename openflow-protocol-impl/src/main/java/org/{openflow/lib => opendaylight/openflowjava/protocol/impl/core}/SslContextFactory.java (97%) rename openflow-protocol-impl/src/main/java/org/{openflow/lib => opendaylight/openflowjava/protocol/impl/core}/SslKeyStore.java (94%) rename openflow-protocol-impl/src/main/java/org/{openflow/lib => opendaylight/openflowjava/protocol/impl/core}/SslTrustManagerFactory.java (97%) rename openflow-protocol-impl/src/main/java/org/{openflow/lib => opendaylight/openflowjava/protocol/impl/core}/TcpHandler.java (98%) rename openflow-protocol-impl/src/main/java/org/{openflow/lib => opendaylight/openflowjava/protocol/impl/core}/TlsDetector.java (92%) create mode 100644 openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/DecoderTable.java create mode 100644 openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/DeserializationFactory.java rename openflow-protocol-impl/src/main/java/org/{openflow/lib => opendaylight/openflowjava/protocol/impl}/deserialization/MessageTypeCodeKey.java (91%) rename openflow-protocol-impl/src/main/java/org/{openflow/lib/deserialization/OfDeserializer.java => opendaylight/openflowjava/protocol/impl/deserialization/OFDeserializer.java} (80%) create mode 100644 openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/BarrierReplyMessageFactory.java rename openflow-protocol-impl/src/main/java/org/{openflow => opendaylight/openflowjava/protocol/impl}/deserialization/factories/EchoReplyMessageFactory.java (82%) rename openflow-protocol-impl/src/main/java/org/{openflow => opendaylight/openflowjava/protocol/impl}/deserialization/factories/EchoRequestMessageFactory.java (81%) create mode 100644 openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/ExperimenterMessageFactory.java rename openflow-protocol-impl/src/main/java/org/{openflow => opendaylight/openflowjava/protocol/impl}/deserialization/factories/FeaturesReplyMessageFactory.java (86%) rename openflow-protocol-impl/src/main/java/org/{openflow => opendaylight/openflowjava/protocol/impl}/deserialization/factories/HelloMessageFactory.java (79%) rename openflow-protocol-impl/src/main/java/org/{openflow/lib => opendaylight/openflowjava/protocol/impl}/serialization/EncoderTable.java (68%) rename openflow-protocol-impl/src/main/java/org/{openflow/lib => opendaylight/openflowjava/protocol/impl}/serialization/MessageTypeKey.java (92%) rename openflow-protocol-impl/src/main/java/org/{openflow/lib/serialization/OfSerializer.java => opendaylight/openflowjava/protocol/impl/serialization/OFSerializer.java} (79%) create mode 100644 openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/SerializationFactory.java rename openflow-protocol-impl/src/main/java/org/{openflow/lib => opendaylight/openflowjava/protocol/impl}/serialization/factories/HelloInputMessageFactory.java (72%) rename openflow-protocol-impl/src/main/java/org/{openflow => opendaylight/openflowjava/protocol/impl}/util/ByteBufUtils.java (88%) delete mode 100644 openflow-protocol-impl/src/main/java/org/openflow/lib/deserialization/DecoderTable.java delete mode 100644 openflow-protocol-impl/src/main/java/org/openflow/lib/deserialization/DeserializationFactory.java delete mode 100644 openflow-protocol-impl/src/main/java/org/openflow/lib/serialization/SerializationFactory.java rename openflow-protocol-impl/src/test/java/org/{openflow/lib => opendaylight/openflowjava/protocol/impl}/clients/SimpleClient.java (98%) rename openflow-protocol-impl/src/test/java/org/{openflow/lib => opendaylight/openflowjava/protocol/impl}/clients/SimpleClientHandler.java (89%) rename openflow-protocol-impl/src/test/java/org/{openflow/lib => opendaylight/openflowjava/protocol/impl}/clients/SimpleClientInitializer.java (89%) rename openflow-protocol-impl/src/test/java/org/{openflow/lib => opendaylight/openflowjava/protocol/impl/core}/DummyDecoder.java (88%) rename openflow-protocol-impl/src/test/java/org/{openflow/lib => opendaylight/openflowjava/protocol/impl/core}/OFFrameDecoderTest.java (81%) rename openflow-protocol-impl/src/test/java/org/{openflow/lib => opendaylight/openflowjava/protocol/impl/core}/OFVersionDetectorTest.java (77%) rename openflow-protocol-impl/src/test/java/org/{openflow/lib/TCPHandlerTest.java => opendaylight/openflowjava/protocol/impl/core/TcpHandlerTest.java} (94%) rename openflow-protocol-impl/src/test/java/org/{openflow/lib/TLSDetectorTest.java => opendaylight/openflowjava/protocol/impl/core/TlsDetectorTest.java} (77%) create mode 100644 openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/BarrierReplyMessageFactoryTest.java rename openflow-protocol-impl/src/test/java/org/{openflow/lib => opendaylight/openflowjava/protocol/impl}/deserialization/factories/EchoReplyMessageFactoryTest.java (84%) rename openflow-protocol-impl/src/test/java/org/{openflow/lib => opendaylight/openflowjava/protocol/impl}/deserialization/factories/EchoRequestMessageFactoryTest.java (83%) create mode 100644 openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/ExperimenterMessageFactoryTest.java rename openflow-protocol-impl/src/test/java/org/{openflow/lib => opendaylight/openflowjava/protocol/impl}/deserialization/factories/FeaturesReplyMessageFactoryTest.java (84%) rename openflow-protocol-impl/src/test/java/org/{openflow/lib => opendaylight/openflowjava/protocol/impl}/deserialization/factories/HelloMessageFactoryTest.java (78%) rename openflow-protocol-impl/src/test/java/org/{openflow/lib => opendaylight/openflowjava/protocol/impl}/serialization/factories/HelloInputMessageFactoryTest.java (75%) rename openflow-protocol-impl/src/test/java/org/{openflow/lib => opendaylight/openflowjava/protocol/impl}/util/BufferHelper.java (88%) rename openflow-protocol-impl/src/test/resources/org/{openflow/lib => opendaylight/openflowjava/protocol/impl/core}/OFBinaryMessageInput.txt (100%) diff --git a/openflow-protocol-impl/pom.xml b/openflow-protocol-impl/pom.xml index 659cc641..ec4e1c4d 100644 --- a/openflow-protocol-impl/pom.xml +++ b/openflow-protocol-impl/pom.xml @@ -43,7 +43,6 @@ junit junit - 4.10 test diff --git a/openflow-protocol-impl/src/main/java/org/openflow/lib/Of13Codec.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/OF13Codec.java similarity index 87% rename from openflow-protocol-impl/src/main/java/org/openflow/lib/Of13Codec.java rename to openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/OF13Codec.java index 1867eeeb..4e92ad06 100644 --- a/openflow-protocol-impl/src/main/java/org/openflow/lib/Of13Codec.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/OF13Codec.java @@ -1,12 +1,12 @@ /* Copyright (C)2013 Pantheon Technologies, s.r.o. All rights reserved. */ -package org.openflow.lib; +package org.opendaylight.openflowjava.protocol.impl.core; import io.netty.buffer.ByteBuf; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelInboundHandlerAdapter; -import org.openflow.lib.deserialization.DeserializationFactory; -import org.openflow.util.ByteBufUtils; +import org.opendaylight.openflowjava.protocol.impl.deserialization.DeserializationFactory; +import org.opendaylight.openflowjava.protocol.impl.util.ByteBufUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -16,16 +16,16 @@ import org.slf4j.LoggerFactory; * * @author michal.polkorab */ -public class Of13Codec extends ChannelInboundHandlerAdapter { +public class OF13Codec extends ChannelInboundHandlerAdapter { // TODO - fix with enum in API private static final int MESSAGE_TYPES = 29; - private static final Logger LOGGER = LoggerFactory.getLogger(Of13Codec.class); + private static final Logger LOGGER = LoggerFactory.getLogger(OF13Codec.class); /** * Constructor of class */ - public Of13Codec() { + public OF13Codec() { LOGGER.info("Creating OF 1.3 Codec"); } @@ -104,6 +104,6 @@ public class Of13Codec extends ChannelInboundHandlerAdapter { } private static boolean checkOFHeader(short type, int length) { - return !((type > MESSAGE_TYPES) || (length < OfFrameDecoder.LENGTH_OF_HEADER)); + return !((type > MESSAGE_TYPES) || (length < OFFrameDecoder.LENGTH_OF_HEADER)); } } diff --git a/openflow-protocol-impl/src/main/java/org/openflow/lib/OfFrameDecoder.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/OFFrameDecoder.java similarity index 87% rename from openflow-protocol-impl/src/main/java/org/openflow/lib/OfFrameDecoder.java rename to openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/OFFrameDecoder.java index 668925bb..650fe3b5 100644 --- a/openflow-protocol-impl/src/main/java/org/openflow/lib/OfFrameDecoder.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/OFFrameDecoder.java @@ -1,6 +1,6 @@ /* Copyright (C)2013 Pantheon Technologies, s.r.o. All rights reserved. */ -package org.openflow.lib; +package org.opendaylight.openflowjava.protocol.impl.core; import io.netty.buffer.ByteBuf; import io.netty.channel.ChannelHandlerContext; @@ -10,24 +10,24 @@ import java.util.List; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.openflow.lib.TcpHandler.COMPONENT_NAMES; +import org.opendaylight.openflowjava.protocol.impl.core.TcpHandler.COMPONENT_NAMES; /** * Class for decoding incoming messages into message frames. * * @author michal.polkorab */ -public class OfFrameDecoder extends ByteToMessageDecoder { +public class OFFrameDecoder extends ByteToMessageDecoder { /** Length of OpenFlow 1.3 header */ public static final byte LENGTH_OF_HEADER = 8; private static final byte LENGTH_INDEX_IN_HEADER = 2; - private static final Logger LOGGER = LoggerFactory.getLogger(OfFrameDecoder.class); + private static final Logger LOGGER = LoggerFactory.getLogger(OFFrameDecoder.class); /** * Constructor of class. */ - public OfFrameDecoder() { + public OFFrameDecoder() { LOGGER.info("Creating OFFrameDecoder"); } @@ -66,7 +66,7 @@ public class OfFrameDecoder extends ByteToMessageDecoder { private static void enableOFVersionDetector(ChannelHandlerContext ctx) { if (ctx.pipeline().get(COMPONENT_NAMES.OF_VERSION_DETECTOR.name()) == null) { LOGGER.info("Adding OFVD"); - ctx.pipeline().addLast(COMPONENT_NAMES.OF_VERSION_DETECTOR.name(), new OfVersionDetector()); + ctx.pipeline().addLast(COMPONENT_NAMES.OF_VERSION_DETECTOR.name(), new OFVersionDetector()); } else { LOGGER.debug("OFVD already in pipeline"); } diff --git a/openflow-protocol-impl/src/main/java/org/openflow/lib/OfVersionDetector.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/OFVersionDetector.java similarity index 86% rename from openflow-protocol-impl/src/main/java/org/openflow/lib/OfVersionDetector.java rename to openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/OFVersionDetector.java index fd126f6b..8ad45260 100644 --- a/openflow-protocol-impl/src/main/java/org/openflow/lib/OfVersionDetector.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/OFVersionDetector.java @@ -1,5 +1,5 @@ /* Copyright (C)2013 Pantheon Technologies, s.r.o. All rights reserved. */ -package org.openflow.lib; +package org.opendaylight.openflowjava.protocol.impl.core; import io.netty.buffer.ByteBuf; import io.netty.channel.ChannelHandlerContext; @@ -9,7 +9,7 @@ import java.util.List; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.openflow.lib.TcpHandler.COMPONENT_NAMES; +import org.opendaylight.openflowjava.protocol.impl.core.TcpHandler.COMPONENT_NAMES; /** * Class that detects version of used OpenFlow Protocol and engages right OFCodec into @@ -17,16 +17,16 @@ import org.openflow.lib.TcpHandler.COMPONENT_NAMES; * * @author michal.polkorab */ -public class OfVersionDetector extends ByteToMessageDecoder { +public class OFVersionDetector extends ByteToMessageDecoder { /** Version number of OpenFlow 1.3 protocol */ public static final byte OF13_VERSION_ID = 0x04; - private static final Logger LOGGER = LoggerFactory.getLogger(OfVersionDetector.class); + private static final Logger LOGGER = LoggerFactory.getLogger(OFVersionDetector.class); /** * Constructor of class. */ - public OfVersionDetector() { + public OFVersionDetector() { LOGGER.info("Creating OFVersionDetector"); } @@ -59,7 +59,7 @@ public class OfVersionDetector extends ByteToMessageDecoder { private static void enableOF13Codec(ChannelHandlerContext chc) { if (chc.pipeline().get(COMPONENT_NAMES.OF_CODEC.name()) == null) { LOGGER.info("Engaging OF13Codec"); - chc.pipeline().addLast(COMPONENT_NAMES.OF_CODEC.name(), new Of13Codec()); + chc.pipeline().addLast(COMPONENT_NAMES.OF_CODEC.name(), new OF13Codec()); } else { LOGGER.debug("OF13Codec already in pipeline"); } diff --git a/openflow-protocol-impl/src/main/java/org/openflow/lib/PublishingChannelInitializer.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/PublishingChannelInitializer.java similarity index 83% rename from openflow-protocol-impl/src/main/java/org/openflow/lib/PublishingChannelInitializer.java rename to openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/PublishingChannelInitializer.java index 9f166054..0cf8a5bd 100644 --- a/openflow-protocol-impl/src/main/java/org/openflow/lib/PublishingChannelInitializer.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/PublishingChannelInitializer.java @@ -1,4 +1,4 @@ -package org.openflow.lib; +package org.opendaylight.openflowjava.protocol.impl.core; import io.netty.channel.Channel; import io.netty.channel.ChannelInitializer; @@ -6,7 +6,7 @@ import io.netty.channel.group.DefaultChannelGroup; import java.util.Iterator; -import org.openflow.lib.TcpHandler.COMPONENT_NAMES; +import org.opendaylight.openflowjava.protocol.impl.core.TcpHandler.COMPONENT_NAMES; /** * @author michal.polkorab diff --git a/openflow-protocol-impl/src/main/java/org/openflow/lib/SslContextFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/SslContextFactory.java similarity index 97% rename from openflow-protocol-impl/src/main/java/org/openflow/lib/SslContextFactory.java rename to openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/SslContextFactory.java index cc61c382..ab272043 100644 --- a/openflow-protocol-impl/src/main/java/org/openflow/lib/SslContextFactory.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/SslContextFactory.java @@ -1,5 +1,5 @@ /* Copyright (C)2013 Pantheon Technologies, s.r.o. All rights reserved. */ -package org.openflow.lib; +package org.opendaylight.openflowjava.protocol.impl.core; import java.security.KeyStore; import java.security.Security; diff --git a/openflow-protocol-impl/src/main/java/org/openflow/lib/SslKeyStore.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/SslKeyStore.java similarity index 94% rename from openflow-protocol-impl/src/main/java/org/openflow/lib/SslKeyStore.java rename to openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/SslKeyStore.java index 460921c0..8d4e2374 100644 --- a/openflow-protocol-impl/src/main/java/org/openflow/lib/SslKeyStore.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/SslKeyStore.java @@ -1,5 +1,5 @@ /* Copyright (C)2013 Pantheon Technologies, s.r.o. All rights reserved. */ -package org.openflow.lib; +package org.opendaylight.openflowjava.protocol.impl.core; import java.io.InputStream; diff --git a/openflow-protocol-impl/src/main/java/org/openflow/lib/SslTrustManagerFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/SslTrustManagerFactory.java similarity index 97% rename from openflow-protocol-impl/src/main/java/org/openflow/lib/SslTrustManagerFactory.java rename to openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/SslTrustManagerFactory.java index e37c8edf..36e1fdaf 100644 --- a/openflow-protocol-impl/src/main/java/org/openflow/lib/SslTrustManagerFactory.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/SslTrustManagerFactory.java @@ -1,5 +1,5 @@ /* Copyright (C)2013 Pantheon Technologies, s.r.o. All rights reserved. */ -package org.openflow.lib; +package org.opendaylight.openflowjava.protocol.impl.core; import javax.net.ssl.ManagerFactoryParameters; import javax.net.ssl.TrustManager; diff --git a/openflow-protocol-impl/src/main/java/org/openflow/lib/TcpHandler.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/TcpHandler.java similarity index 98% rename from openflow-protocol-impl/src/main/java/org/openflow/lib/TcpHandler.java rename to openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/TcpHandler.java index bc7d985b..5d342fde 100644 --- a/openflow-protocol-impl/src/main/java/org/openflow/lib/TcpHandler.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/TcpHandler.java @@ -1,5 +1,5 @@ /* Copyright (C)2013 Pantheon Technologies, s.r.o. All rights reserved. */ -package org.openflow.lib; +package org.opendaylight.openflowjava.protocol.impl.core; import io.netty.bootstrap.ServerBootstrap; import io.netty.channel.ChannelFuture; diff --git a/openflow-protocol-impl/src/main/java/org/openflow/lib/TlsDetector.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/TlsDetector.java similarity index 92% rename from openflow-protocol-impl/src/main/java/org/openflow/lib/TlsDetector.java rename to openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/TlsDetector.java index cfd5025c..2640626b 100644 --- a/openflow-protocol-impl/src/main/java/org/openflow/lib/TlsDetector.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/TlsDetector.java @@ -1,5 +1,5 @@ /* Copyright (C)2013 Pantheon Technologies, s.r.o. All rights reserved. */ -package org.openflow.lib; +package org.opendaylight.openflowjava.protocol.impl.core; import io.netty.buffer.ByteBuf; import io.netty.channel.ChannelHandlerContext; @@ -13,8 +13,8 @@ import javax.net.ssl.SSLEngine; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.openflow.lib.TcpHandler.COMPONENT_NAMES; -import org.openflow.util.ByteBufUtils; +import org.opendaylight.openflowjava.protocol.impl.core.TcpHandler.COMPONENT_NAMES; +import org.opendaylight.openflowjava.protocol.impl.util.ByteBufUtils; /** * Class for detecting TLS encrypted connection. If TLS encrypted connection is detected, @@ -68,7 +68,7 @@ public class TlsDetector extends ByteToMessageDecoder { ChannelPipeline p = ctx.channel().pipeline(); if (p.get(COMPONENT_NAMES.OF_FRAME_DECODER.name()) == null) { LOGGER.debug("Engaging OFFrameDecoder"); - p.addLast(COMPONENT_NAMES.OF_FRAME_DECODER.name(), new OfFrameDecoder()); + p.addLast(COMPONENT_NAMES.OF_FRAME_DECODER.name(), new OFFrameDecoder()); } else { LOGGER.debug("OFFD already in pipeline"); } diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/DecoderTable.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/DecoderTable.java new file mode 100644 index 00000000..364f7f31 --- /dev/null +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/DecoderTable.java @@ -0,0 +1,97 @@ +/* Copyright (C)2013 Pantheon Technologies, s.r.o. All rights reserved. */ +package org.opendaylight.openflowjava.protocol.impl.deserialization; + +import java.util.HashMap; +import java.util.Map; + +import org.opendaylight.openflowjava.protocol.impl.core.OFVersionDetector; +import org.opendaylight.openflowjava.protocol.impl.deserialization.factories.BarrierReplyMessageFactory; +import org.opendaylight.openflowjava.protocol.impl.deserialization.factories.EchoReplyMessageFactory; +import org.opendaylight.openflowjava.protocol.impl.deserialization.factories.EchoRequestMessageFactory; +import org.opendaylight.openflowjava.protocol.impl.deserialization.factories.ExperimenterMessageFactory; +import org.opendaylight.openflowjava.protocol.impl.deserialization.factories.FeaturesReplyMessageFactory; +import org.opendaylight.openflowjava.protocol.impl.deserialization.factories.HelloMessageFactory; + +/** + * @author michal.polkorab + * + *
         
+ *  Type   Message
+ *   0: HELLO
+ *   1: ERROR
+ *   2: ECHO_REQUEST
+ *   3: ECHO_REPLY
+ *   4: EXPERIMENTER
+ *   5: FEATURES_REQUEST
+ *   6: FEATURES_REPLY
+ *   7: GET_CONFIG_REQUEST
+ *   8: GET_CONFIG_REPLY
+ *   9: SET_CONFIG
+ *   10: PACKET_IN
+ *   11: FLOW_REMOVED
+ *   12: PORT_STATUS
+ *   13: PACKET_OUT
+ *   14: FLOW_MOD
+ *   15: GROUP_MOD
+ *   16: PORT_MOD
+ *   17: TABLE_MOD
+ *   18: MULTIPART_REQUEST
+ *   19: MULTIPART_REPLY
+ *   20: BARRIER_REQUEST
+ *   21: BARRIER_REPLY
+ *   22: QUEUE_GET_CONFIG_REQUEST
+ *   23: QUEUE_GET_CONFIG_REPLY
+ *   24: ROLE_REQUEST
+ *   25: ROLE_REPLY    
+ *   26: GET_ASYNC_REQUEST
+ *   27: GET_ASYNC_REPLY
+ *   28: SET_ASYNC
+ *   29: METER_MOD
+ *   
+ */ +public class DecoderTable { + + private static final short OF13 = OFVersionDetector.OF13_VERSION_ID; + private Map> table; + private static DecoderTable instance; + + + private DecoderTable() { + // do nothing + } + + /** + * @return singleton instance + */ + public static DecoderTable getInstance() { + if (instance == null) { + synchronized (DecoderTable.class) { + instance = new DecoderTable(); + instance.init(); + } + } + return instance; + } + + /** + * Decoder table provisioning + */ + public void init() { + table = new HashMap<>(); + table.put(new MessageTypeCodeKey(OF13, (short) 0), HelloMessageFactory.getInstance()); + table.put(new MessageTypeCodeKey(OF13, (short) 2), EchoRequestMessageFactory.getInstance()); + table.put(new MessageTypeCodeKey(OF13, (short) 3), EchoReplyMessageFactory.getInstance()); + table.put(new MessageTypeCodeKey(OF13, (short) 4), ExperimenterMessageFactory.getInstance()); + table.put(new MessageTypeCodeKey(OF13, (short) 6), FeaturesReplyMessageFactory.getInstance()); + table.put(new MessageTypeCodeKey(OF13, (short) 21), BarrierReplyMessageFactory.getInstance()); + } + + /** + * @param msgTypeKey + * @return decoder for given message types + */ + public OFDeserializer getDecoder(MessageTypeCodeKey msgTypeKey) { + return table.get(msgTypeKey); + } + +} diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/DeserializationFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/DeserializationFactory.java new file mode 100644 index 00000000..a126e6a4 --- /dev/null +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/DeserializationFactory.java @@ -0,0 +1,32 @@ +/* Copyright (C)2013 Pantheon Technologies, s.r.o. All rights reserved. */ +package org.opendaylight.openflowjava.protocol.impl.deserialization; + +import io.netty.buffer.ByteBuf; + +import org.opendaylight.yangtools.yang.binding.DataObject; + +/** + * + * @author michal.polkorab + */ +public abstract class DeserializationFactory { + + /** + * Transforms ByteBuf into correct POJO message + * @param rawMessage + * @param version version decoded from OpenFlow protocol message + * @return correct POJO as DataObject + */ + public static DataObject bufferToMessage(ByteBuf rawMessage, short version) { + DataObject dataObject = null; + short type = rawMessage.readUnsignedByte(); + + // TODO - check if no change happened, so that skipping length would cause problems + rawMessage.skipBytes(Short.SIZE / Byte.SIZE); + + MessageTypeCodeKey msgTypeCodeKey = new MessageTypeCodeKey(version, type); + OFDeserializer decoder = DecoderTable.getInstance().getDecoder(msgTypeCodeKey); + dataObject = decoder.bufferToMessage(rawMessage, version); + return dataObject; + } +} diff --git a/openflow-protocol-impl/src/main/java/org/openflow/lib/deserialization/MessageTypeCodeKey.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/MessageTypeCodeKey.java similarity index 91% rename from openflow-protocol-impl/src/main/java/org/openflow/lib/deserialization/MessageTypeCodeKey.java rename to openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/MessageTypeCodeKey.java index 843265d4..7adc8623 100644 --- a/openflow-protocol-impl/src/main/java/org/openflow/lib/deserialization/MessageTypeCodeKey.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/MessageTypeCodeKey.java @@ -1,5 +1,5 @@ /* Copyright (C)2013 Pantheon Technologies, s.r.o. All rights reserved. */ -package org.openflow.lib.deserialization; +package org.opendaylight.openflowjava.protocol.impl.deserialization; /** * @author michal.polkorab diff --git a/openflow-protocol-impl/src/main/java/org/openflow/lib/deserialization/OfDeserializer.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/OFDeserializer.java similarity index 80% rename from openflow-protocol-impl/src/main/java/org/openflow/lib/deserialization/OfDeserializer.java rename to openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/OFDeserializer.java index 4eed289c..0ea40eec 100644 --- a/openflow-protocol-impl/src/main/java/org/openflow/lib/deserialization/OfDeserializer.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/OFDeserializer.java @@ -1,5 +1,5 @@ /* Copyright (C)2013 Pantheon Technologies, s.r.o. All rights reserved. */ -package org.openflow.lib.deserialization; +package org.opendaylight.openflowjava.protocol.impl.deserialization; import org.opendaylight.yangtools.yang.binding.DataObject; @@ -10,7 +10,7 @@ import io.netty.buffer.ByteBuf; * * @param message code type */ -public interface OfDeserializer { +public interface OFDeserializer { /** * Transforms byte message into POJO/DTO (of type E). diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/BarrierReplyMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/BarrierReplyMessageFactory.java new file mode 100644 index 00000000..3ec39752 --- /dev/null +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/BarrierReplyMessageFactory.java @@ -0,0 +1,41 @@ +package org.opendaylight.openflowjava.protocol.impl.deserialization.factories; + +import io.netty.buffer.ByteBuf; + +import org.opendaylight.openflowjava.protocol.impl.deserialization.OFDeserializer; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.BarrierOutput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.BarrierOutputBuilder; + +/** + * @author michal.polkorab + * @author timotej.kubas + * + */ +public class BarrierReplyMessageFactory implements + OFDeserializer { + + private static BarrierReplyMessageFactory instance; + + private BarrierReplyMessageFactory() { + // do nothing, just singleton + } + + /** + * @return singleton factory + */ + public static BarrierReplyMessageFactory getInstance() { + if (instance == null) { + instance = new BarrierReplyMessageFactory(); + } + return instance; + } + + @Override + public BarrierOutput bufferToMessage(ByteBuf rawMessage, short version) { + BarrierOutputBuilder bob = new BarrierOutputBuilder(); + bob.setVersion(version); + bob.setXid(rawMessage.readUnsignedInt()); + return bob.build(); + } + +} diff --git a/openflow-protocol-impl/src/main/java/org/openflow/deserialization/factories/EchoReplyMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/EchoReplyMessageFactory.java similarity index 82% rename from openflow-protocol-impl/src/main/java/org/openflow/deserialization/factories/EchoReplyMessageFactory.java rename to openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/EchoReplyMessageFactory.java index 4b0b3c57..3b5fcc6c 100644 --- a/openflow-protocol-impl/src/main/java/org/openflow/deserialization/factories/EchoReplyMessageFactory.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/EchoReplyMessageFactory.java @@ -1,17 +1,17 @@ /* Copyright (C)2013 Pantheon Technologies, s.r.o. All rights reserved. */ -package org.openflow.deserialization.factories; +package org.opendaylight.openflowjava.protocol.impl.deserialization.factories; import io.netty.buffer.ByteBuf; +import org.opendaylight.openflowjava.protocol.impl.deserialization.OFDeserializer; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.EchoOutput; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.EchoOutputBuilder; -import org.openflow.lib.deserialization.OfDeserializer; /** * @author michal.polkorab * */ -public class EchoReplyMessageFactory implements OfDeserializer { +public class EchoReplyMessageFactory implements OFDeserializer { private static EchoReplyMessageFactory instance; diff --git a/openflow-protocol-impl/src/main/java/org/openflow/deserialization/factories/EchoRequestMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/EchoRequestMessageFactory.java similarity index 81% rename from openflow-protocol-impl/src/main/java/org/openflow/deserialization/factories/EchoRequestMessageFactory.java rename to openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/EchoRequestMessageFactory.java index 357936a3..11807db1 100644 --- a/openflow-protocol-impl/src/main/java/org/openflow/deserialization/factories/EchoRequestMessageFactory.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/EchoRequestMessageFactory.java @@ -1,17 +1,17 @@ /* Copyright (C)2013 Pantheon Technologies, s.r.o. All rights reserved. */ -package org.openflow.deserialization.factories; +package org.opendaylight.openflowjava.protocol.impl.deserialization.factories; import io.netty.buffer.ByteBuf; +import org.opendaylight.openflowjava.protocol.impl.deserialization.OFDeserializer; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.EchoRequestMessage; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.EchoRequestMessageBuilder; -import org.openflow.lib.deserialization.OfDeserializer; /** * @author michal.polkorab * */ -public class EchoRequestMessageFactory implements OfDeserializer{ +public class EchoRequestMessageFactory implements OFDeserializer{ private static EchoRequestMessageFactory instance; diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/ExperimenterMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/ExperimenterMessageFactory.java new file mode 100644 index 00000000..ea500b7c --- /dev/null +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/ExperimenterMessageFactory.java @@ -0,0 +1,46 @@ +package org.opendaylight.openflowjava.protocol.impl.deserialization.factories; + +import io.netty.buffer.ByteBuf; + +import org.opendaylight.openflowjava.protocol.impl.deserialization.OFDeserializer; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.ExperimenterMessage; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.ExperimenterMessageBuilder; + +/** + * + * @author michal.polkorab, + * @author timotej.kubas + * + */ +public class ExperimenterMessageFactory implements OFDeserializer{ + + private static ExperimenterMessageFactory instance; + + private ExperimenterMessageFactory() { + //singleton + } + + + /** + * @return singleton factory + */ + public static ExperimenterMessageFactory getInstance(){ + if (instance == null){ + instance = new ExperimenterMessageFactory(); + } + + return instance; + } + + @Override + public ExperimenterMessage bufferToMessage(ByteBuf rawMessage, short version) { + ExperimenterMessageBuilder emb = new ExperimenterMessageBuilder(); + emb.setVersion(version); + emb.setXid(rawMessage.readUnsignedInt()); + emb.setExperimenter(rawMessage.readUnsignedInt()); + emb.setExpType(rawMessage.readUnsignedInt()); + return emb.build(); + } + + +} diff --git a/openflow-protocol-impl/src/main/java/org/openflow/deserialization/factories/FeaturesReplyMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/FeaturesReplyMessageFactory.java similarity index 86% rename from openflow-protocol-impl/src/main/java/org/openflow/deserialization/factories/FeaturesReplyMessageFactory.java rename to openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/FeaturesReplyMessageFactory.java index 01d5c3f6..a33c8092 100644 --- a/openflow-protocol-impl/src/main/java/org/openflow/deserialization/factories/FeaturesReplyMessageFactory.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/FeaturesReplyMessageFactory.java @@ -1,19 +1,19 @@ /* Copyright (C)2013 Pantheon Technologies, s.r.o. All rights reserved. */ -package org.openflow.deserialization.factories; +package org.opendaylight.openflowjava.protocol.impl.deserialization.factories; import io.netty.buffer.ByteBuf; import java.math.BigInteger; +import org.opendaylight.openflowjava.protocol.impl.deserialization.OFDeserializer; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetFeaturesOutput; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetFeaturesOutputBuilder; -import org.openflow.lib.deserialization.OfDeserializer; /** * @author michal.polkorab * */ -public class FeaturesReplyMessageFactory implements OfDeserializer{ +public class FeaturesReplyMessageFactory implements OFDeserializer{ private static final byte PADDING_IN_FEATURES_REPLY_HEADER = 2; diff --git a/openflow-protocol-impl/src/main/java/org/openflow/deserialization/factories/HelloMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/HelloMessageFactory.java similarity index 79% rename from openflow-protocol-impl/src/main/java/org/openflow/deserialization/factories/HelloMessageFactory.java rename to openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/HelloMessageFactory.java index 9b25dad7..e1963b86 100644 --- a/openflow-protocol-impl/src/main/java/org/openflow/deserialization/factories/HelloMessageFactory.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/HelloMessageFactory.java @@ -1,17 +1,17 @@ /* Copyright (C)2013 Pantheon Technologies, s.r.o. All rights reserved. */ -package org.openflow.deserialization.factories; +package org.opendaylight.openflowjava.protocol.impl.deserialization.factories; import io.netty.buffer.ByteBuf; +import org.opendaylight.openflowjava.protocol.impl.deserialization.OFDeserializer; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.HelloMessage; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.HelloMessageBuilder; -import org.openflow.lib.deserialization.OfDeserializer; /** * @author michal.polkorab * */ -public class HelloMessageFactory implements OfDeserializer { +public class HelloMessageFactory implements OFDeserializer { private static HelloMessageFactory instance; diff --git a/openflow-protocol-impl/src/main/java/org/openflow/lib/serialization/EncoderTable.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/EncoderTable.java similarity index 68% rename from openflow-protocol-impl/src/main/java/org/openflow/lib/serialization/EncoderTable.java rename to openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/EncoderTable.java index a29e51e4..e196d878 100644 --- a/openflow-protocol-impl/src/main/java/org/openflow/lib/serialization/EncoderTable.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/EncoderTable.java @@ -1,13 +1,13 @@ /* Copyright (C)2013 Pantheon Technologies, s.r.o. All rights reserved. */ -package org.openflow.lib.serialization; +package org.opendaylight.openflowjava.protocol.impl.serialization; import java.util.HashMap; import java.util.Map; +import org.opendaylight.openflowjava.protocol.impl.core.OFVersionDetector; +import org.opendaylight.openflowjava.protocol.impl.serialization.factories.HelloInputMessageFactory; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.HelloInput; import org.opendaylight.yangtools.yang.binding.DataObject; -import org.openflow.lib.OfVersionDetector; -import org.openflow.lib.serialization.factories.HelloInputMessageFactory; /** * @author michal.polkorab @@ -15,9 +15,9 @@ import org.openflow.lib.serialization.factories.HelloInputMessageFactory; */ public class EncoderTable { - private static final short OF13 = OfVersionDetector.OF13_VERSION_ID; + private static final short OF13 = OFVersionDetector.OF13_VERSION_ID; private static EncoderTable instance; - private Map, OfSerializer> table; + private Map, OFSerializer> table; private EncoderTable() { @@ -50,8 +50,8 @@ public class EncoderTable { * @return encoder for current type of message (msgTypeKey) */ @SuppressWarnings("unchecked") - public OfSerializer getEncoder(MessageTypeKey msgTypeKey) { - return (OfSerializer) table.get(msgTypeKey); + public OFSerializer getEncoder(MessageTypeKey msgTypeKey) { + return (OFSerializer) table.get(msgTypeKey); } } diff --git a/openflow-protocol-impl/src/main/java/org/openflow/lib/serialization/MessageTypeKey.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/MessageTypeKey.java similarity index 92% rename from openflow-protocol-impl/src/main/java/org/openflow/lib/serialization/MessageTypeKey.java rename to openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/MessageTypeKey.java index d8000efc..1741d027 100644 --- a/openflow-protocol-impl/src/main/java/org/openflow/lib/serialization/MessageTypeKey.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/MessageTypeKey.java @@ -1,5 +1,5 @@ /* Copyright (C)2013 Pantheon Technologies, s.r.o. All rights reserved. */ -package org.openflow.lib.serialization; +package org.opendaylight.openflowjava.protocol.impl.serialization; import org.opendaylight.yangtools.yang.binding.DataObject; diff --git a/openflow-protocol-impl/src/main/java/org/openflow/lib/serialization/OfSerializer.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/OFSerializer.java similarity index 79% rename from openflow-protocol-impl/src/main/java/org/openflow/lib/serialization/OfSerializer.java rename to openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/OFSerializer.java index 434c6635..b8d16c53 100644 --- a/openflow-protocol-impl/src/main/java/org/openflow/lib/serialization/OfSerializer.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/OFSerializer.java @@ -1,5 +1,5 @@ /* Copyright (C)2013 Pantheon Technologies, s.r.o. All rights reserved. */ -package org.openflow.lib.serialization; +package org.opendaylight.openflowjava.protocol.impl.serialization; import io.netty.buffer.ByteBuf; @@ -10,7 +10,7 @@ import org.opendaylight.yangtools.yang.binding.DataObject; * * @param message type */ -public interface OfSerializer { +public interface OFSerializer { /** * Transforms POJO/DTO into byte message (ByteBuf). diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/SerializationFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/SerializationFactory.java new file mode 100644 index 00000000..a7bffe5e --- /dev/null +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/SerializationFactory.java @@ -0,0 +1,26 @@ +/* Copyright (C)2013 Pantheon Technologies, s.r.o. All rights reserved. */ +package org.opendaylight.openflowjava.protocol.impl.serialization; + +import io.netty.buffer.ByteBuf; + +import org.opendaylight.yangtools.yang.binding.DataObject; + +/** + * @author michal.polkorab + * + */ +public class SerializationFactory { + + /** + * Transforms POJO message into ByteBuf + * @param version version used for encoding received message + * @param out ByteBuf for storing and sending transformed message + * @param message POJO message + */ + public static void messageToBuffer(short version, ByteBuf out, E message) { + @SuppressWarnings("unchecked") + MessageTypeKey msgTypeKey = new MessageTypeKey(version, (Class) message.getClass()); + OFSerializer encoder = EncoderTable.getInstance().getEncoder(msgTypeKey); + encoder.messageToBuffer(version, out, message); + } +} diff --git a/openflow-protocol-impl/src/main/java/org/openflow/lib/serialization/factories/HelloInputMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/HelloInputMessageFactory.java similarity index 72% rename from openflow-protocol-impl/src/main/java/org/openflow/lib/serialization/factories/HelloInputMessageFactory.java rename to openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/HelloInputMessageFactory.java index 2a7169e9..86c612a3 100644 --- a/openflow-protocol-impl/src/main/java/org/openflow/lib/serialization/factories/HelloInputMessageFactory.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/HelloInputMessageFactory.java @@ -1,17 +1,17 @@ /* Copyright (C)2013 Pantheon Technologies, s.r.o. All rights reserved. */ -package org.openflow.lib.serialization.factories; +package org.opendaylight.openflowjava.protocol.impl.serialization.factories; import io.netty.buffer.ByteBuf; +import org.opendaylight.openflowjava.protocol.impl.core.OFFrameDecoder; +import org.opendaylight.openflowjava.protocol.impl.serialization.OFSerializer; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.HelloInput; -import org.openflow.lib.OfFrameDecoder; -import org.openflow.lib.serialization.OfSerializer; /** * @author michal.polkorab * */ -public class HelloInputMessageFactory implements OfSerializer{ +public class HelloInputMessageFactory implements OFSerializer{ /** Code type of HelloMessage */ public static final byte MESSAGE_TYPE = 0; @@ -35,7 +35,7 @@ public class HelloInputMessageFactory implements OfSerializer{ public void messageToBuffer(short version, ByteBuf out, HelloInput message) { out.writeByte(message.getVersion()); out.writeByte(MESSAGE_TYPE); - out.writeShort(OfFrameDecoder.LENGTH_OF_HEADER); + out.writeShort(OFFrameDecoder.LENGTH_OF_HEADER); out.writeInt(message.getXid().intValue()); // TODO - fill list of elements into ByteBuf, check length too } diff --git a/openflow-protocol-impl/src/main/java/org/openflow/util/ByteBufUtils.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/ByteBufUtils.java similarity index 88% rename from openflow-protocol-impl/src/main/java/org/openflow/util/ByteBufUtils.java rename to openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/ByteBufUtils.java index c4f7a962..b5e01e79 100644 --- a/openflow-protocol-impl/src/main/java/org/openflow/util/ByteBufUtils.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/ByteBufUtils.java @@ -1,6 +1,6 @@ /* Copyright (C)2013 Pantheon Technologies, s.r.o. All rights reserved. */ -package org.openflow.util; +package org.opendaylight.openflowjava.protocol.impl.util; import io.netty.buffer.ByteBuf; diff --git a/openflow-protocol-impl/src/main/java/org/openflow/lib/deserialization/DecoderTable.java b/openflow-protocol-impl/src/main/java/org/openflow/lib/deserialization/DecoderTable.java deleted file mode 100644 index 4f5fd078..00000000 --- a/openflow-protocol-impl/src/main/java/org/openflow/lib/deserialization/DecoderTable.java +++ /dev/null @@ -1,60 +0,0 @@ -/* Copyright (C)2013 Pantheon Technologies, s.r.o. All rights reserved. */ -package org.openflow.lib.deserialization; - -import java.util.HashMap; -import java.util.Map; - -import org.openflow.deserialization.factories.EchoReplyMessageFactory; -import org.openflow.deserialization.factories.EchoRequestMessageFactory; -import org.openflow.deserialization.factories.FeaturesReplyMessageFactory; -import org.openflow.deserialization.factories.HelloMessageFactory; -import org.openflow.lib.OfVersionDetector; - -/** - * @author michal.polkorab - * - */ -public class DecoderTable { - - private static final short OF13 = OfVersionDetector.OF13_VERSION_ID; - private Map> table; - private static DecoderTable instance; - - - private DecoderTable() { - // do nothing - } - - /** - * @return singleton instance - */ - public static DecoderTable getInstance() { - if (instance == null) { - synchronized (DecoderTable.class) { - instance = new DecoderTable(); - instance.init(); - } - } - return instance; - } - - /** - * Decoder table provisioning - */ - public void init() { - table = new HashMap<>(); - table.put(new MessageTypeCodeKey(OF13, (short) 0), HelloMessageFactory.getInstance()); - table.put(new MessageTypeCodeKey(OF13, (short) 2), EchoRequestMessageFactory.getInstance()); - table.put(new MessageTypeCodeKey(OF13, (short) 3), EchoReplyMessageFactory.getInstance()); - table.put(new MessageTypeCodeKey(OF13, (short) 6), FeaturesReplyMessageFactory.getInstance()); - } - - /** - * @param msgTypeKey - * @return decoder for given message types - */ - public OfDeserializer getDecoder(MessageTypeCodeKey msgTypeKey) { - return table.get(msgTypeKey); - } - -} diff --git a/openflow-protocol-impl/src/main/java/org/openflow/lib/deserialization/DeserializationFactory.java b/openflow-protocol-impl/src/main/java/org/openflow/lib/deserialization/DeserializationFactory.java deleted file mode 100644 index 8ffc08b6..00000000 --- a/openflow-protocol-impl/src/main/java/org/openflow/lib/deserialization/DeserializationFactory.java +++ /dev/null @@ -1,65 +0,0 @@ -/* Copyright (C)2013 Pantheon Technologies, s.r.o. All rights reserved. */ -package org.openflow.lib.deserialization; - -import io.netty.buffer.ByteBuf; - -import org.opendaylight.yangtools.yang.binding.DataObject; - -/** - * - * @author michal.polkorab - */ -public abstract class DeserializationFactory { - - /** - * Transforms ByteBuf into correct POJO message - * @param rawMessage - * @param version version decoded from OpenFlow protocol message - * @return correct POJO as DataObject - */ - public static DataObject bufferToMessage(ByteBuf rawMessage, short version) { - DataObject dataObject = null; - short type = rawMessage.readUnsignedByte(); - - // TODO - check if no change happened, so that skipping length would cause problems - rawMessage.skipBytes(Short.SIZE / Byte.SIZE); - - MessageTypeCodeKey msgTypeCodeKey = new MessageTypeCodeKey(version, type); - OfDeserializer decoder = DecoderTable.getInstance().getDecoder(msgTypeCodeKey); - dataObject = decoder.bufferToMessage(rawMessage, version); - /* - Type Message - 0: HELLO - 1: ERROR - 2: ECHO_REQUEST - 3: ECHO_REPLY - 4: EXPERIMENTER - 5: FEATURES_REQUEST - 6: FEATURES_REPLY - 7: GET_CONFIG_REQUEST - 8: GET_CONFIG_REPLY - 9: SET_CONFIG - 10: PACKET_IN - 11: FLOW_REMOVED - 12: PORT_STATUS - 13: PACKET_OUT - 14: FLOW_MOD - 15: GROUP_MOD - 16: PORT_MOD - 17: TABLE_MOD - 18: MULTIPART_REQUEST - 19: MULTIPART_REPLY - 20: BARRIER_REQUEST - 21: BARRIER_REPLY - 22: QUEUE_GET_CONFIG_REQUEST - 23: QUEUE_GET_CONFIG_REPLY - 24: ROLE_REQUEST - 25: ROLE_REPLY - 26: GET_ASYNC_REQUEST - 27: GET_ASYNC_REPLY - 28: SET_ASYNC - 29: METER_MOD - */ - return dataObject; - } -} diff --git a/openflow-protocol-impl/src/main/java/org/openflow/lib/serialization/SerializationFactory.java b/openflow-protocol-impl/src/main/java/org/openflow/lib/serialization/SerializationFactory.java deleted file mode 100644 index d7214a20..00000000 --- a/openflow-protocol-impl/src/main/java/org/openflow/lib/serialization/SerializationFactory.java +++ /dev/null @@ -1,59 +0,0 @@ -/* Copyright (C)2013 Pantheon Technologies, s.r.o. All rights reserved. */ -package org.openflow.lib.serialization; - -import io.netty.buffer.ByteBuf; - -import org.opendaylight.yangtools.yang.binding.DataObject; - -/** - * @author michal.polkorab - * - */ -public class SerializationFactory { - - /** - * Transforms POJO message into ByteBuf - * @param version version used for encoding received message - * @param out ByteBuf for storing and sending transformed message - * @param message POJO message - */ - public static void messageToBuffer(short version, ByteBuf out, E message) { - @SuppressWarnings("unchecked") - MessageTypeKey msgTypeKey = new MessageTypeKey(version, (Class) message.getClass()); - OfSerializer encoder = EncoderTable.getInstance().getEncoder(msgTypeKey); - encoder.messageToBuffer(version, out, message); - /* - Type Message - 0: HELLO - 1: ERROR - 2: ECHO_REQUEST - 3: ECHO_REPLY - 4: EXPERIMENTER - 5: FEATURES_REQUEST - 6: FEATURES_REPLY - 7: GET_CONFIG_REQUEST - 8: GET_CONFIG_REPLY - 9: SET_CONFIG - 10: PACKET_IN - 11: FLOW_REMOVED - 12: PORT_STATUS - 13: PACKET_OUT - 14: FLOW_MOD - 15: GROUP_MOD - 16: PORT_MOD - 17: TABLE_MOD - 18: MULTIPART_REQUEST - 19: MULTIPART_REPLY - 20: BARRIER_REQUEST - 21: BARRIER_REPLY - 22: QUEUE_GET_CONFIG_REQUEST - 23: QUEUE_GET_CONFIG_REPLY - 24: ROLE_REQUEST - 25: ROLE_REPLY - 26: GET_ASYNC_REQUEST - 27: GET_ASYNC_REPLY - 28: SET_ASYNC - 29: METER_MOD - */ - } -} diff --git a/openflow-protocol-impl/src/test/java/org/openflow/lib/clients/SimpleClient.java b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/clients/SimpleClient.java similarity index 98% rename from openflow-protocol-impl/src/test/java/org/openflow/lib/clients/SimpleClient.java rename to openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/clients/SimpleClient.java index ca2c680c..a7318957 100644 --- a/openflow-protocol-impl/src/test/java/org/openflow/lib/clients/SimpleClient.java +++ b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/clients/SimpleClient.java @@ -1,5 +1,5 @@ /* Copyright (C)2013 Pantheon Technologies, s.r.o. All rights reserved. */ -package org.openflow.lib.clients; +package org.opendaylight.openflowjava.protocol.impl.clients; import io.netty.bootstrap.Bootstrap; import io.netty.buffer.ByteBuf; diff --git a/openflow-protocol-impl/src/test/java/org/openflow/lib/clients/SimpleClientHandler.java b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/clients/SimpleClientHandler.java similarity index 89% rename from openflow-protocol-impl/src/test/java/org/openflow/lib/clients/SimpleClientHandler.java rename to openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/clients/SimpleClientHandler.java index 69d5275d..fa2dbf96 100644 --- a/openflow-protocol-impl/src/test/java/org/openflow/lib/clients/SimpleClientHandler.java +++ b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/clients/SimpleClientHandler.java @@ -1,12 +1,12 @@ /* Copyright (C)2013 Pantheon Technologies, s.r.o. All rights reserved. */ -package org.openflow.lib.clients; +package org.opendaylight.openflowjava.protocol.impl.clients; import io.netty.buffer.ByteBuf; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelInboundHandlerAdapter; -import org.openflow.util.ByteBufUtils; +import org.opendaylight.openflowjava.protocol.impl.util.ByteBufUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/openflow-protocol-impl/src/test/java/org/openflow/lib/clients/SimpleClientInitializer.java b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/clients/SimpleClientInitializer.java similarity index 89% rename from openflow-protocol-impl/src/test/java/org/openflow/lib/clients/SimpleClientInitializer.java rename to openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/clients/SimpleClientInitializer.java index 9d121e58..cf6f01dd 100644 --- a/openflow-protocol-impl/src/test/java/org/openflow/lib/clients/SimpleClientInitializer.java +++ b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/clients/SimpleClientInitializer.java @@ -1,6 +1,6 @@ /* Copyright (C)2013 Pantheon Technologies, s.r.o. All rights reserved. */ -package org.openflow.lib.clients; +package org.opendaylight.openflowjava.protocol.impl.clients; import io.netty.channel.ChannelInitializer; import io.netty.channel.ChannelPipeline; @@ -9,7 +9,7 @@ import io.netty.handler.ssl.SslHandler; import javax.net.ssl.SSLEngine; -import org.openflow.lib.SslContextFactory; +import org.opendaylight.openflowjava.protocol.impl.core.SslContextFactory; import com.google.common.util.concurrent.SettableFuture; diff --git a/openflow-protocol-impl/src/test/java/org/openflow/lib/DummyDecoder.java b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/core/DummyDecoder.java similarity index 88% rename from openflow-protocol-impl/src/test/java/org/openflow/lib/DummyDecoder.java rename to openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/core/DummyDecoder.java index 1e3dcef3..73d5c235 100644 --- a/openflow-protocol-impl/src/test/java/org/openflow/lib/DummyDecoder.java +++ b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/core/DummyDecoder.java @@ -1,5 +1,5 @@ /* Copyright (C)2013 Pantheon Technologies, s.r.o. All rights reserved. */ -package org.openflow.lib; +package org.opendaylight.openflowjava.protocol.impl.core; import io.netty.buffer.ByteBuf; import io.netty.channel.ChannelHandlerContext; diff --git a/openflow-protocol-impl/src/test/java/org/openflow/lib/OFFrameDecoderTest.java b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/core/OFFrameDecoderTest.java similarity index 81% rename from openflow-protocol-impl/src/test/java/org/openflow/lib/OFFrameDecoderTest.java rename to openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/core/OFFrameDecoderTest.java index 9b82c6cd..6ad32adb 100644 --- a/openflow-protocol-impl/src/test/java/org/openflow/lib/OFFrameDecoderTest.java +++ b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/core/OFFrameDecoderTest.java @@ -1,5 +1,5 @@ /* Copyright (C)2013 Pantheon Technologies, s.r.o. All rights reserved. */ -package org.openflow.lib; +package org.opendaylight.openflowjava.protocol.impl.core; import io.netty.buffer.ByteBuf; import io.netty.channel.embedded.EmbeddedChannel; @@ -7,10 +7,10 @@ import io.netty.channel.embedded.EmbeddedChannel; import org.junit.Assert; import org.junit.Before; import org.junit.Test; -import org.openflow.lib.OfFrameDecoder; +import org.opendaylight.openflowjava.protocol.impl.core.OFFrameDecoder; /** - * Testing class of {@link OfFrameDecoder} + * Testing class of {@link OFFrameDecoder} * @author michal.polkorab */ public class OFFrameDecoderTest { @@ -22,11 +22,11 @@ public class OFFrameDecoderTest { */ @Before public void setUp() { - embch = new EmbeddedChannel(new OfFrameDecoder()); + embch = new EmbeddedChannel(new OFFrameDecoder()); } /** - * Test of decoding {@link OfFrameDecoder#decode(io.netty.channel.ChannelHandlerContext, io.netty.buffer.ByteBuf, java.util.List)} + * Test of decoding {@link OFFrameDecoder#decode(io.netty.channel.ChannelHandlerContext, io.netty.buffer.ByteBuf, java.util.List)} * @throws Exception */ @Test @@ -41,7 +41,7 @@ public class OFFrameDecoderTest { } /** - * Test of decoding {@link OfFrameDecoder#decode(io.netty.channel.ChannelHandlerContext, io.netty.buffer.ByteBuf, java.util.List)} + * Test of decoding {@link OFFrameDecoder#decode(io.netty.channel.ChannelHandlerContext, io.netty.buffer.ByteBuf, java.util.List)} * @throws Exception */ @Test @@ -57,7 +57,7 @@ public class OFFrameDecoderTest { } /** - * Test of decoding {@link OfFrameDecoder#decode(io.netty.channel.ChannelHandlerContext, io.netty.buffer.ByteBuf, java.util.List)} + * Test of decoding {@link OFFrameDecoder#decode(io.netty.channel.ChannelHandlerContext, io.netty.buffer.ByteBuf, java.util.List)} * @throws Exception */ @Test @@ -72,7 +72,7 @@ public class OFFrameDecoderTest { } /** - * Test of decoding {@link OfFrameDecoder#decode(io.netty.channel.ChannelHandlerContext, io.netty.buffer.ByteBuf, java.util.List)} + * Test of decoding {@link OFFrameDecoder#decode(io.netty.channel.ChannelHandlerContext, io.netty.buffer.ByteBuf, java.util.List)} * @throws Exception */ @Test diff --git a/openflow-protocol-impl/src/test/java/org/openflow/lib/OFVersionDetectorTest.java b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/core/OFVersionDetectorTest.java similarity index 77% rename from openflow-protocol-impl/src/test/java/org/openflow/lib/OFVersionDetectorTest.java rename to openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/core/OFVersionDetectorTest.java index dcd822d4..8bf4907a 100644 --- a/openflow-protocol-impl/src/test/java/org/openflow/lib/OFVersionDetectorTest.java +++ b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/core/OFVersionDetectorTest.java @@ -1,5 +1,5 @@ /* Copyright (C)2013 Pantheon Technologies, s.r.o. All rights reserved. */ -package org.openflow.lib; +package org.opendaylight.openflowjava.protocol.impl.core; import io.netty.buffer.ByteBuf; import io.netty.channel.embedded.EmbeddedChannel; @@ -7,8 +7,8 @@ import io.netty.channel.embedded.EmbeddedChannel; import org.junit.Assert; import org.junit.Before; import org.junit.Test; -import org.openflow.lib.OfVersionDetector; -import org.openflow.lib.TcpHandler.COMPONENT_NAMES; +import org.opendaylight.openflowjava.protocol.impl.core.OFVersionDetector; +import org.opendaylight.openflowjava.protocol.impl.core.TcpHandler.COMPONENT_NAMES; /** * @@ -23,11 +23,11 @@ public class OFVersionDetectorTest { */ @Before public void setUp() { - embch = new EmbeddedChannel(new OfVersionDetector()); + embch = new EmbeddedChannel(new OFVersionDetector()); } /** - * Test of decode {@link OfVersionDetector#decode(io.netty.channel.ChannelHandlerContext, io.netty.buffer.ByteBuf, java.util.List) + * Test of decode {@link OFVersionDetector#decode(io.netty.channel.ChannelHandlerContext, io.netty.buffer.ByteBuf, java.util.List) * } * @throws Exception */ @@ -44,7 +44,7 @@ public class OFVersionDetectorTest { } /** - * Test of decode {@link OfVersionDetector#decode(io.netty.channel.ChannelHandlerContext, io.netty.buffer.ByteBuf, java.util.List) + * Test of decode {@link OFVersionDetector#decode(io.netty.channel.ChannelHandlerContext, io.netty.buffer.ByteBuf, java.util.List) * } * @throws Exception */ diff --git a/openflow-protocol-impl/src/test/java/org/openflow/lib/TCPHandlerTest.java b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/core/TcpHandlerTest.java similarity index 94% rename from openflow-protocol-impl/src/test/java/org/openflow/lib/TCPHandlerTest.java rename to openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/core/TcpHandlerTest.java index 03bc5915..47b2a334 100644 --- a/openflow-protocol-impl/src/test/java/org/openflow/lib/TCPHandlerTest.java +++ b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/core/TcpHandlerTest.java @@ -1,5 +1,5 @@ /* Copyright (C)2013 Pantheon Technologies, s.r.o. All rights reserved. */ -package org.openflow.lib; +package org.opendaylight.openflowjava.protocol.impl.core; import io.netty.channel.Channel; import io.netty.util.concurrent.Future; @@ -14,7 +14,9 @@ import org.junit.After; import org.junit.Assert; import org.junit.Before; import org.junit.Test; -import org.openflow.lib.clients.SimpleClient; +import org.opendaylight.openflowjava.protocol.impl.clients.SimpleClient; +import org.opendaylight.openflowjava.protocol.impl.core.PublishingChannelInitializer; +import org.opendaylight.openflowjava.protocol.impl.core.TcpHandler; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -22,13 +24,13 @@ import org.slf4j.LoggerFactory; * * @author michal.polkorab */ -public class TCPHandlerTest { +public class TcpHandlerTest { /** Name of file in which OpenFLow protocol messages are stored in binary format */ private static final String OF_BINARY_MESSAGE_INPUT_TXT = "OFBinaryMessageInput.txt"; protected static final Logger LOGGER = LoggerFactory - .getLogger(TCPHandlerTest.class); + .getLogger(TcpHandlerTest.class); private static final long CONNECTION_TIMEOUT = 2000; diff --git a/openflow-protocol-impl/src/test/java/org/openflow/lib/TLSDetectorTest.java b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/core/TlsDetectorTest.java similarity index 77% rename from openflow-protocol-impl/src/test/java/org/openflow/lib/TLSDetectorTest.java rename to openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/core/TlsDetectorTest.java index c473aa84..1279ef6b 100644 --- a/openflow-protocol-impl/src/test/java/org/openflow/lib/TLSDetectorTest.java +++ b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/core/TlsDetectorTest.java @@ -1,5 +1,5 @@ /* Copyright (C)2013 Pantheon Technologies, s.r.o. All rights reserved. */ -package org.openflow.lib; +package org.opendaylight.openflowjava.protocol.impl.core; import io.netty.buffer.ByteBuf; import io.netty.channel.embedded.EmbeddedChannel; @@ -7,15 +7,15 @@ import io.netty.channel.embedded.EmbeddedChannel; import org.junit.Assert; import org.junit.Before; import org.junit.Test; -import org.openflow.lib.TcpHandler; -import org.openflow.lib.TlsDetector; -import org.openflow.lib.TcpHandler.COMPONENT_NAMES; +import org.opendaylight.openflowjava.protocol.impl.core.TcpHandler; +import org.opendaylight.openflowjava.protocol.impl.core.TlsDetector; +import org.opendaylight.openflowjava.protocol.impl.core.TcpHandler.COMPONENT_NAMES; /** * * @author michal.polkorab */ -public class TLSDetectorTest { +public class TlsDetectorTest { private EmbeddedChannel embch; diff --git a/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/BarrierReplyMessageFactoryTest.java b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/BarrierReplyMessageFactoryTest.java new file mode 100644 index 00000000..bbd8af74 --- /dev/null +++ b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/BarrierReplyMessageFactoryTest.java @@ -0,0 +1,29 @@ +/* Copyright (C)2013 Pantheon Technologies, s.r.o. All rights reserved. */ +package org.opendaylight.openflowjava.protocol.impl.deserialization.factories; + +import io.netty.buffer.ByteBuf; + +import org.junit.Assert; +import org.junit.Test; +import org.opendaylight.openflowjava.protocol.impl.deserialization.factories.BarrierReplyMessageFactory; +import org.opendaylight.openflowjava.protocol.impl.util.BufferHelper; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.BarrierOutput; + +/** + * @author michal.polkorab + * + */ +public class BarrierReplyMessageFactoryTest { + + /** + * Testing of {@link BarrierReplyMessageFactory} for correct translation into POJO + */ + @Test + public void test() { + ByteBuf bb = BufferHelper.buildBuffer(new byte[0]); + BarrierOutput builtByFactory = BarrierReplyMessageFactory.getInstance().bufferToMessage(bb, HelloMessageFactoryTest.VERSION_YET_SUPPORTED); + + Assert.assertTrue(builtByFactory.getVersion() == HelloMessageFactoryTest.VERSION_YET_SUPPORTED); + Assert.assertEquals(builtByFactory.getXid().longValue(), 16909060L); + } +} diff --git a/openflow-protocol-impl/src/test/java/org/openflow/lib/deserialization/factories/EchoReplyMessageFactoryTest.java b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/EchoReplyMessageFactoryTest.java similarity index 84% rename from openflow-protocol-impl/src/test/java/org/openflow/lib/deserialization/factories/EchoReplyMessageFactoryTest.java rename to openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/EchoReplyMessageFactoryTest.java index 242f08f0..c88db4a9 100644 --- a/openflow-protocol-impl/src/test/java/org/openflow/lib/deserialization/factories/EchoReplyMessageFactoryTest.java +++ b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/EchoReplyMessageFactoryTest.java @@ -1,13 +1,13 @@ /* Copyright (C)2013 Pantheon Technologies, s.r.o. All rights reserved. */ -package org.openflow.lib.deserialization.factories; +package org.opendaylight.openflowjava.protocol.impl.deserialization.factories; import io.netty.buffer.ByteBuf; import org.junit.Assert; import org.junit.Test; +import org.opendaylight.openflowjava.protocol.impl.deserialization.factories.EchoReplyMessageFactory; +import org.opendaylight.openflowjava.protocol.impl.util.BufferHelper; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.EchoOutput; -import org.openflow.deserialization.factories.EchoReplyMessageFactory; -import org.openflow.lib.util.BufferHelper; /** * @author michal.polkorab diff --git a/openflow-protocol-impl/src/test/java/org/openflow/lib/deserialization/factories/EchoRequestMessageFactoryTest.java b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/EchoRequestMessageFactoryTest.java similarity index 83% rename from openflow-protocol-impl/src/test/java/org/openflow/lib/deserialization/factories/EchoRequestMessageFactoryTest.java rename to openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/EchoRequestMessageFactoryTest.java index 76baf6ea..de2c807e 100644 --- a/openflow-protocol-impl/src/test/java/org/openflow/lib/deserialization/factories/EchoRequestMessageFactoryTest.java +++ b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/EchoRequestMessageFactoryTest.java @@ -1,13 +1,13 @@ /* Copyright (C)2013 Pantheon Technologies, s.r.o. All rights reserved. */ -package org.openflow.lib.deserialization.factories; +package org.opendaylight.openflowjava.protocol.impl.deserialization.factories; import io.netty.buffer.ByteBuf; import org.junit.Assert; import org.junit.Test; +import org.opendaylight.openflowjava.protocol.impl.deserialization.factories.EchoRequestMessageFactory; +import org.opendaylight.openflowjava.protocol.impl.util.BufferHelper; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.EchoRequestMessage; -import org.openflow.deserialization.factories.EchoRequestMessageFactory; -import org.openflow.lib.util.BufferHelper; /** * @author michal.polkorab diff --git a/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/ExperimenterMessageFactoryTest.java b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/ExperimenterMessageFactoryTest.java new file mode 100644 index 00000000..4991a48b --- /dev/null +++ b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/ExperimenterMessageFactoryTest.java @@ -0,0 +1,33 @@ +/* Copyright (C)2013 Pantheon Technologies, s.r.o. All rights reserved. */ +package org.opendaylight.openflowjava.protocol.impl.deserialization.factories; + +import io.netty.buffer.ByteBuf; + +import org.junit.Assert; +import org.junit.Test; +import org.opendaylight.openflowjava.protocol.impl.deserialization.factories.ExperimenterMessageFactory; +import org.opendaylight.openflowjava.protocol.impl.util.BufferHelper; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.ExperimenterMessage; + +/** + * @author michal.polkorab + * + */ +public class ExperimenterMessageFactoryTest { + + /** + * Testing {@link ExperimenterMessageFactory} for correct translation into POJO + */ + @Test + public void test() { + byte[] data = new byte[]{0x01, 0x02, 0x03, 0x04, 0x01, 0x02, 0x03, 0x04}; + ByteBuf bb = BufferHelper.buildBuffer(data); + ExperimenterMessage builtByFactory = ExperimenterMessageFactory.getInstance().bufferToMessage(bb, HelloMessageFactoryTest.VERSION_YET_SUPPORTED); + + Assert.assertTrue(builtByFactory.getVersion() == HelloMessageFactoryTest.VERSION_YET_SUPPORTED); + Assert.assertEquals(builtByFactory.getXid().longValue(), 16909060L); + Assert.assertEquals(builtByFactory.getExperimenter().longValue(), 16909060L); + Assert.assertEquals(builtByFactory.getExpType().longValue(), 16909060L); + } + +} diff --git a/openflow-protocol-impl/src/test/java/org/openflow/lib/deserialization/factories/FeaturesReplyMessageFactoryTest.java b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/FeaturesReplyMessageFactoryTest.java similarity index 84% rename from openflow-protocol-impl/src/test/java/org/openflow/lib/deserialization/factories/FeaturesReplyMessageFactoryTest.java rename to openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/FeaturesReplyMessageFactoryTest.java index 22968a26..7f158c99 100644 --- a/openflow-protocol-impl/src/test/java/org/openflow/lib/deserialization/factories/FeaturesReplyMessageFactoryTest.java +++ b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/FeaturesReplyMessageFactoryTest.java @@ -1,13 +1,13 @@ /* Copyright (C)2013 Pantheon Technologies, s.r.o. All rights reserved. */ -package org.openflow.lib.deserialization.factories; +package org.opendaylight.openflowjava.protocol.impl.deserialization.factories; import io.netty.buffer.ByteBuf; import org.junit.Assert; import org.junit.Test; +import org.opendaylight.openflowjava.protocol.impl.deserialization.factories.FeaturesReplyMessageFactory; +import org.opendaylight.openflowjava.protocol.impl.util.BufferHelper; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetFeaturesOutput; -import org.openflow.deserialization.factories.FeaturesReplyMessageFactory; -import org.openflow.lib.util.BufferHelper; /** * @author michal.polkorab diff --git a/openflow-protocol-impl/src/test/java/org/openflow/lib/deserialization/factories/HelloMessageFactoryTest.java b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/HelloMessageFactoryTest.java similarity index 78% rename from openflow-protocol-impl/src/test/java/org/openflow/lib/deserialization/factories/HelloMessageFactoryTest.java rename to openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/HelloMessageFactoryTest.java index c3c80580..de3ce14c 100644 --- a/openflow-protocol-impl/src/test/java/org/openflow/lib/deserialization/factories/HelloMessageFactoryTest.java +++ b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/HelloMessageFactoryTest.java @@ -1,13 +1,13 @@ /* Copyright (C)2013 Pantheon Technologies, s.r.o. All rights reserved. */ -package org.openflow.lib.deserialization.factories; +package org.opendaylight.openflowjava.protocol.impl.deserialization.factories; import io.netty.buffer.ByteBuf; import org.junit.Assert; import org.junit.Test; +import org.opendaylight.openflowjava.protocol.impl.deserialization.factories.HelloMessageFactory; +import org.opendaylight.openflowjava.protocol.impl.util.BufferHelper; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.HelloMessage; -import org.openflow.deserialization.factories.HelloMessageFactory; -import org.openflow.lib.util.BufferHelper; /** * @author michal.polkorab diff --git a/openflow-protocol-impl/src/test/java/org/openflow/lib/serialization/factories/HelloInputMessageFactoryTest.java b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/HelloInputMessageFactoryTest.java similarity index 75% rename from openflow-protocol-impl/src/test/java/org/openflow/lib/serialization/factories/HelloInputMessageFactoryTest.java rename to openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/HelloInputMessageFactoryTest.java index 5b0f7307..4bed9a28 100644 --- a/openflow-protocol-impl/src/test/java/org/openflow/lib/serialization/factories/HelloInputMessageFactoryTest.java +++ b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/HelloInputMessageFactoryTest.java @@ -1,15 +1,16 @@ /* Copyright (C)2013 Pantheon Technologies, s.r.o. All rights reserved. */ -package org.openflow.lib.serialization.factories; +package org.opendaylight.openflowjava.protocol.impl.serialization.factories; import io.netty.buffer.ByteBuf; import io.netty.buffer.UnpooledByteBufAllocator; import org.junit.Assert; import org.junit.Test; +import org.opendaylight.openflowjava.protocol.impl.core.OFFrameDecoder; +import org.opendaylight.openflowjava.protocol.impl.deserialization.factories.HelloMessageFactoryTest; +import org.opendaylight.openflowjava.protocol.impl.serialization.factories.HelloInputMessageFactory; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.HelloInput; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.HelloInputBuilder; -import org.openflow.lib.OfFrameDecoder; -import org.openflow.lib.deserialization.factories.HelloMessageFactoryTest; /** * @author michal.polkorab @@ -34,7 +35,7 @@ public class HelloInputMessageFactoryTest { Assert.assertTrue(out.readByte() == HelloMessageFactoryTest.VERSION_YET_SUPPORTED); Assert.assertTrue(out.readByte() == HELLO_MESSAGE_CODE_TYPE); - Assert.assertTrue(out.readUnsignedShort() == OfFrameDecoder.LENGTH_OF_HEADER); + Assert.assertTrue(out.readUnsignedShort() == OFFrameDecoder.LENGTH_OF_HEADER); Assert.assertTrue(out.readUnsignedInt() == 16909060L); } diff --git a/openflow-protocol-impl/src/test/java/org/openflow/lib/util/BufferHelper.java b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/util/BufferHelper.java similarity index 88% rename from openflow-protocol-impl/src/test/java/org/openflow/lib/util/BufferHelper.java rename to openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/util/BufferHelper.java index 2471d86c..d6f0fd08 100644 --- a/openflow-protocol-impl/src/test/java/org/openflow/lib/util/BufferHelper.java +++ b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/util/BufferHelper.java @@ -1,5 +1,5 @@ /* Copyright (C)2013 Pantheon Technologies, s.r.o. All rights reserved. */ -package org.openflow.lib.util; +package org.opendaylight.openflowjava.protocol.impl.util; import io.netty.buffer.ByteBuf; import io.netty.buffer.UnpooledByteBufAllocator; diff --git a/openflow-protocol-impl/src/test/resources/org/openflow/lib/OFBinaryMessageInput.txt b/openflow-protocol-impl/src/test/resources/org/opendaylight/openflowjava/protocol/impl/core/OFBinaryMessageInput.txt similarity index 100% rename from openflow-protocol-impl/src/test/resources/org/openflow/lib/OFBinaryMessageInput.txt rename to openflow-protocol-impl/src/test/resources/org/opendaylight/openflowjava/protocol/impl/core/OFBinaryMessageInput.txt -- 2.36.6