blob: 5890ea41f6dfb76fa59fb79f386cbb36250799ba [file] [log] [blame]
Zsolt Haraszti656ecc62016-12-28 15:08:23 -08001syntax = "proto3";
2
Stephane Barbarie35595062018-02-08 08:34:39 -05003option go_package = "github.com/opencord/voltha/protos/go/voltha";
4
Zsolt Haraszti656ecc62016-12-28 15:08:23 -08005package voltha;
6
7import "google/protobuf/empty.proto";
8import "openflow_13.proto";
Nikolay Titov89004ec2017-06-19 18:22:42 -04009import "bbf_fiber_base.proto";
Nikolay Titov176f1db2017-08-10 12:38:43 -040010import "bbf_fiber_gemport_body.proto";
11import "bbf_fiber_multicast_distribution_set_body.proto";
12import "bbf_fiber_multicast_gemport_body.proto";
13import "bbf_fiber_tcont_body.proto";
14import "bbf_fiber_traffic_descriptor_profile_body.proto";
Zsolt Haraszti656ecc62016-12-28 15:08:23 -080015
Andy Bavierea82b462018-07-27 16:48:13 -070016message PonSimOnuDeviceInfo {
17 int32 uni_port = 1;
18 string serial_number = 2;
19}
20
Zsolt Haraszti656ecc62016-12-28 15:08:23 -080021message PonSimDeviceInfo {
22 int32 nni_port = 1;
Andy Bavierea82b462018-07-27 16:48:13 -070023 repeated PonSimOnuDeviceInfo onus = 2;
Zsolt Haraszti656ecc62016-12-28 15:08:23 -080024}
25
26message FlowTable {
27 int32 port = 1; // Used to address right device
28 repeated openflow_13.ofp_flow_stats flows = 2;
29}
30
Stephane Barbarie35595062018-02-08 08:34:39 -050031message PonSimFrame {
32 string id = 1;
33 bytes payload = 2;
Jonathan Hart32fe8812018-08-21 17:10:12 -070034 int32 out_port = 3;
Stephane Barbarie35595062018-02-08 08:34:39 -050035}
36
Sergio Slobodrian98eff412017-03-15 14:46:30 -040037message PonSimPacketCounter {
38 string name = 1;
39 int64 value = 2;
40}
41
42message PonSimPortMetrics {
43 string port_name = 1;
44 repeated PonSimPacketCounter packets = 2;
45}
46
47message PonSimMetrics {
48 string device = 1;
49 repeated PonSimPortMetrics metrics = 2;
50}
51
Scott Bakerb5be94d2018-10-09 16:13:32 -070052message PonSimMetricsRequest {
53 int32 port = 1;
54}
55
Nikolay Titov176f1db2017-08-10 12:38:43 -040056message TcontInterfaceConfig {
57 bbf_fiber.TrafficDescriptorProfileData
58 traffic_descriptor_profile_config_data = 1;
59 bbf_fiber.TcontsConfigData tconts_config_data = 2;
60}
61
62message InterfaceConfig {
63 oneof interface_type {
64 bbf_fiber.ChannelgroupConfig channel_group_config = 1;
65 bbf_fiber.ChannelpartitionConfig channel_partition_config = 2;
66 bbf_fiber.ChannelpairConfig channel_pair_config = 3;
67 bbf_fiber.ChannelterminationConfig channel_termination_config = 4;
68 bbf_fiber.OntaniConfig ont_ani_config = 5;
69 bbf_fiber.VOntaniConfig vont_ani_config = 6;
70 bbf_fiber.VEnetConfig venet_config = 7;
71 bbf_fiber.TrafficDescriptorProfileData
72 traffic_descriptor_profile_config_data = 8;
73 bbf_fiber.TcontsConfigData tconts_config_data = 9;
74 bbf_fiber.GemportsConfigData gemports_config_data = 10;
75 bbf_fiber.MulticastGemportsConfigData
76 multicast_gemports_config_data = 11;
77 bbf_fiber.MulticastDistributionSetData
78 multicast_distribution_set_data = 12;
79 }
Nikolay Titov89004ec2017-06-19 18:22:42 -040080}
Sergio Slobodrian98eff412017-03-15 14:46:30 -040081
Zsolt Haraszti656ecc62016-12-28 15:08:23 -080082service PonSim {
Stephane Barbarie35595062018-02-08 08:34:39 -050083 rpc SendFrame(PonSimFrame)
84 returns (google.protobuf.Empty) {}
85
86 rpc ReceiveFrames(google.protobuf.Empty)
87 returns (stream PonSimFrame) {}
Zsolt Haraszti656ecc62016-12-28 15:08:23 -080088
89 rpc GetDeviceInfo(google.protobuf.Empty)
90 returns(PonSimDeviceInfo) {}
91
92 rpc UpdateFlowTable(FlowTable)
93 returns(google.protobuf.Empty) {}
94
Scott Bakerb5be94d2018-10-09 16:13:32 -070095 rpc GetStats(PonSimMetricsRequest)
Sergio Slobodrian98eff412017-03-15 14:46:30 -040096 returns(PonSimMetrics) {}
Nikolay Titov89004ec2017-06-19 18:22:42 -040097
98}
99
Nikolay Titov176f1db2017-08-10 12:38:43 -0400100service XPonSim {
101
Nikolay Titov89004ec2017-06-19 18:22:42 -0400102 rpc CreateInterface(InterfaceConfig)
103 returns(google.protobuf.Empty) {}
104
105 rpc UpdateInterface(InterfaceConfig)
106 returns(google.protobuf.Empty) {}
107
108 rpc RemoveInterface(InterfaceConfig)
109 returns(google.protobuf.Empty) {}
Nikolay Titov176f1db2017-08-10 12:38:43 -0400110
111 rpc CreateTcont(TcontInterfaceConfig)
112 returns(google.protobuf.Empty) {}
113
114 rpc UpdateTcont(TcontInterfaceConfig)
115 returns(google.protobuf.Empty) {}
116
117 rpc RemoveTcont(TcontInterfaceConfig)
118 returns(google.protobuf.Empty) {}
119
120 rpc CreateGemport(InterfaceConfig)
121 returns(google.protobuf.Empty) {}
122
123 rpc UpdateGemport(InterfaceConfig)
124 returns(google.protobuf.Empty) {}
125
126 rpc RemoveGemport(InterfaceConfig)
127 returns(google.protobuf.Empty) {}
128
129 rpc CreateMulticastGemport(InterfaceConfig)
130 returns(google.protobuf.Empty) {}
131
132 rpc UpdateMulticastGemport(InterfaceConfig)
133 returns(google.protobuf.Empty) {}
134
135 rpc RemoveMulticastGemport(InterfaceConfig)
136 returns(google.protobuf.Empty) {}
137
138 rpc CreateMulticastDistributionSet(InterfaceConfig)
139 returns(google.protobuf.Empty) {}
140
141 rpc UpdateMulticastDistributionSet(InterfaceConfig)
142 returns(google.protobuf.Empty) {}
143
144 rpc RemoveMulticastDistributionSet(InterfaceConfig)
145 returns(google.protobuf.Empty) {}
Zsolt Haraszti656ecc62016-12-28 15:08:23 -0800146}