/** Return a new edge, pointing in the reverse direction */ public Edge reverse() { return new Edge(_head, _tail); }
@Test public void testGetterEquivalence() { assertThat(EDGE.getNode1(), equalTo(EDGE.getTail().getHostname())); assertThat(EDGE.getNode2(), equalTo(EDGE.getHead().getHostname())); assertThat(EDGE.getInt1(), equalTo(EDGE.getTail().getInterface())); assertThat(EDGE.getInt2(), equalTo(EDGE.getHead().getInterface())); }
private void rebuildFromEdges() { _nodeEdges.clear(); _interfaceEdges.clear(); for (Edge edge : _edges) { String node1 = edge.getNode1(); String node2 = edge.getNode2(); NodeInterfacePair iface1 = edge.getTail(); NodeInterfacePair iface2 = edge.getHead(); _nodeEdges.computeIfAbsent(node1, k -> new TreeSet<>()).add(edge); _nodeEdges.computeIfAbsent(node2, k -> new TreeSet<>()).add(edge); _interfaceEdges.computeIfAbsent(iface1, k -> new TreeSet<>()).add(edge); _interfaceEdges.computeIfAbsent(iface2, k -> new TreeSet<>()).add(edge); } }
private Map<String, Set<String>> computeTopologyInterfaces() { Map<String, Set<String>> topologyEdges = new HashMap<>(); _enabledEdges.forEach( enabledEdge -> topologyEdges .computeIfAbsent(enabledEdge.getNode1(), n -> new HashSet<>()) .add(enabledEdge.getInt1())); // freeze return toImmutableMap(topologyEdges, Entry::getKey, e -> ImmutableSet.copyOf(e.getValue())); }
@Test public void testFactory() { assertThat(Edge.of("tail", "tailInt", "head", "headInt"), equalTo(EDGE)); }
if (ifaceEdges != null) { for (Edge edge : ifaceEdges) { if (edge.getNode1().equals(hostname)) { String remoteHostname = edge.getNode2(); String remoteIfaceName = edge.getInt2(); Configuration remoteNode = configurations.get(remoteHostname); Interface remoteIface = remoteNode.getAllInterfaces().get(remoteIfaceName);
@Override public void visitPreInInterface(PreInInterface.State preInInterface) { // OriginateInterfaceLink _input.getEnabledInterfaces().entrySet().stream() .flatMap( enabledInterfacesByHostnameEntry -> { String hostname = enabledInterfacesByHostnameEntry.getKey(); return enabledInterfacesByHostnameEntry.getValue().stream() .map( iface -> new BasicRuleStatement( new AndExpr( ImmutableList.of( srcInterfaceConstraint(hostname, iface), transitNodesNotTransitedConstraint())), new OriginateInterfaceLink(hostname, iface), new PreInInterface(hostname, iface))); }) .forEach(_rules::add); // PostOutNeighbor _input.getEnabledEdges().stream() .map( edge -> new BasicRuleStatement( transformedSrcInterfaceConstraint(edge.getNode2(), edge.getInt2()), new PostOutEdge(edge), new PreInInterface(edge.getNode2(), edge.getInt2()))) .forEach(_rules::add); }
for (Edge e : es) { if (router.equals(e.getNode1()) && router.equals(e.getNode2())) { GraphEdge ge = new GraphEdge(i1, null, router, null, false, false); graphEdges.add(ge); if (!router.equals(e.getNode2())) { Interface i2 = ifaceMap.get(e.getHead()); String neighbor = e.getNode2(); GraphEdge ge1 = new GraphEdge(i1, i2, router, neighbor, false, false); GraphEdge ge2 = new GraphEdge(i2, i1, neighbor, router, false, false);
if (edgeIpsecSession.isPresent() && edgeIpsecSession.get().getNegotiatedIpsecP2Proposal() != null) { successfulIPsecEdges.add(new Edge(tunnelEndPointU, tunnelEndPointV)); NodeInterfacePair tail = edge.getTail(); NodeInterfacePair head = edge.getHead(); if ((tunnelIpsecEndpoints.contains(tail) || tunnelIpsecEndpoints.contains(head)) && (!successfulIPsecEdges.contains(edge) || !successfulIPsecEdges.contains(edge.reverse()))) { failedIpsecEdges.add(edge);
@VisibleForTesting static Multiset<Row> getLayer3Edges( Map<String, Configuration> configurations, Set<String> includeNodes, Set<String> includeRemoteNodes, Topology topology) { return topology.getEdges().stream() .filter( layer3Edge -> includeNodes.contains(layer3Edge.getNode1()) && includeRemoteNodes.contains(layer3Edge.getNode2())) .map(layer3edge -> layer3EdgeToRow(configurations, layer3edge)) .collect(Collectors.toCollection(HashMultiset::create)); }
} else { FlowTraceHop lastHop = hopsSoFar.get(hopsSoFar.size() - 1); srcInterfaceName = lastHop.getEdge().getInt2(); vrfName = currentConfiguration.getAllInterfaces().get(srcInterfaceName).getVrf().getName(); if (nextHopInterfaceName.equals(Interface.NULL_INTERFACE_NAME)) { Edge newEdge = new Edge( nextHopInterface, new NodeInterfacePair( new Edge( nextHopInterface, new NodeInterfacePair(
@Override protected String featureValueOf(Edge edge) { return edge.getNode1(); } }
@Override protected String featureValueOf(Edge edge) { return edge.getNode2(); } }
@Override protected String featureValueOf(Edge edge) { return edge.getInt1(); } }
@Override protected String featureValueOf(Edge edge) { return edge.getInt2(); } }
/** @deprecated Use {@link #getHead()} */ @JsonIgnore @Deprecated @Nonnull public NodeInterfacePair getInterface2() { return getHead(); }