use of org.opendaylight.protocol.util.BitArray in project bgpcep by opendaylight.
the class BindingSidLabelParser method parseBindingSidLabel.
public static SrBindingSidLabels parseBindingSidLabel(final ByteBuf buffer, final ProtocolId protocolId) {
final SrBindingSidLabelsBuilder bindingSid = new SrBindingSidLabelsBuilder();
bindingSid.setWeight(new Weight(buffer.readUnsignedByte()));
final BitArray flags = BitArray.valueOf(buffer, FLAGS_SIZE);
bindingSid.setFlags(parseBindingSidFlags(flags, protocolId));
buffer.skipBytes(RESERVED_BINDING_SID);
bindingSid.setBindingSubTlvs(SimpleBindingSubTlvsRegistry.getInstance().parseBindingSubTlvs(buffer, protocolId));
return bindingSid.build();
}
use of org.opendaylight.protocol.util.BitArray in project bgpcep by opendaylight.
the class RangeTlvParser method serializeSrRange.
public static void serializeSrRange(final SrRange srRange, final ByteBuf aggregator) {
final BitArray flags = new BitArray(FLAGS_SIZE);
flags.set(INNER_AREA, srRange.isInterArea());
flags.toByteBuf(aggregator);
aggregator.writeZero(RESERVED);
aggregator.writeShort(srRange.getRangeSize());
serializeSubTlvs(aggregator, srRange.getSubTlvs());
}
use of org.opendaylight.protocol.util.BitArray in project bgpcep by opendaylight.
the class UnnumberedEroParser method parseUnnumberedEroCase.
static UnnumberedInterfaceIdEroCase parseUnnumberedEroCase(final ByteBuf buffer) {
final UnnumberedInterfaceIdEroCaseBuilder builder = new UnnumberedInterfaceIdEroCaseBuilder();
final BitArray flags = BitArray.valueOf(buffer, Ipv4EroParser.FLAGS_SIZE);
builder.setLoose(flags.get(Ipv4EroParser.LOOSE));
buffer.skipBytes(Ipv4EroParser.RESERVED_ERO);
builder.setRouterId(buffer.readUnsignedInt());
builder.setInterfaceId(buffer.readUnsignedInt());
return builder.build();
}
use of org.opendaylight.protocol.util.BitArray in project bgpcep by opendaylight.
the class SrLinkAttributesParser method parseAdjacencySegmentIdentifier.
public static SrAdjIds parseAdjacencySegmentIdentifier(final ByteBuf buffer, final ProtocolId protocolId) {
final Flags adjFlags;
final Weight weight;
final SidLabelIndex sidValue;
if (buffer.isReadable()) {
final BitArray flags = BitArray.valueOf(buffer, FLAGS_BITS_SIZE);
adjFlags = parseFlags(flags, protocolId);
weight = new Weight(buffer.readUnsignedByte());
buffer.skipBytes(RESERVED);
sidValue = SidLabelIndexParser.parseSidLabelIndex(Size.forValue(buffer.readableBytes()), buffer);
} else {
adjFlags = null;
weight = null;
sidValue = null;
}
return new SrAdjIdsBuilder().setFlags(adjFlags).setSidLabelIndex(sidValue).setWeight(weight).build();
}
use of org.opendaylight.protocol.util.BitArray in project bgpcep by opendaylight.
the class SrLinkAttributesParser method serializeAdjFlags.
private static BitArray serializeAdjFlags(final Flags flags, final SidLabelIndex sidLabelIndex) {
final BitArray bitFlags = new BitArray(FLAGS_BITS_SIZE);
if (flags instanceof OspfAdjFlagsCase) {
final OspfAdjFlagsCase ospfFlags = (OspfAdjFlagsCase) flags;
bitFlags.set(BACKUP_OSPF, ospfFlags.isBackup());
bitFlags.set(SET_OSPF, ospfFlags.isSet());
SidLabelIndexParser.setFlags(sidLabelIndex, bitFlags, VALUE_OSPF, LOCAL_OSPF);
} else if (flags instanceof IsisAdjFlagsCase) {
final IsisAdjFlagsCase isisFlags = (IsisAdjFlagsCase) flags;
bitFlags.set(ADDRESS_FAMILY_FLAG, isisFlags.isAddressFamily());
bitFlags.set(BACKUP_ISIS, isisFlags.isBackup());
bitFlags.set(SET_ISIS, isisFlags.isSet());
SidLabelIndexParser.setFlags(sidLabelIndex, bitFlags, VALUE_ISIS, LOCAL_ISIS);
} else if (flags == null) {
SidLabelIndexParser.setFlags(sidLabelIndex, bitFlags, VALUE_EPE, LOCAL_EPE);
}
return bitFlags;
}
Aggregations