use of org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.arp.match.fields.ArpTargetHardwareAddressBuilder in project openflowplugin by opendaylight.
the class OpenflowpluginTestCommandProvider method createArpMatch.
private static MatchBuilder createArpMatch() {
final MatchBuilder match = new MatchBuilder();
final EthernetMatchBuilder ethmatch = new EthernetMatchBuilder();
final MacAddress macdest = new MacAddress(DEST_MAC_ADDRESS);
final MacAddress macsrc = new MacAddress(SRC_MAC_ADDRESS);
final EthernetTypeBuilder ethtype = new EthernetTypeBuilder();
final EtherType type = new EtherType(0x0806L);
ethmatch.setEthernetType(ethtype.setType(type).build());
// ipv4 match
final Ipv4Prefix dstip = new Ipv4Prefix("200.71.9.52/10");
final Ipv4Prefix srcip = new Ipv4Prefix("100.1.1.1/8");
// arp match
final ArpMatchBuilder arpmatch = new ArpMatchBuilder();
final ArpSourceHardwareAddressBuilder arpsrc = new ArpSourceHardwareAddressBuilder();
arpsrc.setAddress(macsrc);
arpsrc.setMask(new MacAddress("ff:ff:ff:00:00:00"));
final ArpTargetHardwareAddressBuilder arpdst = new ArpTargetHardwareAddressBuilder();
arpdst.setAddress(macdest);
arpdst.setMask(new MacAddress("ff:ff:00:00:00:00"));
arpmatch.setArpOp(2);
arpmatch.setArpSourceHardwareAddress(arpsrc.build());
arpmatch.setArpTargetHardwareAddress(arpdst.build());
arpmatch.setArpSourceTransportAddress(srcip);
arpmatch.setArpTargetTransportAddress(dstip);
match.setEthernetMatch(ethmatch.build());
match.setLayer3Match(arpmatch.build());
return match;
}
use of org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.arp.match.fields.ArpTargetHardwareAddressBuilder in project openflowplugin by opendaylight.
the class OfToSalArpThaCase method process.
@Override
public Optional<MatchBuilder> process(@Nonnull ArpThaCase source, MatchResponseConvertorData data, ConvertorExecutor convertorExecutor) {
final MatchBuilder matchBuilder = data.getMatchBuilder();
final ArpMatchBuilder arpMatchBuilder = data.getArpMatchBuilder();
ArpTha arpTha = source.getArpTha();
MacAddress macAddress = arpTha.getMacAddress();
if (macAddress != null) {
ArpTargetHardwareAddressBuilder arpTargetHardwareAddressBuilder = new ArpTargetHardwareAddressBuilder();
arpTargetHardwareAddressBuilder.setAddress(macAddress);
byte[] mask = arpTha.getMask();
if (mask != null) {
arpTargetHardwareAddressBuilder.setMask(new MacAddress(ByteBufUtils.macAddressToString(mask)));
}
arpMatchBuilder.setArpTargetHardwareAddress(arpTargetHardwareAddressBuilder.build());
matchBuilder.setLayer3Match(arpMatchBuilder.build());
}
return Optional.of(matchBuilder);
}
use of org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.arp.match.fields.ArpTargetHardwareAddressBuilder in project openflowplugin by opendaylight.
the class ArpTargetHardwareAddressEntrySerializerTest method testSerialize.
@Test
public void testSerialize() throws Exception {
final MacAddress address = new MacAddress("00:01:02:03:04:05");
final MacAddress mask = new MacAddress("00:00:00:00:00:00");
final Match arpShaMatch = new MatchBuilder().setLayer3Match(new ArpMatchBuilder().setArpTargetHardwareAddress(new ArpTargetHardwareAddressBuilder().setAddress(address).setMask(mask).build()).build()).build();
assertMatch(arpShaMatch, true, (out) -> {
byte[] addressBytes = new byte[6];
out.readBytes(addressBytes);
assertEquals(new MacAddress(ByteBufUtils.macAddressToString(addressBytes)).getValue(), address.getValue());
byte[] maskBytes = new byte[6];
out.readBytes(maskBytes);
assertEquals(new MacAddress(ByteBufUtils.macAddressToString(maskBytes)).getValue(), mask.getValue());
});
final Match arpShaMatchNoMask = new MatchBuilder().setLayer3Match(new ArpMatchBuilder().setArpTargetHardwareAddress(new ArpTargetHardwareAddressBuilder().setAddress(address).build()).build()).build();
assertMatch(arpShaMatchNoMask, false, (out) -> {
byte[] addressBytes = new byte[6];
out.readBytes(addressBytes);
assertEquals(new MacAddress(ByteBufUtils.macAddressToString(addressBytes)).getValue(), address.getValue());
});
}
Aggregations