blob: 0dc175b848719451acf625f1ec11c659974ccafe [file] [log] [blame]
Shad Ansari19249582018-04-30 04:31:00 +00001// Copyright (c) 2018 Open Networking Foundation
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at:
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15syntax = "proto3";
16package openolt;
17import "google/api/annotations.proto";
18
19service Openolt {
20
21 rpc ActivateOnu(Onu) returns (Empty) {
22 option (google.api.http) = {
23 post: "/v1/EnableOnu"
24 body: "*"
25 };
26 }
27
28 rpc OmciMsgOut(OmciMsg) returns (Empty) {
29 option (google.api.http) = {
30 post: "/v1/OmciMsgOut"
31 body: "*"
32 };
33 }
34
35 rpc OnuPacketOut(OnuPacket) returns (Empty) {
36 option (google.api.http) = {
37 post: "/v1/OnuPacketOut"
38 body: "*"
39 };
40 }
41
42 rpc FlowAdd(Flow) returns (Empty) {
43 option (google.api.http) = {
44 post: "/v1/FlowAdd"
45 body: "*"
46 };
47 }
48
49 rpc EnableIndication(Empty) returns (stream Indication) {}
50}
51
52message Indication {
53 oneof data {
54 OltIndication olt_ind = 1;
55 IntfIndication intf_ind = 2;
56 IntfOperIndication intf_oper_ind = 3;
57 OnuDiscIndication onu_disc_ind = 4;
58 OnuIndication onu_ind = 5;
59 OmciIndication omci_ind = 6;
60 PacketIndication pkt_ind = 7;
61 }
62}
63
64message OltIndication {
65 string oper_state = 1; // up, down
Shad Ansari19249582018-04-30 04:31:00 +000066}
67
68message IntfIndication {
69 fixed32 intf_id = 1;
70 string oper_state = 2; // up, down
71}
72
73message OnuDiscIndication {
74 fixed32 intf_id = 1;
75 SerialNumber serial_number = 2;
76}
77
78message OnuIndication {
79 fixed32 intf_id = 1;
80 fixed32 onu_id = 2;
81 string oper_state = 3; // up, down
Shad Ansarife9d9422018-05-22 23:25:02 +000082 string admin_state = 5; // up, down
83 SerialNumber serial_number = 4;
Shad Ansari19249582018-04-30 04:31:00 +000084}
85
86message IntfOperIndication {
87 string type = 1; // nni, pon
88 fixed32 intf_id = 2;
89 string oper_state = 3; // up, down
90}
91
92message OmciIndication {
93 fixed32 intf_id = 1;
94 fixed32 onu_id = 2;
95 bytes pkt = 3;
96}
97
98message PacketIndication {
99 fixed32 intf_id = 1;
100 fixed32 gemport_id = 2;
101 fixed32 flow_id = 3;
102 bytes pkt = 4;
103}
104
105message Onu {
106 fixed32 intf_id = 1;
107 fixed32 onu_id = 2;
108 SerialNumber serial_number = 3;
109}
110
111message OmciMsg {
112 fixed32 intf_id = 1;
113 fixed32 onu_id = 2;
114 bytes pkt = 3;
115}
116
117message OnuPacket {
118 fixed32 intf_id = 1;
119 fixed32 onu_id = 2;
120 bytes pkt = 3;
121}
122
123message Classifier {
124 fixed32 o_tpid = 1;
125 fixed32 o_vid = 2;
126 fixed32 i_tpid = 3;
127 fixed32 i_vid = 4;
128 fixed32 o_pbits = 5;
129 fixed32 i_pbits = 6;
130 fixed32 eth_type = 7;
131 bytes dst_mac = 8;
132 bytes src_mac = 9;
133 fixed32 ip_proto = 10;
134 fixed32 dst_ip = 11;
135 fixed32 src_ip = 12;
136 fixed32 src_port = 13;
137 fixed32 dst_port = 14;
138 string pkt_tag_type = 15; // untagged, single_tag, double_tag
139}
140
141message ActionCmd {
142 bool add_outer_tag = 1;
143 bool remove_outer_tag = 2;
144 bool trap_to_host = 3;
145}
146
147message Action {
148 ActionCmd cmd = 1;
149 fixed32 o_vid = 2;
150 fixed32 o_pbits = 3;
151 fixed32 o_tpid = 4;
152 fixed32 i_vid = 5;
153 fixed32 i_pbits = 6;
154 fixed32 i_tpid = 7;
155}
156
157message Flow {
158 fixed32 access_intf_id = 1;
159 fixed32 onu_id = 2;
160 fixed32 flow_id = 3;
161 string flow_type = 4; // upstream, downstream, broadcast, multicast
162 fixed32 network_intf_id = 5;
163 fixed32 gemport_id = 6;
164 Classifier classifier = 7;
165 Action action = 8;
166}
167
168message SerialNumber {
169 bytes vendor_id = 1;
170 bytes vendor_specific = 2;
171}
172
173message Empty {}