Skip to content

RESTCONF Developer Resources

Jim Burns edited this page Sep 29, 2015 · 71 revisions

The Brocade SDN Controller's RESTCONF API provides the ability to program your network. 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 protols: OpenFlow, NETCONF. You can use the RESTCONF API with any programming/scripting language that allows making HTTP requests and receiving HTTP responses.

NOTE: RESTCONF is not suitable for every application and this is why the Brocade SDN Controller also supports the Java MD-SAL interface. To understand RESTCONF interface relative to MD-SAL check out this discussion and also the MD-SAL app development page

Brocade SDN Controller Installation / Upgrade videos.

Videos demonstrating installation of Brocade SDN Controller

BSC Ver. Dockerize Install Upgrade
2.0.1 Install manually
1.3.0 Docker Install via script or manually
1.2.0 Docker Install manually Upgrade 1.1.1 to 1.2.0
1.1.1 N/A Install manually N/A

POSTMAN collection

Reference documentation for Brocade SDN Controller RESTCONF using Google Chrome PostMan utility.

  1. Install POSTMAN
  2. Install/Use BSC POSTMAN Collection
BSC Ver. POSTMAN Import URL Updated
2.0.1 https://www.getpostman.com/collections/2cd16d2d263f48a42244 9/29/15
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 BSC 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] | (See samples folder of pybvc) [updated 9/29/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 Brocade 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 each specific device, including the base set of functions for each version of Brocade 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 BSC Connect Install POSTMAN, Library Support level Language Library Support Language Sample Support
Brocade Vyatta Controller 1.3.0 N/A Docker, Install via script or manually complete pybvc, rubybvc, perlbsc pybvcsamples, rubybvcsamples, perlbscamples
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 base pybvc, rubybvc, perlbsc pybvcsamples, rubybvcsamples, perlbscamples
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 Brocade 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