blob: 8abcaacafa5c432d3e0f5fcfd8a30182aa5f1041 [file] [log] [blame]
tome06f8552014-08-26 16:58:42 -07001package org.onlab.onos.provider.of.link.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.link.LinkProvider;
9import org.onlab.onos.net.link.LinkProviderBroker;
10import org.onlab.onos.net.link.LinkProviderService;
11import org.onlab.onos.net.provider.AbstractProvider;
12import org.onlab.onos.net.provider.ProviderId;
13import org.slf4j.Logger;
14import org.slf4j.LoggerFactory;
15
16/**
17 * Device provider which uses an OpenFlow controller to detect network
18 * infrastructure links.
19 */
20@Component
21public class OpenFlowLinkProvider extends AbstractProvider implements LinkProvider {
22
23 private final Logger log = LoggerFactory.getLogger(OpenFlowLinkProvider.class);
24
25 @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
26 protected LinkProviderBroker providerBroker;
27
28 private LinkProviderService providerService;
29
30// @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
31// protected OpenFlowController controller;
32
33 /**
34 * Creates an OpenFlow link provider.
35 */
36 public OpenFlowLinkProvider() {
37 super(new ProviderId("org.onlab.onos.provider.of.link"));
38 }
39
40 @Activate
41 public void activate() {
42 providerService = providerBroker.register(this);
43 log.info("Started");
44 }
45
46 @Deactivate
47 public void deactivate() {
48 providerBroker.unregister(this);
49 providerService = null;
50 log.info("Stopped");
51 }
52
53}