use of org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.InPort in project openflowplugin by opendaylight.
the class MatchConvertor method inPortMatch.
private static void inPortMatch(final List<MatchEntry> matchEntryList, NodeConnectorId inPort) {
if (inPort == null) {
return;
}
// TODO: currently this matchconverter is mapped to OF1.3 in MatchInjector. Will need to revisit during 1.4+
final long portNumber = InventoryDataServiceUtil.portNumberfromNodeConnectorId(OpenflowVersion.OF13, inPort);
MatchEntryBuilder matchEntryBuilder = new MatchEntryBuilder();
matchEntryBuilder.setOxmClass(OpenflowBasicClass.class);
matchEntryBuilder.setHasMask(false);
matchEntryBuilder.setOxmMatchField(InPort.class);
InPortCaseBuilder caseBuilder = new InPortCaseBuilder();
InPortBuilder portBuilder = new InPortBuilder();
portBuilder.setPortNumber(new PortNumber(portNumber));
caseBuilder.setInPort(portBuilder.build());
matchEntryBuilder.setMatchEntryValue(caseBuilder.build());
matchEntryList.add(matchEntryBuilder.build());
}
use of org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.InPort in project openflowplugin by opendaylight.
the class OF10FlowModInputMessageFactoryTest method testFlowModInputMessageFactory.
/**
* Testing of {@link OF10FlowModInputMessageFactory} for correct translation from POJO.
*/
@Test
public void testFlowModInputMessageFactory() throws Exception {
FlowModInputBuilder builder = new FlowModInputBuilder();
BufferHelper.setupHeader(builder, EncodeConstants.OF10_VERSION_ID);
MatchV10Builder matchBuilder = new MatchV10Builder();
matchBuilder.setWildcards(new FlowWildcardsV10(true, true, true, true, true, true, true, true, true, true));
matchBuilder.setNwSrcMask((short) 0);
matchBuilder.setNwDstMask((short) 0);
matchBuilder.setInPort(58);
matchBuilder.setDlSrc(new MacAddress("01:01:01:01:01:01"));
matchBuilder.setDlDst(new MacAddress("ff:ff:ff:ff:ff:ff"));
matchBuilder.setDlVlan(18);
matchBuilder.setDlVlanPcp((short) 5);
matchBuilder.setDlType(42);
matchBuilder.setNwTos((short) 4);
matchBuilder.setNwProto((short) 7);
matchBuilder.setNwSrc(new Ipv4Address("8.8.8.8"));
matchBuilder.setNwDst(new Ipv4Address("16.16.16.16"));
matchBuilder.setTpSrc(6653);
matchBuilder.setTpDst(6633);
builder.setMatchV10(matchBuilder.build());
byte[] cookie = new byte[] { (byte) 0xFF, 0x01, 0x04, 0x01, 0x06, 0x00, 0x07, 0x01 };
builder.setCookie(new BigInteger(1, cookie));
builder.setCommand(FlowModCommand.forValue(0));
builder.setIdleTimeout(12);
builder.setHardTimeout(16);
builder.setPriority(1);
builder.setBufferId(2L);
builder.setOutPort(new PortNumber(4422L));
builder.setFlagsV10(new FlowModFlagsV10(true, false, true));
final List<Action> actions = new ArrayList<>();
ActionBuilder actionBuilder = new ActionBuilder();
SetNwDstCaseBuilder nwDstCaseBuilder = new SetNwDstCaseBuilder();
SetNwDstActionBuilder nwDstBuilder = new SetNwDstActionBuilder();
nwDstBuilder.setIpAddress(new Ipv4Address("2.2.2.2"));
nwDstCaseBuilder.setSetNwDstAction(nwDstBuilder.build());
actionBuilder.setActionChoice(nwDstCaseBuilder.build());
actions.add(actionBuilder.build());
actionBuilder = new ActionBuilder();
SetTpSrcCaseBuilder tpSrcCaseBuilder = new SetTpSrcCaseBuilder();
SetTpSrcActionBuilder tpSrcBuilder = new SetTpSrcActionBuilder();
tpSrcBuilder.setPort(new PortNumber(42L));
tpSrcCaseBuilder.setSetTpSrcAction(tpSrcBuilder.build());
actionBuilder.setActionChoice(tpSrcCaseBuilder.build());
actions.add(actionBuilder.build());
builder.setAction(actions);
FlowModInput message = builder.build();
ByteBuf out = UnpooledByteBufAllocator.DEFAULT.buffer();
flowModFactory.serialize(message, out);
BufferHelper.checkHeaderV10(out, (byte) 14, 88);
Assert.assertEquals("Wrong wildcards", 3678463, out.readUnsignedInt());
Assert.assertEquals("Wrong inPort", 58, out.readUnsignedShort());
byte[] dlSrc = new byte[6];
out.readBytes(dlSrc);
Assert.assertEquals("Wrong dlSrc", "01:01:01:01:01:01", ByteBufUtils.macAddressToString(dlSrc));
byte[] dlDst = new byte[6];
out.readBytes(dlDst);
Assert.assertEquals("Wrong dlDst", "FF:FF:FF:FF:FF:FF", ByteBufUtils.macAddressToString(dlDst));
Assert.assertEquals("Wrong dlVlan", 18, out.readUnsignedShort());
Assert.assertEquals("Wrong dlVlanPcp", 5, out.readUnsignedByte());
out.skipBytes(1);
Assert.assertEquals("Wrong dlType", 42, out.readUnsignedShort());
Assert.assertEquals("Wrong nwTos", 4, out.readUnsignedByte());
Assert.assertEquals("Wrong nwProto", 7, out.readUnsignedByte());
out.skipBytes(2);
Assert.assertEquals("Wrong nwSrc", 134744072, out.readUnsignedInt());
Assert.assertEquals("Wrong nwDst", 269488144, out.readUnsignedInt());
Assert.assertEquals("Wrong tpSrc", 6653, out.readUnsignedShort());
Assert.assertEquals("Wrong tpDst", 6633, out.readUnsignedShort());
byte[] cookieRead = new byte[8];
out.readBytes(cookieRead);
Assert.assertArrayEquals("Wrong cookie", cookie, cookieRead);
Assert.assertEquals("Wrong command", 0, out.readUnsignedShort());
Assert.assertEquals("Wrong idleTimeOut", 12, out.readUnsignedShort());
Assert.assertEquals("Wrong hardTimeOut", 16, out.readUnsignedShort());
Assert.assertEquals("Wrong priority", 1, out.readUnsignedShort());
Assert.assertEquals("Wrong bufferId", 2, out.readUnsignedInt());
Assert.assertEquals("Wrong outPort", 4422, out.readUnsignedShort());
Assert.assertEquals("Wrong flags", 3, out.readUnsignedShort());
Assert.assertEquals("Wrong action - type", 7, out.readUnsignedShort());
Assert.assertEquals("Wrong action - length", 8, out.readUnsignedShort());
Assert.assertEquals("Wrong flags", 33686018, out.readUnsignedInt());
Assert.assertEquals("Wrong action - type", 9, out.readUnsignedShort());
Assert.assertEquals("Wrong action - length", 8, out.readUnsignedShort());
Assert.assertEquals("Wrong flags", 42, out.readUnsignedShort());
out.skipBytes(2);
}
use of org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.InPort in project openflowplugin by opendaylight.
the class ResubmitCodec method serialize.
@Override
public void serialize(final Action input, final ByteBuf outBuffer) {
byte table = OFP_TABLE_ALL;
short inPort = OFP_IN_PORT;
ActionResubmit action = (ActionResubmit) input.getActionChoice();
serializeHeader(LENGTH, getSubType(action), outBuffer);
if (action.getNxActionResubmit().getInPort() != null) {
inPort = action.getNxActionResubmit().getInPort().shortValue();
}
if (action.getNxActionResubmit().getTable() != null) {
table = action.getNxActionResubmit().getTable().byteValue();
}
outBuffer.writeShort(inPort);
outBuffer.writeByte(table);
outBuffer.writeZero(PADDING);
}
use of org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.InPort in project openflowplugin by opendaylight.
the class OF10FlowRemovedMessageFactoryTest method testSerialize.
@Test
public void testSerialize() throws Exception {
FlowRemovedMessageBuilder builder = new FlowRemovedMessageBuilder();
BufferHelper.setupHeader(builder, EncodeConstants.OF10_VERSION_ID);
MatchV10Builder matchBuilder = new MatchV10Builder();
matchBuilder.setWildcards(new FlowWildcardsV10(true, true, true, true, true, true, true, true, true, true));
matchBuilder.setNwSrcMask((short) 0);
matchBuilder.setNwDstMask((short) 0);
matchBuilder.setInPort(58);
matchBuilder.setDlSrc(new MacAddress("01:01:01:01:01:01"));
matchBuilder.setDlDst(new MacAddress("ff:ff:ff:ff:ff:ff"));
matchBuilder.setDlVlan(18);
matchBuilder.setDlVlanPcp((short) 5);
matchBuilder.setDlType(42);
matchBuilder.setNwTos((short) 4);
matchBuilder.setNwProto((short) 7);
matchBuilder.setNwSrc(new Ipv4Address("8.8.8.8"));
matchBuilder.setNwDst(new Ipv4Address("16.16.16.16"));
matchBuilder.setTpSrc(6653);
matchBuilder.setTpDst(6633);
builder.setMatchV10(matchBuilder.build());
byte[] cookie = new byte[] { (byte) 0xFF, 0x01, 0x04, 0x01, 0x01, 0x01, 0x04, 0x01 };
builder.setCookie(new BigInteger(1, cookie));
builder.setPriority(1);
builder.setReason(FlowRemovedReason.forValue(1));
builder.setDurationSec(1L);
builder.setDurationNsec(1L);
builder.setIdleTimeout(12);
builder.setPacketCount(BigInteger.valueOf(1L));
builder.setByteCount(BigInteger.valueOf(2L));
FlowRemovedMessage message = builder.build();
ByteBuf serializedBuffer = UnpooledByteBufAllocator.DEFAULT.buffer();
factory.serialize(message, serializedBuffer);
BufferHelper.checkHeaderV10(serializedBuffer, MESSAGE_TYPE, 88);
Assert.assertEquals("Wrong wildcards", 3678463, serializedBuffer.readUnsignedInt());
Assert.assertEquals("Wrong inPort", 58, serializedBuffer.readUnsignedShort());
byte[] dlSrc = new byte[6];
serializedBuffer.readBytes(dlSrc);
Assert.assertEquals("Wrong dlSrc", "01:01:01:01:01:01", ByteBufUtils.macAddressToString(dlSrc));
byte[] dlDst = new byte[6];
serializedBuffer.readBytes(dlDst);
Assert.assertEquals("Wrong dlDst", "FF:FF:FF:FF:FF:FF", ByteBufUtils.macAddressToString(dlDst));
Assert.assertEquals("Wrong dlVlan", 18, serializedBuffer.readUnsignedShort());
Assert.assertEquals("Wrong dlVlanPcp", 5, serializedBuffer.readUnsignedByte());
serializedBuffer.skipBytes(1);
Assert.assertEquals("Wrong dlType", 42, serializedBuffer.readUnsignedShort());
Assert.assertEquals("Wrong nwTos", 4, serializedBuffer.readUnsignedByte());
Assert.assertEquals("Wrong nwProto", 7, serializedBuffer.readUnsignedByte());
serializedBuffer.skipBytes(2);
Assert.assertEquals("Wrong nwSrc", 134744072, serializedBuffer.readUnsignedInt());
Assert.assertEquals("Wrong nwDst", 269488144, serializedBuffer.readUnsignedInt());
Assert.assertEquals("Wrong tpSrc", 6653, serializedBuffer.readUnsignedShort());
Assert.assertEquals("Wrong tpDst", 6633, serializedBuffer.readUnsignedShort());
byte[] cookieRead = new byte[8];
serializedBuffer.readBytes(cookieRead);
Assert.assertArrayEquals("Wrong cookie", cookie, cookieRead);
Assert.assertEquals("Wrong priority", 1, serializedBuffer.readUnsignedShort());
Assert.assertEquals("Wrong reason", 1, serializedBuffer.readUnsignedByte());
serializedBuffer.skipBytes(1);
Assert.assertEquals("Wrong duration", 1L, serializedBuffer.readUnsignedInt());
Assert.assertEquals("Wrong duration nsec", 1L, serializedBuffer.readUnsignedInt());
Assert.assertEquals("Wrong idle timeout", 12, serializedBuffer.readUnsignedShort());
serializedBuffer.skipBytes(2);
Assert.assertEquals("Wrong packet count", 1L, serializedBuffer.readLong());
Assert.assertEquals("Wrong byte count", 2L, serializedBuffer.readLong());
}
use of org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.InPort in project openflowplugin by opendaylight.
the class OF10StatsReplyMessageFactoryTest method testFlowBodySerialize.
@Test
public void testFlowBodySerialize() throws Exception {
MultipartReplyMessageBuilder builder;
builder = new MultipartReplyMessageBuilder();
BufferHelper.setupHeader(builder, EncodeConstants.OF10_VERSION_ID);
builder.setFlags(new MultipartRequestFlags(true));
builder.setType(MultipartType.forValue(1));
MultipartReplyFlowCaseBuilder flowCase = new MultipartReplyFlowCaseBuilder();
MultipartReplyFlowBuilder flow = new MultipartReplyFlowBuilder();
flow.setFlowStats(createFlowStats());
flowCase.setMultipartReplyFlow(flow.build());
builder.setMultipartReplyBody(flowCase.build());
MultipartReplyMessage message = builder.build();
ByteBuf serializedBuffer = UnpooledByteBufAllocator.DEFAULT.buffer();
factory.serialize(message, serializedBuffer);
BufferHelper.checkHeaderV10(serializedBuffer, MESSAGE_TYPE, 108);
Assert.assertEquals("Wrong type", MultipartType.OFPMPFLOW.getIntValue(), serializedBuffer.readShort());
Assert.assertEquals("Wrong flags", message.getFlags(), createMultipartRequestFlags(serializedBuffer.readShort()));
FlowStats flowStats = flow.getFlowStats().get(0);
Assert.assertEquals("Wrong length", 96, serializedBuffer.readShort());
Assert.assertEquals("Wrong Table ID", flowStats.getTableId().intValue(), serializedBuffer.readUnsignedByte());
serializedBuffer.skipBytes(1);
Assert.assertEquals("Wrong wildcards", 3678463, serializedBuffer.readUnsignedInt());
Assert.assertEquals("Wrong inPort", 58, serializedBuffer.readUnsignedShort());
byte[] dlSrc = new byte[6];
serializedBuffer.readBytes(dlSrc);
Assert.assertEquals("Wrong dlSrc", "01:01:01:01:01:01", ByteBufUtils.macAddressToString(dlSrc));
byte[] dlDst = new byte[6];
serializedBuffer.readBytes(dlDst);
Assert.assertEquals("Wrong dlDst", "FF:FF:FF:FF:FF:FF", ByteBufUtils.macAddressToString(dlDst));
Assert.assertEquals("Wrong dlVlan", 18, serializedBuffer.readUnsignedShort());
Assert.assertEquals("Wrong dlVlanPcp", 5, serializedBuffer.readUnsignedByte());
serializedBuffer.skipBytes(1);
Assert.assertEquals("Wrong dlType", 42, serializedBuffer.readUnsignedShort());
Assert.assertEquals("Wrong nwTos", 4, serializedBuffer.readUnsignedByte());
Assert.assertEquals("Wrong nwProto", 7, serializedBuffer.readUnsignedByte());
serializedBuffer.skipBytes(2);
Assert.assertEquals("Wrong nwSrc", 134744072, serializedBuffer.readUnsignedInt());
Assert.assertEquals("Wrong nwDst", 269488144, serializedBuffer.readUnsignedInt());
Assert.assertEquals("Wrong tpSrc", 6653, serializedBuffer.readUnsignedShort());
Assert.assertEquals("Wrong tpDst", 6633, serializedBuffer.readUnsignedShort());
Assert.assertEquals("Wrong duration sec", flowStats.getDurationSec().intValue(), serializedBuffer.readInt());
Assert.assertEquals("Wrong duration nsec", flowStats.getDurationNsec().intValue(), serializedBuffer.readInt());
Assert.assertEquals("Wrong priority", flowStats.getPriority().intValue(), serializedBuffer.readShort());
Assert.assertEquals("Wrong idle timeout", flowStats.getIdleTimeout().intValue(), serializedBuffer.readShort());
Assert.assertEquals("Wrong hard timeout", flowStats.getHardTimeout().intValue(), serializedBuffer.readShort());
serializedBuffer.skipBytes(6);
Assert.assertEquals("Wrong cookie", flowStats.getCookie().longValue(), serializedBuffer.readLong());
Assert.assertEquals("Wrong Packet count", flowStats.getPacketCount().longValue(), serializedBuffer.readLong());
Assert.assertEquals("Wrong Byte count", flowStats.getByteCount().longValue(), serializedBuffer.readLong());
Assert.assertEquals("Wrong action type", 0, serializedBuffer.readUnsignedShort());
Assert.assertEquals("Wrong action length", 8, serializedBuffer.readUnsignedShort());
Assert.assertEquals("Wrong port", 42, serializedBuffer.readUnsignedShort());
Assert.assertEquals("Wrong maxlength", 50, serializedBuffer.readUnsignedShort());
}
Aggregations