use of org.opendaylight.protocol.bgp.openconfig.routing.policy.spi.policy.condition.BgpConditionsAugmentationPolicy in project bgpcep by opendaylight.
the class BgpConditionsRegistry method matchImportConditions.
public boolean matchImportConditions(final RouteEntryBaseAttributes entryInfo, final BGPRouteEntryImportParameters routeEntryImportParameters, final Attributes attributes, final Conditions conditions) {
final Conditions1 bgpConditionsAug = conditions.getAugmentation(Conditions1.class);
if (bgpConditionsAug != null) {
final BgpConditions bgpConditions = bgpConditionsAug.getBgpConditions();
synchronized (this) {
if (!matchImportCondition(entryInfo, routeEntryImportParameters, attributes, bgpConditions)) {
return false;
}
}
final Map<Class<? extends Augmentation<?>>, Augmentation<?>> bgpAug = BindingReflections.getAugmentations(bgpConditions);
for (final Map.Entry<Class<? extends Augmentation<?>>, Augmentation<?>> entry : bgpAug.entrySet()) {
final BgpConditionsAugmentationPolicy handler = this.bgpConditionsAugRegistry.get(entry.getKey());
if (handler == null) {
continue;
}
if (!handler.matchImportCondition(entryInfo, routeEntryImportParameters, handler.getConditionParameter(attributes), entry.getValue())) {
return false;
}
}
}
return true;
}
use of org.opendaylight.protocol.bgp.openconfig.routing.policy.spi.policy.condition.BgpConditionsAugmentationPolicy in project bgpcep by opendaylight.
the class BgpConditionsRegistry method registerBgpConditionsAugmentationPolicy.
public AbstractRegistration registerBgpConditionsAugmentationPolicy(final Class<? extends Augmentation<BgpConditions>> conditionPolicyClass, final BgpConditionsAugmentationPolicy conditionPolicy) {
synchronized (this.bgpConditionsAugRegistry) {
final BgpConditionsAugmentationPolicy prev = this.bgpConditionsAugRegistry.putIfAbsent(conditionPolicyClass, conditionPolicy);
Preconditions.checkState(prev == null, "Condition Policy %s already registered %s", conditionPolicyClass, prev);
return new AbstractRegistration() {
@Override
protected void removeRegistration() {
synchronized (BgpConditionsRegistry.this.bgpConditionsAugRegistry) {
BgpConditionsRegistry.this.bgpConditionsAugRegistry.remove(conditionPolicyClass);
}
}
};
}
}
use of org.opendaylight.protocol.bgp.openconfig.routing.policy.spi.policy.condition.BgpConditionsAugmentationPolicy in project bgpcep by opendaylight.
the class BgpConditionsRegistry method matchExportConditions.
@SuppressWarnings("unchecked")
public boolean matchExportConditions(final RouteEntryBaseAttributes entryInfo, final BGPRouteEntryExportParameters routeEntryExportParameters, final Attributes attributes, final Conditions conditions) {
final Conditions1 bgpConditionsAug = conditions.getAugmentation(Conditions1.class);
if (bgpConditionsAug != null) {
final BgpConditions bgpConditions = bgpConditionsAug.getBgpConditions();
if (!matchExportCondition(entryInfo, routeEntryExportParameters, attributes, bgpConditions)) {
return false;
}
final Map<Class<? extends Augmentation<?>>, Augmentation<?>> bgpAug = BindingReflections.getAugmentations(bgpConditions);
for (final Map.Entry<Class<? extends Augmentation<?>>, Augmentation<?>> entry : bgpAug.entrySet()) {
final BgpConditionsAugmentationPolicy handler = this.bgpConditionsAugRegistry.get(entry.getKey());
if (handler == null) {
continue;
}
if (!handler.matchExportCondition(entryInfo, routeEntryExportParameters, handler.getConditionParameter(attributes), entry.getValue())) {
return false;
}
}
}
return true;
}
Aggregations