Navigation Menu

Skip to content

Sample applications demonstrating use of pybvc (https://github.com/BRCDcomm/pybvc -- a python support library for Brocade Vyatta Controller) to monitor/configure network via Brocade Vyatta Controller (BVC). Scroll down for more info.

License

BSD-3-Clause, BSD-3-Clause licenses found

Licenses found

BSD-3-Clause
LICENSE
BSD-3-Clause
LICENSE.md

jebpublic/pybvcsamples

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

pybvcsamples

Sample applications demonstrating use of pybvc (a python support library for Brocade Vyatta Controller) to monitor/configure network via Brocade Vyatta Controller (BVC).

Documentation:

Pre-requisites:

Installation

git clone https://github.com/BRCDcomm/pybvcsamples.git

BVC Version Support:

  • 1.1.1 folder has been tested with BVC 1.1.1
  • 1.2.0 folder has been tested with BVC 1.2.0
  • 1.3.0 folder is being tested with BVC 1.3.0 and pybvc 1.3.2

Sample Apps

  • 1.3.0/sampleopenflow/apps/
    • oftool/oftool*: A command line tool for obtaining topology, inventory info as well as flow info. Also provides ability to delete flows.
  • 1.3.0/sampleopenflow/demos/
    • demo1: Get list of OpenFlow nodes and provide generic info for each.
    • demo2: Get detailed info about node with specific name (default node name is openflow:1).
    • demo3: Get detailed info about ports on a node with specific name (default node name is openflow:1).
    • demo4: Add/remove flow to openflow:1 node that Match: Ethernet Type 0x800, IPv4 destination 10.11.12.13/24 Action: Drop
    • demo5: Add/remove flow to openflow:1 node that Match: Ethernet Type 0x800, IPv4 source 10.11.12.13/24 Action: Drop
    • demo6: Add/remove flow to openflow:1 node that Match: Ethernet Type 0x2d, Ethernet source 00:00:00:00:23:ae, Ethernet destination ff:ff:ff:ff:ff:ff Action: drop
    • demo7: Add/remove flow to openflow:1 node that Match: Ethernet Type 0x800, Ethernet source 00:1a:1b:00:22:aa, Ethernet destination 00:2b:00:60:ff:f1, IPv4 source 44.44.44.1/24, IPv4 destination 55.55.55.1/16, Input Port 13 Action: Output (controller)
    • demo8: Add/remove flow to openflow:1 node that Match: Ethernet Type 0x800, Ethernet source 00:1c:01:00:23:aa, Ethernet destination 00:02:02:60:ff:fe, IPv4 source 10.0.245.1/24, IPv4 destination 192.168.1.123/16, IP Protocol Number 56, IP DSCP 15, Input Port 1 Action: Output (controller)
    • demo9: Add/remove flow to openflow:1 node that Match: Ethernet Type 0x800, Ethernet source 00:00:00:11:23:ae, Ethernet destination ff:ff:29:01:19:61, IPv4 source 17.1.2.3/8, IPv4 destination 172.168.5.6/16, IP Protocol Number 6, IP DSCP 2, TCP Source Port 25364, TCP Destination Port 8080, Input Port 13 Action: Output (normal)
    • demo10: Add/remove flow to openflow:1 node that Match: Ethernet Type 0x800, Ethernet source 00:00:00:11:23:ae, Ethernet destination 20:14:29:01:19:61, IPv4 source 192.1.2.3/10, IPv4 destination 172.168.5.6/18, IP Protocol Number 17, IP DSCP 8, IP ECN 3, UDP Source Port 25364, UDP Destination Port 8080, Input Port 13 Action: Output (normal)
    • demo11: Add/remove flow to openflow:1 node that Match: Ethernet Type 0x800, Ethernet source 00:00:00:11:23:ae, Ethernet destination 00:ff:20:01:1a:3d, IPv4 source 17.1.2.3/8, IPv4 destination 172.168.5.6/18, IP Protocol Number 1, IP DSCP 27, IP ECN 3, ICMPv4 Type 6, ICMPv4 Code 3, Input Port 10 Action: Output (normal)
    • demo12: Add/remove flow to openflow:1 node that Match: Ethernet Type 0x806, Ethernet source 11:ab:fe:01:03:31,Ethernet destination ff:ff:ff:ff:ff:ff, ARP Operation 1,ARP source IPv4 192.168.4.1, ARP target IPv4 10.21.22.23ARP source hardware address 12:34:56:78:98:ab,ARP target hardware address fe:dc:ba:98:76:54 Action: Output (controller)
    • demo13: Add/remove flow to openflow:1 node that Match: Ethernet Type 0x800, Ethernet source 00:00:00:11:23:ad,Ethernet destination 00:ff:29:01:19:61, VLAN ID 100, VLAN PCP 3 Action: Output (controller)
    • demo14: Add/remove flow to openflow:1 node that Match: Ethernet Type 0x800, Ethernet source 00:00:00:AA:BB:CC, Ethernet destination FF:FF:AA:BC:ED:FE, Input port 5 Action: Push VLAN / Set Field (VLAN ID 100) / Output (physical port)
    • demo15: Add/remove flow to openflow:1 node that pushes ethernet type VLAN traffic to a particular VLAN ID and port
    • demo16: Add/remove flow to openflow:1 node that Match: Ethernet Type 0x86dd, IPv6 Source fe08::2acf:e9ff:fe21:6431/128, IPv6 Destination aabb:1234:2acf:e9ff::fe21:6431/64 Action: Output (controller)
    • demo17: Add/remove flow to openflow:1 node that Match: Ethernet Type 0x86dd, IPv6 Source fe80::2acf:e9ff:fe21:6431/128, IPv6 Destination aabb:1234:2acf:e9ff::fe21:6431/64, IP DSCP 8, UDP Source Port 25364, UDP Destination Port 7777 Action: Output (controller)
    • demo18: Add/remove flow to openflow:1 node that Match: Ethernet Type 0x86dd, IPv6 Source 2001::2acf:e9ff:fe21:6431/80, IPv6 Destination 2004:1234:2acf:e9ff::fe21:6431/64, IP DSCP 8, TCP Source Port 12345, TCP Destination Port 54321 Action: Output (controller)
    • demo19: Add/remove flow to openflow:1 node that Match: Ethernet Type 0x86dd, IPv6 Source 4321::3210:3210:3210:3210/80, IPv6 Destination 1234:1234:1234:1234::5678:5678/64, IPv6 Flow Label 33, IP DSCP 60, TCP Source Port 11111, TCP Destination Port 22222 Action: Output (controller)
    • demo20: Add/remove flow to openflow:1 node that Match: Ethernet Type 0x86dd, IPv6 Source 1234:5678:9ABC:DEF0:FDCD:A987:6543:210F/76, IPv6 Destination 2000:2abc:edff:fe00::3456/94, IPv6 Flow Label 15, IP DSCP 60, IP ECN 3, ICMPv6 Type 6, ICPMv6 Code 3, Metadata: 0x0123456789ABCDEF Action: Output (controller)
    • demo21: Add/remove flow to openflow:1 node that Match: Ethernet Type 0x86dd, IPv6 Source 1234:5678:9ABC:DEF0:FDCD:A987:6543:210F/76, IPv6 Destination 2000:2abc:edff:fe00::3456/94, IPv6 Flow Label 7, IP DSCP 60, IP ECN 3, TCP Source 1831, TCP Destination 100610, Metadata: 123456789 Action: Output (controller)
    • demo23: Add/remove flow to openflow:1 node that Match: Ethernet Type 0x8847, MPLS Label 0x1b In port 13 Action: Set Field (MPLS Label 44, Output (Physical Port Number 14)
    • demo24: Add/remove flow to openflow:1 node that Match: Ethernet Type 0x8847, MPLS Label 0x2c In port 14 Action: Pop MPLS (Ethernet Type 34887, Output (Physical Port Number 13)
    • demo25: Add/retrieve/remove four flow entries to controller
    • demo26: Add/retrieve/remove seven flow entries to controller, display using compressed oxm format (similar to open vswitch).
    • demo27: Retrieve and display topology information about network seen by controller.
    • demo28: Retrieve and display inventory information about network seen by controller.
    • demo29: Notification service example. Subscribes to controller and receives notifications of any changes to topology and outputs those changes to the screen. You will need to connect some switches to your controller or use mininet.
    • demo30: Another notifcation service example. Same as demo29, but it is for changes to inventory instead of topology.
    • demo31: Add/remove flow to openflow:1 node that Match: In port 10, Ethernet Type 0x800, IPv4 dest addr 10.1.2.3/32 Action: Set IPv4 ToS (tos 8), Output (Physical Port Number 15)
    • demo32: For each openflow capable switch it lists the group table support. The switch must support OpenFlow's GroupTable to work otherwise the demo will exit with an error. Mininet 2.2.0 does not support GroupTable.
    • demo33: Creates/Removes an example of multicast/broadcast group table. The switch must support OpenFlow's GroupTable to work otherwise the demo will show that the group table is not in the operational table (but is in config table). Mininet 2.2.0 does not support GroupTable.
    • demo34: Creates/Removes an example of load balancing group table. The switch must support OpenFlow's GroupTable to work otherwise the demo will show that the group table is not in the operational table (but is in config table). Mininet 2.2.0 does not support GroupTable.
    • demo35: Creates/Removes an example of 'set of common actions' group table. The switch must support OpenFlow's GroupTable to work otherwise the demo will show that the group table is not in the operational table (but is in config table). Mininet 2.2.0 does not support GroupTable.
    • demo36: Creates/Removes an example of 'link fast failover' group table. The switch must support OpenFlow's GroupTable to work otherwise the demo will show that the group table is not in the operational table (but is in config table). Mininet 2.2.0 does not support GroupTable.
  • 1.3.0/samplenetconf/demos
    • ctrl_demo1: List of YANG models supported by the Controller.
    • ctrl_demo2: Retrieve specific YANG model definition from the Controller.
    • ctrl_demo3: List of service provider applications on the controller.
    • ctrl_demo4: Retrieve specific service provider info.
    • ctrl_demo5: List of all NETCONF operations supported by the Controller.
    • ctrl_demo6: Show operational state of all configuration modules on the Controller.
    • ctrl_demo7: Show operational state of a particular configuration module.
    • ctrl_demo8: Show active sessions on the Controller.
    • ctrl_demo9: Show notification event streams registered on the Controller.
    • ctrl_demo10: Add/remove a NETCONF node to the controller.
    • ctrl_demo11: Another example of Add/remove a NETCONF node to the controller.
    • ctrl_demo12: Retrieve and display the configured NETCONF nodes.
    • ctrl_demo13: Retrieve and display the connection status of NETCONF nodes to the controller.
    • vr_demo1: Get supported models of vRouter connected to Controller.
    • vr_demo2: Get definition of specific model of vRouter connected.
    • vr_demo3: Get vRouter configuration.
    • vr_demo4: Get firewall configuration for vRouter.
    • vr_demo5: Get information on dataplane interfaces configured on vRouter.
    • vr_demo6: Get information on loopback interfaces configured on vRouter".
    • vr_demo7: Create complex firewalls for vRouter
    • vr_demo8: adds and removes a VPN configuration for Remote Access VPN Configuration Example - L2TP/IPsec with Pre-Shared Key
    • vr_demo9: adds and removes a VPN configuration for Remote Access VPN Configuration Example - L2TP/IPsec with X.509 Certificates
    • vr_demo10: adds and removes a VPN configuration for site-to-site VPN with pre-shared key (PSK) authentication
    • vr_demo11: adds and removes a VPN configuration for site-to-site VPN with RSA Digital Signature authentication
    • vr_demo12: adds and removes a VPN configuration for Site-to-Site VPN Configuration - X.509 Certificate Authentication
    • vr_demo13: adds and removes a vtun0 OpenVPN tunnel for Site-to-Site Mode with Preshared Secret
    • vr_demo14: adds and removes a vtun0 OpenVPN tunnel for Site-to-Site Mode with TLS
  • 1.3.0/samplenetconf/cmds
    • mount: Mount the vRouter onto Controller.
    • show_cfg: Show config of vRouter.
    • show_ctrl_yangmodel: Return a specified YANG model.
    • show_ctrl_yangmodels: Display a list of available YANG models in Controller..
    • show_dpifcfg: List configuration of each dataplane interface in vRouter.
    • show_dpiflist: List dataplane interfaces of vRouter.
    • show_firewallcfg: Show firewall configuration of vRouter.
    • show_iflist: List interfaces of vRouter.
    • show_lbifcfg: List configuration of each loopback interface in vRouter.
    • show_lbiflist: List loopback interfaces of vRouter.
    • show_mount: List NETCONF nodes mounted on controller and their connection status.
    • show_nodeinfo: List info about node specified in config.yml file.
    • show_nodelist: List all nodes known by the Controller.
    • show_yangmodel: Return a specified YANG model from vRouter device.
    • show_yangmodels: Display a list of available YANG models in vRouter device.
    • unmount: Unmount the vRouter specified in config.yml file.

About

Sample applications demonstrating use of pybvc (https://github.com/BRCDcomm/pybvc -- a python support library for Brocade Vyatta Controller) to monitor/configure network via Brocade Vyatta Controller (BVC). Scroll down for more info.

Resources

License

BSD-3-Clause, BSD-3-Clause licenses found

Licenses found

BSD-3-Clause
LICENSE
BSD-3-Clause
LICENSE.md

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.7%
  • Perl 0.3%