1 /* Copyright (C)2013 Pantheon Technologies, s.r.o. All rights reserved. */
\r
2 package org.opendaylight.openflowjava.protocol.impl.util;
\r
4 import io.netty.buffer.ByteBuf;
\r
6 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.match.v10.grouping.MatchV10;
\r
9 * @author michal.polkorab
\r
12 public abstract class OF10MatchSerializer {
\r
14 private static final byte PADDING_IN_MATCH = 1;
\r
15 private static final byte PADDING_IN_MATCH_2 = 2;
\r
18 * Encodes ofp_match (OpenFlow v1.0)
\r
22 public static void encodeMatchV10(ByteBuf out, MatchV10 match) {
\r
23 out.writeInt(match.getWildcards().intValue());
\r
24 out.writeShort(match.getInPort());
\r
25 out.writeBytes(match.getDlSrc().getValue().getBytes());
\r
26 out.writeBytes(match.getDlDst().getValue().getBytes());
\r
27 out.writeShort(match.getDlVlan());
\r
28 out.writeByte(match.getDlVlanPcp());
\r
29 ByteBufUtils.padBuffer(PADDING_IN_MATCH, out);
\r
30 out.writeShort(match.getDlType());
\r
31 out.writeByte(match.getNwTos());
\r
32 out.writeByte(match.getNwProto());
\r
33 ByteBufUtils.padBuffer(PADDING_IN_MATCH_2, out);
\r
34 String[] srcGroups = match.getNwSrc().getValue().split(".");
\r
35 for (int i = 0; i < srcGroups.length; i++) {
\r
36 out.writeByte(Integer.parseInt(srcGroups[i]));
\r
38 String[] dstGroups = match.getNwSrc().getValue().split(".");
\r
39 for (int i = 0; i < dstGroups.length; i++) {
\r
40 out.writeByte(Integer.parseInt(dstGroups[i]));
\r
42 out.writeShort(match.getTpSrc());
\r
43 out.writeShort(match.getTpDst());
\r