blob: 91018ad38756ccb10e165a23307ecd7374791833 [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
16message PonSimDeviceInfo {
17 int32 nni_port = 1;
18 repeated int32 uni_ports = 2;
19}
20
21message FlowTable {
22 int32 port = 1; // Used to address right device
23 repeated openflow_13.ofp_flow_stats flows = 2;
24}
25
Stephane Barbarie35595062018-02-08 08:34:39 -050026message PonSimFrame {
27 string id = 1;
28 bytes payload = 2;
29}
30
Sergio Slobodrian98eff412017-03-15 14:46:30 -040031message PonSimPacketCounter {
32 string name = 1;
33 int64 value = 2;
34}
35
36message PonSimPortMetrics {
37 string port_name = 1;
38 repeated PonSimPacketCounter packets = 2;
39}
40
41message PonSimMetrics {
42 string device = 1;
43 repeated PonSimPortMetrics metrics = 2;
44}
45
Nikolay Titov176f1db2017-08-10 12:38:43 -040046message TcontInterfaceConfig {
47 bbf_fiber.TrafficDescriptorProfileData
48 traffic_descriptor_profile_config_data = 1;
49 bbf_fiber.TcontsConfigData tconts_config_data = 2;
50}
51
52message InterfaceConfig {
53 oneof interface_type {
54 bbf_fiber.ChannelgroupConfig channel_group_config = 1;
55 bbf_fiber.ChannelpartitionConfig channel_partition_config = 2;
56 bbf_fiber.ChannelpairConfig channel_pair_config = 3;
57 bbf_fiber.ChannelterminationConfig channel_termination_config = 4;
58 bbf_fiber.OntaniConfig ont_ani_config = 5;
59 bbf_fiber.VOntaniConfig vont_ani_config = 6;
60 bbf_fiber.VEnetConfig venet_config = 7;
61 bbf_fiber.TrafficDescriptorProfileData
62 traffic_descriptor_profile_config_data = 8;
63 bbf_fiber.TcontsConfigData tconts_config_data = 9;
64 bbf_fiber.GemportsConfigData gemports_config_data = 10;
65 bbf_fiber.MulticastGemportsConfigData
66 multicast_gemports_config_data = 11;
67 bbf_fiber.MulticastDistributionSetData
68 multicast_distribution_set_data = 12;
69 }
Nikolay Titov89004ec2017-06-19 18:22:42 -040070}
Sergio Slobodrian98eff412017-03-15 14:46:30 -040071
Zsolt Haraszti656ecc62016-12-28 15:08:23 -080072service PonSim {
Stephane Barbarie35595062018-02-08 08:34:39 -050073 rpc SendFrame(PonSimFrame)
74 returns (google.protobuf.Empty) {}
75
76 rpc ReceiveFrames(google.protobuf.Empty)
77 returns (stream PonSimFrame) {}
Zsolt Haraszti656ecc62016-12-28 15:08:23 -080078
79 rpc GetDeviceInfo(google.protobuf.Empty)
80 returns(PonSimDeviceInfo) {}
81
82 rpc UpdateFlowTable(FlowTable)
83 returns(google.protobuf.Empty) {}
84
Sergio Slobodrian98eff412017-03-15 14:46:30 -040085 rpc GetStats(google.protobuf.Empty)
86 returns(PonSimMetrics) {}
Nikolay Titov89004ec2017-06-19 18:22:42 -040087
88}
89
Nikolay Titov176f1db2017-08-10 12:38:43 -040090service XPonSim {
91
Nikolay Titov89004ec2017-06-19 18:22:42 -040092 rpc CreateInterface(InterfaceConfig)
93 returns(google.protobuf.Empty) {}
94
95 rpc UpdateInterface(InterfaceConfig)
96 returns(google.protobuf.Empty) {}
97
98 rpc RemoveInterface(InterfaceConfig)
99 returns(google.protobuf.Empty) {}
Nikolay Titov176f1db2017-08-10 12:38:43 -0400100
101 rpc CreateTcont(TcontInterfaceConfig)
102 returns(google.protobuf.Empty) {}
103
104 rpc UpdateTcont(TcontInterfaceConfig)
105 returns(google.protobuf.Empty) {}
106
107 rpc RemoveTcont(TcontInterfaceConfig)
108 returns(google.protobuf.Empty) {}
109
110 rpc CreateGemport(InterfaceConfig)
111 returns(google.protobuf.Empty) {}
112
113 rpc UpdateGemport(InterfaceConfig)
114 returns(google.protobuf.Empty) {}
115
116 rpc RemoveGemport(InterfaceConfig)
117 returns(google.protobuf.Empty) {}
118
119 rpc CreateMulticastGemport(InterfaceConfig)
120 returns(google.protobuf.Empty) {}
121
122 rpc UpdateMulticastGemport(InterfaceConfig)
123 returns(google.protobuf.Empty) {}
124
125 rpc RemoveMulticastGemport(InterfaceConfig)
126 returns(google.protobuf.Empty) {}
127
128 rpc CreateMulticastDistributionSet(InterfaceConfig)
129 returns(google.protobuf.Empty) {}
130
131 rpc UpdateMulticastDistributionSet(InterfaceConfig)
132 returns(google.protobuf.Empty) {}
133
134 rpc RemoveMulticastDistributionSet(InterfaceConfig)
135 returns(google.protobuf.Empty) {}
Zsolt Haraszti656ecc62016-12-28 15:08:23 -0800136}