@Override public void switchChanged(Dpid dpid) { LOG.debug("switchChanged({})", dpid); if (providerService == null) { return; } DeviceId did = deviceId(uri(dpid)); OpenFlowSwitch sw = controller.getSwitch(dpid); if (sw == null) { return; } final List<PortDescription> ports = buildPortDescriptions(sw); LOG.debug("switchChanged({}) {}", did, ports); providerService.updatePorts(did, ports); }
@Override public void deleteLink(OspfRouter ospfRouter, OspfLinkTed ospfLinkTed) { log.debug("Delete link {}", ospfRouter.routerIp().toString()); if (linkProviderService == null) { return; } LinkDescription linkDes = buildLinkDes(ospfRouter, ospfLinkTed); //Updating ports of the link List<PortDescription> srcPortDescriptions = new LinkedList<>(); srcPortDescriptions.add(new DefaultPortDescription(linkDes.src().port(), true)); deviceProviderService.updatePorts(linkDes.src().deviceId(), srcPortDescriptions); List<PortDescription> dstPortDescriptions = new LinkedList<>(); dstPortDescriptions.add(new DefaultPortDescription(linkDes.dst().port(), true)); deviceProviderService.updatePorts(linkDes.dst().deviceId(), dstPortDescriptions); linkProviderService.linkVanished(linkDes); }
providerService.deviceConnected(did, discovery.get().discoverDeviceDetails()); providerService.updatePorts(did, discovery.get().discoverPortDetails()); } else { portDescs.add(DefaultPortDescription.builder().withPortNumber(number) .isEnabled(isEnabled).build()); providerService.updatePorts(did, portDescs);
@Override public void addLink(OspfRouter ospfRouter, OspfLinkTed ospfLinkTed) { log.debug("Addlink {}", ospfRouter.routerIp()); LinkDescription linkDes = buildLinkDes(ospfRouter, ospfLinkTed); //If already link exists, return if (linkService.getLink(linkDes.src(), linkDes.dst()) != null || linkProviderService == null) { return; } //Updating ports of the link List<PortDescription> srcPortDescriptions = new LinkedList<>(); srcPortDescriptions.add(new DefaultPortDescription(linkDes.src().port(), true)); deviceProviderService.updatePorts(linkDes.src().deviceId(), srcPortDescriptions); List<PortDescription> dstPortDescriptions = new LinkedList<>(); dstPortDescriptions.add(new DefaultPortDescription(linkDes.dst().port(), true)); deviceProviderService.updatePorts(linkDes.dst().deviceId(), dstPortDescriptions); linkProviderService.linkDetected(linkDes); }
PortDiscovery portConfig = h.behaviour(PortDiscovery.class); if (portConfig != null) { providerService.updatePorts(deviceId, portConfig.getPorts()); } else { log.warn("No portGetter behaviour for device {}", deviceId);
/** * Discovers the device details using the device discovery behaviour of * the supplied driver handler context for interacting with a specific * device. * * @param handler driver handler context */ protected void discoverDevice(DriverHandler handler) { DeviceId deviceId = handler.data().deviceId(); DeviceDescriptionDiscovery discovery = handler.behaviour(DeviceDescriptionDiscovery.class); DeviceDescription description = discovery.discoverDeviceDetails(); if (description != null) { providerService.deviceConnected(deviceId, description); } else { log.info("No other description given for device {}", deviceId); } providerService.updatePorts(deviceId, discovery.discoverPortDetails()); } // TODO: inspect NETCONF, SNMP, RESTSB device providers for additional common patterns
private void updatePortsAndStats(DeviceId did) { Device device = deviceService.getDevice(did); if (device.is(DeviceDescriptionDiscovery.class)) { DeviceDescriptionDiscovery discovery = device.as(DeviceDescriptionDiscovery.class); List<PortDescription> portDescriptions = discovery.discoverPortDetails(); if (portDescriptions != null) { providerService.updatePorts(did, portDescriptions); } } else { log.warn("No DeviceDescriptionDiscovery behavior for device {}", did); } try { Collection<PortStatistics> portStats = getPortStatistics(controller.getAgent(did), deviceService.getPorts(did)); providerService.updatePortStatistics(did, portStats); } catch (Bmv2RuntimeException e) { log.warn("Unable to get port statistics for {}: {}", did, e.explain()); } }
new ProviderId("snmp", "org.onosproject.provider.device"), did, description); providerService.updatePorts(did, descriptionDiscovery.discoverPortDetails()); } else { log.warn("No populate description and ports behaviour for device {}", did);
@Override public void addLink(IsisLink isisLink) { log.debug("Addlink {}", isisLink.localSystemId()); LinkDescription linkDes = buildLinkDes(isisLink); //Updating ports of the link //If already link exists, return if (linkService.getLink(linkDes.src(), linkDes.dst()) != null || linkProviderService == null) { return; } ConnectPoint destconnectPoint = linkDes.dst(); PortNumber destport = destconnectPoint.port(); if (destport.toLong() != 0) { deviceProviderService.updatePorts(linkDes.src().deviceId(), buildPortDescriptions(linkDes.src().deviceId(), linkDes.src().port())); deviceProviderService.updatePorts(linkDes.dst().deviceId(), buildPortDescriptions(linkDes.dst().deviceId(), linkDes.dst().port())); registerBandwidth(linkDes, isisLink); linkProviderService.linkDetected(linkDes); System.out.println("link desc " + linkDes.toString()); } }
cId, annotations); providerService.deviceConnected(did, description); providerService.updatePorts(did, buildPortDescriptions(sw));