mirror of
https://github.com/osrg/gobgp.git
synced 2024-05-11 05:55:10 +00:00
$ gobgp neighbor <remote addr> accepted $ gobgp neighbor <remote addr> rejected Signed-off-by: ISHIDA Wataru <[email protected]>
298 lines
6.9 KiB
Protocol Buffer
298 lines
6.9 KiB
Protocol Buffer
// Copyright (C) 2015 Nippon Telegraph and Telephone Corporation.
|
|
//
|
|
// 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.
|
|
|
|
syntax = "proto3";
|
|
|
|
package gobgpapi;
|
|
|
|
// Interface exported by the server.
|
|
|
|
service GobgpApi {
|
|
rpc GetNeighbors(Arguments) returns (stream Peer) {}
|
|
rpc GetNeighbor(Arguments) returns (Peer) {}
|
|
rpc GetRib(Arguments) returns (stream Destination) {}
|
|
rpc Reset(Arguments) returns (Error) {}
|
|
rpc SoftReset(Arguments) returns (Error) {}
|
|
rpc SoftResetIn(Arguments) returns (Error) {}
|
|
rpc SoftResetOut(Arguments) returns (Error) {}
|
|
rpc Shutdown(Arguments) returns (Error) {}
|
|
rpc Enable(Arguments) returns (Error) {}
|
|
rpc Disable(Arguments) returns (Error) {}
|
|
rpc ModPath(stream ModPathArguments) returns (Error) {}
|
|
rpc GetNeighborPolicy(Arguments) returns (ApplyPolicy) {}
|
|
rpc ModNeighborPolicy(stream PolicyArguments) returns (stream Error) {}
|
|
rpc GetPolicyRoutePolicies(PolicyArguments) returns (stream PolicyDefinition) {}
|
|
rpc GetPolicyRoutePolicy(PolicyArguments) returns (PolicyDefinition) {}
|
|
rpc ModPolicyRoutePolicy(stream PolicyArguments) returns (stream Error) {}
|
|
rpc MonitorBestChanged(Arguments) returns (stream Destination) {}
|
|
rpc MonitorPeerState(Arguments) returns (stream Peer) {}
|
|
rpc GetMrt(MrtArguments) returns (stream MrtMessage) {}
|
|
rpc GetRPKI(Arguments) returns (stream RPKI) {}
|
|
rpc GetROA(Arguments) returns (stream ROA) {}
|
|
rpc GetVrfs(Arguments) returns (stream Vrf) {}
|
|
rpc ModVrf(ModVrfArguments) returns (Error) {}
|
|
}
|
|
|
|
message Error {
|
|
enum ErrorCode {
|
|
SUCCESS = 0;
|
|
FAIL = 1;
|
|
}
|
|
ErrorCode code = 1;
|
|
string msg = 2;
|
|
}
|
|
|
|
message Arguments {
|
|
Resource resource = 1;
|
|
uint32 rf = 2;
|
|
string name = 3;
|
|
}
|
|
|
|
message ModPathArguments {
|
|
Resource resource = 1;
|
|
string name = 2;
|
|
repeated Path paths = 3;
|
|
}
|
|
|
|
message PolicyArguments {
|
|
Resource resource = 1;
|
|
Operation operation = 2;
|
|
string neighbor_address = 3;
|
|
string name = 4;
|
|
PolicyDefinition policy_definition = 6;
|
|
ApplyPolicy apply_policy = 7;
|
|
}
|
|
|
|
message MrtArguments {
|
|
Resource resource = 1;
|
|
uint32 rf = 2;
|
|
uint64 interval = 3;
|
|
string neighbor_address = 4;
|
|
}
|
|
|
|
message ModVrfArguments {
|
|
Operation operation = 1;
|
|
Vrf vrf = 2;
|
|
}
|
|
|
|
enum Resource {
|
|
GLOBAL = 0;
|
|
LOCAL = 1;
|
|
ADJ_IN = 2;
|
|
ADJ_OUT = 3;
|
|
POLICY_PREFIX = 4;
|
|
POLICY_NEIGHBOR = 5;
|
|
POLICY_ASPATH = 6;
|
|
POLICY_COMMUNITY = 7;
|
|
POLICY_ROUTEPOLICY = 8;
|
|
POLICY_EXTCOMMUNITY = 9;
|
|
VRF = 10;
|
|
}
|
|
|
|
enum Operation {
|
|
ADD = 0;
|
|
DEL = 1;
|
|
DEL_ALL = 2;
|
|
}
|
|
|
|
message Path {
|
|
bytes nlri = 1;
|
|
repeated bytes pattrs = 2;
|
|
int64 age = 3;
|
|
bool best = 4;
|
|
bool is_withdraw = 5;
|
|
int32 validation = 6;
|
|
bool no_implicit_withdraw = 7;
|
|
uint32 rf = 8;
|
|
uint32 source_asn = 9;
|
|
string source_id = 10;
|
|
bool filtered = 11;
|
|
}
|
|
|
|
message Destination {
|
|
string prefix = 1;
|
|
repeated Path paths = 2;
|
|
}
|
|
|
|
message PeerConf {
|
|
string remote_ip = 1;
|
|
string id = 2;
|
|
uint32 remote_as = 3;
|
|
repeated bytes remote_cap = 6;
|
|
repeated bytes local_cap = 7;
|
|
uint32 holdtime = 8;
|
|
uint32 keepalive_interval = 9;
|
|
}
|
|
|
|
message PeerInfo {
|
|
string bgp_state = 1;
|
|
string admin_state = 2;
|
|
uint32 fsm_established_transitions = 3;
|
|
uint64 total_message_out = 4;
|
|
uint64 total_message_in = 5;
|
|
uint64 update_message_out = 6;
|
|
uint64 update_message_in = 7;
|
|
uint64 keep_alive_message_out = 8;
|
|
uint64 keep_alive_message_in = 9;
|
|
uint64 open_message_out = 10;
|
|
uint64 open_message_in = 11;
|
|
uint64 notification_out = 12;
|
|
uint64 notification_in = 13;
|
|
uint64 refresh_message_out = 14;
|
|
uint64 refresh_message_in = 15;
|
|
uint64 discarded_out = 16;
|
|
uint64 discarded_in = 17;
|
|
int64 uptime = 18;
|
|
int64 downtime = 19;
|
|
string last_error = 20;
|
|
uint32 received = 21;
|
|
uint32 accepted = 22;
|
|
uint32 advertized = 23;
|
|
uint32 out_q = 24;
|
|
uint32 flops = 25;
|
|
uint32 negotiated_holdtime = 26;
|
|
uint32 keepalive_interval = 27;
|
|
}
|
|
|
|
message Peer {
|
|
PeerConf conf = 1;
|
|
PeerInfo info = 2;
|
|
}
|
|
|
|
message Prefix {
|
|
string ip_prefix = 1;
|
|
string mask_length_range = 2;
|
|
}
|
|
|
|
message PrefixSet {
|
|
string prefix_set_name = 1;
|
|
repeated Prefix prefix_list = 2;
|
|
string match_set_options = 3;
|
|
}
|
|
|
|
message Neighbor {
|
|
string address = 1;
|
|
}
|
|
|
|
message NeighborSet {
|
|
string neighbor_set_name = 1;
|
|
repeated Neighbor neighbor_list = 2;
|
|
string match_set_options = 3;
|
|
}
|
|
|
|
message AsPathLength {
|
|
string value = 1;
|
|
string operator = 2;
|
|
}
|
|
|
|
message AsPathSet {
|
|
string as_path_set_name = 1;
|
|
repeated string as_path_members = 2;
|
|
string match_set_options = 3;
|
|
}
|
|
|
|
message CommunitySet {
|
|
string community_set_name = 1;
|
|
repeated string community_members = 2;
|
|
string match_set_options = 3;
|
|
}
|
|
|
|
message ExtCommunitySet {
|
|
string ext_community_set_name = 1;
|
|
repeated string ext_community_members = 2;
|
|
string match_set_options = 3;
|
|
}
|
|
|
|
message Conditions {
|
|
PrefixSet match_prefix_set = 1;
|
|
NeighborSet match_neighbor_set = 2;
|
|
AsPathLength match_as_path_length = 3;
|
|
AsPathSet match_as_path_set = 4;
|
|
CommunitySet match_community_set = 5;
|
|
ExtCommunitySet match_ext_community_set = 6;
|
|
}
|
|
|
|
message CommunityAction {
|
|
repeated string communities = 1;
|
|
string options = 2;
|
|
}
|
|
|
|
message AsPrependAction {
|
|
string as = 1;
|
|
uint32 repeatn = 2;
|
|
}
|
|
|
|
message Actions {
|
|
string route_action = 1;
|
|
CommunityAction community = 2;
|
|
string med = 3;
|
|
AsPrependAction as_prepend = 4;
|
|
CommunityAction ext_community = 5;
|
|
}
|
|
|
|
message Statement {
|
|
string statement_neme = 1;
|
|
Conditions conditions = 2;
|
|
Actions actions = 3;
|
|
}
|
|
|
|
message PolicyDefinition {
|
|
string policy_definition_name = 1;
|
|
repeated Statement statement_list = 2;
|
|
}
|
|
|
|
message ApplyPolicy {
|
|
repeated PolicyDefinition import_policies = 1;
|
|
string default_import_policy = 2;
|
|
repeated PolicyDefinition export_policies = 3;
|
|
string default_export_policy = 4;
|
|
repeated PolicyDefinition in_policies = 5;
|
|
string default_in_policy = 6;
|
|
}
|
|
|
|
message MrtMessage {
|
|
bytes data = 1;
|
|
}
|
|
|
|
message RPKIConf {
|
|
string address = 1;
|
|
}
|
|
|
|
message RPKIState {
|
|
int64 uptime = 1;
|
|
int64 downtime = 2;
|
|
int32 received_ipv4 = 3;
|
|
int32 received_ipv6 = 4;
|
|
}
|
|
|
|
message RPKI {
|
|
RPKIConf conf = 1;
|
|
RPKIState state = 2;
|
|
}
|
|
|
|
message ROA {
|
|
uint32 as = 1;
|
|
uint32 prefixlen = 2;
|
|
uint32 maxlen = 3;
|
|
string prefix = 4;
|
|
}
|
|
|
|
message Vrf {
|
|
string name = 1;
|
|
bytes rd = 2;
|
|
repeated bytes import_rt = 3;
|
|
repeated bytes export_rt = 4;
|
|
}
|