import com.google.common.collect.ImmutableList;
import org.opendaylight.mdsal.binding.spec.reflect.BindingReflections;
+import org.opendaylight.protocol.bgp.rib.spi.RIBQNames;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev180329.rib.Tables;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev180329.rib.TablesKey;
import org.opendaylight.yangtools.util.ImmutableOffsetMapTemplate;
final class RibSupportUtils {
private static final ImmutableOffsetMapTemplate<QName> AFI_SAFI_TEMPLATE =
- ImmutableOffsetMapTemplate.ordered(ImmutableList.of(QName.create(Tables.QNAME, "afi").intern(),
- QName.create(Tables.QNAME, "safi").intern()));
+ ImmutableOffsetMapTemplate.ordered(ImmutableList.of(RIBQNames.AFI_QNAME, RIBQNames.SAFI_QNAME));
private RibSupportUtils() {
// Hidden on purpose
import com.google.common.util.concurrent.FluentFuture;
import java.util.ArrayList;
import java.util.Collection;
-import java.util.Collections;
import java.util.EventListener;
import java.util.HashSet;
import java.util.List;
+import java.util.Map;
import java.util.Optional;
import java.util.concurrent.Executor;
import org.junit.Before;
import org.opendaylight.yangtools.yang.data.tree.api.ModificationType;
public class AbstractRIBTestSetup extends DefaultRibPoliciesMockTest {
-
- static final Ipv4AddressFamily IPV4_AFI = Ipv4AddressFamily.VALUE;
- private static final Ipv6AddressFamily IPV6_AFI = Ipv6AddressFamily.VALUE;
- static final UnicastSubsequentAddressFamily SAFI = UnicastSubsequentAddressFamily.VALUE;
- static final TablesKey KEY = new TablesKey(IPV4_AFI, SAFI);
static final QName PREFIX_QNAME = QName.create(Ipv4Route.QNAME, "prefix").intern();
private static final BgpId RIB_ID = new BgpId("127.0.0.1");
+
private RIBImpl rib;
private final RIBActivator a1 = new RIBActivator();
@Mock
public void mockRib() throws Exception {
final RIBExtensionProviderContext context = new SimpleRIBExtensionProviderContext();
final List<BgpTableType> localTables = new ArrayList<>();
- localTables.add(new BgpTableTypeImpl(IPV4_AFI, SAFI));
- localTables.add(new BgpTableTypeImpl(IPV6_AFI, SAFI));
+ localTables.add(new BgpTableTypeImpl(Ipv4AddressFamily.VALUE, UnicastSubsequentAddressFamily.VALUE));
+ localTables.add(new BgpTableTypeImpl(Ipv6AddressFamily.VALUE, UnicastSubsequentAddressFamily.VALUE));
final CurrentAdapterSerializer serializer = mappingService.currentSerializer();
a1.startRIBExtensionProvider(context, serializer);
doReturn(mock(ClusterSingletonServiceRegistration.class)).when(clusterSingletonServiceProvider)
.registerClusterSingletonService(any(ClusterSingletonService.class));
rib = new RIBImpl(tableRegistry, new RibId("test"), new AsNumber(Uint32.valueOf(5)), RIB_ID, context,
- dispatcher, new ConstantCodecsRegistry(serializer), dom, policies,
- localTables, Collections.singletonMap(KEY,
+ dispatcher, new ConstantCodecsRegistry(serializer), dom, policies, localTables,
+ Map.of(new TablesKey(Ipv4AddressFamily.VALUE, UnicastSubsequentAddressFamily.VALUE),
BasePathSelectionModeFactory.createBestPathSelectionStrategy()));
}
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev180329.rib.TablesKey;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev200120.Ipv4AddressFamily;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev200120.UnicastSubsequentAddressFamily;
-import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
@RunWith(MockitoJUnitRunner.StrictStubs.class)
public class AdjRibsInWriterTest {
private static final TablesKey K4 = new TablesKey(Ipv4AddressFamily.VALUE, UnicastSubsequentAddressFamily.VALUE);
- private static final NodeIdentifierWithPredicates DOM_K4 = NodeIdentifierWithPredicates.of(Tables.QNAME,
- Map.of(QName.create(Tables.QNAME, "afi"), Ipv4AddressFamily.QNAME,
- QName.create(Tables.QNAME, "safi"), UnicastSubsequentAddressFamily.QNAME));
+ private static final NodeIdentifierWithPredicates DOM_K4 = NodeIdentifierWithPredicates.of(Tables.QNAME, Map.of(
+ RIBQNames.AFI_QNAME, Ipv4AddressFamily.QNAME, RIBQNames.SAFI_QNAME, UnicastSubsequentAddressFamily.QNAME));
private static final Map<TablesKey, SendReceive> ADD_PATH_TABLE_MAPS = Map.of(K4, SendReceive.Both);
private final Set<TablesKey> tableTypes = Set.of(K4);
import org.opendaylight.protocol.bgp.parser.BGPDocumentedException;
import org.opendaylight.protocol.bgp.parser.BGPError;
import org.opendaylight.protocol.bgp.parser.impl.message.update.LocalPreferenceAttributeParser;
+import org.opendaylight.protocol.bgp.rib.spi.RIBQNames;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddressNoZone;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4AddressNoZone;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev200120.next.hop.c.next.hop.Ipv4NextHopCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev200120.next.hop.c.next.hop.ipv4.next.hop._case.Ipv4NextHopBuilder;
import org.opendaylight.yangtools.yang.binding.Notification;
-import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.common.Uint16;
import org.opendaylight.yangtools.yang.common.Uint32;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
import org.opendaylight.yangtools.yang.data.tree.api.ModificationType;
private void overrideMockedBehaviour() {
doAnswer(invocation -> {
- final Object[] args = invocation.getArguments();
- final NormalizedNode node = (NormalizedNode) args[2];
- final QName nodeType = node.getIdentifier().getNodeType();
-
+ final var node = invocation.getArgument(2, NormalizedNode.class);
+ final var nodeType = node.getIdentifier().getNodeType();
if (nodeType.equals(Ipv4Route.QNAME) || nodeType.equals(PREFIX_QNAME)) {
- routes.put((YangInstanceIdentifier) args[1], node);
+ routes.put(invocation.getArgument(1), node);
}
- return args[1];
+ return null;
}).when(getTransaction()).put(eq(LogicalDatastoreType.OPERATIONAL),
any(YangInstanceIdentifier.class), any(NormalizedNode.class));
doAnswer(invocation -> {
- final Object[] args = invocation.getArguments();
- routes.remove(args[1]);
- return args[1];
+ routes.remove(invocation.getArgument(1));
+ return null;
}).when(getTransaction()).delete(eq(LogicalDatastoreType.OPERATIONAL), any(YangInstanceIdentifier.class));
}
neighborAddress.getIpv4AddressNoZone(), getRib());
peer.instantiateServiceInstance(null, null);
final YangInstanceIdentifier base = getRib().getYangRibId().node(LocRib.QNAME)
- .node(Tables.QNAME).node(RibSupportUtils.toYangTablesKey(KEY));
+ .node(Tables.QNAME).node(NodeIdentifierWithPredicates.of(Tables.QNAME, Map.of(
+ RIBQNames.AFI_QNAME, Ipv4AddressFamily.QNAME,
+ RIBQNames.SAFI_QNAME, UnicastSubsequentAddressFamily.QNAME)));
peer.onDataTreeChanged(ipv4Input(base, ModificationType.WRITE, first, second, third));
assertEquals(3, routes.size());
classic.onMessage(session, new UpdateBuilder()
.setAttributes(new AttributesBuilder()
.addAugmentation(new AttributesUnreachBuilder()
- .setMpUnreachNlri(new MpUnreachNlriBuilder().setAfi(IPV4_AFI).setSafi(SAFI).build())
+ .setMpUnreachNlri(new MpUnreachNlriBuilder()
+ .setAfi(Ipv4AddressFamily.VALUE)
+ .setSafi(UnicastSubsequentAddressFamily.VALUE)
+ .build())
.build())
.build())
.build());
- classic.onMessage(session, new RouteRefreshBuilder().setAfi(IPV4_AFI).setSafi(SAFI).build());
+ classic.onMessage(session, new RouteRefreshBuilder()
+ .setAfi(Ipv4AddressFamily.VALUE)
+ .setSafi(UnicastSubsequentAddressFamily.VALUE)
+ .build());
classic.onMessage(session, new RouteRefreshBuilder()
.setAfi(Ipv6AddressFamily.VALUE)
- .setSafi(SAFI).build());
+ .setSafi(UnicastSubsequentAddressFamily.VALUE).build());
assertEquals(2, routes.size());
classic.releaseConnection();
}