blob: b110a0cc47cdfbec89b403dd1b13e2e3727b08a6 [file] [log] [blame]
jccd8697232015-05-05 14:42:23 +08001/*
2 * Copyright 2015 Open Networking Laboratory
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16package org.onosproject.provider.tunnel;
17
18import static org.slf4j.LoggerFactory.getLogger;
19
20import org.apache.felix.scr.annotations.Activate;
21import org.apache.felix.scr.annotations.Component;
22import org.apache.felix.scr.annotations.Deactivate;
23import org.apache.felix.scr.annotations.Reference;
24import org.apache.felix.scr.annotations.ReferenceCardinality;
25import org.apache.felix.scr.annotations.Service;
26import org.onosproject.cfg.ComponentConfigService;
27import org.onosproject.net.ElementId;
28import org.onosproject.net.Path;
29import org.onosproject.net.provider.AbstractProvider;
30import org.onosproject.net.provider.ProviderId;
Thomas Vachuskabf916ea2015-05-20 18:24:34 -070031import org.onosproject.incubator.net.tunnel.Tunnel;
32import org.onosproject.incubator.net.tunnel.TunnelDescription;
33import org.onosproject.incubator.net.tunnel.TunnelId;
34import org.onosproject.incubator.net.tunnel.TunnelProvider;
35import org.onosproject.incubator.net.tunnel.TunnelProviderRegistry;
36import org.onosproject.incubator.net.tunnel.TunnelProviderService;
jccd8697232015-05-05 14:42:23 +080037import org.osgi.service.component.ComponentContext;
38import org.slf4j.Logger;
39
40/**
41 * Provider of a fake network environment, i.e. devices, links, hosts, etc. To
42 * be used for benchmarking only.
43 */
44@Component(immediate = true)
45@Service
46public class DefaultTunnelProvider extends AbstractProvider
47 implements TunnelProvider {
48
49 private static final Logger log = getLogger(DefaultTunnelProvider.class);
50
51 static final String PROVIDER_ID = "org.onosproject.provider.tunnel.default";
52
53 @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
54 protected ComponentConfigService cfgService;
55
56 @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
57 protected TunnelProviderRegistry tunnelProviderRegistry;
58
59 TunnelProviderService service;
60
61 /**
62 * Creates a Tunnel provider.
63 */
64 public DefaultTunnelProvider() {
65 super(new ProviderId("default", PROVIDER_ID));
66 }
67
68 @Activate
69 public void activate(ComponentContext context) {
70 cfgService.registerProperties(getClass());
71 service = tunnelProviderRegistry.register(this);
72 log.info("Started");
73 }
74
75 @Deactivate
76 public void deactivate(ComponentContext context) {
77 cfgService.unregisterProperties(getClass(), false);
78 tunnelProviderRegistry.unregister(this);
79 log.info("Stopped");
80 }
81
82 @Override
83 public void setupTunnel(Tunnel tunnel, Path path) {
84 // TODO Auto-generated method stub
85
86 }
87
88 @Override
89 public void setupTunnel(ElementId srcElement, Tunnel tunnel, Path path) {
90 // TODO Auto-generated method stub
91
92 }
93
94 @Override
95 public void releaseTunnel(Tunnel tunnel) {
96 // TODO Auto-generated method stub
97
98 }
99
100 @Override
101 public void releaseTunnel(ElementId srcElement, Tunnel tunnel) {
102 // TODO Auto-generated method stub
103
104 }
105
106 @Override
107 public void updateTunnel(Tunnel tunnel, Path path) {
108 // TODO Auto-generated method stub
109
110 }
111
112 @Override
113 public void updateTunnel(ElementId srcElement, Tunnel tunnel, Path path) {
114 // TODO Auto-generated method stub
115
116 }
117
118 @Override
119 public TunnelId tunnelAdded(TunnelDescription tunnel) {
120 return service.tunnelAdded(tunnel);
121 }
122
123 @Override
124 public void tunnelRemoved(TunnelDescription tunnel) {
125 service.tunnelRemoved(tunnel);
126 }
127
128 @Override
129 public void tunnelUpdated(TunnelDescription tunnel) {
130 service.tunnelUpdated(tunnel);
131 }
132
133}