ONOS가 실제 장비에 어떻게 명령을 전달하는가?
Protocol –(wire protocol)→ Infra Device
ONOS의 Protocol 객체가 실제 장비(Infra Device)에 수행될 명령(wire protocol, wire message)를 생성한다.
(출처) ONOS Guide > Arch > Southbound: Protocol, Provider, Drivers

(출처) https://github.com/opennetworkinglab/onos/tree/master/protocols
(출처) https://wiki.onosproject.org/display/ONOS/Southbound+protocols
bgp, bmv2, gnmi, grpc, isis, lisp, netconf, openflow, ospf, ovsdb, p4runtime, pcep, rest, restconf, snmp, tl1, xmpp
각 프로토콜은 api 서브모듈과 ctl 서브모듈로 구성
onos
`- protocols
|- snmp
| |- api
| `- ctl
`- rest
|- api .../HttpSBControllerImpl.java
`- ctl .../RestSBControllerImpl.java |
api/.../HttpSBControllerImpl.java 은 HTTP로 REST의 기본기능을 구현함; HTTP CRUD(get, post, delete, update), oAuth, ...
ctl/.../RestSBControllerImpl.java 은 HttpSBControllerImpl 를 참조하여 ONOS에서 rest를 사용하도록 함