diff options
Diffstat (limited to 'framework/src/onos/providers/netcfghost/src/main/java/org/onosproject')
2 files changed, 0 insertions, 216 deletions
diff --git a/framework/src/onos/providers/netcfghost/src/main/java/org/onosproject/provider/netcfghost/NetworkConfigHostProvider.java b/framework/src/onos/providers/netcfghost/src/main/java/org/onosproject/provider/netcfghost/NetworkConfigHostProvider.java deleted file mode 100644 index 767cfb7f..00000000 --- a/framework/src/onos/providers/netcfghost/src/main/java/org/onosproject/provider/netcfghost/NetworkConfigHostProvider.java +++ /dev/null @@ -1,196 +0,0 @@ -/* - * Copyright 2014-2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.onosproject.provider.netcfghost; - -import org.apache.felix.scr.annotations.Activate; -import org.apache.felix.scr.annotations.Component; -import org.apache.felix.scr.annotations.Deactivate; -import org.apache.felix.scr.annotations.Reference; -import org.apache.felix.scr.annotations.ReferenceCardinality; -import org.onlab.packet.IpAddress; -import org.onlab.packet.MacAddress; -import org.onlab.packet.VlanId; -import org.onosproject.core.ApplicationId; -import org.onosproject.core.CoreService; -import org.onosproject.net.ConnectPoint; -import org.onosproject.net.Host; -import org.onosproject.net.HostId; -import org.onosproject.net.HostLocation; -import org.onosproject.net.config.NetworkConfigEvent; -import org.onosproject.net.config.NetworkConfigListener; -import org.onosproject.net.config.NetworkConfigRegistry; -import org.onosproject.net.config.basics.BasicHostConfig; -import org.onosproject.net.host.DefaultHostDescription; -import org.onosproject.net.host.HostDescription; -import org.onosproject.net.host.HostProvider; -import org.onosproject.net.host.HostProviderRegistry; -import org.onosproject.net.host.HostProviderService; -import org.onosproject.net.provider.AbstractProvider; -import org.onosproject.net.provider.ProviderId; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import java.util.Set; - -/** - * Host provider that uses network config service to discover hosts. - */ -@Component(immediate = true) -public class NetworkConfigHostProvider extends AbstractProvider implements HostProvider { - @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) - protected CoreService coreService; - - @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) - protected HostProviderRegistry providerRegistry; - - @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) - protected NetworkConfigRegistry networkConfigRegistry; - - private static final String APP_NAME = "org.onosproject.provider.netcfghost"; - private ApplicationId appId; - protected HostProviderService providerService; - - private final Logger log = LoggerFactory.getLogger(getClass()); - private final InternalNetworkConfigListener networkConfigListener = - new InternalNetworkConfigListener(); - - /** - * Creates an network config host location provider. - */ - public NetworkConfigHostProvider() { - super(new ProviderId("host", APP_NAME)); - } - - @Activate - protected void activate() { - appId = coreService.registerApplication(APP_NAME); - providerService = providerRegistry.register(this); - networkConfigRegistry.addListener(networkConfigListener); - readInitialConfig(); - log.info("Started"); - } - - @Deactivate - protected void deactivate() { - networkConfigRegistry.removeListener(networkConfigListener); - providerRegistry.unregister(this); - providerService = null; - log.info("Stopped"); - } - - @Override - public void triggerProbe(Host host) { - /* - * Note: In CORD deployment, we assume that all hosts are configured. - * Therefore no probe is required. - */ - } - - /** - * Adds host information. - * IP information will be appended if host exists. - * - * @param mac MAC address of the host - * @param vlan VLAN ID of the host - * @param hloc Location of the host - * @param ips Set of IP addresses of the host - */ - protected void addHost(MacAddress mac, VlanId vlan, HostLocation hloc, Set<IpAddress> ips) { - HostId hid = HostId.hostId(mac, vlan); - HostDescription desc = new DefaultHostDescription(mac, vlan, hloc, ips); - providerService.hostDetected(hid, desc, false); - } - - /** - * Updates host information. - * IP information will be replaced if host exists. - * - * @param mac MAC address of the host - * @param vlan VLAN ID of the host - * @param hloc Location of the host - * @param ips Set of IP addresses of the host - */ - protected void updateHost(MacAddress mac, VlanId vlan, HostLocation hloc, Set<IpAddress> ips) { - HostId hid = HostId.hostId(mac, vlan); - HostDescription desc = new DefaultHostDescription(mac, vlan, hloc, ips); - providerService.hostDetected(hid, desc, true); - } - - /** - * Removes host information. - * - * @param mac MAC address of the host - * @param vlan VLAN ID of the host - */ - protected void removeHost(MacAddress mac, VlanId vlan) { - HostId hid = HostId.hostId(mac, vlan); - providerService.hostVanished(hid); - } - - private void readInitialConfig() { - networkConfigRegistry.getSubjects(HostId.class).forEach(hostId -> { - MacAddress mac = hostId.mac(); - VlanId vlan = hostId.vlanId(); - BasicHostConfig hostConfig = - networkConfigRegistry.getConfig(hostId, BasicHostConfig.class); - Set<IpAddress> ipAddresses = hostConfig.ipAddresses(); - ConnectPoint location = hostConfig.location(); - HostLocation hloc = new HostLocation(location, System.currentTimeMillis()); - addHost(mac, vlan, hloc, ipAddresses); - }); - } - - private class InternalNetworkConfigListener implements NetworkConfigListener { - @Override - public void event(NetworkConfigEvent event) { - // Do not process non-host, register and unregister events - if (!event.configClass().equals(BasicHostConfig.class) || - event.type() == NetworkConfigEvent.Type.CONFIG_REGISTERED || - event.type() == NetworkConfigEvent.Type.CONFIG_UNREGISTERED) { - return; - } - - HostId hostId = (HostId) event.subject(); - MacAddress mac = hostId.mac(); - VlanId vlan = hostId.vlanId(); - BasicHostConfig hostConfig = - networkConfigRegistry.getConfig(hostId, BasicHostConfig.class); - Set<IpAddress> ipAddresses = null; - HostLocation hloc = null; - - // Note: There will be no config presented in the CONFIG_REMOVE case - if (hostConfig != null) { - ipAddresses = hostConfig.ipAddresses(); - ConnectPoint location = hostConfig.location(); - hloc = new HostLocation(location, System.currentTimeMillis()); - } - - switch (event.type()) { - case CONFIG_ADDED: - addHost(mac, vlan, hloc, ipAddresses); - break; - case CONFIG_UPDATED: - updateHost(mac, vlan, hloc, ipAddresses); - break; - case CONFIG_REMOVED: - removeHost(mac, vlan); - break; - default: - break; - } - } - } -} diff --git a/framework/src/onos/providers/netcfghost/src/main/java/org/onosproject/provider/netcfghost/package-info.java b/framework/src/onos/providers/netcfghost/src/main/java/org/onosproject/provider/netcfghost/package-info.java deleted file mode 100644 index a56b9a80..00000000 --- a/framework/src/onos/providers/netcfghost/src/main/java/org/onosproject/provider/netcfghost/package-info.java +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright 2014-2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * Host provider that uses network config service to discover hosts. - */ -package org.onosproject.provider.netcfghost; |