No description, website, or topics provided.
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
data Add .gitignore Mar 15, 2019
resources m May 2, 2018
template Add VRF and family capabilities to Add/Mod/Del Mar 19, 2019
ui Add VRF and family capabilities to Add/Mod/Del Mar 19, 2019
utils - update mod template Apr 10, 2018
.gitignore Add .gitignore Mar 15, 2019
LICENSE - update license Oct 2, 2018 Update Fix timedelta weeks detection Apr 10, 2019 Update May 2, 2018
requirements.txt Add Jenkinsfile, update requirements.txt Apr 5, 2019

Demo BGP Flow Spec with PyEZ


In case we have to demonstrate our capabilities automating BGP FlowSpec data handling on a route reflector BFS can be used for.

Use Cases

  • Automate handling of flow route data on the route reflector or external flow route source
  • Automate generating flow route test data on route reflector


  • Flow route actions on route reflector

    • Add new flow route
    • Modify flow route
    • Delete flow route
  • Flow route viewer

    • retrieve flow route information from RR / PE / ASBR / etc.
  • Interact with external flow route source like Arbor APS

    • send change request to flow route source
  • Test data generator

    • Generate static flow route entries on route reflector to demonstrate scale / functionality


  • Linux Box (Centos 7)
    • 1 CPU
    • 1G RAM
  • Python 2.7
  • Working internet connection
    • WebUI loads needed javascript libraries and CSS files from CDN
  • vMX
    • Tested with version 14.1R1 / 17.1R1


All steps should be done as root user.

  • Get Centos 7 box ready
  • Log into to Centos 7 box via SSH
  • Install required packages if needed (This step is only needed if we have to install a newer python version)
    • Centos 7.x should come with python 2.7.5
    • With the next steps we would install python 2.7.14 which is not needed if 2.7.5 is installed
yum install python-devel libxml2-devel libxslt-devel gcc openssl libffi-devel wget curl
yum groupinstall "Development tools"
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel
  • Install python 2.7
cd /usr/src
tar xzf Python-2.7.14.tgz
cd Python-2.7.14
make altinstall
  • Install BFS Demo Tool
    • pip2.7 should be directly available if not use which pip2.7 to obtain the path to binary
git clone
cd BGP_Flowspec_automation_with_PyEZ
pip2.7 or pip install --upgrade -r requirements.txt


We need to add some information about RR and / or the edge router by editing ui/config.yml file and change the settings to fit your environment.

At least one router of type RR has to be configured

age_out_interval: 00:01:00
dev_pw: juniper123
dev_user: root
  - rt1:
      type: rr
  - rt2:
      type: asbr
  • Start bfs tool
    • Python binary should be in path if not use which python2.7 to obtain path info
    • change directory to bfs root
    • Start UI with python2.7 or python
  • Access WebUI URL <IP>:8080