bgpls.proto 1.89 KB
Newer Older
Pablo Armingol's avatar
Pablo Armingol committed
// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/)
//
// 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 bgpls;

import "context.proto";

service BgplsService {
  rpc ListDiscoveredDevices ( context.Empty  ) returns (       DiscoveredDeviceList      ) {}
  rpc ListDiscoveredLinks ( context.Empty  ) returns (       DiscoveredLinkList      ) {}
  rpc AddBgplsSpeaker ( BgplsSpeaker  ) returns (       BgplsSpeakerId      ) {}
  rpc ListBgplsSpeakers ( context.Empty ) returns ( BgplsSpeakerList ) {}
  rpc DisconnectFromSpeaker ( BgplsSpeaker ) returns ( context.Empty ){}
  rpc GetSpeakerInfoFromId( BgplsSpeakerId ) returns ( BgplsSpeaker ){}
  rpc NotifyAddNodeToContext( NodeDescriptors ) returns ( context.Empty ){}
}

message DiscoveredDevice {
  string nodeName = 1;
  string ip = 2;
  string igpID =3;
  string learntFrom=4;
}

message DiscoveredDeviceList {
  repeated DiscoveredDevice discovereddevices = 1;
}

message DiscoveredLinkList{
  repeated DiscoveredLink discoveredlinks = 1;
}

message DiscoveredLink{
  NodeDescriptors local=1;
	NodeDescriptors remote=2;
  string learntFrom=3;
}

message NodeDescriptors{
	string asNumber=1;
	string bgplsID=2;
  string nodeName=3;
}

message BgplsSpeaker{
  string address=1;
  string port=2;
  string asNumber=3;
}
message BgplsSpeakerId{
  uint32 id=1;
}

message BgplsSpeakerList{
  repeated BgplsSpeakerId speakers=1;
}