blob: 8c30c8b2a4f55b8299685b99d1f503c76bb3aaa1 [file] [log] [blame]
tome06f8552014-08-26 16:58:42 -07001package org.onlab.onos.provider.of.host.impl;
2
3import org.apache.felix.scr.annotations.Activate;
4import org.apache.felix.scr.annotations.Component;
5import org.apache.felix.scr.annotations.Deactivate;
6import org.apache.felix.scr.annotations.Reference;
7import org.apache.felix.scr.annotations.ReferenceCardinality;
8import org.onlab.onos.net.Host;
9import org.onlab.onos.net.host.HostProvider;
10import org.onlab.onos.net.host.HostProviderBroker;
11import org.onlab.onos.net.host.HostProviderService;
12import org.onlab.onos.net.provider.AbstractProvider;
13import org.onlab.onos.net.provider.ProviderId;
14import org.slf4j.Logger;
15import org.slf4j.LoggerFactory;
16
17/**
18 * Device provider which uses an OpenFlow controller to detect network
19 * end-station hosts.
20 */
21@Component
22public class OpenFlowHostProvider extends AbstractProvider implements HostProvider {
23
24 private final Logger log = LoggerFactory.getLogger(OpenFlowHostProvider.class);
25
26 @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
27 protected HostProviderBroker providerBroker;
28
29 private HostProviderService providerService;
30
31// @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
32// protected OpenFlowController controller;
33
34 /**
35 * Creates an OpenFlow host provider.
36 */
37 public OpenFlowHostProvider() {
38 super(new ProviderId("org.onlab.onos.provider.of.host"));
39 }
40
41 @Activate
42 public void activate() {
43 providerService = providerBroker.register(this);
44 log.info("Started");
45 }
46
47 @Deactivate
48 public void deactivate() {
49 providerBroker.unregister(this);
50 providerService = null;
51 log.info("Stopped");
52 }
53
54 @Override
55 public void triggerProbe(Host host) {
56 log.info("Triggering probe on device {}", host);
57 }
58}