blob: 5890ea41f6dfb76fa59fb79f386cbb36250799ba [file] [log] [blame]
syntax = "proto3";
option go_package = "github.com/opencord/voltha/protos/go/voltha";
package voltha;
import "google/protobuf/empty.proto";
import "openflow_13.proto";
import "bbf_fiber_base.proto";
import "bbf_fiber_gemport_body.proto";
import "bbf_fiber_multicast_distribution_set_body.proto";
import "bbf_fiber_multicast_gemport_body.proto";
import "bbf_fiber_tcont_body.proto";
import "bbf_fiber_traffic_descriptor_profile_body.proto";
message PonSimOnuDeviceInfo {
int32 uni_port = 1;
string serial_number = 2;
}
message PonSimDeviceInfo {
int32 nni_port = 1;
repeated PonSimOnuDeviceInfo onus = 2;
}
message FlowTable {
int32 port = 1; // Used to address right device
repeated openflow_13.ofp_flow_stats flows = 2;
}
message PonSimFrame {
string id = 1;
bytes payload = 2;
int32 out_port = 3;
}
message PonSimPacketCounter {
string name = 1;
int64 value = 2;
}
message PonSimPortMetrics {
string port_name = 1;
repeated PonSimPacketCounter packets = 2;
}
message PonSimMetrics {
string device = 1;
repeated PonSimPortMetrics metrics = 2;
}
message PonSimMetricsRequest {
int32 port = 1;
}
message TcontInterfaceConfig {
bbf_fiber.TrafficDescriptorProfileData
traffic_descriptor_profile_config_data = 1;
bbf_fiber.TcontsConfigData tconts_config_data = 2;
}
message InterfaceConfig {
oneof interface_type {
bbf_fiber.ChannelgroupConfig channel_group_config = 1;
bbf_fiber.ChannelpartitionConfig channel_partition_config = 2;
bbf_fiber.ChannelpairConfig channel_pair_config = 3;
bbf_fiber.ChannelterminationConfig channel_termination_config = 4;
bbf_fiber.OntaniConfig ont_ani_config = 5;
bbf_fiber.VOntaniConfig vont_ani_config = 6;
bbf_fiber.VEnetConfig venet_config = 7;
bbf_fiber.TrafficDescriptorProfileData
traffic_descriptor_profile_config_data = 8;
bbf_fiber.TcontsConfigData tconts_config_data = 9;
bbf_fiber.GemportsConfigData gemports_config_data = 10;
bbf_fiber.MulticastGemportsConfigData
multicast_gemports_config_data = 11;
bbf_fiber.MulticastDistributionSetData
multicast_distribution_set_data = 12;
}
}
service PonSim {
rpc SendFrame(PonSimFrame)
returns (google.protobuf.Empty) {}
rpc ReceiveFrames(google.protobuf.Empty)
returns (stream PonSimFrame) {}
rpc GetDeviceInfo(google.protobuf.Empty)
returns(PonSimDeviceInfo) {}
rpc UpdateFlowTable(FlowTable)
returns(google.protobuf.Empty) {}
rpc GetStats(PonSimMetricsRequest)
returns(PonSimMetrics) {}
}
service XPonSim {
rpc CreateInterface(InterfaceConfig)
returns(google.protobuf.Empty) {}
rpc UpdateInterface(InterfaceConfig)
returns(google.protobuf.Empty) {}
rpc RemoveInterface(InterfaceConfig)
returns(google.protobuf.Empty) {}
rpc CreateTcont(TcontInterfaceConfig)
returns(google.protobuf.Empty) {}
rpc UpdateTcont(TcontInterfaceConfig)
returns(google.protobuf.Empty) {}
rpc RemoveTcont(TcontInterfaceConfig)
returns(google.protobuf.Empty) {}
rpc CreateGemport(InterfaceConfig)
returns(google.protobuf.Empty) {}
rpc UpdateGemport(InterfaceConfig)
returns(google.protobuf.Empty) {}
rpc RemoveGemport(InterfaceConfig)
returns(google.protobuf.Empty) {}
rpc CreateMulticastGemport(InterfaceConfig)
returns(google.protobuf.Empty) {}
rpc UpdateMulticastGemport(InterfaceConfig)
returns(google.protobuf.Empty) {}
rpc RemoveMulticastGemport(InterfaceConfig)
returns(google.protobuf.Empty) {}
rpc CreateMulticastDistributionSet(InterfaceConfig)
returns(google.protobuf.Empty) {}
rpc UpdateMulticastDistributionSet(InterfaceConfig)
returns(google.protobuf.Empty) {}
rpc RemoveMulticastDistributionSet(InterfaceConfig)
returns(google.protobuf.Empty) {}
}