summaryrefslogtreecommitdiffhomepage
path: root/api/gobgp.proto
diff options
context:
space:
mode:
authorSatoshi Fujimoto <satoshi.fujimoto7@gmail.com>2018-05-31 16:49:57 +0900
committerSatoshi Fujimoto <satoshi.fujimoto7@gmail.com>2018-06-13 13:56:57 +0900
commitc821cfbc8e04bb05bf0e300e52693b5085e1bfef (patch)
tree082a195fc38e678f188465ceacb1eed7951e9d17 /api/gobgp.proto
parent96034c286bdf02acac954e6860e48f1705b820ee (diff)
api: Implement PeerGroup and DynamicNeighbor API
Signed-off-by: Satoshi Fujimoto <satoshi.fujimoto7@gmail.com>
Diffstat (limited to 'api/gobgp.proto')
-rw-r--r--api/gobgp.proto93
1 files changed, 93 insertions, 0 deletions
diff --git a/api/gobgp.proto b/api/gobgp.proto
index cf0f2653..02644e6b 100644
--- a/api/gobgp.proto
+++ b/api/gobgp.proto
@@ -81,6 +81,10 @@ service GobgpApi {
rpc DeletePolicyAssignment(DeletePolicyAssignmentRequest) returns (DeletePolicyAssignmentResponse) {}
rpc ReplacePolicyAssignment(ReplacePolicyAssignmentRequest) returns (ReplacePolicyAssignmentResponse) {}
rpc GetRibInfo(GetRibInfoRequest) returns (GetRibInfoResponse) {}
+ rpc AddPeerGroup(AddPeerGroupRequest) returns (AddPeerGroupResponse) {}
+ rpc DeletePeerGroup(DeletePeerGroupRequest) returns (DeletePeerGroupResponse) {}
+ rpc UpdatePeerGroup(UpdatePeerGroupRequest) returns (UpdatePeerGroupResponse) {}
+ rpc AddDynamicNeighbor(AddDynamicNeighborRequest) returns (AddDynamicNeighborResponse) {}
}
// Constants for address families
@@ -174,6 +178,36 @@ message UpdateNeighborResponse {
bool needs_soft_reset_in = 1;
}
+message AddPeerGroupRequest {
+ PeerGroup peer_group = 1;
+}
+
+message AddPeerGroupResponse {
+}
+
+message DeletePeerGroupRequest {
+ PeerGroup peer_group = 1;
+}
+
+message DeletePeerGroupResponse {
+}
+
+message UpdatePeerGroupRequest {
+ PeerGroup peer_group = 1;
+ bool do_soft_reset_in = 2;
+}
+
+message UpdatePeerGroupResponse {
+ bool needs_soft_reset_in = 1;
+}
+
+message AddDynamicNeighborRequest {
+ DynamicNeighbor dynamic_neighbor = 1;
+}
+
+message AddDynamicNeighborResponse {
+}
+
message ResetNeighborRequest {
string address = 1;
string communication = 2;
@@ -676,6 +710,29 @@ message Peer {
AddPaths add_paths = 12;
}
+message PeerGroup {
+ // Note: Regarding to the consistency with OpenConfig model, a list of
+ // address family should be removed from here, and should be configured with
+ // the list of AfiSafi instead.
+ repeated uint32 families = 1;
+ ApplyPolicy apply_policy = 2;
+ PeerGroupConf conf = 3;
+ EbgpMultihop ebgp_multihop = 4;
+ RouteReflector route_reflector = 5;
+ PeerGroupState info = 6;
+ Timers timers = 7;
+ Transport transport = 8;
+ RouteServer route_server = 9;
+ GracefulRestart graceful_restart = 10;
+ repeated AfiSafi afi_safis = 11;
+ AddPaths add_paths = 12;
+}
+
+message DynamicNeighbor {
+ string prefix = 1;
+ string peer_group = 2;
+}
+
message ApplyPolicy {
PolicyAssignment in_policy = 1;
PolicyAssignment export_policy = 2;
@@ -718,6 +775,42 @@ message PeerConf {
bool replace_peer_as = 19;
}
+message PeerGroupConf {
+ string auth_password = 1;
+ string description = 2;
+ uint32 local_as = 3;
+ uint32 peer_as = 5;
+ string peer_group_name = 6;
+ uint32 peer_type = 7;
+ enum RemovePrivateAs {
+ NONE = 0;
+ ALL = 1;
+ REPLACE = 2;
+ }
+ RemovePrivateAs remove_private_as = 8;
+ bool route_flap_damping = 9;
+ uint32 send_community = 10;
+}
+
+message PeerGroupState {
+ string auth_password = 1;
+ string description = 2;
+ uint32 local_as = 3;
+ uint32 peer_as = 5;
+ string peer_group_name = 6;
+ uint32 peer_type = 7;
+ enum RemovePrivateAs {
+ NONE = 0;
+ ALL = 1;
+ REPLACE = 2;
+ }
+ RemovePrivateAs remove_private_as = 8;
+ bool route_flap_damping = 9;
+ uint32 send_community = 10;
+ uint32 total_paths = 11;
+ uint32 total_prefixes = 12;
+}
+
message EbgpMultihop {
bool enabled = 1;
uint32 multihop_ttl = 2;