blob: 55122f1b999d672ffdf92c449651e618a5c2928d [file] [log] [blame]
maojianwei42e23442016-02-15 10:40:48 +08001/*
2 * Copyright 2015-present 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.fnl.intf;
17
18import java.util.Set;
19
20/**
21 * Provide algorithms or methods to diagnose network.
22 *
23 * Strategy Pattern.
24 */
25public interface NetworkDiagnostic {
26
27 /**
28 * Checks for and returns all corresponding anomalies.
29 * An empty set is returned if there are no anomalies.
30 *
31 * @return the set of all corresponding anomalies; may be empty
32 */
33 Set<NetworkAnomaly> findAnomalies();
34
35 /**
36 * Returns the type of diagnostic.
37 *
38 * @return the type of diagnostic
39 */
40 Type type();
41
42 /**
43 * Represents diagnostic types.
44 */
45 enum Type {
46
47 /**
48 * Packets round among several devices with several forwarding entries.
49 *
50 * Routing loops.
51 */
52 LOOP
53 }
54}