Provide Add Path support for all AFI/SAFI
[bgpcep.git] / bgp / rib-spi / src / main / java / org / opendaylight / protocol / bgp / rib / spi / state / BGPAfiSafiState.java
1 /*
2  * Copyright (c) 2016 Cisco Systems, Inc. and others.  All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8
9 package org.opendaylight.protocol.bgp.rib.spi.state;
10
11 import java.util.Set;
12 import javax.annotation.Nonnull;
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev180329.rib.TablesKey;
14
15 /**
16  * BGP Operational Afi SafiS State.
17  */
18 public interface BGPAfiSafiState extends BGPGracelfulRestartState {
19     /**
20      * is AfiSafi Supported.
21      *
22      * @param tablesKey tables Key
23      * @return true if Afi Safi was advertized to and by the neighbor
24      */
25     boolean isAfiSafiSupported(@Nonnull TablesKey tablesKey);
26
27     /**
28      * Prefixes installed per specific tablekey.
29      *
30      * @param tablesKey tables Key
31      * @return count
32      */
33     long getPrefixesInstalledCount(@Nonnull TablesKey tablesKey);
34
35     /**
36      * Prefixed sent to the Peer count.
37      *
38      * @param tablesKey tablesKey Type
39      * @return Prefixes sent count
40      */
41     long getPrefixesSentCount(@Nonnull TablesKey tablesKey);
42
43     /**
44      * Prefixed received from the peer count.
45      *
46      * @param tablesKey tablesKey Type
47      * @return Prefixed received count
48      */
49     long getPrefixesReceivedCount(@Nonnull TablesKey tablesKey);
50
51     /**
52      * List of TablesKey - Afi Safi Advertized to the neighbor.
53      *
54      * @return TableKeys
55      */
56     @Nonnull
57     Set<TablesKey> getAfiSafisAdvertized();
58
59     /**
60      * List of TablesKey - Afi Safi Advertized by neighbor.
61      *
62      * @return TableKeys
63      */
64     @Nonnull
65     Set<TablesKey> getAfiSafisReceived();
66 }