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
9 package org.opendaylight.openflowjava.protocol.impl.serialization;
\r
11 import org.opendaylight.openflowjava.protocol.api.extensibility.SerializerRegistry;
\r
12 import org.opendaylight.openflowjava.protocol.impl.serialization.experimenters.OF10StatsRequestVendorSerializer;
\r
13 import org.opendaylight.openflowjava.protocol.impl.serialization.experimenters.OF10VendorInputMessageFactory;
\r
14 import org.opendaylight.openflowjava.protocol.impl.serialization.experimenters.OF13ExperimenterActionSerializer;
\r
15 import org.opendaylight.openflowjava.protocol.impl.serialization.experimenters.OF13ExperimenterInputMessageFactory;
\r
16 import org.opendaylight.openflowjava.protocol.impl.serialization.experimenters.OF13ExperimenterInstructionSerializer;
\r
17 import org.opendaylight.openflowjava.protocol.impl.serialization.experimenters.OF13MeterBandExperimenterSerializer;
\r
18 import org.opendaylight.openflowjava.protocol.impl.serialization.experimenters.OF13MultipartExperimenterSerializer;
\r
19 import org.opendaylight.openflowjava.protocol.impl.serialization.experimenters.OF13TableFeatExpSerializer;
\r
20 import org.opendaylight.openflowjava.protocol.impl.util.CommonMessageRegistryHelper;
\r
21 import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
\r
22 import org.opendaylight.openflowjava.protocol.impl.util.EnhancedKeyRegistryHelper;
\r
23 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.Experimenter;
\r
24 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.grouping.Action;
\r
25 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.grouping.Instruction;
\r
26 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.ExperimenterInput;
\r
27 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.meter.band.header.meter.band.meter.band.experimenter._case.MeterBandExperimenter;
\r
28 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.multipart.request.experimenter._case.MultipartRequestExperimenter;
\r
29 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.table.features.properties.grouping.TableFeatureProperties;
\r
32 * @author michal.polkorab
\r
35 public class DefaultExperimenterInitializer {
\r
38 * Registers message serializers into provided registry
\r
39 * @param serializerRegistry registry to be initialized with message serializers
\r
41 public static void registerDefaultExperimenterSerializers(SerializerRegistry serializerRegistry) {
\r
42 // register OF v1.0 default experimenter serializers
\r
43 short version = EncodeConstants.OF10_VERSION_ID;
\r
44 CommonMessageRegistryHelper helper = new CommonMessageRegistryHelper(version, serializerRegistry);
\r
45 helper.registerSerializer(ExperimenterInput.class, new OF10VendorInputMessageFactory());
\r
46 EnhancedKeyRegistryHelper<Action> actionHelper = new EnhancedKeyRegistryHelper<>(
\r
47 EncodeConstants.OF10_VERSION_ID, Action.class, serializerRegistry);
\r
48 actionHelper.registerSerializer(Experimenter.class, new OF13ExperimenterActionSerializer());
\r
49 helper.registerSerializer(MultipartRequestExperimenter.class, new OF10StatsRequestVendorSerializer());
\r
50 // register OF v1.3 default experimenter serializers
\r
51 version = EncodeConstants.OF13_VERSION_ID;
\r
52 helper = new CommonMessageRegistryHelper(version, serializerRegistry);
\r
53 helper.registerSerializer(ExperimenterInput.class, new OF13ExperimenterInputMessageFactory());
\r
54 helper.registerSerializer(MultipartRequestExperimenter.class, new OF13MultipartExperimenterSerializer());
\r
55 helper.registerSerializer(TableFeatureProperties.class, new OF13TableFeatExpSerializer());
\r
56 helper.registerSerializer(MeterBandExperimenter.class, new OF13MeterBandExperimenterSerializer());
\r
57 actionHelper = new EnhancedKeyRegistryHelper<>(
\r
58 EncodeConstants.OF13_VERSION_ID, Action.class, serializerRegistry);
\r
59 actionHelper.registerSerializer(Experimenter.class, new OF13ExperimenterActionSerializer());
\r
60 EnhancedKeyRegistryHelper<Instruction> insHelper = new EnhancedKeyRegistryHelper<>(
\r
61 EncodeConstants.OF13_VERSION_ID, Instruction.class, serializerRegistry);
\r
62 insHelper.registerSerializer(org.opendaylight.yang.gen.v1.urn.opendaylight
\r
63 .openflow.common.instruction.rev130731.Experimenter.class,
\r
64 new OF13ExperimenterInstructionSerializer());
\r