Mass replace CRLF->LF
[openflowjava.git] / openflow-protocol-impl / src / main / java / org / opendaylight / openflowjava / protocol / impl / serialization / MatchEntriesInitializer.java
index 348487e029e7a352b88a59a11b9a23eb883edf11..884617facbed7c9560ffd5001ec8c11a2869737c 100644 (file)
-/*\r
- * Copyright (c) 2013 Pantheon Technologies s.r.o. and others.  All rights reserved.\r
- *\r
- * This program and the accompanying materials are made available under the\r
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
- * and is available at http://www.eclipse.org/legal/epl-v10.html\r
- */\r
-package org.opendaylight.openflowjava.protocol.impl.serialization;\r
-\r
-import org.opendaylight.openflowjava.protocol.api.extensibility.SerializerRegistry;\r
-import org.opendaylight.openflowjava.protocol.impl.serialization.match.NxmTcpFlagSerializer;\r
-import org.opendaylight.openflowjava.protocol.impl.serialization.match.NxmTunnelIpv4DstSerializer;\r
-import org.opendaylight.openflowjava.protocol.impl.serialization.match.NxmTunnelIpv4SrcSerializer;\r
-import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmArpOpSerializer;\r
-import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmArpShaSerializer;\r
-import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmArpSpaSerializer;\r
-import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmArpThaSerializer;\r
-import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmArpTpaSerializer;\r
-import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmEthDstSerializer;\r
-import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmEthSrcSerializer;\r
-import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmEthTypeSerializer;\r
-import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmIcmpv4CodeSerializer;\r
-import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmIcmpv4TypeSerializer;\r
-import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmIcmpv6CodeSerializer;\r
-import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmIcmpv6TypeSerializer;\r
-import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmInPhyPortSerializer;\r
-import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmInPortSerializer;\r
-import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmIpDscpSerializer;\r
-import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmIpEcnSerializer;\r
-import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmIpProtoSerializer;\r
-import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmIpv4DstSerializer;\r
-import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmIpv4SrcSerializer;\r
-import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmIpv6DstSerializer;\r
-import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmIpv6ExtHdrSerializer;\r
-import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmIpv6FlabelSerializer;\r
-import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmIpv6NdSllSerializer;\r
-import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmIpv6NdTargetSerializer;\r
-import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmIpv6NdTllSerializer;\r
-import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmIpv6SrcSerializer;\r
-import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmMetadataSerializer;\r
-import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmMplsBosSerializer;\r
-import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmMplsLabelSerializer;\r
-import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmMplsTcSerializer;\r
-import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmPbbIsidSerializer;\r
-import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmSctpDstSerializer;\r
-import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmSctpSrcSerializer;\r
-import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmTcpDstSerializer;\r
-import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmTcpSrcSerializer;\r
-import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmTunnelIdSerializer;\r
-import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmUdpDstSerializer;\r
-import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmUdpSrcSerializer;\r
-import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmVlanPcpSerializer;\r
-import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmVlanVidSerializer;\r
-import org.opendaylight.openflowjava.protocol.impl.util.EncodeConstants;\r
-import org.opendaylight.openflowjava.protocol.impl.util.EnhancedKeyRegistryHelper;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.ArpOp;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.ArpSha;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.ArpSpa;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.ArpTha;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.ArpTpa;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.EthDst;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.EthSrc;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.EthType;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.Icmpv4Code;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.Icmpv4Type;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.Icmpv6Code;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.Icmpv6Type;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.InPhyPort;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.InPort;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.IpDscp;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.IpEcn;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.IpProto;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.Ipv4Dst;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.Ipv4Src;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.Ipv6Dst;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.Ipv6Exthdr;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.Ipv6Flabel;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.Ipv6NdSll;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.Ipv6NdTarget;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.Ipv6NdTll;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.Ipv6Src;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.Metadata;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.MplsBos;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.MplsLabel;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.MplsTc;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.Nxm1Class;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.OpenflowBasicClass;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.PbbIsid;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.SctpDst;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.SctpSrc;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.TcpDst;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.TcpFlag;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.TcpSrc;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.TunnelId;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.TunnelIpv4Dst;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.TunnelIpv4Src;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.UdpDst;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.UdpSrc;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.VlanPcp;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.VlanVid;\r
-\r
-/**\r
- * Initializes serializer registry with match entry serializers\r
- * @author michal.polkorab\r
- */\r
-public class MatchEntriesInitializer {\r
-\r
-    /**\r
-     * Registers match entry serializers into provided registry\r
-     * @param serializerRegistry registry to be initialized with match entry serializers\r
-     */\r
-    public static void registerMatchEntrySerializers(SerializerRegistry serializerRegistry) {\r
-        // register OF v1.3 OpenflowBasicClass match entry serializers\r
-        Class<OpenflowBasicClass> oxmClass = OpenflowBasicClass.class;\r
-        EnhancedKeyRegistryHelper<OpenflowBasicClass> registryHelper =\r
-                new EnhancedKeyRegistryHelper<>(EncodeConstants.OF13_VERSION_ID, oxmClass, serializerRegistry);\r
-        registryHelper.registerSerializer(InPort.class, new OxmInPortSerializer());\r
-        registryHelper.registerSerializer(InPhyPort.class, new OxmInPhyPortSerializer());\r
-        registryHelper.registerSerializer(Metadata.class, new OxmMetadataSerializer());\r
-        registryHelper.registerSerializer(EthDst.class, new OxmEthDstSerializer());\r
-        registryHelper.registerSerializer(EthSrc.class, new OxmEthSrcSerializer());\r
-        registryHelper.registerSerializer(EthType.class, new OxmEthTypeSerializer());\r
-        registryHelper.registerSerializer(VlanVid.class, new OxmVlanVidSerializer());\r
-        registryHelper.registerSerializer(VlanPcp.class, new OxmVlanPcpSerializer());\r
-        registryHelper.registerSerializer(IpDscp.class, new OxmIpDscpSerializer());\r
-        registryHelper.registerSerializer(IpEcn.class, new OxmIpEcnSerializer());\r
-        registryHelper.registerSerializer(IpProto.class, new OxmIpProtoSerializer());\r
-        registryHelper.registerSerializer(Ipv4Src.class, new OxmIpv4SrcSerializer());\r
-        registryHelper.registerSerializer(Ipv4Dst.class, new OxmIpv4DstSerializer());\r
-        registryHelper.registerSerializer(TcpSrc.class, new OxmTcpSrcSerializer());\r
-        registryHelper.registerSerializer(TcpDst.class, new OxmTcpDstSerializer());\r
-        registryHelper.registerSerializer(UdpSrc.class, new OxmUdpSrcSerializer());\r
-        registryHelper.registerSerializer(UdpDst.class, new OxmUdpDstSerializer());\r
-        registryHelper.registerSerializer(SctpSrc.class, new OxmSctpSrcSerializer());\r
-        registryHelper.registerSerializer(SctpDst.class, new OxmSctpDstSerializer());\r
-        registryHelper.registerSerializer(Icmpv4Type.class, new OxmIcmpv4TypeSerializer());\r
-        registryHelper.registerSerializer(Icmpv4Code.class, new OxmIcmpv4CodeSerializer());\r
-        registryHelper.registerSerializer(ArpOp.class, new OxmArpOpSerializer());\r
-        registryHelper.registerSerializer(ArpSpa.class, new OxmArpSpaSerializer());\r
-        registryHelper.registerSerializer(ArpTpa.class, new OxmArpTpaSerializer());\r
-        registryHelper.registerSerializer(ArpSha.class, new OxmArpShaSerializer());\r
-        registryHelper.registerSerializer(ArpTha.class, new OxmArpThaSerializer());\r
-        registryHelper.registerSerializer(Ipv6Src.class, new OxmIpv6SrcSerializer());\r
-        registryHelper.registerSerializer(Ipv6Dst.class, new OxmIpv6DstSerializer());\r
-        registryHelper.registerSerializer(Ipv6Flabel.class, new OxmIpv6FlabelSerializer());\r
-        registryHelper.registerSerializer(Icmpv6Type.class, new OxmIcmpv6TypeSerializer());\r
-        registryHelper.registerSerializer(Icmpv6Code.class, new OxmIcmpv6CodeSerializer());\r
-        registryHelper.registerSerializer(Ipv6NdTarget.class, new OxmIpv6NdTargetSerializer());\r
-        registryHelper.registerSerializer(Ipv6NdSll.class, new OxmIpv6NdSllSerializer());\r
-        registryHelper.registerSerializer(Ipv6NdTll.class, new OxmIpv6NdTllSerializer());\r
-        registryHelper.registerSerializer(MplsLabel.class, new OxmMplsLabelSerializer());\r
-        registryHelper.registerSerializer(MplsTc.class, new OxmMplsTcSerializer());\r
-        registryHelper.registerSerializer(MplsBos.class, new OxmMplsBosSerializer());\r
-        registryHelper.registerSerializer(PbbIsid.class, new OxmPbbIsidSerializer());\r
-        registryHelper.registerSerializer(TunnelId.class, new OxmTunnelIdSerializer());\r
-        registryHelper.registerSerializer(Ipv6Exthdr.class, new OxmIpv6ExtHdrSerializer());\r
-\r
-        // Register OpenFlow NXM1Class match entry serializer\r
-        Class<Nxm1Class> nxm1Class = Nxm1Class.class;\r
-        EnhancedKeyRegistryHelper<Nxm1Class> nxm1RegistryHelper =\r
-                new EnhancedKeyRegistryHelper<>(EncodeConstants.OF13_VERSION_ID, nxm1Class, serializerRegistry);\r
-        nxm1RegistryHelper.registerSerializer(TunnelIpv4Dst.class, new NxmTunnelIpv4DstSerializer());\r
-        nxm1RegistryHelper.registerSerializer(TunnelIpv4Src.class, new NxmTunnelIpv4SrcSerializer());\r
-        nxm1RegistryHelper.registerSerializer(TcpFlag.class, new NxmTcpFlagSerializer());\r
-    }\r
-}\r
+/*
+ * Copyright (c) 2013 Pantheon Technologies s.r.o. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.openflowjava.protocol.impl.serialization;
+
+import org.opendaylight.openflowjava.protocol.api.extensibility.SerializerRegistry;
+import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
+import org.opendaylight.openflowjava.protocol.impl.serialization.match.NxmTcpFlagSerializer;
+import org.opendaylight.openflowjava.protocol.impl.serialization.match.NxmTunnelIpv4DstSerializer;
+import org.opendaylight.openflowjava.protocol.impl.serialization.match.NxmTunnelIpv4SrcSerializer;
+import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmArpOpSerializer;
+import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmArpShaSerializer;
+import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmArpSpaSerializer;
+import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmArpThaSerializer;
+import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmArpTpaSerializer;
+import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmEthDstSerializer;
+import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmEthSrcSerializer;
+import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmEthTypeSerializer;
+import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmIcmpv4CodeSerializer;
+import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmIcmpv4TypeSerializer;
+import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmIcmpv6CodeSerializer;
+import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmIcmpv6TypeSerializer;
+import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmInPhyPortSerializer;
+import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmInPortSerializer;
+import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmIpDscpSerializer;
+import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmIpEcnSerializer;
+import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmIpProtoSerializer;
+import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmIpv4DstSerializer;
+import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmIpv4SrcSerializer;
+import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmIpv6DstSerializer;
+import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmIpv6ExtHdrSerializer;
+import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmIpv6FlabelSerializer;
+import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmIpv6NdSllSerializer;
+import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmIpv6NdTargetSerializer;
+import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmIpv6NdTllSerializer;
+import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmIpv6SrcSerializer;
+import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmMetadataSerializer;
+import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmMplsBosSerializer;
+import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmMplsLabelSerializer;
+import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmMplsTcSerializer;
+import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmPbbIsidSerializer;
+import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmSctpDstSerializer;
+import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmSctpSrcSerializer;
+import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmTcpDstSerializer;
+import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmTcpSrcSerializer;
+import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmTunnelIdSerializer;
+import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmUdpDstSerializer;
+import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmUdpSrcSerializer;
+import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmVlanPcpSerializer;
+import org.opendaylight.openflowjava.protocol.impl.serialization.match.OxmVlanVidSerializer;
+import org.opendaylight.openflowjava.protocol.impl.util.MatchEntrySerializerRegistryHelper;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.ArpOp;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.ArpSha;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.ArpSpa;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.ArpTha;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.ArpTpa;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.EthDst;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.EthSrc;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.EthType;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.Icmpv4Code;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.Icmpv4Type;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.Icmpv6Code;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.Icmpv6Type;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.InPhyPort;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.InPort;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.IpDscp;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.IpEcn;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.IpProto;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.Ipv4Dst;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.Ipv4Src;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.Ipv6Dst;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.Ipv6Exthdr;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.Ipv6Flabel;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.Ipv6NdSll;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.Ipv6NdTarget;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.Ipv6NdTll;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.Ipv6Src;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.Metadata;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.MplsBos;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.MplsLabel;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.MplsTc;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.Nxm1Class;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.OpenflowBasicClass;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.PbbIsid;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.SctpDst;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.SctpSrc;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.TcpDst;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.TcpFlag;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.TcpSrc;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.TunnelId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.TunnelIpv4Dst;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.TunnelIpv4Src;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.UdpDst;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.UdpSrc;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.VlanPcp;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.VlanVid;
+
+/**
+ * Initializes serializer registry with match entry serializers
+ * @author michal.polkorab
+ */
+public final class MatchEntriesInitializer {
+
+    private MatchEntriesInitializer() {
+        throw new UnsupportedOperationException("Utility class shouldn't be instantiated");
+    }
+
+    /**
+     * Registers match entry serializers into provided registry
+     * @param serializerRegistry registry to be initialized with match entry serializers
+     */
+    public static void registerMatchEntrySerializers(SerializerRegistry serializerRegistry) {
+        // register OF v1.3 OpenflowBasicClass match entry serializers
+        Class<OpenflowBasicClass> oxmClass = OpenflowBasicClass.class;
+        MatchEntrySerializerRegistryHelper<OpenflowBasicClass> helper =
+                new MatchEntrySerializerRegistryHelper<>(EncodeConstants.OF13_VERSION_ID,
+                        oxmClass, serializerRegistry);
+        helper.registerSerializer(InPort.class, new OxmInPortSerializer());
+        helper.registerSerializer(InPhyPort.class, new OxmInPhyPortSerializer());
+        helper.registerSerializer(Metadata.class, new OxmMetadataSerializer());
+        helper.registerSerializer(EthDst.class, new OxmEthDstSerializer());
+        helper.registerSerializer(EthSrc.class, new OxmEthSrcSerializer());
+        helper.registerSerializer(EthType.class, new OxmEthTypeSerializer());
+        helper.registerSerializer(VlanVid.class, new OxmVlanVidSerializer());
+        helper.registerSerializer(VlanPcp.class, new OxmVlanPcpSerializer());
+        helper.registerSerializer(IpDscp.class, new OxmIpDscpSerializer());
+        helper.registerSerializer(IpEcn.class, new OxmIpEcnSerializer());
+        helper.registerSerializer(IpProto.class, new OxmIpProtoSerializer());
+        helper.registerSerializer(Ipv4Src.class, new OxmIpv4SrcSerializer());
+        helper.registerSerializer(Ipv4Dst.class, new OxmIpv4DstSerializer());
+        helper.registerSerializer(TcpSrc.class, new OxmTcpSrcSerializer());
+        helper.registerSerializer(TcpDst.class, new OxmTcpDstSerializer());
+        helper.registerSerializer(UdpSrc.class, new OxmUdpSrcSerializer());
+        helper.registerSerializer(UdpDst.class, new OxmUdpDstSerializer());
+        helper.registerSerializer(SctpSrc.class, new OxmSctpSrcSerializer());
+        helper.registerSerializer(SctpDst.class, new OxmSctpDstSerializer());
+        helper.registerSerializer(Icmpv4Type.class, new OxmIcmpv4TypeSerializer());
+        helper.registerSerializer(Icmpv4Code.class, new OxmIcmpv4CodeSerializer());
+        helper.registerSerializer(ArpOp.class, new OxmArpOpSerializer());
+        helper.registerSerializer(ArpSpa.class, new OxmArpSpaSerializer());
+        helper.registerSerializer(ArpTpa.class, new OxmArpTpaSerializer());
+        helper.registerSerializer(ArpSha.class, new OxmArpShaSerializer());
+        helper.registerSerializer(ArpTha.class, new OxmArpThaSerializer());
+        helper.registerSerializer(Ipv6Src.class, new OxmIpv6SrcSerializer());
+        helper.registerSerializer(Ipv6Dst.class, new OxmIpv6DstSerializer());
+        helper.registerSerializer(Ipv6Flabel.class, new OxmIpv6FlabelSerializer());
+        helper.registerSerializer(Icmpv6Type.class, new OxmIcmpv6TypeSerializer());
+        helper.registerSerializer(Icmpv6Code.class, new OxmIcmpv6CodeSerializer());
+        helper.registerSerializer(Ipv6NdTarget.class, new OxmIpv6NdTargetSerializer());
+        helper.registerSerializer(Ipv6NdSll.class, new OxmIpv6NdSllSerializer());
+        helper.registerSerializer(Ipv6NdTll.class, new OxmIpv6NdTllSerializer());
+        helper.registerSerializer(MplsLabel.class, new OxmMplsLabelSerializer());
+        helper.registerSerializer(MplsTc.class, new OxmMplsTcSerializer());
+        helper.registerSerializer(MplsBos.class, new OxmMplsBosSerializer());
+        helper.registerSerializer(PbbIsid.class, new OxmPbbIsidSerializer());
+        helper.registerSerializer(TunnelId.class, new OxmTunnelIdSerializer());
+        helper.registerSerializer(Ipv6Exthdr.class, new OxmIpv6ExtHdrSerializer());
+
+        // Register OpenFlow NXM1Class match entry serializer
+        Class<Nxm1Class> nxm1Class = Nxm1Class.class;
+        MatchEntrySerializerRegistryHelper<Nxm1Class> nxm1RegistryHelper =
+                new MatchEntrySerializerRegistryHelper<>(EncodeConstants.OF13_VERSION_ID,
+                        nxm1Class, serializerRegistry);
+        nxm1RegistryHelper.registerSerializer(TunnelIpv4Dst.class, new NxmTunnelIpv4DstSerializer());
+        nxm1RegistryHelper.registerSerializer(TunnelIpv4Src.class, new NxmTunnelIpv4SrcSerializer());
+        nxm1RegistryHelper.registerSerializer(TcpFlag.class, new NxmTcpFlagSerializer());
+    }
+}