2 * Copyright (c) 2017 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
9 package org.opendaylight.openflowplugin.impl.protocol.serialization.util;
12 import io.netty.buffer.ByteBuf;
13 import org.opendaylight.openflowjava.protocol.api.extensibility.HeaderSerializer;
14 import org.opendaylight.openflowjava.protocol.api.extensibility.OFSerializer;
15 import org.opendaylight.openflowjava.protocol.api.extensibility.SerializerRegistry;
16 import org.opendaylight.openflowjava.protocol.api.keys.MessageTypeKey;
17 import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.Instruction;
21 * Utility class for instruction serialization
23 public class InstructionUtil {
26 * Serialize instruction
27 * @param instruction OpenFlow instruction
28 * @param version OpenFlow version
29 * @param registry OpenFlowJava serializer registry
30 * @param outBuffer output buffer
32 @SuppressWarnings("unchecked")
33 public static void writeInstruction(final Instruction instruction,
35 final SerializerRegistry registry,
36 final ByteBuf outBuffer) {
38 registry.<Instruction, OFSerializer<Instruction>>getSerializer(
40 EncodeConstants.OF13_VERSION_ID,
41 (Class<Instruction>) instruction.getImplementedInterface()))
42 .serialize(instruction, outBuffer);
47 * Serialize instruction header
48 * @param instruction OpenFlow instruction
49 * @param version OpenFlow version
50 * @param registry OpenFlowJava serializer registry
51 * @param outBuffer output buffer
53 @SuppressWarnings("unchecked")
54 public static void writeInstructionHeader(final Instruction instruction,
56 final SerializerRegistry registry,
57 final ByteBuf outBuffer) {
59 registry.<Instruction, HeaderSerializer<Instruction>>getSerializer(
61 EncodeConstants.OF13_VERSION_ID,
62 (Class<Instruction>) instruction.getImplementedInterface()))
63 .serializeHeader(instruction, outBuffer);