1 package org.opendaylight.openflowjava.nx.codec.match;
3 import io.netty.buffer.ByteBuf;
5 import org.opendaylight.openflowjava.protocol.api.util.OxmMatchConstants;
6 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Nxm1Class;
7 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
8 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
9 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
10 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.ofj.nxm.nx.match.reg.grouping.RegValuesBuilder;
11 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.oxm.container.match.entry.value.RegCaseValue;
12 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.oxm.container.match.entry.value.RegCaseValueBuilder;
14 public abstract class AbstractRegCodec extends AbstractMatchCodec {
16 private static final int VALUE_LENGTH = 4;
19 public MatchEntry deserialize(ByteBuf message) {
20 MatchEntryBuilder matchEntriesBuilder = deserializeHeader(message);
21 RegCaseValueBuilder caseBuilder = new RegCaseValueBuilder();
22 caseBuilder.setRegValues(new RegValuesBuilder().setValue(message.readUnsignedInt()).build());
23 matchEntriesBuilder.setMatchEntryValue(caseBuilder.build());
24 return matchEntriesBuilder.build();
28 public void serialize(MatchEntry input, ByteBuf outBuffer) {
29 serializeHeader(input, outBuffer);
30 RegCaseValue regCase = ((RegCaseValue) input.getMatchEntryValue());
31 Long value = regCase.getRegValues().getValue();
32 outBuffer.writeInt(value.intValue());
36 public int getOxmClassCode() {
37 return OxmMatchConstants.NXM_1_CLASS;
41 public int getValueLength() {
46 public Class<? extends OxmClassBase> getOxmClass() {
47 return Nxm1Class.class;