7c1d110b00c86fa74c148c03cd7c0fb698067747
[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.impl.deserialization.action.OF10EnqueueActionDeserializer;\r
13 import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF10OutputActionDeserializer;\r
14 import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF10SetDlDstActionDeserializer;\r
15 import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF10SetDlSrcActionDeserializer;\r
16 import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF10SetNwDstActionDeserializer;\r
17 import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF10SetNwSrcActionDeserializer;\r
18 import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF10SetNwTosActionDeserializer;\r
19 import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF10SetTpDstActionDeserializer;\r
20 import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF10SetTpSrcActionDeserializer;\r
21 import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF10SetVlanPcpActionDeserializer;\r
22 import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF10SetVlanVidActionDeserializer;\r
23 import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF10StripVlanActionDeserializer;\r
24 import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13CopyTtlInActionDeserializer;\r
25 import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13CopyTtlOutActionDeserializer;\r
26 import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13DecMplsTtlActionDeserializer;\r
27 import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13DecNwTtlActionDeserializer;\r
28 import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13GroupActionDeserializer;\r
29 import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13OutputActionDeserializer;\r
30 import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13PopMplsActionDeserializer;\r
31 import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13PopPbbActionDeserializer;\r
32 import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13PopVlanActionDeserializer;\r
33 import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13PushMplsActionDeserializer;\r
34 import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13PushPbbActionDeserializer;\r
35 import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13PushVlanActionDeserializer;\r
36 import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13SetFieldActionDeserializer;\r
37 import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13SetMplsTtlActionDeserializer;\r
38 import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13SetNwTtlActionDeserializer;\r
39 import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13SetQueueActionDeserializer;\r
40 import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;\r
41 import org.opendaylight.openflowjava.protocol.impl.util.SimpleDeserializerRegistryHelper;\r
42 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.grouping.Action;\r
43 \r
44 /**\r
45  * @author michal.polkorab\r
46  *\r
47  */\r
48 public class ActionDeserializerInitializer {\r
49 \r
50     /**\r
51      * Registers action deserializers\r
52      * @param registry registry to be filled with deserializers\r
53      */\r
54     public static void registerDeserializers(DeserializerRegistry registry) {\r
55         // register OF v1.0 action deserializers\r
56         SimpleDeserializerRegistryHelper helper =\r
57                 new SimpleDeserializerRegistryHelper(EncodeConstants.OF10_VERSION_ID, registry);\r
58         helper.registerDeserializer(0, Action.class, new OF10OutputActionDeserializer());\r
59         helper.registerDeserializer(1, Action.class, new OF10SetVlanVidActionDeserializer());\r
60         helper.registerDeserializer(2, Action.class, new OF10SetVlanPcpActionDeserializer());\r
61         helper.registerDeserializer(3, Action.class, new OF10StripVlanActionDeserializer());\r
62         helper.registerDeserializer(4, Action.class, new OF10SetDlSrcActionDeserializer());\r
63         helper.registerDeserializer(5, Action.class, new OF10SetDlDstActionDeserializer());\r
64         helper.registerDeserializer(6, Action.class, new OF10SetNwSrcActionDeserializer());\r
65         helper.registerDeserializer(7, Action.class, new OF10SetNwDstActionDeserializer());\r
66         helper.registerDeserializer(8, Action.class, new OF10SetNwTosActionDeserializer());\r
67         helper.registerDeserializer(9, Action.class, new OF10SetTpSrcActionDeserializer());\r
68         helper.registerDeserializer(10, Action.class, new OF10SetTpDstActionDeserializer());\r
69         helper.registerDeserializer(11, Action.class, new OF10EnqueueActionDeserializer());\r
70         // register OF v1.3 action deserializers\r
71         helper = new SimpleDeserializerRegistryHelper(EncodeConstants.OF13_VERSION_ID, registry);\r
72         helper.registerDeserializer(0, Action.class, new OF13OutputActionDeserializer());\r
73         helper.registerDeserializer(11, Action.class, new OF13CopyTtlOutActionDeserializer());\r
74         helper.registerDeserializer(12, Action.class, new OF13CopyTtlInActionDeserializer());\r
75         helper.registerDeserializer(15, Action.class, new OF13SetMplsTtlActionDeserializer());\r
76         helper.registerDeserializer(16, Action.class, new OF13DecMplsTtlActionDeserializer());\r
77         helper.registerDeserializer(17, Action.class, new OF13PushVlanActionDeserializer());\r
78         helper.registerDeserializer(18, Action.class, new OF13PopVlanActionDeserializer());\r
79         helper.registerDeserializer(19, Action.class, new OF13PushMplsActionDeserializer());\r
80         helper.registerDeserializer(20, Action.class, new OF13PopMplsActionDeserializer());\r
81         helper.registerDeserializer(21, Action.class, new OF13SetQueueActionDeserializer());\r
82         helper.registerDeserializer(22, Action.class, new OF13GroupActionDeserializer());\r
83         helper.registerDeserializer(23, Action.class, new OF13SetNwTtlActionDeserializer());\r
84         helper.registerDeserializer(24, Action.class, new OF13DecNwTtlActionDeserializer());\r
85         helper.registerDeserializer(25, Action.class, new OF13SetFieldActionDeserializer());\r
86         helper.registerDeserializer(26, Action.class, new OF13PushPbbActionDeserializer());\r
87         helper.registerDeserializer(27, Action.class, new OF13PopPbbActionDeserializer());\r
88     }\r
89 }\r