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