use of org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev200120.path.attributes.attributes.ClusterId in project bgpcep by opendaylight.
the class ClusterIdAttributeParserTest method testParserAttribute.
@Test
public void testParserAttribute() throws Exception {
final List<ClusterIdentifier> list = new ArrayList<>();
final Ipv4AddressNoZone ip1 = new Ipv4AddressNoZone("192.168.1.1");
final Ipv4AddressNoZone ip2 = new Ipv4AddressNoZone("192.168.1.2");
list.add(new ClusterIdentifier(ip1));
list.add(new ClusterIdentifier(ip2));
final Attributes clusterId = new AttributesBuilder().setClusterId(new ClusterIdBuilder().setCluster(list).build()).build();
final ByteBuf output = Unpooled.buffer();
this.parser.serializeAttribute(clusterId, output);
assertArrayEquals(CLUSTER_ID_BYTES, ByteArray.getAllBytes(output));
AttributesBuilder clusterIdOutput = new AttributesBuilder();
this.parser.parseAttribute(Unpooled.wrappedBuffer(ByteArray.cutBytes(CLUSTER_ID_BYTES, 3)), clusterIdOutput, null);
assertEquals(clusterId, clusterIdOutput.build());
}
use of org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev200120.path.attributes.attributes.ClusterId in project bgpcep by opendaylight.
the class AbstractAddPathTest method createSimpleUpdate.
private static Update createSimpleUpdate(final Ipv4Prefix prefix, final PathId pathId, final ClusterIdentifier clusterId, final long localPreference) {
final AttributesBuilder attBuilder = new AttributesBuilder();
attBuilder.setLocalPref(new LocalPrefBuilder().setPref(Uint32.valueOf(localPreference)).build());
attBuilder.setOrigin(new OriginBuilder().setValue(BgpOrigin.Igp).build());
attBuilder.setAsPath(new AsPathBuilder().setSegments(Collections.emptyList()).build());
attBuilder.setMultiExitDisc(new MultiExitDiscBuilder().setMed(Uint32.ZERO).build());
if (clusterId != null) {
attBuilder.setClusterId(new ClusterIdBuilder().setCluster(Collections.singletonList(clusterId)).build());
attBuilder.setOriginatorId(new OriginatorIdBuilder().setOriginator(new Ipv4AddressNoZone(clusterId)).build());
}
addAttributeAugmentation(attBuilder, prefix, pathId);
return new UpdateBuilder().setAttributes(attBuilder.build()).build();
}
use of org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev200120.path.attributes.attributes.ClusterId in project bgpcep by opendaylight.
the class MatchClusterIdSetHandler method matchClusterIdCondition.
private boolean matchClusterIdCondition(final ClusterIdentifier localClusterId, final ClusterId clusterId, final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.odl.bgp._default.policy.rev180109.match.cluster.id.set.condition.grouping.MatchClusterIdSetCondition matchClusterIdSetCondition) {
final ClusterIdSet clusterIdSet = this.sets.getUnchecked(StringUtils.substringBetween(matchClusterIdSetCondition.getClusterIdSet(), "=\"", "\""));
if (clusterIdSet == null) {
return false;
}
final MatchSetOptionsType matchOption = matchClusterIdSetCondition.getMatchSetOptions();
if (clusterId != null) {
List<ClusterIdentifier> newList = new ArrayList<>();
if (clusterIdSet.getClusterId() != null) {
newList.addAll(clusterIdSet.getClusterId());
}
if (clusterIdSet.getLocal() != null) {
newList.add(localClusterId);
}
final List<ClusterIdentifier> matchClusterList = clusterId.getCluster();
if (matchOption.equals(MatchSetOptionsType.ALL)) {
return matchClusterList.containsAll(newList) && newList.containsAll(matchClusterList);
}
final boolean noneInCommon = Collections.disjoint(matchClusterList, newList);
if (matchOption.equals(MatchSetOptionsType.ANY)) {
return !noneInCommon;
} else if (matchOption.equals(MatchSetOptionsType.INVERT)) {
return noneInCommon;
}
} else if (matchOption.equals(MatchSetOptionsType.INVERT)) {
return true;
}
return false;
}
use of org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev200120.path.attributes.attributes.ClusterId in project bgpcep by opendaylight.
the class RibImpl method createRib.
private synchronized RIBImpl createRib(final Global global, final BGPTableTypeRegistryConsumer tableTypeRegistry) {
afiSafi = getAfiSafiWithDefault(global.getAfiSafis(), true).values();
final Config globalConfig = global.getConfig();
asNumber = globalConfig.getAs();
routerId = IetfInetUtil.INSTANCE.ipv4AddressNoZoneFor(globalConfig.getRouterId());
clusterId = getGlobalClusterIdentifier(globalConfig);
final Map<TablesKey, PathSelectionMode> pathSelectionModes = OpenConfigMappingUtil.toPathSelectionMode(afiSafi, tableTypeRegistry).entrySet().stream().collect(Collectors.toMap(entry -> new TablesKey(entry.getKey().getAfi(), entry.getKey().getSafi()), Map.Entry::getValue));
final BGPRibRoutingPolicy ribPolicy = policyProvider.buildBGPRibPolicy(asNumber.getValue().toJava(), routerId, clusterId, RoutingPolicyUtil.getApplyPolicy(global.getApplyPolicy()));
return new RIBImpl(tableTypeRegistry, ribId, asNumber, new BgpId(routerId), extensionProvider, dispatcher, codecsRegistry, domBroker, ribPolicy, toTableTypes(afiSafi, tableTypeRegistry), pathSelectionModes);
}
use of org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev200120.path.attributes.attributes.ClusterId in project bgpcep by opendaylight.
the class ExportAttributeTestUtil method createClusterIdInput.
private static ClusterId createClusterIdInput() {
final ClusterIdentifier cluster1 = new ClusterIdentifier(new Ipv4AddressNoZone("1.1.1.1"));
final ClusterIdentifier cluster2 = new ClusterIdentifier(new Ipv4AddressNoZone("1.1.1.2"));
return new ClusterIdBuilder().setCluster(Arrays.asList(cluster1, cluster2)).build();
}
Aggregations