Search in sources :

Example 1 with DefaultLinkDescription

use of org.onosproject.net.link.DefaultLinkDescription in project onos by opennetworkinglab.

the class SimpleLinkStoreTest method testCreateOrUpdateLinkAncillary.

@Test
public final void testCreateOrUpdateLinkAncillary() {
    ConnectPoint src = new ConnectPoint(DID1, P1);
    ConnectPoint dst = new ConnectPoint(DID2, P2);
    // add Ancillary link
    LinkEvent event = linkStore.createOrUpdateLink(PIDA, new DefaultLinkDescription(src, dst, INDIRECT, A1));
    assertNotNull("Ancillary only link is ignored", event);
    // add Primary link
    LinkEvent event2 = linkStore.createOrUpdateLink(PID, new DefaultLinkDescription(src, dst, INDIRECT, A2));
    assertLink(DID1, P1, DID2, P2, INDIRECT, event2.subject());
    assertAnnotationsEquals(event2.subject().annotations(), A2, A1);
    assertEquals(LINK_UPDATED, event2.type());
    // update link type
    LinkEvent event3 = linkStore.createOrUpdateLink(PID, new DefaultLinkDescription(src, dst, DIRECT, A2));
    assertLink(DID1, P1, DID2, P2, DIRECT, event3.subject());
    assertAnnotationsEquals(event3.subject().annotations(), A2, A1);
    assertEquals(LINK_UPDATED, event3.type());
    // no change
    LinkEvent event4 = linkStore.createOrUpdateLink(PID, new DefaultLinkDescription(src, dst, DIRECT));
    assertNull("No change event expected", event4);
    // update link annotation (Primary)
    LinkEvent event5 = linkStore.createOrUpdateLink(PID, new DefaultLinkDescription(src, dst, DIRECT, A2_2));
    assertLink(DID1, P1, DID2, P2, DIRECT, event5.subject());
    assertAnnotationsEquals(event5.subject().annotations(), A2, A2_2, A1);
    assertEquals(LINK_UPDATED, event5.type());
    // update link annotation (Ancillary)
    LinkEvent event6 = linkStore.createOrUpdateLink(PIDA, new DefaultLinkDescription(src, dst, DIRECT, A1_2));
    assertLink(DID1, P1, DID2, P2, DIRECT, event6.subject());
    assertAnnotationsEquals(event6.subject().annotations(), A2, A2_2, A1, A1_2);
    assertEquals(LINK_UPDATED, event6.type());
    // update link type (Ancillary) : ignored
    LinkEvent event7 = linkStore.createOrUpdateLink(PIDA, new DefaultLinkDescription(src, dst, EDGE));
    assertNull("Ancillary change other than annotation is ignored", event7);
}
Also used : LinkEvent(org.onosproject.net.link.LinkEvent) ConnectPoint(org.onosproject.net.ConnectPoint) DefaultLinkDescription(org.onosproject.net.link.DefaultLinkDescription) Test(org.junit.Test)

Example 2 with DefaultLinkDescription

use of org.onosproject.net.link.DefaultLinkDescription in project onos by opennetworkinglab.

the class LinkManagerTest method addLink.

private Link addLink(DeviceId sd, PortNumber sp, DeviceId dd, PortNumber dp, Link.Type type) {
    providerService.linkDetected(new DefaultLinkDescription(cp(sd, sp), cp(dd, dp), type));
    Link link = listener.events.get(0).subject();
    validateEvents(LINK_ADDED);
    return link;
}
Also used : Link(org.onosproject.net.Link) DefaultLinkDescription(org.onosproject.net.link.DefaultLinkDescription)

Example 3 with DefaultLinkDescription

use of org.onosproject.net.link.DefaultLinkDescription in project onos by opennetworkinglab.

the class ECLinkStoreTest method testCreateOrUpdateLinkAncillary.

@Test
public final void testCreateOrUpdateLinkAncillary() {
    ConnectPoint src = new ConnectPoint(DID1, P1);
    ConnectPoint dst = new ConnectPoint(DID2, P2);
    // add Ancillary link
    LinkEvent event = linkStore.createOrUpdateLink(PIDA, new DefaultLinkDescription(src, dst, INDIRECT, A1));
    assertNotNull("Ancillary only link is ignored", event);
    // add Primary link
    LinkEvent event2 = linkStore.createOrUpdateLink(PID, new DefaultLinkDescription(src, dst, INDIRECT, A2));
    assertLink(DID1, P1, DID2, P2, INDIRECT, event2.subject());
    assertAnnotationsEquals(event2.subject().annotations(), A2, A1);
    assertEquals(LINK_UPDATED, event2.type());
    // update link type
    LinkEvent event3 = linkStore.createOrUpdateLink(PID, new DefaultLinkDescription(src, dst, DIRECT, A2));
    assertLink(DID1, P1, DID2, P2, DIRECT, event3.subject());
    assertAnnotationsEquals(event3.subject().annotations(), A2, A1);
    assertEquals(LINK_UPDATED, event3.type());
    // no change
    LinkEvent event4 = linkStore.createOrUpdateLink(PID, new DefaultLinkDescription(src, dst, DIRECT));
    assertNull("No change event expected", event4);
    // update link annotation (Primary)
    LinkEvent event5 = linkStore.createOrUpdateLink(PID, new DefaultLinkDescription(src, dst, DIRECT, A2_2));
    assertLink(DID1, P1, DID2, P2, DIRECT, event5.subject());
    assertAnnotationsEquals(event5.subject().annotations(), A2, A2_2, A1);
    assertEquals(LINK_UPDATED, event5.type());
    // update link annotation (Ancillary)
    LinkEvent event6 = linkStore.createOrUpdateLink(PIDA, new DefaultLinkDescription(src, dst, DIRECT, A1_2));
    assertLink(DID1, P1, DID2, P2, DIRECT, event6.subject());
    assertAnnotationsEquals(event6.subject().annotations(), A2, A2_2, A1, A1_2);
    assertEquals(LINK_UPDATED, event6.type());
    // update link type (Ancillary) : ignored
    LinkEvent event7 = linkStore.createOrUpdateLink(PIDA, new DefaultLinkDescription(src, dst, EDGE));
    assertNull("Ancillary change other than annotation is ignored", event7);
}
Also used : LinkEvent(org.onosproject.net.link.LinkEvent) ConnectPoint(org.onosproject.net.ConnectPoint) DefaultLinkDescription(org.onosproject.net.link.DefaultLinkDescription) Test(org.junit.Test)

Example 4 with DefaultLinkDescription

use of org.onosproject.net.link.DefaultLinkDescription in project onos by opennetworkinglab.

the class ECLinkStoreTest method putLink.

private void putLink(DeviceId srcId, PortNumber srcNum, DeviceId dstId, PortNumber dstNum, Type type, SparseAnnotations... annotations) {
    ConnectPoint src = new ConnectPoint(srcId, srcNum);
    ConnectPoint dst = new ConnectPoint(dstId, dstNum);
    linkStore.createOrUpdateLink(PID, new DefaultLinkDescription(src, dst, type, annotations));
    verify(clusterCommunicator);
}
Also used : ConnectPoint(org.onosproject.net.ConnectPoint) DefaultLinkDescription(org.onosproject.net.link.DefaultLinkDescription)

Example 5 with DefaultLinkDescription

use of org.onosproject.net.link.DefaultLinkDescription in project onos by opennetworkinglab.

the class LinkDiscoveryAristaImpl method buildLinkPair.

private static Set<LinkDescription> buildLinkPair(DeviceId localDevId, Port localPort, DeviceId remoteDevId, Port remotePort) {
    Set<LinkDescription> linkDescriptions = Sets.newHashSet();
    ConnectPoint local = new ConnectPoint(localDevId, localPort.number());
    ConnectPoint remote = new ConnectPoint(remoteDevId, remotePort.number());
    DefaultAnnotations annotations = DefaultAnnotations.builder().set(AnnotationKeys.LAYER, "ETHERNET").build();
    linkDescriptions.add(new DefaultLinkDescription(remote, local, Link.Type.DIRECT, true, annotations));
    return linkDescriptions;
}
Also used : DefaultAnnotations(org.onosproject.net.DefaultAnnotations) DefaultLinkDescription(org.onosproject.net.link.DefaultLinkDescription) LinkDescription(org.onosproject.net.link.LinkDescription) ConnectPoint(org.onosproject.net.ConnectPoint) DefaultLinkDescription(org.onosproject.net.link.DefaultLinkDescription)

Aggregations

DefaultLinkDescription (org.onosproject.net.link.DefaultLinkDescription)27 ConnectPoint (org.onosproject.net.ConnectPoint)20 LinkDescription (org.onosproject.net.link.LinkDescription)11 Test (org.junit.Test)8 DefaultAnnotations (org.onosproject.net.DefaultAnnotations)6 DeviceId (org.onosproject.net.DeviceId)6 Device (org.onosproject.net.Device)5 DeviceService (org.onosproject.net.device.DeviceService)5 HashSet (java.util.HashSet)4 Link (org.onosproject.net.Link)4 LinkEvent (org.onosproject.net.link.LinkEvent)4 NetconfController (org.onosproject.netconf.NetconfController)4 HashMap (java.util.HashMap)3 XPath (javax.xml.xpath.XPath)3 XPathExpressionException (javax.xml.xpath.XPathExpressionException)3 Type (org.onosproject.net.Link.Type)3 NetconfException (org.onosproject.netconf.NetconfException)3 NetconfSession (org.onosproject.netconf.NetconfSession)3 Node (org.w3c.dom.Node)3 NodeList (org.w3c.dom.NodeList)3