Skip to content

RestConf API

Jim Burns edited this page Sep 28, 2015 · 2 revisions

The SDN Controller's RESTCONF API provides the ability to program your network via the standard OpenDaylight API. It allows creation of automation scripts/applications that will monitor and edit both network equipment configuration as well as rules to control packet flow within your network. It supports programming heterogenous network devices from different vendors as long as the device supports one or more of the following protocols: OpenFlow, NETCONF. You can use the RESTCONF API with any programming/scripting language that allows making HTTP requests and receiving HTTP responses.

Installation / Upgrade videos.

With the Elbrys SDN Developer Portal you do not have to spend time downloading and installing an SDN Controller, you just have to go to your SDN Developer Portal (http://sdn-developer.elbrys.com) select the SDN Controller distribution of interest and click 'start'.

POSTMAN collection

Reference documentation for RESTCONF using Google Chrome PostMan utility.

  1. Install POSTMAN
  2. Install/Use BVC POSTMAN Collection
BVC Ver. POSTMAN Import URL Updated
1.3.0 https://www.getpostman.com/collections/bb0e8011b6539f431149 5/20/15
1.2.0 https://www.getpostman.com/collections/278001617a4545942615 5/12/15
1.1.1 https://www.getpostman.com/collections/30ce3a322b46da54c3eb 3/15/15

Language Support

Although you can write RESTCONF applications in any programming language, having a language-specific support library can make your development quicker and your programs smaller. This table provides links to language-specific libraries and sample applications that use those. The sample applications provide examples of what the SDN controller is capable of as well as providing sample code you can borrow for your own applications.

| Language | Helper Library | Sample Applications | |----------|----------------------------------------------------------------------------------------------------------------------|----------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------| | Python | pybvc 1.3.2 [updated 8/17/15] | samples folder in pybvc [updated 9/28/15]| | Ruby | rubybvc 1.0.0 [updated 5/20/15] | rubybvcsamples [updated 5/20/15]| | Perl | perlbsc 1.0.4 [updated 8/24/15] | perlbscsamples [updated 8/24/15]|

Device-specific Status

Because the SDN Controller exposes programming interfaces that depend on the underlying support of the network device it is important to be able to understand what is and is-not supported for each network device you will program. This section captures the status of the tools for a number of tested devices, including the base set of functions for each version of the SDN controller. Support level is one of the following:

  • complete - the tool has all the device-specific functions
  • partial - the tool has some device-specific functions but is not comprehensive
  • base - the tool has no device specific support, but base controller functions are available
Device ODL Connect Install POSTMAN, Library Support level Language Library Support Language Sample Support
Mininet OpenFlow Install complete pybvc, rubybvc, perlbsc pybvcsamples, rubybvcsamples, perlbscamples
Brocade Vyatta 5600 vRouter NETCONF install partial pybvc, rubybvc, perlbsc pybvcsamples, rubybvcsamples, perlbscamples
HP ProCurve/ ProVision 2920 OpenFlow [[Connect HP]] base pybvc, rubybvc, perlbsc
Brocade MLX OpenFlow NETCONF coming base pybvc, rubybvc, perlbsc pybvcsamples, rubybvcsamples, perlbscamples
Brocade VDX OpenFlow NETCONF coming base pybvc, rubybvc, perlbsc pybvcsamples, rubybvcsamples, perlbscamples
Brocade ICX OpenFlow NETCONF coming base pybvc, rubybvc, perlbsc pybvcsamples, rubybvcsamples, perlbscamples

YANG For RESTCONF Developers

YANG is a definition language that is used by OpenDaylight and SDN controller to define the external capabilities of all the modules within them. Therefore, the RESTCONF API is one representation of the underlying YANG definitions. As a RESTCONF developer you can go pretty far with just understanding the POSTMAN collection and support libraries defined on this page, but if you want a slightly deeper understanding or you wonder how we (or API Explorer) determine the RESTCONF methods then this section will provide you a high level understanding.

As a RESTCONF developer you don't need to be a YANG expert, but if you wish a deeper YANG understanding:

Clone this wiki locally