0cd1924273dcbf99be65597513d9e06387a96c19
[onosfw.git] /
1 /*
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  */
16 package org.onosproject.provider.lldp.impl;
17
18 import org.onosproject.mastership.MastershipService;
19 import org.onosproject.net.LinkKey;
20 import org.onosproject.net.link.LinkProviderService;
21 import org.onosproject.net.packet.PacketService;
22
23 /**
24  * Shared context for use by link discovery.
25  */
26 interface DiscoveryContext {
27
28     /**
29      * Returns the shared mastership service reference.
30      *
31      * @return mastership service
32      */
33     MastershipService mastershipService();
34
35     /**
36      * Returns the shared link provider service reference.
37      *
38      * @return link provider service
39      */
40     LinkProviderService providerService();
41
42     /**
43      * Returns the shared packet service reference.
44      *
45      * @return packet service
46      */
47     PacketService packetService();
48
49     /**
50      * Returns the probe rate in millis.
51      *
52      * @return probe rate
53      */
54     long probeRate();
55
56     /**
57      * Indicates whether to emit BDDP.
58      *
59      * @return true to emit BDDP
60      */
61     boolean useBDDP();
62
63     /**
64      * Touches the link identified by the given key to indicate that it's active.
65      *
66      * @param key link key
67      */
68     void touchLink(LinkKey key);
69 }