aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/onos/bgp/api/src/main/java/org/onosproject/bgp/controller/BgpPeerCfg.java
blob: 2fb970fc3141eb1962964e3f9fb7dbe34b536259 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
/*
 * Copyright 2015 Open Networking Laboratory
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.onosproject.bgp.controller;

/**
 * BGP Peer configuration information.
 */
public interface BgpPeerCfg {

    enum State {

        /**
         * Signifies that peer connection is idle.
         */
        IDLE,

        /**
         * Signifies that connection is initiated.
         */
        CONNECT,

        /**
         * Signifies that state is active and connection can be established.
         */
        ACTIVE,

        /**
         * Signifies that open is sent and anticipating reply.
         */
        OPENSENT,

        /**
         * Signifies that peer sent the open message as reply.
         */
        OPENCONFIRM,

        /**
         * Signifies that all the negotiation is successful and ready to exchange other messages.
         */
        ESTABLISHED,

        /**
         * Signifies that invalid state.
         */
        INVALID
    }

    /**
     * Returns the connection State information of the peer.
     *
     * @return
     *          enum state is returned
     */
    State getState();

    /**
     * Set the connection state information of the peer.
     *
     * @param state
     *          enum state
     */
    void setState(State state);

    /**
     * Returns the connection is initiated from us or not.
     *
     * @return
     *          true if the connection is initiated by this peer, false if it has been received.
     */
    boolean getSelfInnitConnection();

    /**
     * Set the connection is initiated from us or not.
     *
     * @param selfInit
     *          true if the connection is initiated by this peer, false if it has been received.
     */
    void setSelfInnitConnection(boolean selfInit);

    /**
     * Returns the AS number to which this peer belongs.
     *
     * @return
     *          AS number
     */
    int getAsNumber();

    /**
     * Set the AS number to which this peer belongs.
     *
     * @param asNumber
     *          AS number
     */
    void setAsNumber(int asNumber);

    /**
     * Get the keep alive timer value configured.
     *
     * @return
     *          keep alive timer value in seconds
     */
    short getHoldtime();

    /**
     * Set the keep alive timer value.
     *
     * @param holdTime
     *          keep alive timer value in seconds
     */
    void setHoldtime(short holdTime);

    /**
     * Return the connection type eBGP or iBGP.
     *
     * @return
     *          true if iBGP, false if it is eBGP
     */
    boolean getIsIBgp();

    /**
     * Set the connection type eBGP or iBGP.
     *
     * @param isIBgp
     *          true if iBGP, false if it is eBGP
     */
    void setIsIBgp(boolean isIBgp);

    /**
     * Return the peer router IP address.
     *
     * @return
     *          IP address in string format
     */
    String getPeerRouterId();

    /**
     * Set the peer router IP address.
     *
     * @param peerId
     *          IP address in string format
     */
    void setPeerRouterId(String peerId);

    /**
     * Set the peer router IP address and AS number.
     *
     * @param peerId
     *          IP address in string format
     * @param asNumber
     *          AS number
     */
    void setPeerRouterId(String peerId, int asNumber);

    /**
     * Set the peer connect instance.
     *
     * @param connectpeer connect peer instance
     */
    void setConnectPeer(BgpConnectPeer connectpeer);

    /**
     * Get the peer connect instance.
     *
     * @return peer connect instance
     */
    BgpConnectPeer connectPeer();
}