Change GetConfigReq/Res and SetConfig factories to version assignable
[openflowjava.git] / openflow-protocol-impl / src / main / java / org / opendaylight / openflowjava / protocol / impl / deserialization / AdditionalMessageDeserializerInitializer.java
1 /*
2  * Copyright (c) 2015 NetIDE Consortium and others.  All rights reserved.
3  *
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
7  */
8 package org.opendaylight.openflowjava.protocol.impl.deserialization;
9
10 import org.opendaylight.openflowjava.protocol.api.extensibility.DeserializerRegistry;
11 import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
12 import org.opendaylight.openflowjava.protocol.impl.deserialization.factories.BarrierInputMessageFactory;
13 import org.opendaylight.openflowjava.protocol.impl.deserialization.factories.FlowModInputMessageFactory;
14 import org.opendaylight.openflowjava.protocol.impl.deserialization.factories.GetAsyncRequestMessageFactory;
15 import org.opendaylight.openflowjava.protocol.impl.deserialization.factories.GetConfigInputMessageFactory;
16 import org.opendaylight.openflowjava.protocol.impl.deserialization.factories.GetFeaturesInputMessageFactory;
17 import org.opendaylight.openflowjava.protocol.impl.deserialization.factories.GetQueueConfigInputMessageFactory;
18 import org.opendaylight.openflowjava.protocol.impl.deserialization.factories.GroupModInputMessageFactory;
19 import org.opendaylight.openflowjava.protocol.impl.deserialization.factories.MeterModInputMessageFactory;
20 import org.opendaylight.openflowjava.protocol.impl.deserialization.factories.MultipartRequestInputMessageFactory;
21 import org.opendaylight.openflowjava.protocol.impl.deserialization.factories.OF10BarrierInputMessageFactory;
22 import org.opendaylight.openflowjava.protocol.impl.deserialization.factories.OF10FeaturesRequestMessageFactory;
23 import org.opendaylight.openflowjava.protocol.impl.deserialization.factories.OF10FlowModInputMessageFactory;
24 import org.opendaylight.openflowjava.protocol.impl.deserialization.factories.OF10GetQueueConfigInputMessageFactory;
25 import org.opendaylight.openflowjava.protocol.impl.deserialization.factories.OF10PacketOutInputMessageFactory;
26 import org.opendaylight.openflowjava.protocol.impl.deserialization.factories.OF10PortModInputMessageFactory;
27 import org.opendaylight.openflowjava.protocol.impl.deserialization.factories.OF10StatsRequestInputFactory;
28 import org.opendaylight.openflowjava.protocol.impl.deserialization.factories.PacketOutInputMessageFactory;
29 import org.opendaylight.openflowjava.protocol.impl.deserialization.factories.PortModInputMessageFactory;
30 import org.opendaylight.openflowjava.protocol.impl.deserialization.factories.RoleRequestInputMessageFactory;
31 import org.opendaylight.openflowjava.protocol.impl.deserialization.factories.SetAsyncInputMessageFactory;
32 import org.opendaylight.openflowjava.protocol.impl.deserialization.factories.SetConfigInputMessageFactory;
33 import org.opendaylight.openflowjava.protocol.impl.deserialization.factories.TableModInputMessageFactory;
34 import org.opendaylight.openflowjava.protocol.impl.util.SimpleDeserializerRegistryHelper;
35 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.BarrierInput;
36 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.FlowModInput;
37 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetAsyncInput;
38 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetConfigInput;
39 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetFeaturesInput;
40 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetQueueConfigInput;
41 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GroupModInput;
42 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MeterModInput;
43 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartRequestInput;
44 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PacketOutInput;
45 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PortModInput;
46 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.RoleRequestInput;
47 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.SetAsyncInput;
48 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.SetConfigInput;
49 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.TableModInput;
50
51 /**
52  * @author giuseppex.petralia@intel.com
53  *
54  */
55 public class AdditionalMessageDeserializerInitializer {
56     private AdditionalMessageDeserializerInitializer() {
57         throw new UnsupportedOperationException("Utility class shouldn't be instantiated");
58     }
59
60     /**
61      * Registers additional message deserializers.
62      * @param registry registry to be filled with deserializers
63      */
64     public static void registerMessageDeserializers(DeserializerRegistry registry) {
65
66         SimpleDeserializerRegistryHelper helper = new SimpleDeserializerRegistryHelper(EncodeConstants.OF10_VERSION_ID,
67                 registry);
68
69         // register OF v1.0 message deserializers
70         helper.registerDeserializer(5, null, GetFeaturesInput.class, new OF10FeaturesRequestMessageFactory());
71         helper.registerDeserializer(7, null, GetConfigInput.class, new GetConfigInputMessageFactory());
72         helper.registerDeserializer(9, null, SetConfigInput.class, new SetConfigInputMessageFactory());
73         helper.registerDeserializer(13, null, PacketOutInput.class, new OF10PacketOutInputMessageFactory());
74         helper.registerDeserializer(14, null, FlowModInput.class, new OF10FlowModInputMessageFactory());
75         helper.registerDeserializer(15, null, PortModInput.class, new OF10PortModInputMessageFactory());
76         helper.registerDeserializer(16, null, MultipartRequestInput.class, new OF10StatsRequestInputFactory());
77         helper.registerDeserializer(18, null, BarrierInput.class, new OF10BarrierInputMessageFactory());
78         helper.registerDeserializer(20, null, GetQueueConfigInput.class, new OF10GetQueueConfigInputMessageFactory());
79
80         // register OF v1.3 message deserializers
81         helper = new SimpleDeserializerRegistryHelper(EncodeConstants.OF13_VERSION_ID, registry);
82         helper.registerDeserializer(5, null, GetFeaturesInput.class, new GetFeaturesInputMessageFactory());
83         helper.registerDeserializer(7, null, GetConfigInput.class, new GetConfigInputMessageFactory());
84         helper.registerDeserializer(9, null, SetConfigInput.class, new SetConfigInputMessageFactory());
85         helper.registerDeserializer(13, null, PacketOutInput.class, new PacketOutInputMessageFactory());
86         helper.registerDeserializer(14, null, FlowModInput.class, new FlowModInputMessageFactory());
87         helper.registerDeserializer(15, null, GroupModInput.class, new GroupModInputMessageFactory());
88         helper.registerDeserializer(16, null, PortModInput.class, new PortModInputMessageFactory());
89         helper.registerDeserializer(17, null, TableModInput.class, new TableModInputMessageFactory());
90         helper.registerDeserializer(18, null, MultipartRequestInput.class, new MultipartRequestInputMessageFactory());
91         helper.registerDeserializer(20, null, BarrierInput.class, new BarrierInputMessageFactory());
92         helper.registerDeserializer(22, null, GetQueueConfigInput.class, new GetQueueConfigInputMessageFactory());
93         helper.registerDeserializer(24, null, RoleRequestInput.class, new RoleRequestInputMessageFactory());
94         helper.registerDeserializer(26, null, GetAsyncInput.class, new GetAsyncRequestMessageFactory());
95         helper.registerDeserializer(28, null, SetAsyncInput.class, new SetAsyncInputMessageFactory());
96         helper.registerDeserializer(29, null, MeterModInput.class, new MeterModInputMessageFactory());
97
98         // register OF v1.4 message deserializers
99         helper = new SimpleDeserializerRegistryHelper(EncodeConstants.OF14_VERSION_ID, registry);
100         helper.registerDeserializer(7, null, GetConfigInput.class, new GetConfigInputMessageFactory());
101         helper.registerDeserializer(9, null, SetConfigInput.class, new SetConfigInputMessageFactory());
102
103         // register OF v1.5 message deserializers
104         helper = new SimpleDeserializerRegistryHelper(EncodeConstants.OF15_VERSION_ID, registry);
105         helper.registerDeserializer(7, null, GetConfigInput.class, new GetConfigInputMessageFactory());
106         helper.registerDeserializer(9, null, SetConfigInput.class, new SetConfigInputMessageFactory());
107     }
108
109 }