blob: 1f6b60dc1f33117c3a27a3e85321b02881f058c7 [file] [log] [blame]
Zdravko Bozakov2da76342019-10-21 09:47:35 +02001{
2 "swagger": "2.0",
3 "info": {
4 "title": "BBSim API",
5 "version": "1.0",
6 "contact": {
7 "url": "http://opencord.org"
8 }
9 },
10 "schemes": [
11 "http"
12 ],
13 "consumes": [
14 "application/json"
15 ],
16 "produces": [
17 "application/json"
18 ],
19 "paths": {
20 "/v0/olt": {
21 "get": {
22 "summary": "Get current status of OLT",
23 "operationId": "OLTStatus",
24 "responses": {
25 "200": {
26 "description": "A successful response.",
27 "schema": {
28 "$ref": "#/definitions/legacyOLTStatusResponse"
29 }
30 },
31 "404": {
32 "description": "Returned when the resource does not exist.",
33 "schema": {
34 "type": "string",
35 "format": "string"
36 }
37 }
38 },
39 "tags": [
40 "BBSimService"
41 ]
42 }
43 },
44 "/v0/olt/flows": {
45 "get": {
46 "summary": "Get flows",
47 "operationId": "GetFlows",
48 "responses": {
49 "200": {
50 "description": "A successful response.",
51 "schema": {
52 "$ref": "#/definitions/legacyFlows"
53 }
54 },
55 "404": {
56 "description": "Returned when the resource does not exist.",
57 "schema": {
58 "type": "string",
59 "format": "string"
60 }
61 }
62 },
63 "parameters": [
64 {
65 "name": "onu_id",
66 "in": "query",
67 "required": false,
68 "type": "integer",
69 "format": "int64"
70 },
71 {
72 "name": "pon_port_id",
73 "in": "query",
74 "required": false,
75 "type": "integer",
76 "format": "int64"
77 },
78 {
79 "name": "onu_serial",
80 "description": "ONU serial number.",
81 "in": "query",
82 "required": false,
83 "type": "string"
84 },
85 {
86 "name": "oper_state",
87 "description": "ONU oper state.",
88 "in": "query",
89 "required": false,
90 "type": "string"
91 },
92 {
93 "name": "onu_state",
94 "description": "ONU internal state.",
95 "in": "query",
96 "required": false,
97 "type": "string"
98 },
99 {
100 "name": "gemports",
101 "in": "query",
102 "required": false,
103 "type": "array",
104 "items": {
105 "type": "integer",
106 "format": "int64"
107 },
108 "collectionFormat": "multi"
109 },
110 {
111 "name": "tconts.uni_id",
112 "in": "query",
113 "required": false,
114 "type": "integer",
115 "format": "int64"
116 },
117 {
118 "name": "tconts.port_no",
119 "in": "query",
120 "required": false,
121 "type": "integer",
122 "format": "int64"
123 }
124 ],
125 "tags": [
126 "BBSimService"
127 ]
128 }
129 },
130 "/v0/olt/onu/{onu_serial}/flows": {
131 "get": {
132 "summary": "Get flows",
133 "operationId": "GetFlows2",
134 "responses": {
135 "200": {
136 "description": "A successful response.",
137 "schema": {
138 "$ref": "#/definitions/legacyFlows"
139 }
140 },
141 "404": {
142 "description": "Returned when the resource does not exist.",
143 "schema": {
144 "type": "string",
145 "format": "string"
146 }
147 }
148 },
149 "parameters": [
150 {
151 "name": "onu_serial",
152 "description": "ONU serial number",
153 "in": "path",
154 "required": true,
155 "type": "string"
156 },
157 {
158 "name": "onu_id",
159 "in": "query",
160 "required": false,
161 "type": "integer",
162 "format": "int64"
163 },
164 {
165 "name": "pon_port_id",
166 "in": "query",
167 "required": false,
168 "type": "integer",
169 "format": "int64"
170 },
171 {
172 "name": "oper_state",
173 "description": "ONU oper state.",
174 "in": "query",
175 "required": false,
176 "type": "string"
177 },
178 {
179 "name": "onu_state",
180 "description": "ONU internal state.",
181 "in": "query",
182 "required": false,
183 "type": "string"
184 },
185 {
186 "name": "gemports",
187 "in": "query",
188 "required": false,
189 "type": "array",
190 "items": {
191 "type": "integer",
192 "format": "int64"
193 },
194 "collectionFormat": "multi"
195 },
196 {
197 "name": "tconts.uni_id",
198 "in": "query",
199 "required": false,
200 "type": "integer",
201 "format": "int64"
202 },
203 {
204 "name": "tconts.port_no",
205 "in": "query",
206 "required": false,
207 "type": "integer",
208 "format": "int64"
209 }
210 ],
211 "tags": [
212 "BBSimService"
213 ]
214 }
215 },
216 "/v0/olt/onus": {
217 "get": {
218 "summary": "Get status of all or specific ONUs",
219 "operationId": "ONUStatus",
220 "responses": {
221 "200": {
222 "description": "A successful response.",
223 "schema": {
224 "$ref": "#/definitions/legacyONUs"
225 }
226 },
227 "404": {
228 "description": "Returned when the resource does not exist.",
229 "schema": {
230 "type": "string",
231 "format": "string"
232 }
233 }
234 },
235 "parameters": [
236 {
237 "name": "onu.onu_id",
238 "in": "query",
239 "required": false,
240 "type": "integer",
241 "format": "int64"
242 },
243 {
244 "name": "onu.pon_port_id",
245 "in": "query",
246 "required": false,
247 "type": "integer",
248 "format": "int64"
249 },
250 {
251 "name": "onu.onu_serial",
252 "description": "ONU serial number.",
253 "in": "query",
254 "required": false,
255 "type": "string"
256 },
257 {
258 "name": "onu.oper_state",
259 "description": "ONU oper state.",
260 "in": "query",
261 "required": false,
262 "type": "string"
263 },
264 {
265 "name": "onu.onu_state",
266 "description": "ONU internal state.",
267 "in": "query",
268 "required": false,
269 "type": "string"
270 },
271 {
272 "name": "onu.gemports",
273 "in": "query",
274 "required": false,
275 "type": "array",
276 "items": {
277 "type": "integer",
278 "format": "int64"
279 },
280 "collectionFormat": "multi"
281 },
282 {
283 "name": "onu.tconts.uni_id",
284 "in": "query",
285 "required": false,
286 "type": "integer",
287 "format": "int64"
288 },
289 {
290 "name": "onu.tconts.port_no",
291 "in": "query",
292 "required": false,
293 "type": "integer",
294 "format": "int64"
295 }
296 ],
297 "tags": [
298 "BBSimService"
299 ]
300 },
301 "delete": {
302 "summary": "Deactivate ONU(s) for specific PON port(s) specified by\na given onu_serial, onu_id, or pon_port_id",
303 "operationId": "ONUDeactivate",
304 "responses": {
305 "200": {
306 "description": "A successful response.",
307 "schema": {
308 "$ref": "#/definitions/legacyBBSimResponse"
309 }
310 },
311 "404": {
312 "description": "Returned when the resource does not exist.",
313 "schema": {
314 "type": "string",
315 "format": "string"
316 }
317 }
318 },
319 "parameters": [
320 {
321 "name": "body",
322 "in": "body",
323 "required": true,
324 "schema": {
325 "$ref": "#/definitions/legacyONUs"
326 }
327 }
328 ],
329 "tags": [
330 "BBSimService"
331 ]
332 },
333 "post": {
334 "summary": "Single/bulk activate ONU(s) for specific PON port(s)",
335 "operationId": "ONUActivate",
336 "responses": {
337 "200": {
338 "description": "A successful response.",
339 "schema": {
340 "$ref": "#/definitions/legacyBBSimResponse"
341 }
342 },
343 "404": {
344 "description": "Returned when the resource does not exist.",
345 "schema": {
346 "type": "string",
347 "format": "string"
348 }
349 }
350 },
351 "parameters": [
352 {
353 "name": "body",
354 "in": "body",
355 "required": true,
356 "schema": {
357 "$ref": "#/definitions/legacyONUs"
358 }
359 }
360 ],
361 "tags": [
362 "BBSimService"
363 ]
364 }
365 },
366 "/v0/olt/onus/{onu.onu_serial}": {
367 "get": {
368 "summary": "Get status of all or specific ONUs",
369 "operationId": "ONUStatus2",
370 "responses": {
371 "200": {
372 "description": "A successful response.",
373 "schema": {
374 "$ref": "#/definitions/legacyONUs"
375 }
376 },
377 "404": {
378 "description": "Returned when the resource does not exist.",
379 "schema": {
380 "type": "string",
381 "format": "string"
382 }
383 }
384 },
385 "parameters": [
386 {
387 "name": "onu.onu_serial",
388 "description": "ONU serial number",
389 "in": "path",
390 "required": true,
391 "type": "string"
392 },
393 {
394 "name": "onu.onu_id",
395 "in": "query",
396 "required": false,
397 "type": "integer",
398 "format": "int64"
399 },
400 {
401 "name": "onu.pon_port_id",
402 "in": "query",
403 "required": false,
404 "type": "integer",
405 "format": "int64"
406 },
407 {
408 "name": "onu.oper_state",
409 "description": "ONU oper state.",
410 "in": "query",
411 "required": false,
412 "type": "string"
413 },
414 {
415 "name": "onu.onu_state",
416 "description": "ONU internal state.",
417 "in": "query",
418 "required": false,
419 "type": "string"
420 },
421 {
422 "name": "onu.gemports",
423 "in": "query",
424 "required": false,
425 "type": "array",
426 "items": {
427 "type": "integer",
428 "format": "int64"
429 },
430 "collectionFormat": "multi"
431 },
432 {
433 "name": "onu.tconts.uni_id",
434 "in": "query",
435 "required": false,
436 "type": "integer",
437 "format": "int64"
438 },
439 {
440 "name": "onu.tconts.port_no",
441 "in": "query",
442 "required": false,
443 "type": "integer",
444 "format": "int64"
445 }
446 ],
447 "tags": [
448 "BBSimService"
449 ]
450 },
451 "delete": {
452 "summary": "Deactivate ONU(s) for specific PON port(s) specified by\na given onu_serial, onu_id, or pon_port_id",
453 "operationId": "ONUDeactivate2",
454 "responses": {
455 "200": {
456 "description": "A successful response.",
457 "schema": {
458 "$ref": "#/definitions/legacyBBSimResponse"
459 }
460 },
461 "404": {
462 "description": "Returned when the resource does not exist.",
463 "schema": {
464 "type": "string",
465 "format": "string"
466 }
467 }
468 },
469 "parameters": [
470 {
471 "name": "onu.onu_serial",
472 "description": "ONU serial number",
473 "in": "path",
474 "required": true,
475 "type": "string"
476 },
477 {
478 "name": "onu.onu_id",
479 "in": "query",
480 "required": false,
481 "type": "integer",
482 "format": "int64"
483 },
484 {
485 "name": "onu.pon_port_id",
486 "in": "query",
487 "required": false,
488 "type": "integer",
489 "format": "int64"
490 },
491 {
492 "name": "onu.oper_state",
493 "description": "ONU oper state.",
494 "in": "query",
495 "required": false,
496 "type": "string"
497 },
498 {
499 "name": "onu.onu_state",
500 "description": "ONU internal state.",
501 "in": "query",
502 "required": false,
503 "type": "string"
504 },
505 {
506 "name": "onu.gemports",
507 "in": "query",
508 "required": false,
509 "type": "array",
510 "items": {
511 "type": "integer",
512 "format": "int64"
513 },
514 "collectionFormat": "multi"
515 },
516 {
517 "name": "onu.tconts.uni_id",
518 "in": "query",
519 "required": false,
520 "type": "integer",
521 "format": "int64"
522 },
523 {
524 "name": "onu.tconts.port_no",
525 "in": "query",
526 "required": false,
527 "type": "integer",
528 "format": "int64"
529 }
530 ],
531 "tags": [
532 "BBSimService"
533 ]
534 }
535 },
536 "/v0/olt/onus/{onu_serial}/alarms/{alarm_type}/{status}": {
537 "post": {
538 "summary": "Generate ONU related alarms",
539 "operationId": "GenerateONUAlarm",
540 "responses": {
541 "200": {
542 "description": "A successful response.",
543 "schema": {
544 "$ref": "#/definitions/legacyBBSimResponse"
545 }
546 },
547 "404": {
548 "description": "Returned when the resource does not exist.",
549 "schema": {
550 "type": "string",
551 "format": "string"
552 }
553 }
554 },
555 "parameters": [
556 {
557 "name": "onu_serial",
558 "description": "ONU serial number",
559 "in": "path",
560 "required": true,
561 "type": "string"
562 },
563 {
564 "name": "alarm_type",
565 "description": "Alarm types are:\n \"signaldegrade\"\n \"lossofomcichannel\"\n \"lossofploam\"",
566 "in": "path",
567 "required": true,
568 "type": "string"
569 },
570 {
571 "name": "status",
572 "description": "\"on\"/\"off\" indicates raised or cleared alarm",
573 "in": "path",
574 "required": true,
575 "type": "string"
576 }
577 ],
578 "tags": [
579 "BBSimService"
580 ]
581 }
582 },
583 "/v0/olt/ports/{onu.pon_port_id}/onus": {
584 "get": {
585 "summary": "Get status of all or specific ONUs",
586 "operationId": "ONUStatus4",
587 "responses": {
588 "200": {
589 "description": "A successful response.",
590 "schema": {
591 "$ref": "#/definitions/legacyONUs"
592 }
593 },
594 "404": {
595 "description": "Returned when the resource does not exist.",
596 "schema": {
597 "type": "string",
598 "format": "string"
599 }
600 }
601 },
602 "parameters": [
603 {
604 "name": "onu.pon_port_id",
605 "in": "path",
606 "required": true,
607 "type": "integer",
608 "format": "int64"
609 },
610 {
611 "name": "onu.onu_id",
612 "in": "query",
613 "required": false,
614 "type": "integer",
615 "format": "int64"
616 },
617 {
618 "name": "onu.onu_serial",
619 "description": "ONU serial number.",
620 "in": "query",
621 "required": false,
622 "type": "string"
623 },
624 {
625 "name": "onu.oper_state",
626 "description": "ONU oper state.",
627 "in": "query",
628 "required": false,
629 "type": "string"
630 },
631 {
632 "name": "onu.onu_state",
633 "description": "ONU internal state.",
634 "in": "query",
635 "required": false,
636 "type": "string"
637 },
638 {
639 "name": "onu.gemports",
640 "in": "query",
641 "required": false,
642 "type": "array",
643 "items": {
644 "type": "integer",
645 "format": "int64"
646 },
647 "collectionFormat": "multi"
648 },
649 {
650 "name": "onu.tconts.uni_id",
651 "in": "query",
652 "required": false,
653 "type": "integer",
654 "format": "int64"
655 },
656 {
657 "name": "onu.tconts.port_no",
658 "in": "query",
659 "required": false,
660 "type": "integer",
661 "format": "int64"
662 }
663 ],
664 "tags": [
665 "BBSimService"
666 ]
667 },
668 "delete": {
669 "summary": "Deactivate ONU(s) for specific PON port(s) specified by\na given onu_serial, onu_id, or pon_port_id",
670 "operationId": "ONUDeactivate3",
671 "responses": {
672 "200": {
673 "description": "A successful response.",
674 "schema": {
675 "$ref": "#/definitions/legacyBBSimResponse"
676 }
677 },
678 "404": {
679 "description": "Returned when the resource does not exist.",
680 "schema": {
681 "type": "string",
682 "format": "string"
683 }
684 }
685 },
686 "parameters": [
687 {
688 "name": "onu.pon_port_id",
689 "in": "path",
690 "required": true,
691 "type": "integer",
692 "format": "int64"
693 },
694 {
695 "name": "onu.onu_id",
696 "in": "query",
697 "required": false,
698 "type": "integer",
699 "format": "int64"
700 },
701 {
702 "name": "onu.onu_serial",
703 "description": "ONU serial number.",
704 "in": "query",
705 "required": false,
706 "type": "string"
707 },
708 {
709 "name": "onu.oper_state",
710 "description": "ONU oper state.",
711 "in": "query",
712 "required": false,
713 "type": "string"
714 },
715 {
716 "name": "onu.onu_state",
717 "description": "ONU internal state.",
718 "in": "query",
719 "required": false,
720 "type": "string"
721 },
722 {
723 "name": "onu.gemports",
724 "in": "query",
725 "required": false,
726 "type": "array",
727 "items": {
728 "type": "integer",
729 "format": "int64"
730 },
731 "collectionFormat": "multi"
732 },
733 {
734 "name": "onu.tconts.uni_id",
735 "in": "query",
736 "required": false,
737 "type": "integer",
738 "format": "int64"
739 },
740 {
741 "name": "onu.tconts.port_no",
742 "in": "query",
743 "required": false,
744 "type": "integer",
745 "format": "int64"
746 }
747 ],
748 "tags": [
749 "BBSimService"
750 ]
751 },
752 "post": {
753 "summary": "Single/bulk activate ONU(s) for specific PON port(s)",
754 "operationId": "ONUActivate2",
755 "responses": {
756 "200": {
757 "description": "A successful response.",
758 "schema": {
759 "$ref": "#/definitions/legacyBBSimResponse"
760 }
761 },
762 "404": {
763 "description": "Returned when the resource does not exist.",
764 "schema": {
765 "type": "string",
766 "format": "string"
767 }
768 }
769 },
770 "parameters": [
771 {
772 "name": "onu.pon_port_id",
773 "in": "path",
774 "required": true,
775 "type": "integer",
776 "format": "int64"
777 }
778 ],
779 "tags": [
780 "BBSimService"
781 ]
782 }
783 },
784 "/v0/olt/ports/{onu.pon_port_id}/onus/{onu.onu_id}": {
785 "get": {
786 "summary": "Get status of all or specific ONUs",
787 "operationId": "ONUStatus3",
788 "responses": {
789 "200": {
790 "description": "A successful response.",
791 "schema": {
792 "$ref": "#/definitions/legacyONUs"
793 }
794 },
795 "404": {
796 "description": "Returned when the resource does not exist.",
797 "schema": {
798 "type": "string",
799 "format": "string"
800 }
801 }
802 },
803 "parameters": [
804 {
805 "name": "onu.pon_port_id",
806 "in": "path",
807 "required": true,
808 "type": "integer",
809 "format": "int64"
810 },
811 {
812 "name": "onu.onu_id",
813 "in": "path",
814 "required": true,
815 "type": "integer",
816 "format": "int64"
817 },
818 {
819 "name": "onu.onu_serial",
820 "description": "ONU serial number.",
821 "in": "query",
822 "required": false,
823 "type": "string"
824 },
825 {
826 "name": "onu.oper_state",
827 "description": "ONU oper state.",
828 "in": "query",
829 "required": false,
830 "type": "string"
831 },
832 {
833 "name": "onu.onu_state",
834 "description": "ONU internal state.",
835 "in": "query",
836 "required": false,
837 "type": "string"
838 },
839 {
840 "name": "onu.gemports",
841 "in": "query",
842 "required": false,
843 "type": "array",
844 "items": {
845 "type": "integer",
846 "format": "int64"
847 },
848 "collectionFormat": "multi"
849 },
850 {
851 "name": "onu.tconts.uni_id",
852 "in": "query",
853 "required": false,
854 "type": "integer",
855 "format": "int64"
856 },
857 {
858 "name": "onu.tconts.port_no",
859 "in": "query",
860 "required": false,
861 "type": "integer",
862 "format": "int64"
863 }
864 ],
865 "tags": [
866 "BBSimService"
867 ]
868 },
869 "delete": {
870 "summary": "Deactivate ONU(s) for specific PON port(s) specified by\na given onu_serial, onu_id, or pon_port_id",
871 "operationId": "ONUDeactivate4",
872 "responses": {
873 "200": {
874 "description": "A successful response.",
875 "schema": {
876 "$ref": "#/definitions/legacyBBSimResponse"
877 }
878 },
879 "404": {
880 "description": "Returned when the resource does not exist.",
881 "schema": {
882 "type": "string",
883 "format": "string"
884 }
885 }
886 },
887 "parameters": [
888 {
889 "name": "onu.pon_port_id",
890 "in": "path",
891 "required": true,
892 "type": "integer",
893 "format": "int64"
894 },
895 {
896 "name": "onu.onu_id",
897 "in": "path",
898 "required": true,
899 "type": "integer",
900 "format": "int64"
901 },
902 {
903 "name": "onu.onu_serial",
904 "description": "ONU serial number.",
905 "in": "query",
906 "required": false,
907 "type": "string"
908 },
909 {
910 "name": "onu.oper_state",
911 "description": "ONU oper state.",
912 "in": "query",
913 "required": false,
914 "type": "string"
915 },
916 {
917 "name": "onu.onu_state",
918 "description": "ONU internal state.",
919 "in": "query",
920 "required": false,
921 "type": "string"
922 },
923 {
924 "name": "onu.gemports",
925 "in": "query",
926 "required": false,
927 "type": "array",
928 "items": {
929 "type": "integer",
930 "format": "int64"
931 },
932 "collectionFormat": "multi"
933 },
934 {
935 "name": "onu.tconts.uni_id",
936 "in": "query",
937 "required": false,
938 "type": "integer",
939 "format": "int64"
940 },
941 {
942 "name": "onu.tconts.port_no",
943 "in": "query",
944 "required": false,
945 "type": "integer",
946 "format": "int64"
947 }
948 ],
949 "tags": [
950 "BBSimService"
951 ]
952 }
953 },
954 "/v0/olt/ports/{onu.pon_port_id}/onus/{onu.onu_serial}": {
955 "post": {
956 "summary": "Single/bulk activate ONU(s) for specific PON port(s)",
957 "operationId": "ONUActivate3",
958 "responses": {
959 "200": {
960 "description": "A successful response.",
961 "schema": {
962 "$ref": "#/definitions/legacyBBSimResponse"
963 }
964 },
965 "404": {
966 "description": "Returned when the resource does not exist.",
967 "schema": {
968 "type": "string",
969 "format": "string"
970 }
971 }
972 },
973 "parameters": [
974 {
975 "name": "onu.pon_port_id",
976 "in": "path",
977 "required": true,
978 "type": "integer",
979 "format": "int64"
980 },
981 {
982 "name": "onu.onu_serial",
983 "description": "ONU serial number",
984 "in": "path",
985 "required": true,
986 "type": "string"
987 }
988 ],
989 "tags": [
990 "BBSimService"
991 ]
992 }
993 },
994 "/v0/olt/ports/{port_type}/{port_id}/alarms/los/{status}": {
995 "post": {
996 "summary": "Generate OLT related alarms",
997 "operationId": "GenerateOLTAlarm",
998 "responses": {
999 "200": {
1000 "description": "A successful response.",
1001 "schema": {
1002 "$ref": "#/definitions/legacyBBSimResponse"
1003 }
1004 },
1005 "404": {
1006 "description": "Returned when the resource does not exist.",
1007 "schema": {
1008 "type": "string",
1009 "format": "string"
1010 }
1011 }
1012 },
1013 "parameters": [
1014 {
1015 "name": "port_type",
1016 "in": "path",
1017 "required": true,
1018 "type": "string"
1019 },
1020 {
1021 "name": "port_id",
1022 "in": "path",
1023 "required": true,
1024 "type": "integer",
1025 "format": "int64"
1026 },
1027 {
1028 "name": "status",
1029 "in": "path",
1030 "required": true,
1031 "type": "string"
1032 }
1033 ],
1034 "tags": [
1035 "BBSimService"
1036 ]
1037 }
1038 },
1039 "/v0/olt/ports/{port_type}/{port_id}/status": {
1040 "get": {
1041 "summary": "Get status of a PON/NNI port",
1042 "operationId": "PortStatus",
1043 "responses": {
1044 "200": {
1045 "description": "A successful response.",
1046 "schema": {
1047 "$ref": "#/definitions/legacyPorts"
1048 }
1049 },
1050 "404": {
1051 "description": "Returned when the resource does not exist.",
1052 "schema": {
1053 "type": "string",
1054 "format": "string"
1055 }
1056 }
1057 },
1058 "parameters": [
1059 {
1060 "name": "port_type",
1061 "in": "path",
1062 "required": true,
1063 "type": "string"
1064 },
1065 {
1066 "name": "port_id",
1067 "in": "path",
1068 "required": true,
1069 "type": "integer",
1070 "format": "int64"
1071 },
1072 {
1073 "name": "pon_port_max_onus",
1074 "in": "query",
1075 "required": false,
1076 "type": "integer",
1077 "format": "int64"
1078 },
1079 {
1080 "name": "pon_port_active_onus",
1081 "in": "query",
1082 "required": false,
1083 "type": "integer",
1084 "format": "int64"
1085 },
1086 {
1087 "name": "port_state",
1088 "in": "query",
1089 "required": false,
1090 "type": "string"
1091 },
1092 {
1093 "name": "alarm_state",
1094 "in": "query",
1095 "required": false,
1096 "type": "string"
1097 }
1098 ],
1099 "tags": [
1100 "BBSimService"
1101 ]
1102 }
1103 },
1104 "/v0/olt/status": {
1105 "get": {
1106 "summary": "Get current status of OLT",
1107 "operationId": "OLTStatus2",
1108 "responses": {
1109 "200": {
1110 "description": "A successful response.",
1111 "schema": {
1112 "$ref": "#/definitions/legacyOLTStatusResponse"
1113 }
1114 },
1115 "404": {
1116 "description": "Returned when the resource does not exist.",
1117 "schema": {
1118 "type": "string",
1119 "format": "string"
1120 }
1121 }
1122 },
1123 "tags": [
1124 "BBSimService"
1125 ]
1126 }
1127 },
1128 "/v0/olt/{device_type}/{serial_number}/action/{action}": {
1129 "patch": {
1130 "summary": "Perform actions on OLT/ONU devices (e.g. reboot)",
1131 "operationId": "PerformDeviceAction2",
1132 "responses": {
1133 "200": {
1134 "description": "A successful response.",
1135 "schema": {
1136 "$ref": "#/definitions/legacyBBSimResponse"
1137 }
1138 },
1139 "404": {
1140 "description": "Returned when the resource does not exist.",
1141 "schema": {
1142 "type": "string",
1143 "format": "string"
1144 }
1145 }
1146 },
1147 "parameters": [
1148 {
1149 "name": "device_type",
1150 "in": "path",
1151 "required": true,
1152 "type": "string"
1153 },
1154 {
1155 "name": "serial_number",
1156 "in": "path",
1157 "required": true,
1158 "type": "string"
1159 },
1160 {
1161 "name": "action",
1162 "in": "path",
1163 "required": true,
1164 "type": "string"
1165 }
1166 ],
1167 "tags": [
1168 "BBSimService"
1169 ]
1170 }
1171 },
1172 "/v0/{device_type}/action/{action}": {
1173 "patch": {
1174 "summary": "Perform actions on OLT/ONU devices (e.g. reboot)",
1175 "operationId": "PerformDeviceAction",
1176 "responses": {
1177 "200": {
1178 "description": "A successful response.",
1179 "schema": {
1180 "$ref": "#/definitions/legacyBBSimResponse"
1181 }
1182 },
1183 "404": {
1184 "description": "Returned when the resource does not exist.",
1185 "schema": {
1186 "type": "string",
1187 "format": "string"
1188 }
1189 }
1190 },
1191 "parameters": [
1192 {
1193 "name": "device_type",
1194 "in": "path",
1195 "required": true,
1196 "type": "string"
1197 },
1198 {
1199 "name": "action",
1200 "in": "path",
1201 "required": true,
1202 "type": "string"
1203 }
1204 ],
1205 "tags": [
1206 "BBSimService"
1207 ]
1208 }
1209 }
1210 },
1211 "definitions": {
1212 "legacyBBSimResponse": {
1213 "type": "object",
1214 "properties": {
1215 "status_msg": {
1216 "type": "string"
1217 }
1218 },
1219 "title": "BBSim response message"
1220 },
1221 "legacyFlows": {
1222 "type": "object",
1223 "properties": {
1224 "flows": {
1225 "type": "array",
1226 "items": {
1227 "$ref": "#/definitions/openoltFlow"
1228 }
1229 }
1230 }
1231 },
1232 "legacyOLTInfo": {
1233 "type": "object",
1234 "properties": {
1235 "olt_id": {
1236 "type": "string",
1237 "format": "int64"
1238 },
1239 "olt_serial": {
1240 "type": "string"
1241 },
1242 "olt_ip": {
1243 "type": "string"
1244 },
1245 "olt_state": {
1246 "type": "string"
1247 },
1248 "olt_vendor": {
1249 "type": "string"
1250 }
1251 },
Matteo Scandolof380a972020-09-11 12:09:40 -07001252 "title": "OLT information\nThis supports the older format of the REST APIs (still used from some clients)\nPlease refer to the protos in api/bbsim/bbsim.proto for the latest available version"
Zdravko Bozakov2da76342019-10-21 09:47:35 +02001253 },
1254 "legacyOLTStatusResponse": {
1255 "type": "object",
1256 "properties": {
1257 "olt": {
1258 "$ref": "#/definitions/legacyOLTInfo"
1259 },
1260 "ports": {
1261 "type": "array",
1262 "items": {
1263 "$ref": "#/definitions/legacyPortInfo"
1264 }
1265 }
1266 },
1267 "title": "BBSim status"
1268 },
1269 "legacyONUInfo": {
1270 "type": "object",
1271 "properties": {
1272 "onu_id": {
1273 "type": "integer",
1274 "format": "int64"
1275 },
1276 "pon_port_id": {
1277 "type": "integer",
1278 "format": "int64"
1279 },
1280 "onu_serial": {
1281 "type": "string",
1282 "title": "ONU serial number"
1283 },
1284 "oper_state": {
1285 "type": "string",
1286 "title": "ONU oper state"
1287 },
1288 "onu_state": {
1289 "type": "string",
1290 "title": "ONU internal state"
1291 },
1292 "gemports": {
1293 "type": "array",
1294 "items": {
1295 "type": "integer",
1296 "format": "int64"
1297 }
1298 },
1299 "tconts": {
1300 "$ref": "#/definitions/legacyTconts"
1301 }
1302 },
1303 "title": "ONU information"
1304 },
1305 "legacyONUs": {
1306 "type": "object",
1307 "properties": {
1308 "onus": {
1309 "type": "array",
1310 "items": {
1311 "$ref": "#/definitions/legacyONUInfo"
1312 }
1313 }
1314 },
1315 "title": "Bulk ONU operations"
1316 },
1317 "legacyPortInfo": {
1318 "type": "object",
1319 "properties": {
1320 "port_type": {
1321 "type": "string"
1322 },
1323 "port_id": {
1324 "type": "integer",
1325 "format": "int64"
1326 },
1327 "pon_port_max_onus": {
1328 "type": "integer",
1329 "format": "int64"
1330 },
1331 "pon_port_active_onus": {
1332 "type": "integer",
1333 "format": "int64"
1334 },
1335 "port_state": {
1336 "type": "string"
1337 },
1338 "alarm_state": {
1339 "type": "string"
1340 }
1341 },
1342 "title": "Port information"
1343 },
1344 "legacyPorts": {
1345 "type": "object",
1346 "properties": {
1347 "ports": {
1348 "type": "array",
1349 "items": {
1350 "$ref": "#/definitions/legacyPortInfo"
1351 }
1352 }
1353 },
1354 "title": "Bulk port information"
1355 },
1356 "legacyTconts": {
1357 "type": "object",
1358 "properties": {
1359 "uni_id": {
1360 "type": "integer",
1361 "format": "int64"
1362 },
1363 "port_no": {
1364 "type": "integer",
1365 "format": "int64"
1366 },
1367 "tconts": {
1368 "type": "array",
1369 "items": {
1370 "$ref": "#/definitions/tech_profileTrafficScheduler"
1371 }
1372 }
1373 }
1374 },
1375 "openoltAction": {
1376 "type": "object",
1377 "properties": {
1378 "cmd": {
1379 "$ref": "#/definitions/openoltActionCmd"
1380 },
1381 "o_vid": {
1382 "type": "integer",
1383 "format": "int64"
1384 },
1385 "o_pbits": {
1386 "type": "integer",
1387 "format": "int64"
1388 },
1389 "o_tpid": {
1390 "type": "integer",
1391 "format": "int64"
1392 },
1393 "i_vid": {
1394 "type": "integer",
1395 "format": "int64"
1396 },
1397 "i_pbits": {
1398 "type": "integer",
1399 "format": "int64"
1400 },
1401 "i_tpid": {
1402 "type": "integer",
1403 "format": "int64"
1404 }
1405 }
1406 },
1407 "openoltActionCmd": {
1408 "type": "object",
1409 "properties": {
1410 "add_outer_tag": {
1411 "type": "boolean",
1412 "format": "boolean"
1413 },
1414 "remove_outer_tag": {
1415 "type": "boolean",
1416 "format": "boolean"
1417 },
1418 "trap_to_host": {
1419 "type": "boolean",
1420 "format": "boolean"
Matteo Scandolof380a972020-09-11 12:09:40 -07001421 },
1422 "remark_outer_pbits": {
1423 "type": "boolean",
1424 "format": "boolean"
1425 },
1426 "remark_inner_pbits": {
1427 "type": "boolean",
1428 "format": "boolean"
1429 },
1430 "add_inner_tag": {
1431 "type": "boolean",
1432 "format": "boolean"
1433 },
1434 "remove_inner_tag": {
1435 "type": "boolean",
1436 "format": "boolean"
1437 },
1438 "translate_inner_tag": {
1439 "type": "boolean",
1440 "format": "boolean"
1441 },
1442 "translate_outer_tag": {
1443 "type": "boolean",
1444 "format": "boolean"
Zdravko Bozakov2da76342019-10-21 09:47:35 +02001445 }
1446 }
1447 },
1448 "openoltClassifier": {
1449 "type": "object",
1450 "properties": {
1451 "o_tpid": {
1452 "type": "integer",
1453 "format": "int64"
1454 },
1455 "o_vid": {
1456 "type": "integer",
1457 "format": "int64"
1458 },
1459 "i_tpid": {
1460 "type": "integer",
1461 "format": "int64"
1462 },
1463 "i_vid": {
1464 "type": "integer",
1465 "format": "int64"
1466 },
1467 "o_pbits": {
1468 "type": "integer",
1469 "format": "int64"
1470 },
1471 "i_pbits": {
1472 "type": "integer",
1473 "format": "int64"
1474 },
1475 "eth_type": {
1476 "type": "integer",
1477 "format": "int64"
1478 },
1479 "dst_mac": {
1480 "type": "string",
1481 "format": "byte"
1482 },
1483 "src_mac": {
1484 "type": "string",
1485 "format": "byte"
1486 },
1487 "ip_proto": {
1488 "type": "integer",
1489 "format": "int64"
1490 },
1491 "dst_ip": {
1492 "type": "integer",
1493 "format": "int64"
1494 },
1495 "src_ip": {
1496 "type": "integer",
1497 "format": "int64"
1498 },
1499 "src_port": {
1500 "type": "integer",
1501 "format": "int64"
1502 },
1503 "dst_port": {
1504 "type": "integer",
1505 "format": "int64"
1506 },
1507 "pkt_tag_type": {
1508 "type": "string"
1509 }
1510 }
1511 },
1512 "openoltFlow": {
1513 "type": "object",
1514 "properties": {
1515 "access_intf_id": {
1516 "type": "integer",
1517 "format": "int32"
1518 },
1519 "onu_id": {
1520 "type": "integer",
1521 "format": "int32"
1522 },
1523 "uni_id": {
1524 "type": "integer",
1525 "format": "int32"
1526 },
1527 "flow_id": {
Matteo Scandoloc08a6082021-02-05 11:12:01 -08001528 "type": "string",
1529 "format": "uint64"
1530 },
1531 "symmetric_flow_id": {
1532 "type": "string",
1533 "format": "uint64"
Zdravko Bozakov2da76342019-10-21 09:47:35 +02001534 },
1535 "flow_type": {
1536 "type": "string"
1537 },
1538 "alloc_id": {
1539 "type": "integer",
1540 "format": "int32"
1541 },
1542 "network_intf_id": {
1543 "type": "integer",
1544 "format": "int32"
1545 },
1546 "gemport_id": {
1547 "type": "integer",
1548 "format": "int32"
1549 },
1550 "classifier": {
1551 "$ref": "#/definitions/openoltClassifier"
1552 },
1553 "action": {
1554 "$ref": "#/definitions/openoltAction"
1555 },
1556 "priority": {
1557 "type": "integer",
1558 "format": "int32"
1559 },
1560 "cookie": {
1561 "type": "string",
1562 "format": "uint64"
1563 },
1564 "port_no": {
1565 "type": "integer",
1566 "format": "int64"
Matteo Scandolof380a972020-09-11 12:09:40 -07001567 },
1568 "group_id": {
1569 "type": "integer",
1570 "format": "int64"
1571 },
1572 "tech_profile_id": {
1573 "type": "integer",
1574 "format": "int64"
Matteo Scandoloc08a6082021-02-05 11:12:01 -08001575 },
1576 "replicate_flow": {
1577 "type": "boolean",
1578 "format": "boolean"
1579 },
1580 "pbit_to_gemport": {
1581 "type": "object",
1582 "additionalProperties": {
1583 "type": "integer",
1584 "format": "int64"
1585 }
Zdravko Bozakov2da76342019-10-21 09:47:35 +02001586 }
1587 }
1588 },
Zdravko Bozakov2da76342019-10-21 09:47:35 +02001589 "tech_profileAdditionalBW": {
1590 "type": "string",
1591 "enum": [
1592 "AdditionalBW_None",
1593 "AdditionalBW_NA",
1594 "AdditionalBW_BestEffort",
1595 "AdditionalBW_Auto"
1596 ],
1597 "default": "AdditionalBW_None"
1598 },
1599 "tech_profileDirection": {
1600 "type": "string",
1601 "enum": [
1602 "UPSTREAM",
1603 "DOWNSTREAM",
1604 "BIDIRECTIONAL"
1605 ],
1606 "default": "UPSTREAM"
1607 },
1608 "tech_profileInferredAdditionBWIndication": {
1609 "type": "string",
1610 "enum": [
1611 "InferredAdditionBWIndication_None",
1612 "InferredAdditionBWIndication_Assured",
1613 "InferredAdditionBWIndication_BestEffort"
1614 ],
1615 "default": "InferredAdditionBWIndication_None"
1616 },
1617 "tech_profileSchedulerConfig": {
1618 "type": "object",
1619 "properties": {
1620 "direction": {
1621 "$ref": "#/definitions/tech_profileDirection"
1622 },
1623 "additional_bw": {
1624 "$ref": "#/definitions/tech_profileAdditionalBW"
1625 },
1626 "priority": {
1627 "type": "integer",
1628 "format": "int64"
1629 },
1630 "weight": {
1631 "type": "integer",
1632 "format": "int64"
1633 },
1634 "sched_policy": {
1635 "$ref": "#/definitions/tech_profileSchedulingPolicy"
1636 }
1637 }
1638 },
1639 "tech_profileSchedulingPolicy": {
1640 "type": "string",
1641 "enum": [
1642 "WRR",
1643 "StrictPriority",
1644 "Hybrid"
1645 ],
1646 "default": "WRR"
1647 },
1648 "tech_profileTrafficScheduler": {
1649 "type": "object",
1650 "properties": {
1651 "direction": {
1652 "$ref": "#/definitions/tech_profileDirection"
1653 },
1654 "alloc_id": {
1655 "type": "integer",
1656 "format": "int64"
1657 },
1658 "scheduler": {
1659 "$ref": "#/definitions/tech_profileSchedulerConfig"
1660 },
1661 "traffic_shaping_info": {
1662 "$ref": "#/definitions/tech_profileTrafficShapingInfo"
Matteo Scandolof380a972020-09-11 12:09:40 -07001663 },
1664 "tech_profile_id": {
1665 "type": "integer",
1666 "format": "int64"
Zdravko Bozakov2da76342019-10-21 09:47:35 +02001667 }
1668 }
1669 },
1670 "tech_profileTrafficShapingInfo": {
1671 "type": "object",
1672 "properties": {
1673 "cir": {
1674 "type": "integer",
1675 "format": "int64"
1676 },
1677 "cbs": {
1678 "type": "integer",
1679 "format": "int64"
1680 },
1681 "pir": {
1682 "type": "integer",
1683 "format": "int64"
1684 },
1685 "pbs": {
1686 "type": "integer",
1687 "format": "int64"
1688 },
1689 "gir": {
1690 "type": "integer",
1691 "format": "int64"
1692 },
1693 "add_bw_ind": {
1694 "$ref": "#/definitions/tech_profileInferredAdditionBWIndication"
1695 }
1696 }
1697 }
1698 }
1699}