blob: efa9c58db32a194a077589fb95ff7c3c1ca87f6e [file] [log] [blame]
wei wei89ddc322015-03-22 16:29:04 -05001/*
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.net.tunnel;
17
jcc4a20a5f2015-04-30 15:43:39 +080018import org.onosproject.core.DefaultGroupId;
19import org.onosproject.net.Annotated;
wei wei89ddc322015-03-22 16:29:04 -050020import org.onosproject.net.Description;
jcc4a20a5f2015-04-30 15:43:39 +080021import org.onosproject.net.provider.ProviderId;
22import org.onosproject.net.tunnel.Tunnel.Type;
wei wei89ddc322015-03-22 16:29:04 -050023
24/**
jcc4a20a5f2015-04-30 15:43:39 +080025 * Describes a tunnel.
wei wei89ddc322015-03-22 16:29:04 -050026 */
jcc4a20a5f2015-04-30 15:43:39 +080027public interface TunnelDescription extends Description, Annotated {
wei wei89ddc322015-03-22 16:29:04 -050028
29 /**
30 * Returns the tunnel id.
31 *
32 * @return tunnelId
33 */
34 TunnelId id();
35
36 /**
37 * Returns the connection point source.
38 *
39 * @return tunnel source ConnectionPoint
40 */
jcc4a20a5f2015-04-30 15:43:39 +080041 TunnelEndPoint src();
wei wei89ddc322015-03-22 16:29:04 -050042
43 /**
44 * Returns the connection point destination.
45 *
46 * @return tunnel destination
47 */
jcc4a20a5f2015-04-30 15:43:39 +080048 TunnelEndPoint dst();
wei wei89ddc322015-03-22 16:29:04 -050049
50 /**
51 * Returns the tunnel type.
52 *
53 * @return tunnel type
54 */
jcc4a20a5f2015-04-30 15:43:39 +080055 Type type();
wei wei89ddc322015-03-22 16:29:04 -050056
57 /**
jcc4a20a5f2015-04-30 15:43:39 +080058 * Returns group flow table id which a tunnel match up.
wei wei89ddc322015-03-22 16:29:04 -050059 *
jcc4a20a5f2015-04-30 15:43:39 +080060 * @return OpenFlowGroupId
wei wei89ddc322015-03-22 16:29:04 -050061 */
jcc4a20a5f2015-04-30 15:43:39 +080062 DefaultGroupId groupId();
wei wei89ddc322015-03-22 16:29:04 -050063
jcc4a20a5f2015-04-30 15:43:39 +080064 /**
65 * Returns tunnel producer name.
66 *
67 * @return producer name
68 */
69 ProviderId producerName();
70
71 /**
72 * Return the name of a tunnel.
73 *
74 * @return Tunnel Name
75 */
76 TunnelName tunnelName();
wei wei89ddc322015-03-22 16:29:04 -050077}