blob: 91018ad38756ccb10e165a23307ecd7374791833 [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 PonSimDeviceInfo {
int32 nni_port = 1;
repeated int32 uni_ports = 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;
}
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 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(google.protobuf.Empty)
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) {}
}