private DriverHandler getDriver(DeviceId devId) { Driver driver = driverService.getDriver(devId); DriverHandler handler = new DefaultDriverHandler(new DefaultDriverData(driver, devId)); return handler; } }
@Override public boolean isRelevant(DriverEvent event) { return event.type() == DriverEvent.Type.DRIVER_ENHANCED; } }
private Driver getDriver(String name) { try { return driverAdminService.getDriver(name); } catch (ItemNotFoundException e) { return null; } }
private OFAction buildExtensionAction(ExtensionTreatment i, DeviceId deviceId) { if (!driverService.isPresent()) { log.error("No driver service present"); return null; } Driver driver = driverService.get().getDriver(deviceId); if (driver.hasBehaviour(ExtensionTreatmentInterpreter.class)) { DefaultDriverHandler handler = new DefaultDriverHandler(new DefaultDriverData(driver, deviceId)); ExtensionTreatmentInterpreter interpreter = handler.behaviour(ExtensionTreatmentInterpreter.class); return interpreter.mapInstruction(factory, i); } return null; } }
private ExtensionTreatment buildNiciraExtenstion(DeviceId id, Ip4Address hostIp) { Driver driver = driverService.getDriver(id); DriverHandler driverHandler = new DefaultDriverHandler(new DefaultDriverData(driver, id)); ExtensionTreatmentResolver resolver = driverHandler.behaviour(ExtensionTreatmentResolver.class); ExtensionTreatment extensionInstruction = resolver.getExtensionInstruction( ExtensionTreatmentType.ExtensionTreatmentTypes.NICIRA_SET_TUNNEL_DST.type()); try { extensionInstruction.setPropertyValue(TUNNEL_DST, hostIp); } catch (ExtensionPropertyException e) { log.error("Error setting Nicira extension setting {}", e); } return extensionInstruction; }
/** * Retrieves {@link ProtectionConfigBehaviour} for the Device. * * @param did {@link DeviceId} of the Device to fetch * @return {@link ProtectionConfigBehaviour} * or throws {@link UnsupportedOperationException} on error. */ private ProtectionConfigBehaviour getBehaviour(DeviceId did) { DriverHandler handler = driverService.createHandler(did); if (!handler.hasBehaviour(ProtectionConfigBehaviour.class)) { log.error("{} does not support protection", did); throw new UnsupportedOperationException(did + " does not support protection"); } return handler.behaviour(ProtectionConfigBehaviour.class); }
@Override public void unregisterProvider(DriverProvider provider) { provider.getDrivers().forEach(driver -> { removeDriver(driver); driverByKey.remove(key(driver.manufacturer(), driver.hwVersion(), driver.swVersion())); post(new DriverEvent(DRIVER_REDUCED, driver)); }); providers.remove(provider); checkRequiredDrivers(); }
@Override public DriverHandler createHandler(DeviceId deviceId, String... credentials) { checkPermission(DRIVER_WRITE); Driver driver = getDriver(deviceId); return new DefaultDriverHandler(new DefaultDriverData(driver, deviceId)); }
private boolean isMultiplexingSupported(ConnectPoint cp) { Driver driver = driverService.getDriver(cp.deviceId()); return driver != null && driver.hasBehaviour(TributarySlotQuery.class) && staticPort(cp) == null; }
private boolean matches(Driver d, String mfr, String hw, String sw) { // TODO: consider pre-compiling the expressions in the future return mfr.matches(d.manufacturer()) && hw.matches(d.hwVersion()) && sw.matches(d.swVersion()); }
@Override public int hashCode() { return Objects.hashCode(driver.name()); } }
@Override public void removeListener(DriverListener listener) { registry.removeListener(listener); } }
@Override public void addListener(DriverListener listener) { registry.addListener(listener); }
@Override public Set<Driver> getDrivers() { checkPermission(DRIVER_READ); return registry.getDrivers(); }
@Override public Driver getDriver(String mfr, String hw, String sw) { checkPermission(DRIVER_READ); return registry.getDriver(mfr, hw, sw); }
private OFAction buildExtensionAction(ExtensionTreatment i) { if (!driverService.isPresent()) { log.error("No driver service present"); return null; } Driver driver = driverService.get().getDriver(deviceId); if (driver.hasBehaviour(ExtensionTreatmentInterpreter.class)) { DefaultDriverHandler handler = new DefaultDriverHandler(new DefaultDriverData(driver, deviceId)); ExtensionTreatmentInterpreter interpreter = handler.behaviour(ExtensionTreatmentInterpreter.class); return interpreter.mapInstruction(factory(), i); } return null; }
private DriverHandler getDriver(Dpid dpid) { DeviceId deviceId = DeviceId.deviceId(Dpid.uri(dpid)); Driver driver = driverService.getDriver(deviceId); DriverHandler handler = new DefaultDriverHandler(new DefaultDriverData(driver, deviceId)); return handler; } }
private OFOxm buildExtensionOxm(ExtensionSelector extension) { if (!driverService.isPresent()) { log.error("No driver service present"); return null; } Driver driver = driverService.get().getDriver(deviceId); if (driver.hasBehaviour(ExtensionSelectorInterpreter.class)) { DefaultDriverHandler handler = new DefaultDriverHandler(new DefaultDriverData(driver, deviceId)); ExtensionSelectorInterpreter interpreter = handler.behaviour(ExtensionSelectorInterpreter.class); return interpreter.mapSelector(factory(), extension); } return null; }