blob: af919b12bfa862a38a144b3015ff825bdcd3573c [file] [log] [blame]
YuanyouZhang6683a072015-07-22 17:38:31 +08001/*
Brian O'Connora09fe5b2017-08-03 21:12:30 -07002 * Copyright 2015-present Open Networking Foundation
YuanyouZhang6683a072015-07-22 17:38:31 +08003 *
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.ovsdb.provider.tunnel;
17
YuanyouZhang6683a072015-07-22 17:38:31 +080018import org.onosproject.incubator.net.tunnel.Tunnel;
19import org.onosproject.incubator.net.tunnel.TunnelDescription;
20import org.onosproject.incubator.net.tunnel.TunnelId;
21import org.onosproject.incubator.net.tunnel.TunnelProvider;
22import org.onosproject.incubator.net.tunnel.TunnelProviderRegistry;
23import org.onosproject.incubator.net.tunnel.TunnelProviderService;
YuanyouZhang6683a072015-07-22 17:38:31 +080024import org.onosproject.net.ElementId;
25import org.onosproject.net.Path;
26import org.onosproject.net.provider.AbstractProvider;
27import org.onosproject.net.provider.ProviderId;
Ray Milkeyd84f89b2018-08-17 14:54:17 -070028import org.osgi.service.component.annotations.Activate;
29import org.osgi.service.component.annotations.Component;
30import org.osgi.service.component.annotations.Deactivate;
31import org.osgi.service.component.annotations.Reference;
32import org.osgi.service.component.annotations.ReferenceCardinality;
YuanyouZhang6683a072015-07-22 17:38:31 +080033import org.slf4j.Logger;
34
Ray Milkeyd84f89b2018-08-17 14:54:17 -070035import static org.slf4j.LoggerFactory.getLogger;
36
YuanyouZhang6683a072015-07-22 17:38:31 +080037/**
38 * Provider which uses when tunnel added/removed.
39 */
Ray Milkeyd84f89b2018-08-17 14:54:17 -070040@Component(immediate = true, service = TunnelProvider.class)
YuanyouZhang6683a072015-07-22 17:38:31 +080041public class OvsdbTunnelProvider extends AbstractProvider
42 implements TunnelProvider {
43 private final Logger log = getLogger(getClass());
44
Ray Milkeyd84f89b2018-08-17 14:54:17 -070045 @Reference(cardinality = ReferenceCardinality.MANDATORY)
YuanyouZhang6683a072015-07-22 17:38:31 +080046 protected TunnelProviderRegistry providerRegistry;
47
YuanyouZhang6683a072015-07-22 17:38:31 +080048 private TunnelProviderService providerService;
49
50 @Activate
51 public void activate() {
52 providerService = providerRegistry.register(this);
53 log.info("Started");
54 }
55
56 @Deactivate
57 public void deactivate() {
58 providerRegistry.unregister(this);
59 providerService = null;
60 log.info("Stopped");
61 }
62
63 public OvsdbTunnelProvider() {
64 super(new ProviderId("ovsdb", "org.onosproject.ovsdb.provider.tunnel"));
65 }
66
67 @Override
68 public void setupTunnel(Tunnel tunnel, Path path) {
69 // TODO: This will be implemented later.
70 }
71
72 @Override
73 public void setupTunnel(ElementId srcElement, Tunnel tunnel, Path path) {
74 // TODO: This will be implemented later.
75 }
76
77 @Override
78 public void releaseTunnel(Tunnel tunnel) {
79 // TODO: This will be implemented later.
80 }
81
82 @Override
83 public void releaseTunnel(ElementId srcElement, Tunnel tunnel) {
84 // TODO: This will be implemented later.
85 }
86
87 @Override
88 public void updateTunnel(Tunnel tunnel, Path path) {
89 // TODO: This will be implemented later.
90 }
91
92 @Override
93 public void updateTunnel(ElementId srcElement, Tunnel tunnel, Path path) {
94 // TODO: This will be implemented later.
95 }
96
97 @Override
98 public TunnelId tunnelAdded(TunnelDescription tunnel) {
99 return providerService.tunnelAdded(tunnel);
100 }
101
102 @Override
103 public void tunnelRemoved(TunnelDescription tunnel) {
104 providerService.tunnelRemoved(tunnel);
105 }
106
107 @Override
108 public void tunnelUpdated(TunnelDescription tunnel) {
109 providerService.tunnelUpdated(tunnel);
110 }
111
112 @Override
113 public Tunnel tunnelQueryById(TunnelId tunnelId) {
114 // TODO: This will be implemented later.
115 return null;
116 }
117}