/*
* Copyright (c) 2013 Pantheon Technologies s.r.o. and others. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
package org.opendaylight.openflowjava.protocol.impl.deserialization;
import org.opendaylight.openflowjava.protocol.api.extensibility.DeserializerRegistry;
import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF10EnqueueActionDeserializer;
import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF10OutputActionDeserializer;
import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF10SetDlDstActionDeserializer;
import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF10SetDlSrcActionDeserializer;
import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF10SetNwDstActionDeserializer;
import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF10SetNwSrcActionDeserializer;
import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF10SetNwTosActionDeserializer;
import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF10SetTpDstActionDeserializer;
import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF10SetTpSrcActionDeserializer;
import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF10SetVlanPcpActionDeserializer;
import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF10SetVlanVidActionDeserializer;
import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF10StripVlanActionDeserializer;
import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13CopyTtlInActionDeserializer;
import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13CopyTtlOutActionDeserializer;
import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13DecMplsTtlActionDeserializer;
import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13DecNwTtlActionDeserializer;
import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13GroupActionDeserializer;
import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13OutputActionDeserializer;
import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13PopMplsActionDeserializer;
import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13PopPbbActionDeserializer;
import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13PopVlanActionDeserializer;
import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13PushMplsActionDeserializer;
import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13PushPbbActionDeserializer;
import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13PushVlanActionDeserializer;
import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13SetFieldActionDeserializer;
import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13SetMplsTtlActionDeserializer;
import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13SetNwTtlActionDeserializer;
import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13SetQueueActionDeserializer;
import org.opendaylight.openflowjava.protocol.impl.util.ActionDeserializerRegistryHelper;
/**
* @author michal.polkorab
*
*/
public final class ActionDeserializerInitializer {
private ActionDeserializerInitializer() {
throw new UnsupportedOperationException("Utility class shouldn't be instantiated");
}
/**
* Registers action deserializers
* @param registry registry to be filled with deserializers
*/
public static void registerDeserializers(DeserializerRegistry registry) {
// register OF v1.0 action deserializers
ActionDeserializerRegistryHelper helper =
new ActionDeserializerRegistryHelper(EncodeConstants.OF10_VERSION_ID, registry);
helper.registerDeserializer(0, new OF10OutputActionDeserializer());
helper.registerDeserializer(1, new OF10SetVlanVidActionDeserializer());
helper.registerDeserializer(2, new OF10SetVlanPcpActionDeserializer());
helper.registerDeserializer(3, new OF10StripVlanActionDeserializer());
helper.registerDeserializer(4, new OF10SetDlSrcActionDeserializer());
helper.registerDeserializer(5, new OF10SetDlDstActionDeserializer());
helper.registerDeserializer(6, new OF10SetNwSrcActionDeserializer());
helper.registerDeserializer(7, new OF10SetNwDstActionDeserializer());
helper.registerDeserializer(8, new OF10SetNwTosActionDeserializer());
helper.registerDeserializer(9, new OF10SetTpSrcActionDeserializer());
helper.registerDeserializer(10, new OF10SetTpDstActionDeserializer());
helper.registerDeserializer(11, new OF10EnqueueActionDeserializer());
// register OF v1.3 action deserializers
helper = new ActionDeserializerRegistryHelper(EncodeConstants.OF13_VERSION_ID, registry);
helper.registerDeserializer(0, new OF13OutputActionDeserializer());
helper.registerDeserializer(11, new OF13CopyTtlOutActionDeserializer());
helper.registerDeserializer(12, new OF13CopyTtlInActionDeserializer());
helper.registerDeserializer(15, new OF13SetMplsTtlActionDeserializer());
helper.registerDeserializer(16, new OF13DecMplsTtlActionDeserializer());
helper.registerDeserializer(17, new OF13PushVlanActionDeserializer());
helper.registerDeserializer(18, new OF13PopVlanActionDeserializer());
helper.registerDeserializer(19, new OF13PushMplsActionDeserializer());
helper.registerDeserializer(20, new OF13PopMplsActionDeserializer());
helper.registerDeserializer(21, new OF13SetQueueActionDeserializer());
helper.registerDeserializer(22, new OF13GroupActionDeserializer());
helper.registerDeserializer(23, new OF13SetNwTtlActionDeserializer());
helper.registerDeserializer(24, new OF13DecNwTtlActionDeserializer());
helper.registerDeserializer(25, new OF13SetFieldActionDeserializer());
helper.registerDeserializer(26, new OF13PushPbbActionDeserializer());
helper.registerDeserializer(27, new OF13PopPbbActionDeserializer());
}
}