2 * Copyright (c) 2013 Pantheon Technologies s.r.o. and others. All rights reserved.
\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
8 package org.opendaylight.openflowjava.protocol.impl.serialization;
\r
10 import org.opendaylight.openflowjava.protocol.api.extensibility.SerializerRegistry;
\r
11 import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
\r
12 import org.opendaylight.openflowjava.protocol.impl.serialization.action.OF10EnqueueActionSerializer;
\r
13 import org.opendaylight.openflowjava.protocol.impl.serialization.action.OF10OutputActionSerializer;
\r
14 import org.opendaylight.openflowjava.protocol.impl.serialization.action.OF10SetDlDstActionSerializer;
\r
15 import org.opendaylight.openflowjava.protocol.impl.serialization.action.OF10SetDlSrcActionSerializer;
\r
16 import org.opendaylight.openflowjava.protocol.impl.serialization.action.OF10SetNwDstActionSerializer;
\r
17 import org.opendaylight.openflowjava.protocol.impl.serialization.action.OF10SetNwSrcActionSerializer;
\r
18 import org.opendaylight.openflowjava.protocol.impl.serialization.action.OF10SetNwTosActionSerializer;
\r
19 import org.opendaylight.openflowjava.protocol.impl.serialization.action.OF10SetTpDstActionSerializer;
\r
20 import org.opendaylight.openflowjava.protocol.impl.serialization.action.OF10SetTpSrcActionSerializer;
\r
21 import org.opendaylight.openflowjava.protocol.impl.serialization.action.OF10SetVlanPcpActionSerializer;
\r
22 import org.opendaylight.openflowjava.protocol.impl.serialization.action.OF10SetVlanVidActionSerializer;
\r
23 import org.opendaylight.openflowjava.protocol.impl.serialization.action.OF10StripVlanActionSerializer;
\r
24 import org.opendaylight.openflowjava.protocol.impl.serialization.action.OF13CopyTtlInActionSerializer;
\r
25 import org.opendaylight.openflowjava.protocol.impl.serialization.action.OF13CopyTtlOutActionSerializer;
\r
26 import org.opendaylight.openflowjava.protocol.impl.serialization.action.OF13DecMplsTtlActionSerializer;
\r
27 import org.opendaylight.openflowjava.protocol.impl.serialization.action.OF13DecNwTtlActionSerializer;
\r
28 import org.opendaylight.openflowjava.protocol.impl.serialization.action.OF13GroupActionSerializer;
\r
29 import org.opendaylight.openflowjava.protocol.impl.serialization.action.OF13OutputActionSerializer;
\r
30 import org.opendaylight.openflowjava.protocol.impl.serialization.action.OF13PopMplsActionSerializer;
\r
31 import org.opendaylight.openflowjava.protocol.impl.serialization.action.OF13PopPbbActionSerializer;
\r
32 import org.opendaylight.openflowjava.protocol.impl.serialization.action.OF13PopVlanActionSerializer;
\r
33 import org.opendaylight.openflowjava.protocol.impl.serialization.action.OF13PushMplsActionSerializer;
\r
34 import org.opendaylight.openflowjava.protocol.impl.serialization.action.OF13PushPbbActionSerializer;
\r
35 import org.opendaylight.openflowjava.protocol.impl.serialization.action.OF13PushVlanActionSerializer;
\r
36 import org.opendaylight.openflowjava.protocol.impl.serialization.action.OF13SetFieldActionSerializer;
\r
37 import org.opendaylight.openflowjava.protocol.impl.serialization.action.OF13SetMplsTtlActionSerializer;
\r
38 import org.opendaylight.openflowjava.protocol.impl.serialization.action.OF13SetNwTtlActionSerializer;
\r
39 import org.opendaylight.openflowjava.protocol.impl.serialization.action.OF13SetQueueActionSerializer;
\r
40 import org.opendaylight.openflowjava.protocol.impl.util.ActionSerializerRegistryHelper;
\r
41 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.CopyTtlIn;
\r
42 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.CopyTtlOut;
\r
43 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.DecMplsTtl;
\r
44 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.DecNwTtl;
\r
45 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.Enqueue;
\r
46 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.Group;
\r
47 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.Output;
\r
48 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.PopMpls;
\r
49 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.PopPbb;
\r
50 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.PopVlan;
\r
51 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.PushMpls;
\r
52 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.PushPbb;
\r
53 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.PushVlan;
\r
54 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetDlDst;
\r
55 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetDlSrc;
\r
56 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetField;
\r
57 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetMplsTtl;
\r
58 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetNwDst;
\r
59 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetNwSrc;
\r
60 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetNwTos;
\r
61 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetNwTtl;
\r
62 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetQueue;
\r
63 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetTpDst;
\r
64 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetTpSrc;
\r
65 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetVlanPcp;
\r
66 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetVlanVid;
\r
67 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.StripVlan;
\r
70 * Initializes serializer registry with action serializers
\r
71 * @author michal.polkorab
\r
73 public final class ActionsInitializer {
\r
75 private ActionsInitializer() {
\r
76 throw new UnsupportedOperationException("Utility class shouldn't be instantiated");
\r
80 * Registers action serializers into provided registry
\r
81 * @param serializerRegistry registry to be initialized with action serializers
\r
83 public static void registerActionSerializers(SerializerRegistry serializerRegistry) {
\r
84 // register OF v1.0 action serializers
\r
85 ActionSerializerRegistryHelper helper = new ActionSerializerRegistryHelper(
\r
86 EncodeConstants.OF10_VERSION_ID, serializerRegistry);
\r
87 helper.registerSerializer(Output.class, new OF10OutputActionSerializer());
\r
88 helper.registerSerializer(SetVlanVid.class, new OF10SetVlanVidActionSerializer());
\r
89 helper.registerSerializer(SetVlanPcp.class, new OF10SetVlanPcpActionSerializer());
\r
90 helper.registerSerializer(StripVlan.class, new OF10StripVlanActionSerializer());
\r
91 helper.registerSerializer(SetDlSrc.class, new OF10SetDlSrcActionSerializer());
\r
92 helper.registerSerializer(SetDlDst.class, new OF10SetDlDstActionSerializer());
\r
93 helper.registerSerializer(SetNwSrc.class, new OF10SetNwSrcActionSerializer());
\r
94 helper.registerSerializer(SetNwDst.class, new OF10SetNwDstActionSerializer());
\r
95 helper.registerSerializer(SetNwTos.class, new OF10SetNwTosActionSerializer());
\r
96 helper.registerSerializer(SetTpSrc.class, new OF10SetTpSrcActionSerializer());
\r
97 helper.registerSerializer(SetTpDst.class, new OF10SetTpDstActionSerializer());
\r
98 helper.registerSerializer(Enqueue.class, new OF10EnqueueActionSerializer());
\r
99 // register OF v1.0 action serializers
\r
100 helper = new ActionSerializerRegistryHelper(
\r
101 EncodeConstants.OF13_VERSION_ID, serializerRegistry);
\r
102 helper.registerSerializer(Output.class, new OF13OutputActionSerializer());
\r
103 helper.registerSerializer(CopyTtlOut.class, new OF13CopyTtlOutActionSerializer());
\r
104 helper.registerSerializer(CopyTtlIn.class, new OF13CopyTtlInActionSerializer());
\r
105 helper.registerSerializer(SetMplsTtl.class, new OF13SetMplsTtlActionSerializer());
\r
106 helper.registerSerializer(DecMplsTtl.class, new OF13DecMplsTtlActionSerializer());
\r
107 helper.registerSerializer(PushVlan.class, new OF13PushVlanActionSerializer());
\r
108 helper.registerSerializer(PopVlan.class, new OF13PopVlanActionSerializer());
\r
109 helper.registerSerializer(PushMpls.class, new OF13PushMplsActionSerializer());
\r
110 helper.registerSerializer(PopMpls.class, new OF13PopMplsActionSerializer());
\r
111 helper.registerSerializer(SetQueue.class, new OF13SetQueueActionSerializer());
\r
112 helper.registerSerializer(Group.class, new OF13GroupActionSerializer());
\r
113 helper.registerSerializer(SetNwTtl.class, new OF13SetNwTtlActionSerializer());
\r
114 helper.registerSerializer(DecNwTtl.class, new OF13DecNwTtlActionSerializer());
\r
115 helper.registerSerializer(SetField.class, new OF13SetFieldActionSerializer());
\r
116 helper.registerSerializer(PushPbb.class, new OF13PushPbbActionSerializer());
\r
117 helper.registerSerializer(PopPbb.class, new OF13PopPbbActionSerializer());
\r