-
Notifications
You must be signed in to change notification settings - Fork 12
RESTCONF Developer Resources
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
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 |
Reference documentation for Brocade SDN Controller RESTCONF using Google Chrome PostMan utility.
| 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 |
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]|
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 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:
(c) Copyright 2015 Brocade Communications Systems, Inc.