2 * Copyright (c) 2015 NetIDE Consortium 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.deserialization;
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.OF10FeaturesRequestMessageFactory;
22 import org.opendaylight.openflowjava.protocol.impl.deserialization.factories.OF10FlowModInputMessageFactory;
23 import org.opendaylight.openflowjava.protocol.impl.deserialization.factories.OF10GetQueueConfigInputMessageFactory;
24 import org.opendaylight.openflowjava.protocol.impl.deserialization.factories.OF10PacketOutInputMessageFactory;
25 import org.opendaylight.openflowjava.protocol.impl.deserialization.factories.OF10PortModInputMessageFactory;
26 import org.opendaylight.openflowjava.protocol.impl.deserialization.factories.OF10StatsRequestInputFactory;
27 import org.opendaylight.openflowjava.protocol.impl.deserialization.factories.PacketOutInputMessageFactory;
28 import org.opendaylight.openflowjava.protocol.impl.deserialization.factories.PortModInputMessageFactory;
29 import org.opendaylight.openflowjava.protocol.impl.deserialization.factories.RoleRequestInputMessageFactory;
30 import org.opendaylight.openflowjava.protocol.impl.deserialization.factories.SetAsyncInputMessageFactory;
31 import org.opendaylight.openflowjava.protocol.impl.deserialization.factories.SetConfigInputMessageFactory;
32 import org.opendaylight.openflowjava.protocol.impl.deserialization.factories.TableModInputMessageFactory;
33 import org.opendaylight.openflowjava.protocol.impl.util.SimpleDeserializerRegistryHelper;
34 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.BarrierInput;
35 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.FlowModInput;
36 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetAsyncInput;
37 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetConfigInput;
38 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetFeaturesInput;
39 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetQueueConfigInput;
40 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GroupModInput;
41 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MeterModInput;
42 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartRequestInput;
43 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PacketOutInput;
44 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PortModInput;
45 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.RoleRequestInput;
46 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.SetAsyncInput;
47 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.SetConfigInput;
48 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.TableModInput;
51 * Util class for init registration of additional deserializers.
53 * @author giuseppex.petralia@intel.com
55 public final class AdditionalMessageDeserializerInitializer {
56 private AdditionalMessageDeserializerInitializer() {
61 * Registers additional message deserializers.
62 * @param registry registry to be filled with deserializers
64 public static void registerMessageDeserializers(final DeserializerRegistry registry) {
65 SimpleDeserializerRegistryHelper helper;
67 // register OF v1.0 message deserializers
68 helper = new SimpleDeserializerRegistryHelper(EncodeConstants.OF10_VERSION_ID, registry);
69 helper.registerDeserializer(5, GetFeaturesInput.class, new OF10FeaturesRequestMessageFactory());
70 helper.registerDeserializer(7, GetConfigInput.class, new GetConfigInputMessageFactory());
71 helper.registerDeserializer(9, SetConfigInput.class, new SetConfigInputMessageFactory());
72 helper.registerDeserializer(13, PacketOutInput.class, new OF10PacketOutInputMessageFactory());
73 helper.registerDeserializer(14, FlowModInput.class, new OF10FlowModInputMessageFactory());
74 helper.registerDeserializer(15, PortModInput.class, new OF10PortModInputMessageFactory());
75 helper.registerDeserializer(16, MultipartRequestInput.class, new OF10StatsRequestInputFactory());
76 helper.registerDeserializer(18, BarrierInput.class, new BarrierInputMessageFactory());
77 helper.registerDeserializer(20, GetQueueConfigInput.class, new OF10GetQueueConfigInputMessageFactory());
79 // register OF v1.3 message deserializers
80 helper = new SimpleDeserializerRegistryHelper(EncodeConstants.OF13_VERSION_ID, registry);
81 helper.registerDeserializer(5, GetFeaturesInput.class, new GetFeaturesInputMessageFactory());
82 helper.registerDeserializer(7, GetConfigInput.class, new GetConfigInputMessageFactory());
83 helper.registerDeserializer(9, SetConfigInput.class, new SetConfigInputMessageFactory());
84 helper.registerDeserializer(13, PacketOutInput.class, new PacketOutInputMessageFactory());
85 helper.registerDeserializer(14, FlowModInput.class, new FlowModInputMessageFactory());
86 helper.registerDeserializer(15, GroupModInput.class, new GroupModInputMessageFactory());
87 helper.registerDeserializer(16, PortModInput.class, new PortModInputMessageFactory());
88 helper.registerDeserializer(17, TableModInput.class, new TableModInputMessageFactory());
89 helper.registerDeserializer(18, MultipartRequestInput.class, new MultipartRequestInputMessageFactory());
90 helper.registerDeserializer(20, BarrierInput.class, new BarrierInputMessageFactory());
91 helper.registerDeserializer(22, GetQueueConfigInput.class, new GetQueueConfigInputMessageFactory());
92 helper.registerDeserializer(24, RoleRequestInput.class, new RoleRequestInputMessageFactory());
93 helper.registerDeserializer(26, GetAsyncInput.class, new GetAsyncRequestMessageFactory());
94 helper.registerDeserializer(28, SetAsyncInput.class, new SetAsyncInputMessageFactory());
95 helper.registerDeserializer(29, MeterModInput.class, new MeterModInputMessageFactory());
97 // register OF v1.4 message deserializers
98 helper = new SimpleDeserializerRegistryHelper(EncodeConstants.OF14_VERSION_ID, registry);
99 helper.registerDeserializer(7, GetConfigInput.class, new GetConfigInputMessageFactory());
100 helper.registerDeserializer(9, SetConfigInput.class, new SetConfigInputMessageFactory());
101 helper.registerDeserializer(20, BarrierInput.class, new BarrierInputMessageFactory());
103 // register OF v1.5 message deserializers
104 helper = new SimpleDeserializerRegistryHelper(EncodeConstants.OF15_VERSION_ID, registry);
105 helper.registerDeserializer(7, GetConfigInput.class, new GetConfigInputMessageFactory());
106 helper.registerDeserializer(9, SetConfigInput.class, new SetConfigInputMessageFactory());
107 helper.registerDeserializer(20, BarrierInput.class, new BarrierInputMessageFactory());