blob: bdf43941398a2189ab319304e13a932d9dfc2f40 [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;
34}
35
Sergio Slobodrian98eff412017-03-15 14:46:30 -040036message PonSimPacketCounter {
37 string name = 1;
38 int64 value = 2;
39}
40
41message PonSimPortMetrics {
42 string port_name = 1;
43 repeated PonSimPacketCounter packets = 2;
44}
45
46message PonSimMetrics {
47 string device = 1;
48 repeated PonSimPortMetrics metrics = 2;
49}
50
Nikolay Titov176f1db2017-08-10 12:38:43 -040051message TcontInterfaceConfig {
52 bbf_fiber.TrafficDescriptorProfileData
53 traffic_descriptor_profile_config_data = 1;
54 bbf_fiber.TcontsConfigData tconts_config_data = 2;
55}
56
57message InterfaceConfig {
58 oneof interface_type {
59 bbf_fiber.ChannelgroupConfig channel_group_config = 1;
60 bbf_fiber.ChannelpartitionConfig channel_partition_config = 2;
61 bbf_fiber.ChannelpairConfig channel_pair_config = 3;
62 bbf_fiber.ChannelterminationConfig channel_termination_config = 4;
63 bbf_fiber.OntaniConfig ont_ani_config = 5;
64 bbf_fiber.VOntaniConfig vont_ani_config = 6;
65 bbf_fiber.VEnetConfig venet_config = 7;
66 bbf_fiber.TrafficDescriptorProfileData
67 traffic_descriptor_profile_config_data = 8;
68 bbf_fiber.TcontsConfigData tconts_config_data = 9;
69 bbf_fiber.GemportsConfigData gemports_config_data = 10;
70 bbf_fiber.MulticastGemportsConfigData
71 multicast_gemports_config_data = 11;
72 bbf_fiber.MulticastDistributionSetData
73 multicast_distribution_set_data = 12;
74 }
Nikolay Titov89004ec2017-06-19 18:22:42 -040075}
Sergio Slobodrian98eff412017-03-15 14:46:30 -040076
Zsolt Haraszti656ecc62016-12-28 15:08:23 -080077service PonSim {
Stephane Barbarie35595062018-02-08 08:34:39 -050078 rpc SendFrame(PonSimFrame)
79 returns (google.protobuf.Empty) {}
80
81 rpc ReceiveFrames(google.protobuf.Empty)
82 returns (stream PonSimFrame) {}
Zsolt Haraszti656ecc62016-12-28 15:08:23 -080083
84 rpc GetDeviceInfo(google.protobuf.Empty)
85 returns(PonSimDeviceInfo) {}
86
87 rpc UpdateFlowTable(FlowTable)
88 returns(google.protobuf.Empty) {}
89
Sergio Slobodrian98eff412017-03-15 14:46:30 -040090 rpc GetStats(google.protobuf.Empty)
91 returns(PonSimMetrics) {}
Nikolay Titov89004ec2017-06-19 18:22:42 -040092
93}
94
Nikolay Titov176f1db2017-08-10 12:38:43 -040095service XPonSim {
96
Nikolay Titov89004ec2017-06-19 18:22:42 -040097 rpc CreateInterface(InterfaceConfig)
98 returns(google.protobuf.Empty) {}
99
100 rpc UpdateInterface(InterfaceConfig)
101 returns(google.protobuf.Empty) {}
102
103 rpc RemoveInterface(InterfaceConfig)
104 returns(google.protobuf.Empty) {}
Nikolay Titov176f1db2017-08-10 12:38:43 -0400105
106 rpc CreateTcont(TcontInterfaceConfig)
107 returns(google.protobuf.Empty) {}
108
109 rpc UpdateTcont(TcontInterfaceConfig)
110 returns(google.protobuf.Empty) {}
111
112 rpc RemoveTcont(TcontInterfaceConfig)
113 returns(google.protobuf.Empty) {}
114
115 rpc CreateGemport(InterfaceConfig)
116 returns(google.protobuf.Empty) {}
117
118 rpc UpdateGemport(InterfaceConfig)
119 returns(google.protobuf.Empty) {}
120
121 rpc RemoveGemport(InterfaceConfig)
122 returns(google.protobuf.Empty) {}
123
124 rpc CreateMulticastGemport(InterfaceConfig)
125 returns(google.protobuf.Empty) {}
126
127 rpc UpdateMulticastGemport(InterfaceConfig)
128 returns(google.protobuf.Empty) {}
129
130 rpc RemoveMulticastGemport(InterfaceConfig)
131 returns(google.protobuf.Empty) {}
132
133 rpc CreateMulticastDistributionSet(InterfaceConfig)
134 returns(google.protobuf.Empty) {}
135
136 rpc UpdateMulticastDistributionSet(InterfaceConfig)
137 returns(google.protobuf.Empty) {}
138
139 rpc RemoveMulticastDistributionSet(InterfaceConfig)
140 returns(google.protobuf.Empty) {}
Zsolt Haraszti656ecc62016-12-28 15:08:23 -0800141}