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.rev150203.action.grouping.action.choice.CopyTtlInCase;
42 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.CopyTtlOutCase;
43 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.DecMplsTtlCase;
44 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.DecNwTtlCase;
45 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.EnqueueCase;
46 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.GroupCase;
47 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.OutputActionCase;
48 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.PopMplsCase;
49 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.PopPbbCase;
50 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.PopVlanCase;
51 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.PushMplsCase;
52 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.PushPbbCase;
53 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.PushVlanCase;
54 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetDlDstCase;
55 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetDlSrcCase;
56 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetFieldCase;
57 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetMplsTtlCase;
58 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetNwDstCase;
59 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetNwSrcCase;
60 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetNwTosCase;
61 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetNwTtlCase;
62 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetQueueCase;
63 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetTpDstCase;
64 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetTpSrcCase;
65 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetVlanPcpCase;
66 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetVlanVidCase;
67 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.StripVlanCase;
68 //import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.Group;
71 * Initializes serializer registry with action serializers
72 * @author michal.polkorab
74 public final class ActionsInitializer {
76 private ActionsInitializer() {
77 throw new UnsupportedOperationException("Utility class shouldn't be instantiated");
81 * Registers action serializers into provided registry
82 * @param serializerRegistry registry to be initialized with action serializers
84 public static void registerActionSerializers(SerializerRegistry serializerRegistry) {
85 // register OF v1.0 action serializers
86 ActionSerializerRegistryHelper helper = new ActionSerializerRegistryHelper(
87 EncodeConstants.OF10_VERSION_ID, serializerRegistry);
88 helper.registerSerializer(OutputActionCase.class, new OF10OutputActionSerializer());
89 helper.registerSerializer(SetVlanVidCase.class, new OF10SetVlanVidActionSerializer());
90 helper.registerSerializer(SetVlanPcpCase.class, new OF10SetVlanPcpActionSerializer());
91 helper.registerSerializer(StripVlanCase.class, new OF10StripVlanActionSerializer());
92 helper.registerSerializer(SetDlSrcCase.class, new OF10SetDlSrcActionSerializer());
93 helper.registerSerializer(SetDlDstCase.class, new OF10SetDlDstActionSerializer());
94 helper.registerSerializer(SetNwSrcCase.class, new OF10SetNwSrcActionSerializer());
95 helper.registerSerializer(SetNwDstCase.class, new OF10SetNwDstActionSerializer());
96 helper.registerSerializer(SetNwTosCase.class, new OF10SetNwTosActionSerializer());
97 helper.registerSerializer(SetTpSrcCase.class, new OF10SetTpSrcActionSerializer());
98 helper.registerSerializer(SetTpDstCase.class, new OF10SetTpDstActionSerializer());
99 helper.registerSerializer(EnqueueCase.class, new OF10EnqueueActionSerializer());
100 // register OF v1.0 action serializers
101 helper = new ActionSerializerRegistryHelper(
102 EncodeConstants.OF13_VERSION_ID, serializerRegistry);
103 helper.registerSerializer(OutputActionCase.class, new OF13OutputActionSerializer());
104 helper.registerSerializer(CopyTtlOutCase.class, new OF13CopyTtlOutActionSerializer());
105 helper.registerSerializer(CopyTtlInCase.class, new OF13CopyTtlInActionSerializer());
106 helper.registerSerializer(SetMplsTtlCase.class, new OF13SetMplsTtlActionSerializer());
107 helper.registerSerializer(DecMplsTtlCase.class, new OF13DecMplsTtlActionSerializer());
108 helper.registerSerializer(PushVlanCase.class, new OF13PushVlanActionSerializer());
109 helper.registerSerializer(PopVlanCase.class, new OF13PopVlanActionSerializer());
110 helper.registerSerializer(PushMplsCase.class, new OF13PushMplsActionSerializer());
111 helper.registerSerializer(PopMplsCase.class, new OF13PopMplsActionSerializer());
112 helper.registerSerializer(SetQueueCase.class, new OF13SetQueueActionSerializer());
113 helper.registerSerializer(GroupCase.class, new OF13GroupActionSerializer());
114 helper.registerSerializer(SetNwTtlCase.class, new OF13SetNwTtlActionSerializer());
115 helper.registerSerializer(DecNwTtlCase.class, new OF13DecNwTtlActionSerializer());
116 helper.registerSerializer(SetFieldCase.class, new OF13SetFieldActionSerializer());
117 helper.registerSerializer(PushPbbCase.class, new OF13PushPbbActionSerializer());
118 helper.registerSerializer(PopPbbCase.class, new OF13PopPbbActionSerializer());