5 OpenDaylight Controller is Java-based, model-driven controller using YANG
6 as its modeling language for various aspects of the system and applications
7 and with its components serves as a base platform for other OpenDaylight
10 The OpenDaylight Controller relies on the following technologies:
12 * *OSGI* - This framework is the back-end of OpenDaylight as it allows
13 dynamically loading of bundles and packages JAR files, and binding bundles
14 together for exchanging information.
15 * *Karaf* - Application container built on top of OSGI, which simplifies
16 operational aspects of packaging and installing applications.
17 * *YANG* - a data modeling language used to model configuration and
18 state data manipulated by the applications, remote procedure calls, and
21 The OpenDaylight Controller provides following model-driven subsystems as a
22 foundation for Java applications:
24 * *<<_config_subsystem, Config Subsystem>>* - an activation, dependency-injection
25 and configuration framework, which allows two-phase commits of configuration
26 and dependency-injection, and allows for run-time rewiring.
27 * *<<_md_sal_overview,MD-SAL>>* - messaging and data storage functionality for data,
28 notifications and RPCs modeled by application developers. MD-SAL uses YANG
29 as the modeling for both interface and data definitions, and provides
30 a messaging and data-centric runtime for such services based on YANG modeling.
31 * *MD-SAL Clustering* - enables cluster support for core MD-SAL functionality
32 and provides location-transparent accesss to YANG-modeled data.
34 The OpenDaylight Controller supports external access to applications and data using
35 following model-driven protocols:
37 * *NETCONF* - XML-based RPC protocol, which provides abilities for client to
38 invoke YANG-modeled RPCs, receive notifications and to read, modify and
39 manipulate YANG modeled data.
40 * *RESTCONF* - HTTP-based protocol, which provides REST-like APIs to manipulate
41 YANG modeled data and invoke YANG modeled RPCs, using XML or JSON as payload
44 include::md-sal-overview.adoc[MD-SAL]
46 include::md-sal-data-tx.adoc[]
48 include::md-sal-rpc-routing.adoc[MD-SAL Rpc Routing]
50 include::restconf.adoc[RESTCONF]
52 include::config.adoc[Config Subsystem]