use of org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.ArpOp in project openflowplugin by opendaylight.
the class MatchNormalizationUtilTest method normalizeArpMatch.
@Test
public void normalizeArpMatch() {
final int arpOp = 10;
final String source = "192.168.1.2/24";
final String destination = "192.168.2.2/24";
final MacAddress sourceHw = new MacAddress("01:23:45:AB:CD:EF");
final MacAddress dstHw = new MacAddress("01:23:45:AB:C0:EF");
final MacAddress mask = new MacAddress("FF:FF:FF:FF:FF:FF");
final MatchBuilder matchBuilder = MatchNormalizationUtil.normalizeArpMatch(new MatchBuilder().setLayer3Match(new ArpMatchBuilder().setArpOp(10).setArpSourceTransportAddress(new Ipv4Prefix(source)).setArpTargetTransportAddress(new Ipv4Prefix(destination)).setArpTargetHardwareAddress(new ArpTargetHardwareAddressBuilder().setAddress(dstHw).setMask(mask).build()).setArpSourceHardwareAddress(new ArpSourceHardwareAddressBuilder().setAddress(sourceHw).setMask(mask).build()).build()));
assertEquals(arpOp, ArpMatch.class.cast(matchBuilder.getLayer3Match()).getArpOp().intValue());
}
use of org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.ArpOp in project openflowplugin by opendaylight.
the class ArpOpEntrySerializerTest method testSerialize.
@Test
public void testSerialize() throws Exception {
final int arpOp = 42;
final Match arpOpMatch = new MatchBuilder().setLayer3Match(new ArpMatchBuilder().setArpOp(arpOp).build()).build();
assertMatch(arpOpMatch, false, (out) -> assertEquals(out.readShort(), arpOp));
}
use of org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.ArpOp in project openflowplugin by opendaylight.
the class OfToSalArpOpCase method process.
@Override
public Optional<MatchBuilder> process(@Nonnull ArpOpCase source, MatchResponseConvertorData data, ConvertorExecutor convertorExecutor) {
final MatchBuilder matchBuilder = data.getMatchBuilder();
final ArpMatchBuilder arpMatchBuilder = data.getArpMatchBuilder();
ArpOp arpOp = source.getArpOp();
if (arpOp != null) {
arpMatchBuilder.setArpOp(arpOp.getOpCode());
matchBuilder.setLayer3Match(arpMatchBuilder.build());
}
return Optional.of(matchBuilder);
}
use of org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.ArpOp in project openflowplugin by opendaylight.
the class ArpOpEntryDeserializerTest method deserializeEntry.
@Test
public void deserializeEntry() throws Exception {
final ByteBuf in = UnpooledByteBufAllocator.DEFAULT.buffer();
final int arpOp = 10;
writeHeader(in, false);
in.writeShort(arpOp);
assertEquals(arpOp, ArpMatch.class.cast(deserialize(in).getLayer3Match()).getArpOp().intValue());
assertEquals(0, in.readableBytes());
}
use of org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.ArpOp in project openflowplugin by opendaylight.
the class ArpOpEntryDeserializer method deserializeEntry.
@Override
public void deserializeEntry(ByteBuf message, MatchBuilder builder) {
processHeader(message);
final Layer3Match layer3Match = builder.getLayer3Match();
final int arpOp = message.readUnsignedShort();
if (Objects.isNull(layer3Match)) {
builder.setLayer3Match(new ArpMatchBuilder().setArpOp(arpOp).build());
} else if (ArpMatch.class.isInstance(layer3Match) && Objects.isNull(ArpMatch.class.cast(layer3Match).getArpOp())) {
builder.setLayer3Match(new ArpMatchBuilder(ArpMatch.class.cast(layer3Match)).setArpOp(arpOp).build());
} else {
throwErrorOnMalformed(builder, "layer3Match", "arpOp");
}
}
Aggregations