From c821cfbc8e04bb05bf0e300e52693b5085e1bfef Mon Sep 17 00:00:00 2001 From: Satoshi Fujimoto Date: Thu, 31 May 2018 16:49:57 +0900 Subject: api: Implement PeerGroup and DynamicNeighbor API Signed-off-by: Satoshi Fujimoto --- api/gobgp.proto | 93 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) (limited to 'api/gobgp.proto') 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; -- cgit v1.2.3