cbec7394db3e51e7d8451f167a1db87a917be7b2
[openflowjava.git] / openflow-protocol-impl / src / main / java / org / opendaylight / openflowjava / protocol / impl / deserialization / ActionDeserializerInitializer.java
1 /*\r
2  * Copyright (c) 2013 Pantheon Technologies s.r.o. and others. All rights reserved.\r
3  *\r
4  * This program and the accompanying materials are made available under the\r
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
6  * and is available at http://www.eclipse.org/legal/epl-v10.html\r
7  */\r
8 \r
9 package org.opendaylight.openflowjava.protocol.impl.deserialization;\r
10 \r
11 import org.opendaylight.openflowjava.protocol.api.extensibility.DeserializerRegistry;\r
12 import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;\r
13 import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF10EnqueueActionDeserializer;\r
14 import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF10OutputActionDeserializer;\r
15 import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF10SetDlDstActionDeserializer;\r
16 import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF10SetDlSrcActionDeserializer;\r
17 import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF10SetNwDstActionDeserializer;\r
18 import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF10SetNwSrcActionDeserializer;\r
19 import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF10SetNwTosActionDeserializer;\r
20 import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF10SetTpDstActionDeserializer;\r
21 import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF10SetTpSrcActionDeserializer;\r
22 import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF10SetVlanPcpActionDeserializer;\r
23 import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF10SetVlanVidActionDeserializer;\r
24 import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF10StripVlanActionDeserializer;\r
25 import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13CopyTtlInActionDeserializer;\r
26 import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13CopyTtlOutActionDeserializer;\r
27 import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13DecMplsTtlActionDeserializer;\r
28 import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13DecNwTtlActionDeserializer;\r
29 import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13GroupActionDeserializer;\r
30 import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13OutputActionDeserializer;\r
31 import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13PopMplsActionDeserializer;\r
32 import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13PopPbbActionDeserializer;\r
33 import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13PopVlanActionDeserializer;\r
34 import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13PushMplsActionDeserializer;\r
35 import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13PushPbbActionDeserializer;\r
36 import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13PushVlanActionDeserializer;\r
37 import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13SetFieldActionDeserializer;\r
38 import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13SetMplsTtlActionDeserializer;\r
39 import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13SetNwTtlActionDeserializer;\r
40 import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13SetQueueActionDeserializer;\r
41 import org.opendaylight.openflowjava.protocol.impl.util.ActionDeserializerRegistryHelper;\r
42 \r
43 /**\r
44  * @author michal.polkorab\r
45  *\r
46  */\r
47 public final class ActionDeserializerInitializer {\r
48 \r
49     private ActionDeserializerInitializer() {\r
50         throw new UnsupportedOperationException("Utility class shouldn't be instantiated");\r
51     }\r
52 \r
53     /**\r
54      * Registers action deserializers\r
55      * @param registry registry to be filled with deserializers\r
56      */\r
57     public static void registerDeserializers(DeserializerRegistry registry) {\r
58         // register OF v1.0 action deserializers\r
59         ActionDeserializerRegistryHelper helper = \r
60                 new ActionDeserializerRegistryHelper(EncodeConstants.OF10_VERSION_ID, registry);\r
61         helper.registerDeserializer(0, new OF10OutputActionDeserializer());\r
62         helper.registerDeserializer(1, new OF10SetVlanVidActionDeserializer());\r
63         helper.registerDeserializer(2, new OF10SetVlanPcpActionDeserializer());\r
64         helper.registerDeserializer(3, new OF10StripVlanActionDeserializer());\r
65         helper.registerDeserializer(4, new OF10SetDlSrcActionDeserializer());\r
66         helper.registerDeserializer(5, new OF10SetDlDstActionDeserializer());\r
67         helper.registerDeserializer(6, new OF10SetNwSrcActionDeserializer());\r
68         helper.registerDeserializer(7, new OF10SetNwDstActionDeserializer());\r
69         helper.registerDeserializer(8, new OF10SetNwTosActionDeserializer());\r
70         helper.registerDeserializer(9, new OF10SetTpSrcActionDeserializer());\r
71         helper.registerDeserializer(10, new OF10SetTpDstActionDeserializer());\r
72         helper.registerDeserializer(11, new OF10EnqueueActionDeserializer());\r
73         // register OF v1.3 action deserializers\r
74         helper = new ActionDeserializerRegistryHelper(EncodeConstants.OF13_VERSION_ID, registry);\r
75         helper.registerDeserializer(0, new OF13OutputActionDeserializer());\r
76         helper.registerDeserializer(11, new OF13CopyTtlOutActionDeserializer());\r
77         helper.registerDeserializer(12, new OF13CopyTtlInActionDeserializer());\r
78         helper.registerDeserializer(15, new OF13SetMplsTtlActionDeserializer());\r
79         helper.registerDeserializer(16, new OF13DecMplsTtlActionDeserializer());\r
80         helper.registerDeserializer(17, new OF13PushVlanActionDeserializer());\r
81         helper.registerDeserializer(18, new OF13PopVlanActionDeserializer());\r
82         helper.registerDeserializer(19, new OF13PushMplsActionDeserializer());\r
83         helper.registerDeserializer(20, new OF13PopMplsActionDeserializer());\r
84         helper.registerDeserializer(21, new OF13SetQueueActionDeserializer());\r
85         helper.registerDeserializer(22, new OF13GroupActionDeserializer());\r
86         helper.registerDeserializer(23, new OF13SetNwTtlActionDeserializer());\r
87         helper.registerDeserializer(24, new OF13DecNwTtlActionDeserializer());\r
88         helper.registerDeserializer(25, new OF13SetFieldActionDeserializer());\r
89         helper.registerDeserializer(26, new OF13PushPbbActionDeserializer());\r
90         helper.registerDeserializer(27, new OF13PopPbbActionDeserializer());\r
91     }\r
92 }