ONOS가 실제 장비에 어떻게 명령을 전달하는가?

Protocol & wire message

Protocol –(wire protocol)→ Infra Device
ONOS의 Protocol 객체가 실제 장비(Infra Device)에 수행될 명령(wire protocol, wire message)를 생성한다.

(출처) ONOS Guide > Arch > Southbound: Protocol, Provider, Drivers

ONOS southbound architecture


ONOS 호환 protocol

(출처) 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


ONOS Protocol 클래스 구조

(출처) ONOS Guide > Arch > Southbound: Protocol, Provider, Drivers

각 프로토콜은 api 서브모듈과 ctl 서브모듈로 구성

  • api : ctl 에서 참조하는 라이브러리
  • 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를 사용하도록 함