package org.opendaylight.openflowjava.nx.api;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.ExperimenterActionSubType;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.ActionChoice;
/**
* @author msunal
public class NiciraActionSerializerKey {
private final short version;
- private final Class<? extends ExperimenterActionSubType> subtype;
+ private final Class<? extends ActionChoice> subtype;
/**
* @param version protocol wire version
* @param subtype nx_action_subtype
*/
- public NiciraActionSerializerKey(short version, Class<? extends ExperimenterActionSubType> subtype) {
+ public NiciraActionSerializerKey(short version, Class<? extends ActionChoice> subtype) {
this.version = version;
this.subtype = subtype;
}
return version;
}
- public Class<? extends ExperimenterActionSubType> getSubtype() {
+ public Class<? extends ActionChoice> getSubtype() {
return subtype;
}
/**
* Copyright (c) 2014 Cisco Systems, Inc. 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.nx.api;
-import org.opendaylight.openflowjava.protocol.api.keys.ExperimenterActionSerializerKey;
+import org.opendaylight.openflowjava.protocol.api.keys.ActionSerializerKey;
/**
* @author msunal
- *
*/
public final class NiciraUtil {
-
- public static final ExperimenterActionSerializerKey createOfJavaKeyFrom(NiciraActionSerializerKey key) {
- return new ExperimenterActionSerializerKey(key.getVersion(), NiciraConstants.NX_VENDOR_ID, key.getSubtype());
+
+
+ public static final ActionSerializerKey<?> createOfJavaKeyFrom(NiciraActionSerializerKey key) {
+ return new ActionSerializerKey<>(key.getVersion(), key.getSubtype(), NiciraConstants.NX_VENDOR_ID);
}
}
import org.opendaylight.openflowjava.protocol.api.extensibility.OFGeneralDeserializer;
import org.opendaylight.openflowjava.protocol.api.extensibility.OFGeneralSerializer;
import org.opendaylight.openflowjava.protocol.api.extensibility.OFSerializer;
+import org.opendaylight.openflowjava.protocol.api.keys.ActionSerializerKey;
import org.opendaylight.openflowjava.protocol.api.keys.ExperimenterActionDeserializerKey;
-import org.opendaylight.openflowjava.protocol.api.keys.ExperimenterActionSerializerKey;
import org.opendaylight.openflowjava.protocol.api.keys.ExperimenterDeserializerKey;
import org.opendaylight.openflowjava.protocol.api.keys.ExperimenterSerializerKey;
import org.opendaylight.openflowjava.protocol.api.keys.MatchEntryDeserializerKey;
}
}
- private void registerActionSerializer(ExperimenterActionSerializerKey key, OFGeneralSerializer serializer) {
+ private void registerActionSerializer(ActionSerializerKey<?> key, OFGeneralSerializer serializer) {
for (SwitchConnectionProvider provider : providers) {
provider.registerActionSerializer(key, serializer);
}
// subtype
message.skipBytes(EncodeConstants.SIZE_OF_SHORT_IN_BYTES);
ActionBuilder actionBuilder = new ActionBuilder();
+ actionBuilder.setExperimenterId(getExperimenterId());
return actionBuilder;
}
public static final int LENGTH = 32;
public static final byte NXAST_MULTIPATH_SUBTYPE = 10;
public static final NiciraActionSerializerKey SERIALIZER_KEY =
- new NiciraActionSerializerKey(EncodeConstants.OF13_VERSION_ID, NxmNxMultipath.class);
+ new NiciraActionSerializerKey(EncodeConstants.OF13_VERSION_ID, ActionMultipath.class);
public static final NiciraActionDeserializerKey DESERIALIZER_KEY =
new NiciraActionDeserializerKey(EncodeConstants.OF13_VERSION_ID, NXAST_MULTIPATH_SUBTYPE);
nxActionMultipathBuilder.setOfsNbits(message.readUnsignedShort());
nxActionMultipathBuilder.setDst(message.readUnsignedInt());
- nxActionMultipathBuilder.setExperimenterId(getExperimenterId());
actionMultipathBuilder.setNxActionMultipath(nxActionMultipathBuilder.build());
actionBuilder.setActionChoice(actionMultipathBuilder.build());
import org.opendaylight.openflowjava.nx.api.NiciraActionDeserializerKey;
import org.opendaylight.openflowjava.nx.api.NiciraActionSerializerKey;
import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.output.action._case.OutputAction;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.Action;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.ActionBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.NxmNxOutputReg;
public static final byte SUBTYPE = 15; // NXAST_OUTPUT_REG
public static final byte PADDING_IN_OUTPUT_REG_ACTION = 6;
public static final NiciraActionSerializerKey SERIALIZER_KEY =
- new NiciraActionSerializerKey(EncodeConstants.OF13_VERSION_ID, NxmNxOutputReg.class);
+ new NiciraActionSerializerKey(EncodeConstants.OF13_VERSION_ID, ActionOutputReg.class);
public static final NiciraActionDeserializerKey DESERIALIZER_KEY =
new NiciraActionDeserializerKey(EncodeConstants.OF13_VERSION_ID, SUBTYPE);
nxActionOutputRegBuilder.setNBits(message.readUnsignedShort());
nxActionOutputRegBuilder.setSrc(message.readUnsignedInt());
nxActionOutputRegBuilder.setMaxLen(message.readUnsignedShort());
- nxActionOutputRegBuilder.setExperimenterId(getExperimenterId());
message.skipBytes(PADDING_IN_OUTPUT_REG_ACTION);
builder.setNxActionOutputReg(nxActionOutputRegBuilder.build());
actionBuilder.setActionChoice(builder.build());
public static final int LENGTH = 24;
public static final byte SUBTYPE = 7; // NXAST_REG_LOAD
public static final NiciraActionSerializerKey SERIALIZER_KEY = new NiciraActionSerializerKey(
- EncodeConstants.OF13_VERSION_ID, NxmNxRegLoad.class);
+ EncodeConstants.OF13_VERSION_ID, ActionRegLoad.class);
public static final NiciraActionDeserializerKey DESERIALIZER_KEY = new NiciraActionDeserializerKey(
EncodeConstants.OF13_VERSION_ID, SUBTYPE);
nxActionRegLoadBuilder.setOfsNbits(message.readUnsignedShort());
nxActionRegLoadBuilder.setDst(message.readUnsignedInt());
nxActionRegLoadBuilder.setValue(BigInteger.valueOf(message.readLong()));
- nxActionRegLoadBuilder.setExperimenterId(getExperimenterId());
actionRegLoadBuilder.setNxActionRegLoad(nxActionRegLoadBuilder.build());
actionBuilder.setActionChoice(actionRegLoadBuilder.build());
return actionBuilder.build();
public static final int LENGTH = 24;
public static final byte SUBTYPE = 6; // NXAST_REG_MOVE
public static final NiciraActionSerializerKey SERIALIZER_KEY = new NiciraActionSerializerKey(
- EncodeConstants.OF13_VERSION_ID, NxmNxRegMove.class);
+ EncodeConstants.OF13_VERSION_ID, ActionRegMove.class);
public static final NiciraActionDeserializerKey DESERIALIZER_KEY = new NiciraActionDeserializerKey(
EncodeConstants.OF13_VERSION_ID, SUBTYPE);
nxActionRegMoveBuilder.setDstOfs(message.readUnsignedShort());
nxActionRegMoveBuilder.setSrc(message.readUnsignedInt());
nxActionRegMoveBuilder.setDst(message.readUnsignedInt());
- nxActionRegMoveBuilder.setExperimenterId(getExperimenterId());
actionRegMoveBuilder.setNxActionRegMove(nxActionRegMoveBuilder.build());
actionBuilder.setActionChoice(actionRegMoveBuilder.build());
return actionBuilder.build();
public static final byte NXAST_RESUBMIT_SUBTYPE = 1;
public static final byte NXAST_RESUBMIT_TABLE_SUBTYPE = 14;
public static final NiciraActionSerializerKey SERIALIZER_KEY =
- new NiciraActionSerializerKey(EncodeConstants.OF13_VERSION_ID, NxmNxResubmit.class);
+ new NiciraActionSerializerKey(EncodeConstants.OF13_VERSION_ID, ActionResubmit.class);
public static final NiciraActionDeserializerKey DESERIALIZER_KEY =
new NiciraActionDeserializerKey(EncodeConstants.OF13_VERSION_ID, NXAST_RESUBMIT_SUBTYPE);
public static final NiciraActionDeserializerKey TABLE_DESERIALIZER_KEY =
NxActionResubmitBuilder nxActionResubmitBuilder = new NxActionResubmitBuilder();
nxActionResubmitBuilder.setInPort(message.readUnsignedShort());
nxActionResubmitBuilder.setTable(message.readUnsignedByte());
- ExperimenterId experimenterId = new ExperimenterId(NiciraConstants.NX_VENDOR_ID);
- nxActionResubmitBuilder.setExperimenterId(experimenterId);
builder.setNxActionResubmit(nxActionResubmitBuilder.build());
message.skipBytes(padding);
public static final int LENGTH = 16;
public static final byte NXAST_SET_NSI_SUBTYPE = 33;
public static final NiciraActionSerializerKey SERIALIZER_KEY =
- new NiciraActionSerializerKey(EncodeConstants.OF13_VERSION_ID, NxmNxSetNsi.class);
+ new NiciraActionSerializerKey(EncodeConstants.OF13_VERSION_ID, ActionSetNsi.class);
public static final NiciraActionDeserializerKey DESERIALIZER_KEY =
new NiciraActionDeserializerKey(EncodeConstants.OF13_VERSION_ID, NXAST_SET_NSI_SUBTYPE);
private static final int padding = 5; // nx_action_SetNsi : uint8_t pad[3];
ActionSetNsiBuilder builder = new ActionSetNsiBuilder();
NxActionSetNsiBuilder nxActionSetNsiBuilder = new NxActionSetNsiBuilder();
nxActionSetNsiBuilder.setNsi(message.readUnsignedByte());
- nxActionSetNsiBuilder.setExperimenterId(getExperimenterId());
message.skipBytes(padding);
builder.setNxActionSetNsi(nxActionSetNsiBuilder.build());
import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.Action;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.ActionBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.NxmNxSetNsp;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.action.container.action.choice.ActionSetNsp;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.action.container.action.choice.ActionSetNspBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.ofj.nx.action.set.nsp.grouping.NxActionSetNspBuilder;
public static final int LENGTH = 16;
public static final byte NXAST_SET_NSP_SUBTYPE = 32;
public static final NiciraActionSerializerKey SERIALIZER_KEY =
- new NiciraActionSerializerKey(EncodeConstants.OF13_VERSION_ID, NxmNxSetNsp.class);
+ new NiciraActionSerializerKey(EncodeConstants.OF13_VERSION_ID, ActionSetNsp.class);
public static final NiciraActionDeserializerKey DESERIALIZER_KEY =
new NiciraActionDeserializerKey(EncodeConstants.OF13_VERSION_ID, NXAST_SET_NSP_SUBTYPE);
private static final int padding = 2; // nx_action_SetNsp : uint8_t pad[3];
NxActionSetNspBuilder nxActionSetNspBuilder = new NxActionSetNspBuilder();
message.skipBytes(padding);
nxActionSetNspBuilder.setNsp(message.readUnsignedInt());
- nxActionSetNspBuilder.setExperimenterId(getExperimenterId());
builder.setNxActionSetNsp(nxActionSetNspBuilder.build());
actionBuilder.setActionChoice(builder.build());
return actionBuilder.build();
package org.opendaylight.openflowjava.nx.codec.match;
import io.netty.buffer.ByteBuf;
-import org.opendaylight.openflowjava.nx.api.NiciraConstants;
+
import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer;
import org.opendaylight.openflowjava.protocol.api.extensibility.OFSerializer;
import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.oxm.container.match.entry.value.ExperimenterIdCaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.oxm.container.match.entry.value.experimenter.id._case.ExperimenterBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.ExperimenterId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
builder.setHasMask(hasMask);
// skip match entry length - not needed
message.skipBytes(EncodeConstants.SIZE_OF_BYTE_IN_BYTES);
- ExperimenterIdCaseBuilder experimenterIdCaseBuilder = new ExperimenterIdCaseBuilder();
- ExperimenterBuilder experimenterBuilder = new ExperimenterBuilder();
- experimenterBuilder.setExperimenter(new ExperimenterId(NiciraConstants.NX_VENDOR_ID));
- experimenterIdCaseBuilder.setExperimenter(experimenterBuilder.build());
-
- builder.setMatchEntryValue(experimenterIdCaseBuilder.build());
return builder;
}
package org.opendaylight.openflowjava.nx.codec.match;
import io.netty.buffer.ByteBuf;
+
import org.opendaylight.openflowjava.protocol.api.util.OxmMatchConstants;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.oxm.container.match.entry.value.ExperimenterIdCase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Nxm1Class;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.ofj.nxm.nx.match.reg.grouping.RegValuesBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.oxm.container.match.entry.value.RegCaseValue;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.oxm.container.match.entry.value.RegCaseValueBuilder;
public abstract class AbstractRegCodec extends AbstractMatchCodec {
@Override
public MatchEntry deserialize(ByteBuf message) {
MatchEntryBuilder matchEntriesBuilder = deserializeHeader(message);
-
+ RegCaseValueBuilder caseBuilder = new RegCaseValueBuilder();
+ caseBuilder.setRegValues(new RegValuesBuilder().setValue(message.readUnsignedInt()).build());
+ matchEntriesBuilder.setMatchEntryValue(caseBuilder.build());
return matchEntriesBuilder.build();
}
@Override
public void serialize(MatchEntry input, ByteBuf outBuffer) {
serializeHeader(input, outBuffer);
- ExperimenterIdCase experimenterIdCase = ((ExperimenterIdCase) input.getMatchEntryValue());
- outBuffer.writeInt(experimenterIdCase.getExperimenter().getExperimenter().getValue().intValue());
+ RegCaseValue regCase = ((RegCaseValue) input.getMatchEntryValue());
+ Long value = regCase.getRegValues().getValue();
+ outBuffer.writeInt(value.intValue());
}
@Override
package org.opendaylight.openflowjava.nx.codec.match;
import io.netty.buffer.ByteBuf;
+
import org.opendaylight.openflowjava.protocol.api.keys.MatchEntryDeserializerKey;
import org.opendaylight.openflowjava.protocol.api.keys.MatchEntrySerializerKey;
import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
import org.opendaylight.openflowjava.protocol.api.util.OxmMatchConstants;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.ArpOp;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Nxm0Class;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ArpOpCase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ArpOpCaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.arp.op._case.ArpOpBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.NxmOfArpOp;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.ofj.nxm.of.match.arp.op.grouping.ArpOpValuesBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.oxm.container.match.entry.value.ArpOpCaseValue;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.oxm.container.match.entry.value.ArpOpCaseValueBuilder;
public class ArpOpCodec extends AbstractMatchCodec {
@Override
public void serialize(MatchEntry input, ByteBuf outBuffer) {
serializeHeader(input, outBuffer);
- ArpOpCase arpOpCase = ((ArpOpCase) input.getMatchEntryValue());
- outBuffer.writeShort(arpOpCase.getArpOp().getOpCode());
+ ArpOpCaseValue arpOpCase = ((ArpOpCaseValue) input.getMatchEntryValue());
+ outBuffer.writeShort(arpOpCase.getArpOpValues().getValue());
}
@Override
public MatchEntry deserialize(ByteBuf message) {
MatchEntryBuilder matchEntryBuilder = deserializeHeader(message);
- ArpOpCaseBuilder arpOpCaseBuilder = new ArpOpCaseBuilder();
- ArpOpBuilder arpOpBuilder = new ArpOpBuilder();
- arpOpBuilder.setOpCode(message.readUnsignedShort());
- arpOpCaseBuilder.setArpOp(arpOpBuilder.build());
- matchEntryBuilder.setMatchEntryValue(arpOpCaseBuilder.build());
- matchEntryBuilder.setHasMask(false);
+ ArpOpCaseValueBuilder caseBuilder = new ArpOpCaseValueBuilder();
+ caseBuilder.setArpOpValues(new ArpOpValuesBuilder().setValue(message.readUnsignedShort()).build());
+ matchEntryBuilder.setMatchEntryValue(caseBuilder.build());
return matchEntryBuilder.build();
}
package org.opendaylight.openflowjava.nx.codec.match;
import io.netty.buffer.ByteBuf;
+
import org.opendaylight.openflowjava.protocol.api.keys.MatchEntryDeserializerKey;
import org.opendaylight.openflowjava.protocol.api.keys.MatchEntrySerializerKey;
import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
import org.opendaylight.openflowjava.protocol.api.util.OxmMatchConstants;
import org.opendaylight.openflowjava.util.ByteBufUtils;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev100924.MacAddress;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.ArpSha;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Nxm1Class;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ArpShaCase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ArpShaCaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.arp.sha._case.ArpShaBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.NxmNxArpSha;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.ofj.nxm.nx.match.arp.sha.grouping.ArpShaValuesBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.oxm.container.match.entry.value.ArpShaCaseValue;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.oxm.container.match.entry.value.ArpShaCaseValueBuilder;
public class ArpShaCodec extends AbstractMatchCodec {
@Override
public void serialize(MatchEntry input, ByteBuf outBuffer) {
serializeHeader(input, outBuffer);
- ArpShaCase value = ((ArpShaCase) input.getMatchEntryValue());
- outBuffer.writeBytes(ByteBufUtils.macAddressToBytes(value.getArpSha().getMacAddress().getValue()));
- byte[] mask = value.getArpSha().getMask();
- if (null != mask) {
- outBuffer.writeBytes(mask);
- }
+ ArpShaCaseValue value = ((ArpShaCaseValue) input.getMatchEntryValue());
+ outBuffer.writeBytes(ByteBufUtils.macAddressToBytes(value.getArpShaValues().getMacAddress().getValue()));
}
@Override
public MatchEntry deserialize(ByteBuf message) {
MatchEntryBuilder matchEntriesBuilder = deserializeHeader(message);
- ArpShaCaseBuilder arpShaCaseBuilder = new ArpShaCaseBuilder();
- ArpShaBuilder arpShaBuilder = new ArpShaBuilder();
byte[] address = new byte[VALUE_LENGTH];
message.readBytes(address);
- arpShaBuilder.setMacAddress(new MacAddress(ByteBufUtils.bytesToHexString(address)));
-
- boolean hasMask = false;
- if (message.isReadable()) {
- byte[] mask = new byte[VALUE_LENGTH];
- message.readBytes(mask);
- arpShaBuilder.setMask(mask);
- hasMask = true;
- }
-
- arpShaCaseBuilder.setArpSha(arpShaBuilder.build());
- matchEntriesBuilder.setMatchEntryValue(arpShaCaseBuilder.build());
- matchEntriesBuilder.setHasMask(hasMask);
+ ArpShaCaseValueBuilder caseBuilder = new ArpShaCaseValueBuilder();
+ caseBuilder.setArpShaValues(new ArpShaValuesBuilder().setMacAddress(
+ new MacAddress(ByteBufUtils.macAddressToString(address))).build());
+ matchEntriesBuilder.setMatchEntryValue(caseBuilder.build());
return matchEntriesBuilder.build();
}
package org.opendaylight.openflowjava.nx.codec.match;
import io.netty.buffer.ByteBuf;
+
import org.opendaylight.openflowjava.protocol.api.keys.MatchEntryDeserializerKey;
import org.opendaylight.openflowjava.protocol.api.keys.MatchEntrySerializerKey;
import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
import org.opendaylight.openflowjava.protocol.api.util.OxmMatchConstants;
-import org.opendaylight.openflowjava.util.ByteBufUtils;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Address;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Nxm0Class;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ArpSpaCase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ArpSpaCaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.arp.spa._case.ArpSpaBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.NxmOfArpSpa;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.ofj.nxm.of.match.arp.spa.grouping.ArpSpaValuesBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.oxm.container.match.entry.value.ArpSpaCaseValue;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.oxm.container.match.entry.value.ArpSpaCaseValueBuilder;
public class ArpSpaCodec extends AbstractMatchCodec {
@Override
public void serialize(MatchEntry input, ByteBuf outBuffer) {
serializeHeader(input, outBuffer);
- ArpSpaCase arpSpaCase = ((ArpSpaCase) input.getMatchEntryValue());
- outBuffer.writeBytes(arpSpaCase.getArpSpa().getIpv4Address().getValue().getBytes());
+ ArpSpaCaseValue arpSpaCase = ((ArpSpaCaseValue) input.getMatchEntryValue());
+ outBuffer.writeInt(arpSpaCase.getArpSpaValues().getValue().intValue());
}
@Override
public MatchEntry deserialize(ByteBuf message) {
MatchEntryBuilder matchEntryBuilder = deserializeHeader(message);
- ArpSpaCaseBuilder arpSpaCaseBuilder = new ArpSpaCaseBuilder();
- ArpSpaBuilder arpSpaBuilder = new ArpSpaBuilder();
- arpSpaBuilder.setIpv4Address(new Ipv4Address(ByteBufUtils.readIpv4Address(message)));
- arpSpaCaseBuilder.setArpSpa(arpSpaBuilder.build());
- matchEntryBuilder.setMatchEntryValue(arpSpaCaseBuilder.build());
- matchEntryBuilder.setHasMask(false);
+ ArpSpaCaseValueBuilder caseBuilder = new ArpSpaCaseValueBuilder();
+ caseBuilder.setArpSpaValues(new ArpSpaValuesBuilder().setValue(message.readUnsignedInt()).build());
+ matchEntryBuilder.setMatchEntryValue(caseBuilder.build());
return matchEntryBuilder.build();
}
package org.opendaylight.openflowjava.nx.codec.match;
import io.netty.buffer.ByteBuf;
+
import org.opendaylight.openflowjava.protocol.api.keys.MatchEntryDeserializerKey;
import org.opendaylight.openflowjava.protocol.api.keys.MatchEntrySerializerKey;
import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ArpThaCase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ArpThaCaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.arp.tha._case.ArpThaBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.NxmNxArpTha;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.ofj.nxm.nx.match.arp.tha.grouping.ArpThaValuesBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.oxm.container.match.entry.value.ArpThaCaseValue;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.oxm.container.match.entry.value.ArpThaCaseValueBuilder;
public class ArpThaCodec extends AbstractMatchCodec {
@Override
public void serialize(MatchEntry input, ByteBuf outBuffer) {
serializeHeader(input, outBuffer);
- ArpThaCase arpThaCase = ((ArpThaCase) input.getMatchEntryValue());
- outBuffer.writeBytes(ByteBufUtils.macAddressToBytes(arpThaCase.getArpTha().getMacAddress().getValue()));
+ ArpThaCaseValue arpThaCase = ((ArpThaCaseValue) input.getMatchEntryValue());
+ outBuffer.writeBytes(ByteBufUtils.macAddressToBytes(arpThaCase.getArpThaValues().getMacAddress().getValue()));
}
@Override
MatchEntryBuilder matchEntryBuilder = deserializeHeader(message);
byte[] address = new byte[VALUE_LENGTH];
message.readBytes(address);
- ArpThaCaseBuilder arpThaCaseBuilder = new ArpThaCaseBuilder();
- ArpThaBuilder arpThaBuilder = new ArpThaBuilder();
- arpThaBuilder.setMacAddress(new MacAddress(ByteBufUtils.bytesToHexString(address)));
- arpThaCaseBuilder.setArpTha(arpThaBuilder.build());
- matchEntryBuilder.setMatchEntryValue(arpThaCaseBuilder.build());
+ ArpThaCaseValueBuilder caseBuilder = new ArpThaCaseValueBuilder();
+ caseBuilder.setArpThaValues(new ArpThaValuesBuilder().setMacAddress(
+ new MacAddress(ByteBufUtils.macAddressToString(address))).build());
+ matchEntryBuilder.setMatchEntryValue(caseBuilder.build());
return matchEntryBuilder.build();
}
package org.opendaylight.openflowjava.nx.codec.match;
import io.netty.buffer.ByteBuf;
+
import org.opendaylight.openflowjava.protocol.api.keys.MatchEntryDeserializerKey;
import org.opendaylight.openflowjava.protocol.api.keys.MatchEntrySerializerKey;
import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
import org.opendaylight.openflowjava.protocol.api.util.OxmMatchConstants;
-import org.opendaylight.openflowjava.util.ByteBufUtils;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Address;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.ArpTpa;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Nxm0Class;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ArpTpaCase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ArpTpaCaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.arp.tpa._case.ArpTpaBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.NxmOfArpTpa;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.ofj.nxm.of.match.arp.tpa.grouping.ArpTpaValuesBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.oxm.container.match.entry.value.ArpTpaCaseValue;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.oxm.container.match.entry.value.ArpTpaCaseValueBuilder;
public class ArpTpaCodec extends AbstractMatchCodec {
@Override
public void serialize(MatchEntry input, ByteBuf outBuffer) {
serializeHeader(input, outBuffer);
- ArpTpaCase arpTpaCase = ((ArpTpaCase) input.getMatchEntryValue());
- outBuffer.writeBytes(arpTpaCase.getArpTpa().getIpv4Address().getValue().getBytes());
+ ArpTpaCaseValue arpTpaCase = ((ArpTpaCaseValue) input.getMatchEntryValue());
+ outBuffer.writeInt(arpTpaCase.getArpTpaValues().getValue().intValue());
}
@Override
public MatchEntry deserialize(ByteBuf message) {
MatchEntryBuilder matchEntriesBuilder = deserializeHeader(message);
- ArpTpaCaseBuilder arpTpaCaseBuilder = new ArpTpaCaseBuilder();
- ArpTpaBuilder arpTpaBuilder = new ArpTpaBuilder();
- boolean hasMask = false;
-
- arpTpaBuilder.setIpv4Address(new Ipv4Address(ByteBufUtils.readIpv4Address(message)));
- arpTpaCaseBuilder.setArpTpa(arpTpaBuilder.build());
- matchEntriesBuilder.setMatchEntryValue(arpTpaCaseBuilder.build());
- matchEntriesBuilder.setHasMask(hasMask);
+ ArpTpaCaseValueBuilder caseBuilder = new ArpTpaCaseValueBuilder();
+ caseBuilder.setArpTpaValues(new ArpTpaValuesBuilder().setValue(message.readUnsignedInt()).build());
+ matchEntriesBuilder.setMatchEntryValue(caseBuilder.build());
return matchEntriesBuilder.build();
}
package org.opendaylight.openflowjava.nx.codec.match;
import io.netty.buffer.ByteBuf;
+
import org.opendaylight.openflowjava.protocol.api.keys.MatchEntryDeserializerKey;
import org.opendaylight.openflowjava.protocol.api.keys.MatchEntrySerializerKey;
import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.EthDstCase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.EthDstCaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.eth.dst._case.EthDstBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.NxmOfEthDst;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.ofj.nxm.of.match.eth.dst.grouping.EthDstValuesBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.oxm.container.match.entry.value.EthDstCaseValue;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.oxm.container.match.entry.value.EthDstCaseValueBuilder;
public class EthDstCodec extends AbstractMatchCodec {
@Override
public void serialize(MatchEntry input, ByteBuf outBuffer) {
serializeHeader(input, outBuffer);
- EthDstCase ethDstCase = ((EthDstCase) input.getMatchEntryValue());
- outBuffer.writeBytes(ByteBufUtils.macAddressToBytes(ethDstCase.getEthDst().getMacAddress().getValue()));
+ EthDstCaseValue ethDstCase = ((EthDstCaseValue) input.getMatchEntryValue());
+ outBuffer.writeBytes(ByteBufUtils.macAddressToBytes(ethDstCase.getEthDstValues().getMacAddress().getValue()));
}
@Override
MatchEntryBuilder matchEntryBuilder = deserializeHeader(message);
byte[] address = new byte[VALUE_LENGTH];
message.readBytes(address);
- EthDstCaseBuilder ethDstCaseBuilder = new EthDstCaseBuilder();
- EthDstBuilder ethDstBuilder = new EthDstBuilder();
- ethDstBuilder.setMacAddress(new MacAddress(ByteBufUtils.macAddressToString(address)));
- ethDstCaseBuilder.setEthDst(ethDstBuilder.build());
- matchEntryBuilder.setMatchEntryValue(ethDstCaseBuilder.build());
+ EthDstCaseValueBuilder caseBuilder = new EthDstCaseValueBuilder();
+ caseBuilder.setEthDstValues(new EthDstValuesBuilder().setMacAddress(
+ new MacAddress(ByteBufUtils.macAddressToString(address))).build());
+ matchEntryBuilder.setMatchEntryValue(caseBuilder.build());
return matchEntryBuilder.build();
}
package org.opendaylight.openflowjava.nx.codec.match;
import io.netty.buffer.ByteBuf;
+
import org.opendaylight.openflowjava.protocol.api.keys.MatchEntryDeserializerKey;
import org.opendaylight.openflowjava.protocol.api.keys.MatchEntrySerializerKey;
import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.EthSrcCase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.EthSrcCaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.eth.src._case.EthSrcBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.NxmOfEthSrc;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.ofj.nxm.of.match.eth.src.grouping.EthSrcValuesBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.oxm.container.match.entry.value.EthSrcCaseValue;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.oxm.container.match.entry.value.EthSrcCaseValueBuilder;
public class EthSrcCodec extends AbstractMatchCodec {
@Override
public void serialize(MatchEntry input, ByteBuf outBuffer) {
serializeHeader(input, outBuffer);
- EthSrcCase ethSrcCase = ((EthSrcCase) input.getMatchEntryValue());
- outBuffer.writeBytes(ByteBufUtils.macAddressToBytes(ethSrcCase.getEthSrc().getMacAddress().getValue()));
+ EthSrcCaseValue ethSrcCase = ((EthSrcCaseValue) input.getMatchEntryValue());
+ outBuffer.writeBytes(ByteBufUtils.macAddressToBytes(ethSrcCase.getEthSrcValues().getMacAddress().getValue()));
}
@Override
MatchEntryBuilder matchEntryBuilder = deserializeHeader(message);
byte[] address = new byte[VALUE_LENGTH];
message.readBytes(address);
- EthSrcCaseBuilder ethSrcCaseBuilder = new EthSrcCaseBuilder();
- EthSrcBuilder ethSrcBuilder = new EthSrcBuilder();
- ethSrcBuilder.setMacAddress(new MacAddress(ByteBufUtils.macAddressToString(address)));
- ethSrcCaseBuilder.setEthSrc(ethSrcBuilder.build());
- matchEntryBuilder.setMatchEntryValue(ethSrcCaseBuilder.build());
+ EthSrcCaseValueBuilder caseBuilder = new EthSrcCaseValueBuilder();
+ caseBuilder.setEthSrcValues(new EthSrcValuesBuilder().setMacAddress(
+ new MacAddress(ByteBufUtils.macAddressToString(address))).build());
+ matchEntryBuilder.setMatchEntryValue(caseBuilder.build());
matchEntryBuilder.setHasMask(false);
return matchEntryBuilder.build();
}
package org.opendaylight.openflowjava.nx.codec.match;
import io.netty.buffer.ByteBuf;
+
import org.opendaylight.openflowjava.protocol.api.keys.MatchEntryDeserializerKey;
import org.opendaylight.openflowjava.protocol.api.keys.MatchEntrySerializerKey;
import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
import org.opendaylight.openflowjava.protocol.api.util.OxmMatchConstants;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.EtherType;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Nxm0Class;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.EthTypeCase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.EthTypeCaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.eth.type._case.EthTypeBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.NxmOfEthType;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.ofj.nxm.of.match.eth.type.grouping.EthTypeValuesBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.oxm.container.match.entry.value.EthTypeCaseValue;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.oxm.container.match.entry.value.EthTypeCaseValueBuilder;
public class EthTypeCodec extends AbstractMatchCodec {
@Override
public void serialize(MatchEntry input, ByteBuf outBuffer) {
serializeHeader(input, outBuffer);
- EthTypeCase ethTypeCase = ((EthTypeCase) input.getMatchEntryValue());
- outBuffer.writeShort(ethTypeCase.getEthType().getEthType().getValue());
+ EthTypeCaseValue value = (EthTypeCaseValue) input.getMatchEntryValue();
+ outBuffer.writeShort(value.getEthTypeValues().getValue());
}
@Override
public MatchEntry deserialize(ByteBuf message) {
MatchEntryBuilder matchEntryBuilder = deserializeHeader(message);
- EthTypeCaseBuilder ethTypeCaseBuilder = new EthTypeCaseBuilder();
- EthTypeBuilder ethTypeBuilder = new EthTypeBuilder();
- EtherType etherType = new EtherType(message.readUnsignedShort());
- ethTypeBuilder.setEthType(etherType);
- ethTypeCaseBuilder.setEthType(ethTypeBuilder.build());
- matchEntryBuilder.setMatchEntryValue(ethTypeCaseBuilder.build());
+ EthTypeCaseValueBuilder caseBuilder = new EthTypeCaseValueBuilder();
+ EthTypeValuesBuilder valuesBuilder = new EthTypeValuesBuilder();
+ valuesBuilder.setValue(message.readUnsignedShort()).build();
+ caseBuilder.setEthTypeValues(valuesBuilder.build());
+ matchEntryBuilder.setMatchEntryValue(caseBuilder.build());
return matchEntryBuilder.build();
}
package org.opendaylight.openflowjava.nx.codec.match;
import io.netty.buffer.ByteBuf;
+
+import java.math.BigInteger;
+
import org.opendaylight.openflowjava.protocol.api.keys.MatchEntryDeserializerKey;
import org.opendaylight.openflowjava.protocol.api.keys.MatchEntrySerializerKey;
import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
import org.opendaylight.openflowjava.protocol.api.util.OxmMatchConstants;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Nxm1Class;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.TunnelId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.TunnelIdCase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.TunnelIdCaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.tunnel.id._case.TunnelIdBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.NxmNxTunId;
-import java.math.BigInteger;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.ofj.nxm.nx.match.tun.id.grouping.TunIdValuesBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.oxm.container.match.entry.value.TunIdCaseValue;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.oxm.container.match.entry.value.TunIdCaseValueBuilder;
public class TunIdCodec extends AbstractMatchCodec {
@Override
public void serialize(MatchEntry input, ByteBuf outBuffer) {
serializeHeader(input, outBuffer);
- TunnelIdCase value = ((TunnelIdCase) input.getMatchEntryValue());
- outBuffer.writeBytes(value.getTunnelId().getTunnelId());
- byte[] mask = value.getTunnelId().getTunnelId();
- if (null != mask) {
- outBuffer.writeBytes(mask);
- }
+ BigInteger value = ((TunIdCaseValue) input.getMatchEntryValue()).getTunIdValues().getValue();
+ outBuffer.writeLong(value.longValue());
}
@Override
public MatchEntry deserialize(ByteBuf message) {
MatchEntryBuilder matchEntriesBuilder = deserializeHeader(message);
- TunnelIdCaseBuilder tunnelIdCaseBuilder = new TunnelIdCaseBuilder();
- TunnelIdBuilder tunnelIdBuilder = new TunnelIdBuilder();
- tunnelIdBuilder.setTunnelId(BigInteger.valueOf(message.readLong()).toByteArray());
- tunnelIdCaseBuilder.setTunnelId(tunnelIdBuilder.build());
- matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
- matchEntriesBuilder.setOxmMatchField(TunnelId.class);
- matchEntriesBuilder.setMatchEntryValue(tunnelIdCaseBuilder.build());
+ TunIdCaseValueBuilder caseBuilder = new TunIdCaseValueBuilder();
+ TunIdValuesBuilder tunIdBuilder = new TunIdValuesBuilder();
+ tunIdBuilder.setValue(BigInteger.valueOf(message.readLong()));
+ caseBuilder.setTunIdValues(tunIdBuilder.build());
+ matchEntriesBuilder.setMatchEntryValue(caseBuilder.build());
return matchEntriesBuilder.build();
}
*/
package org.opendaylight.openflowplugin.extension.api;
-import org.opendaylight.openflowjava.protocol.api.keys.ExperimenterActionSerializerKey;
+import org.opendaylight.openflowjava.protocol.api.keys.ActionSerializerKey;
import org.opendaylight.openflowjava.protocol.api.keys.MatchEntrySerializerKey;
import org.opendaylight.openflowplugin.extension.api.path.ActionPath;
import org.opendaylight.openflowplugin.extension.api.path.MatchPath;
* @return closable registration
*/
ObjectRegistration<ConvertorActionFromOFJava<Action, ActionPath>> registerActionConvertor(
- ExperimenterActionSerializerKey key, ConvertorActionFromOFJava<Action, ActionPath> convertor);
+ ActionSerializerKey<?> key, ConvertorActionFromOFJava<Action, ActionPath> convertor);
}
public static final Action createAction(ActionChoice actionChoice){
ActionBuilder actionBuilder = new ActionBuilder();
actionBuilder.setActionChoice(actionChoice);
+ actionBuilder.setExperimenterId(EXPERIMENTER_ID);
return actionBuilder.build();
}
}
Dst dst = nxAction.getNxMultipath().getDst();
nxActionMultipathBuilder.setOfsNbits((dst.getStart() << 6) | (dst.getEnd() - dst.getStart()));
nxActionMultipathBuilder.setDst(RegMoveConvertor.resolveDst(dst.getDstChoice()));
- nxActionMultipathBuilder.setExperimenterId(ActionUtil.EXPERIMENTER_ID);
ActionMultipathBuilder actionMultipathBuilder = new ActionMultipathBuilder();
actionMultipathBuilder.setNxActionMultipath(nxActionMultipathBuilder.build());
return ActionUtil.createAction(actionMultipathBuilder.build());
nxActionOutputRegBuilder.setSrc(RegMoveConvertor.resolveSrc(src.getSrcChoice()));
nxActionOutputRegBuilder.setNBits(src.getOfsNbits());
nxActionOutputRegBuilder.setMaxLen(nxAction.getNxOutputReg().getMaxLen());
- nxActionOutputRegBuilder.setExperimenterId(ActionUtil.EXPERIMENTER_ID);
builder.setNxActionOutputReg(nxActionOutputRegBuilder.build());
return ActionUtil.createAction(builder.build());
}
nxActionRegLoadBuilder.setDst(RegMoveConvertor.resolveDst(dst.getDstChoice()));
nxActionRegLoadBuilder.setOfsNbits((dst.getStart() << 6) | (dst.getEnd() - dst.getStart()));
nxActionRegLoadBuilder.setValue(nxAction.getNxRegLoad().getValue());
- nxActionRegLoadBuilder.setExperimenterId(ActionUtil.EXPERIMENTER_ID);
actionRegLoadBuilder.setNxActionRegLoad(nxActionRegLoadBuilder.build());
return ActionUtil.createAction(actionRegLoadBuilder.build());
}
nxActionRegMove.setSrc(resolveSrc(src.getSrcChoice()));
nxActionRegMove.setSrcOfs(src.getStart());
nxActionRegMove.setNBits(dst.getEnd() - dst.getStart() + 1);
- nxActionRegMove.setExperimenterId(ActionUtil.EXPERIMENTER_ID);
actionRegMoveBuilder.setNxActionRegMove(nxActionRegMove.build());
return ActionUtil.createAction(actionRegMoveBuilder.build());
}
NxActionResubmitBuilder nxActionResubmitBuilder = new NxActionResubmitBuilder();
nxActionResubmitBuilder.setInPort(nxAction.getNxResubmit().getInPort());
nxActionResubmitBuilder.setTable(nxAction.getNxResubmit().getTable());
- nxActionResubmitBuilder.setExperimenterId(ActionUtil.EXPERIMENTER_ID);
builder.setNxActionResubmit(nxActionResubmitBuilder.build());
return ActionUtil.createAction(builder.build());
}
NxActionSetNsiBuilder nxActionSetNsi = new NxActionSetNsiBuilder();
nxActionSetNsi.setNsi(nxAction.getNxSetNsi().getNsi());
- nxActionSetNsi.setExperimenterId(ActionUtil.EXPERIMENTER_ID);
builder.setNxActionSetNsi(nxActionSetNsi.build());
return ActionUtil.createAction(builder.build());
ActionSetNspBuilder builder = new ActionSetNspBuilder();
NxActionSetNspBuilder nxActionSetNspBuilder = new NxActionSetNspBuilder();
nxActionSetNspBuilder.setNsp(nxAction.getNxSetNsp().getNsp());
- nxActionSetNspBuilder.setExperimenterId(ActionUtil.EXPERIMENTER_ID);
builder.setNxActionSetNsp(nxActionSetNspBuilder.build());
return ActionUtil.createAction(builder.build());
}
RegValuesBuilder regValuesBuilder = new RegValuesBuilder().setValue(nxmNxReg.getValue());
RegCaseValueBuilder regCaseValueBuilder = new RegCaseValueBuilder();
regCaseValueBuilder.setRegValues(regValuesBuilder.build());
- return MatchUtil.createDefaultMatchEntryBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.NxmNxReg.class,
+ return MatchUtil.createDefaultMatchEntryBuilder(nxmNxReg.getReg(),
Nxm1Class.class,
regCaseValueBuilder.build()).build();
}
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.TunnelIdCase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.TunnelIdCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.tunnel.id._case.TunnelIdBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.ofj.nxm.nx.match.tun.id.grouping.TunIdValuesBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.oxm.container.match.entry.value.TunIdCaseValue;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.oxm.container.match.entry.value.TunIdCaseValueBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.general.rev140714.ExtensionKey;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.general.rev140714.general.extension.grouping.Extension;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxAugMatchNotifPacketIn;
/*
* (non-Javadoc)
- *
+ *
* @see
* org.opendaylight.openflowplugin.extension.api.ConvertorFromOFJava#convert
* (org.opendaylight.yangtools.yang.binding.DataContainer,
*/
@Override
public ExtensionAugment<? extends Augmentation<Extension>> convert(MatchEntry input, MatchPath path) {
- TunnelIdCase tunnelIdCase = ((TunnelIdCase) input.getMatchEntryValue());
- return resolveAugmentation(new NxmNxTunIdBuilder().setValue(new BigInteger(tunnelIdCase.getTunnelId().getTunnelId())).build(), path,
+ TunIdCaseValue tunnelIdCase = ((TunIdCaseValue) input.getMatchEntryValue());
+ return resolveAugmentation(new NxmNxTunIdBuilder().setValue(tunnelIdCase.getTunIdValues().getValue()).build(), path,
NxmNxTunIdKey.class);
}
/*
* (non-Javadoc)
- *
+ *
* @see
* org.opendaylight.openflowplugin.extension.api.ConvertorToOFJava#convert
* (org
}
BigInteger value = matchGrouping.get().getNxmNxTunId().getValue();
- TunnelIdCaseBuilder tunnelIdCaseBuilder = new TunnelIdCaseBuilder();
+ TunIdCaseValueBuilder tunnelIdCaseBuilder = new TunIdCaseValueBuilder();
- TunnelIdBuilder tunnelIdBuilder = new TunnelIdBuilder();
- tunnelIdBuilder.setTunnelId(value.toByteArray());
- tunnelIdCaseBuilder.setTunnelId(tunnelIdBuilder.build());
+ TunIdValuesBuilder tunnelIdBuilder = new TunIdValuesBuilder();
+ tunnelIdBuilder.setValue(value);
+ tunnelIdCaseBuilder.setTunIdValues(tunnelIdBuilder.build());
return MatchUtil.createDefaultMatchEntryBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.NxmNxTunId.class,
Nxm1Class.class,
*/
package org.opendaylight.openflowplugin.openflow.md.core.extension;
+import org.opendaylight.openflowjava.protocol.api.keys.ActionSerializerKey;
import org.opendaylight.openflowjava.protocol.api.keys.ExperimenterActionSerializerKey;
import org.opendaylight.openflowjava.protocol.api.keys.MatchEntrySerializerKey;
import org.opendaylight.openflowjava.protocol.api.keys.MessageTypeKey;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.general.rev140714.ExtensionKey;
import org.opendaylight.yangtools.concepts.ObjectRegistration;
import org.opendaylight.yangtools.yang.binding.DataContainer;
+
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
@Override
public ObjectRegistration<ConvertorActionFromOFJava<org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.Action, ActionPath>>
registerActionConvertor(
- ExperimenterActionSerializerKey key,
+ ActionSerializerKey<?> key,
ConvertorActionFromOFJava<org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.Action, ActionPath> convertor) {
registryActionFromOFJAva.put(key, convertor);
return hireJanitor(key, convertor);
EthSrcCaseBuilder ethSrcCaseBuilder = new EthSrcCaseBuilder();
EthSrcBuilder ethSrcBuilder = new EthSrcBuilder();
ethSrcBuilder.setMacAddress(setdlsrcaction.getAddress());
- if (null != setdlsrcaction.getAddress()) {
- ethSrcBuilder.setMask(ByteBufUtils.macAddressToBytes(setdlsrcaction.getAddress().getValue()));
- matchBuilder.setHasMask(true);
- }
+ matchBuilder.setHasMask(false);
ethSrcCaseBuilder.setEthSrc(ethSrcBuilder.build());
matchBuilder.setMatchEntryValue(ethSrcCaseBuilder.build());
entries.add(matchBuilder.build());
EthDstCaseBuilder ethDstCaseBuilder = new EthDstCaseBuilder();
EthDstBuilder ethDstBuilder = new EthDstBuilder();
ethDstBuilder.setMacAddress(setdldstaction.getAddress());
- boolean hasMask = false;
- if (null != setdldstaction.getAddress()) {
- ethDstBuilder.setMask(ByteBufUtils.macAddressToBytes(setdldstaction.getAddress().getValue()));
- hasMask = true;
- }
- matchBuilder.setHasMask(hasMask);
+ matchBuilder.setHasMask(false);
ethDstCaseBuilder.setEthDst(ethDstBuilder.build());
matchBuilder.setMatchEntryValue(ethDstCaseBuilder.build());
entries.add(matchBuilder.build());
public void testToMDSalActions2() {\r
OpenflowPortsUtil.init();\r
List<Action> actions = new ArrayList<>();\r
- \r
+\r
ActionBuilder actionBuilder = new ActionBuilder();\r
OutputActionCaseBuilder caseBuilder = new OutputActionCaseBuilder();\r
OutputActionBuilder outputBuilder = new OutputActionBuilder();\r
pushVlanCaseBuilder.setPushVlanAction(pushVlanBuilder.build());\r
actionBuilder.setActionChoice(pushVlanCaseBuilder.build());\r
actions.add(actionBuilder.build());\r
- \r
+\r
actionBuilder = new ActionBuilder();\r
actionBuilder.setActionChoice(new PopVlanCaseBuilder().build());\r
actions.add(actionBuilder.build());\r
- \r
+\r
actionBuilder = new ActionBuilder();\r
PushMplsCaseBuilder pushMplsCaseBuilder = new PushMplsCaseBuilder();\r
PushMplsActionBuilder pushMplsBuilder = new PushMplsActionBuilder();\r
checkEntryHeader(entry, org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.VlanPcp.class, false);\r
Assert.assertEquals("Wrong vlan pcp", 7, ((VlanPcpCase) entry.getMatchEntryValue()).getVlanPcp().getVlanPcp()\r
.intValue());\r
- \r
+\r
action = actions.get(1);\r
Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common"\r
+ ".action.rev150203.action.grouping.action.choice.SetFieldCase", action.getActionChoice().getImplementedInterface().getName());\r
Assert.assertEquals("Wrong vlan vid", 0, ((VlanVidCase) entry.getMatchEntryValue()).getVlanVid().getVlanVid()\r
.intValue());\r
Assert.assertEquals("Wrong cfi bit", true, ((VlanVidCase) entry.getMatchEntryValue()).getVlanVid().isCfiBit());\r
- \r
+\r
action = actions.get(2);\r
Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common"\r
+ ".action.rev150203.action.grouping.action.choice.SetFieldCase", action.getActionChoice().getImplementedInterface().getName());\r
setFieldCase =\r
(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetFieldCase) action.getActionChoice();\r
entry = setFieldCase.getSetFieldAction().getMatchEntry().get(0);\r
- checkEntryHeader(entry, org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.EthDst.class, true);\r
+ checkEntryHeader(entry, org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.EthDst.class, false);\r
Assert.assertEquals("Wrong dl dst", "00:00:00:00:00:06", ((EthDstCase) entry.getMatchEntryValue()).getEthDst()\r
.getMacAddress().getValue());\r
- \r
+\r
action = actions.get(3);\r
setFieldCase =\r
(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetFieldCase) action.getActionChoice();\r
Assert.assertEquals("Wrong action type", "org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common"\r
+ ".action.rev150203.action.grouping.action.choice.SetFieldCase", action.getActionChoice().getImplementedInterface().getName());\r
entry = setFieldCase.getSetFieldAction().getMatchEntry().get(0);\r
- checkEntryHeader(entry, org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.EthSrc.class, true);\r
+ checkEntryHeader(entry, org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.EthSrc.class, false);\r
Assert.assertEquals("Wrong dl src", "00:00:00:00:00:05", ((EthSrcCase) entry.getMatchEntryValue()).getEthSrc()\r
.getMacAddress().getValue());\r
- \r
+\r
action = actions.get(4);\r
setFieldCase =\r
(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetFieldCase) action.getActionChoice();\r
checkEntryHeader(entry, org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Ipv4Src.class, false);\r
Assert.assertEquals("Wrong ipv4 src", "10.0.0.1", ((Ipv4SrcCase) entry.getMatchEntryValue()).getIpv4Src()\r
.getIpv4Address().getValue());\r
- \r
+\r
action = actions.get(5);\r
setFieldCase =\r
(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetFieldCase) action.getActionChoice();\r
checkEntryHeader(entry, org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Ipv4Dst.class, false);\r
Assert.assertEquals("Wrong ipv4 dst", "10.0.0.2", ((Ipv4DstCase) entry.getMatchEntryValue()).getIpv4Dst()\r
.getIpv4Address().getValue());\r
- \r
+\r
action = actions.get(6);\r
setFieldCase =\r
(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetFieldCase) action.getActionChoice();\r
checkEntryHeader(entry, org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.TcpSrc.class, false);\r
Assert.assertEquals("Wrong tcp src", 54, ((TcpSrcCase) entry.getMatchEntryValue()).getTcpSrc()\r
.getPort().getValue().intValue());\r
- \r
+\r
action = actions.get(7);\r
setFieldCase =\r
(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetFieldCase) action.getActionChoice();\r
checkEntryHeader(entry, org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.TcpDst.class, false);\r
Assert.assertEquals("Wrong tcp dst", 45, ((TcpDstCase) entry.getMatchEntryValue()).getTcpDst()\r
.getPort().getValue().intValue());\r
- \r
+\r
action = actions.get(8);\r
setFieldCase =\r
(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetFieldCase) action.getActionChoice();\r
checkEntryHeader(entry, org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.IpDscp.class, false);\r
Assert.assertEquals("Wrong ip dscp", 4, ((IpDscpCase) entry.getMatchEntryValue()).getIpDscp()\r
.getDscp().getValue().intValue());\r
- \r
+\r
action = actions.get(9);\r
setFieldCase =\r
(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetFieldCase) action.getActionChoice();\r
.getVlanVid().intValue());\r
Assert.assertEquals("Wrong cfi bit", true, ((VlanVidCase) entry.getMatchEntryValue()).getVlanVid()\r
.isCfiBit());\r
- \r
+\r
action = actions.get(10);\r
setFieldCase =\r
(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetFieldCase) action.getActionChoice();\r
checkEntryHeader(entry, org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Ipv6Src.class, false);\r
Assert.assertEquals("Wrong ipv4 src", "0000:0000:0000:0000:0000:0000:0000:0005",\r
((Ipv6SrcCase) entry.getMatchEntryValue()).getIpv6Src().getIpv6Address().getValue());\r
- \r
+\r
action = actions.get(11);\r
setFieldCase =\r
(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetFieldCase) action.getActionChoice();\r