private void removeDevice(DeviceId did) { providerService.deviceDisconnected(did); }
@Override public void roleChanged(DeviceId deviceId, MastershipRole newRole) { providerService.receivedRoleReply(deviceId, newRole, newRole); }
/** * 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
resetDeviceState(did); initPortCounters(did); providerService.deviceConnected(did, thisDescription); updatePortsAndStats(did);
@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); }
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()); } }
private void pushPortMetrics(Dpid dpid, List<OFPortStatsEntry> portStatsEntries) { DeviceId deviceId = DeviceId.deviceId(Dpid.uri(dpid)); Collection<PortStatistics> stats = buildPortStatistics(deviceId, portStatsEntries); providerService.updatePortStatistics(deviceId, stats); }
providerService.deviceConnected(did, discovery.get().discoverDeviceDetails()); providerService.updatePorts(did, discovery.get().discoverPortDetails()); } else { new ChassisId(), true); providerService.deviceConnected(did, desc); portDescs.add(DefaultPortDescription.builder().withPortNumber(number) .isEnabled(isEnabled).build()); providerService.updatePorts(did, portDescs);
@Override public void nodeAdded(OvsdbNodeId nodeId) { checkNotNull(nodeId, ISNOTNULL); DeviceId deviceId = DeviceId.deviceId(nodeId.toString()); URI uri = URI.create(nodeId.toString()); ChassisId cid = new ChassisId(); String ipAddress = nodeId.getIpAddress(); SparseAnnotations annotations = DefaultAnnotations.builder() .set("ipaddress", ipAddress).build(); DeviceDescription deviceDescription = new DefaultDeviceDescription( uri, Device.Type.CONTROLLER, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, cid, annotations); providerService.deviceConnected(deviceId, deviceDescription); }
@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, desc); log.info("Added device to ONOS core. Device Info: " + device.deviceInfo() + " " + did.uri().toString()); 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);
private void disconnectDevice(DeviceId did) { log.debug("Disconnecting device from core... deviceId={}", did); providerService.deviceDisconnected(did); lastDescriptions.remove(did); }
private void deviceAdded(RestSBDevice nodeId) { Preconditions.checkNotNull(nodeId, ISNOTNULL); DeviceId deviceId = nodeId.deviceId(); ChassisId cid = new ChassisId(); String ipAddress = nodeId.ip().toString(); SparseAnnotations annotations = DefaultAnnotations.builder() .set(IPADDRESS, ipAddress) .set(AnnotationKeys.PROTOCOL, REST.toUpperCase()) .build(); DeviceDescription deviceDescription = new DefaultDeviceDescription( deviceId.uri(), Device.Type.SWITCH, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, cid, annotations); nodeId.setActive(true); providerService.deviceConnected(deviceId, deviceDescription); addedDevices.add(deviceId); }
@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); }
@Override public void receivedRoleReply(Dpid dpid, RoleState requested, RoleState response) { LOG.debug("receivedRoleReply({},{},{})", dpid, requested, response); MastershipRole request = roleOf(requested); MastershipRole reply = roleOf(response); providerService.receivedRoleReply(deviceId(uri(dpid)), request, reply); }
sw.serialNumber(), cId, annotations); providerService.deviceConnected(did, description); providerService.updatePorts(did, buildPortDescriptions(sw));
@Override public void triggerProbe(DeviceId deviceId) { log.info("Triggering probe on device {}", deviceId); if (!isReachable(deviceId)) { log.error("Failed to probe device {}", deviceId); providerService.deviceDisconnected(deviceId); return; } else { log.trace("Confirmed device {} connection", deviceId); } }
@Override public void routerAdded(IsisRouter isisRouter) { String systemId = isisRouter.systemId(); log.info("Added device {}", systemId); DeviceId deviceId = DeviceId.deviceId(IsisRouterId.uri(systemId)); Device.Type deviceType = Device.Type.ROUTER; //If our routerType is Dr or Bdr type is PSEUDO if (isisRouter.isDis()) { deviceType = Device.Type.ROUTER; } else { deviceType = Device.Type.VIRTUAL; } ChassisId cId = new ChassisId(); DefaultAnnotations.Builder newBuilder = DefaultAnnotations.builder(); newBuilder.set(AnnotationKeys.TYPE, "L3"); newBuilder.set("RouterId", systemId); DeviceDescription description = new DefaultDeviceDescription(IsisRouterId.uri(systemId), deviceType, UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN, cId, newBuilder.build()); deviceProviderService.deviceConnected(deviceId, description); System.out.println("Device added: " + systemId); }
PortDiscovery portConfig = h.behaviour(PortDiscovery.class); if (portConfig != null) { providerService.updatePorts(deviceId, portConfig.getPorts()); } else { log.warn("No portGetter behaviour for device {}", deviceId);
private void deviceRemoved(DeviceId deviceId) { Preconditions.checkNotNull(deviceId, ISNOTNULL); providerService.deviceDisconnected(deviceId); controller.removeDevice(deviceId); }