use of org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev171207.path.attributes.attributes.OriginatorId in project bgpcep by opendaylight.
the class OriginatorIdAttributeParser method serializeAttribute.
@Override
public void serializeAttribute(final DataObject attribute, final ByteBuf byteAggregator) {
Preconditions.checkArgument(attribute instanceof Attributes, "Attribute parameter is not a PathAttribute object.");
final OriginatorId originator = ((Attributes) attribute).getOriginatorId();
if (originator == null) {
return;
}
final ByteBuf originatorIdBuf = Unpooled.buffer();
originatorIdBuf.writeBytes(Ipv4Util.bytesForAddress(originator.getOriginator()));
AttributeUtil.formatAttribute(AttributeUtil.OPTIONAL, TYPE, originatorIdBuf, byteAggregator);
}
use of org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev171207.path.attributes.attributes.OriginatorId in project bgpcep by opendaylight.
the class MatchOriginatorIdSetHandler method matchOriginatorCondition.
private boolean matchOriginatorCondition(final Ipv4Address localOriginatorId, final OriginatorId originatorId, final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.odl.bgp._default.policy.rev180109.match.originator.id.set.condition.grouping.MatchOriginatorIdSetCondition condition) {
final OriginatorIdSet originatorIdSet = this.sets.getUnchecked(StringUtils.substringBetween(condition.getOriginatorIdSet(), "=\"", "\""));
if (originatorIdSet == null) {
return false;
}
boolean found = false;
if (originatorId != null) {
final Ipv4Address remOrigin = originatorId.getOriginator();
if (originatorIdSet.getLocal() != null && localOriginatorId.equals(remOrigin)) {
found = true;
}
if (!found && originatorIdSet.getOriginatorId() != null) {
found = originatorIdSet.getOriginatorId().contains(remOrigin);
}
}
final MatchSetOptionsRestrictedType matchOption = condition.getMatchSetOptions();
return matchOption.equals(MatchSetOptionsRestrictedType.ANY) && found || matchOption.equals(MatchSetOptionsRestrictedType.INVERT) && !found;
}
Aggregations