blob: a56c48d301fc068b2d964175d4ddef5f17285f2c [file] [log] [blame]
Jonathan Hart41349e92015-02-09 14:14:02 -08001/*
Brian O'Connora09fe5b2017-08-03 21:12:30 -07002 * Copyright 2017-present Open Networking Foundation
Jonathan Hart41349e92015-02-09 14:14:02 -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 */
Jonathan Hart3930f632015-10-19 12:12:51 -070016
17package org.onosproject.routing.fpm;
18
William Davies5bae5052019-10-19 01:25:01 -070019import java.util.Collection;
Jonathan Hart6b045582016-02-03 10:00:08 -080020import java.util.Map;
Jonathan Hart41349e92015-02-09 14:14:02 -080021
William Davies5bae5052019-10-19 01:25:01 -070022
Jonathan Hart41349e92015-02-09 14:14:02 -080023/**
Jonathan Hartb10f1e72017-05-02 16:36:26 -070024 * Provides information about the FPM route receiver module.
Jonathan Hart41349e92015-02-09 14:14:02 -080025 */
Jonathan Hart6b045582016-02-03 10:00:08 -080026public interface FpmInfoService {
Jonathan Hart41349e92015-02-09 14:14:02 -080027
Jonathan Hartb10f1e72017-05-02 16:36:26 -070028 /**
29 * Returns the FPM peers that are currently connected.
30 *
Jonathan Hartf4b2ca12017-05-17 16:10:16 -070031 * @return a map of FPM peer with related information
Jonathan Hartb10f1e72017-05-02 16:36:26 -070032 */
Jonathan Hartf4b2ca12017-05-17 16:10:16 -070033 Map<FpmPeer, FpmPeerInfo> peers();
Kalhee Kimba366062017-11-07 16:32:09 +000034
35 /**
36 * Returns true if pushing routes to Quagga is emabled.
37 *
38 * @return true or false
39 */
40 boolean isPdPushEnabled();
Charles Chan035ed1f2018-01-30 16:00:32 -080041
42 /**
43 * Pushes all local FPM routes to route store.
44 */
45 void pushFpmRoutes();
William Davies5bae5052019-10-19 01:25:01 -070046
47 /**
48 * Updates the acceptRoute flag to either accept or discard routes for input peers address.
49 *
50 * @param peers peers for which flag is updated
51 */
52 void updateAcceptRouteFlag(Collection<FpmPeerAcceptRoutes> peers);
53
Jonathan Hart41349e92015-02-09 14:14:02 -080054}