use of org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.MatchBuilder in project openflowplugin by opendaylight.
the class Ipv6SourceEntryDeserializer method deserializeEntry.
@Override
public void deserializeEntry(ByteBuf message, MatchBuilder builder) {
final boolean hasMask = processHeader(message);
final Ipv6Address address = ByteBufUtils.readIetfIpv6Address(message);
if (hasMask) {
final byte[] mask = OxmDeserializerHelper.convertMask(message, EncodeConstants.SIZE_OF_IPV6_ADDRESS_IN_BYTES);
if (IpConversionUtil.isIpv6ArbitraryBitMask(mask)) {
setArbitraryMatch(builder, address, mask);
} else {
setPrefixMatch(builder, address, mask);
}
} else {
setPrefixMatch(builder, address, null);
}
}
use of org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.MatchBuilder in project openflowplugin by opendaylight.
the class MetadataEntryDeserializer method deserializeEntry.
@Override
public void deserializeEntry(ByteBuf message, MatchBuilder builder) {
final boolean hasMask = processHeader(message);
final Metadata metadata = builder.getMetadata();
final byte[] metaByte = new byte[EncodeConstants.SIZE_OF_LONG_IN_BYTES];
message.readBytes(metaByte);
final MetadataBuilder metadataBuilder = new MetadataBuilder().setMetadata(new BigInteger(1, metaByte));
if (hasMask) {
final byte[] metaMask = new byte[EncodeConstants.SIZE_OF_LONG_IN_BYTES];
message.readBytes(metaMask);
metadataBuilder.setMetadataMask(new BigInteger(1, metaMask));
}
if (Objects.isNull(metadata)) {
builder.setMetadata(metadataBuilder.build());
} else {
throwErrorOnMalformed(builder, "metadata");
}
}
use of org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.MatchBuilder in project openflowplugin by opendaylight.
the class PbbEntryDeserializer method deserializeEntry.
@Override
public void deserializeEntry(ByteBuf message, MatchBuilder builder) {
final boolean hasMask = processHeader(message);
final long pbb = message.readUnsignedMedium();
final PbbBuilder pbbBuilder = new PbbBuilder().setPbbIsid(pbb);
if (hasMask) {
pbbBuilder.setPbbMask((long) message.readUnsignedMedium());
}
if (Objects.isNull(builder.getProtocolMatchFields())) {
builder.setProtocolMatchFields(new ProtocolMatchFieldsBuilder().setPbb(pbbBuilder.build()).build());
} else if (Objects.isNull(builder.getProtocolMatchFields().getPbb())) {
builder.setProtocolMatchFields(new ProtocolMatchFieldsBuilder(builder.getProtocolMatchFields()).setPbb(pbbBuilder.build()).build());
} else {
throwErrorOnMalformed(builder, "protocolMatchFields", "pbb");
}
}
use of org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.MatchBuilder in project openflowplugin by opendaylight.
the class TcpFlagsEntryDeserializer method deserializeEntry.
@Override
public void deserializeEntry(ByteBuf message, MatchBuilder builder) {
final boolean hasMask = processHeader(message);
// Just skip experimenter ID for now, not used
message.readUnsignedInt();
final TcpFlagsMatchBuilder tcpFlagsBuilder = new TcpFlagsMatchBuilder().setTcpFlags(message.readUnsignedShort());
if (hasMask) {
tcpFlagsBuilder.setTcpFlagsMask(message.readUnsignedShort());
}
if (Objects.isNull(builder.getTcpFlagsMatch())) {
builder.setTcpFlagsMatch(tcpFlagsBuilder.build());
} else {
throwErrorOnMalformed(builder, "tcpFlagsMatch");
}
}
use of org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.MatchBuilder in project openflowplugin by opendaylight.
the class TunnelIdEntryDeserializer method deserializeEntry.
@Override
public void deserializeEntry(ByteBuf message, MatchBuilder builder) {
final boolean hasMask = processHeader(message);
final byte[] tunnelId = new byte[EncodeConstants.SIZE_OF_LONG_IN_BYTES];
message.readBytes(tunnelId);
final TunnelBuilder tunnelBuilder = new TunnelBuilder().setTunnelId(new BigInteger(1, tunnelId));
if (hasMask) {
final byte[] tunnelMask = new byte[EncodeConstants.SIZE_OF_LONG_IN_BYTES];
message.readBytes(tunnelMask);
tunnelBuilder.setTunnelMask(new BigInteger(1, tunnelMask));
}
if (Objects.isNull(builder.getTunnel())) {
builder.setTunnel(tunnelBuilder.build());
} else {
throwErrorOnMalformed(builder, "tunnel");
}
}
Aggregations