OpenDaylight (ODL) is an open-source application development and delivery platform. This ACL app uses NETCONF to configure access lists on your routers.
[email protected] (Will be live July 4th 2016)
- Run
pip install -r frontend/requirements.txt
in your python environment - Run
python -m frontend.rest_server_v5
- Run
pip install -r backend/requirements.txt
in your python environment - Create "backend/local_settings.py" with corresponding to "backend/settings.py" variables.
controller_address
andcontroller_auth
variables should be set to establish connection to a working ODL instance with a running network topology. (TBD - supported controller versions)- Make sure current user has enough permissions to create system path specified in "log_file" variable
- Run
python -m backend.app
After deploying frontend and backend:
- Open your browser. (TBD - supported browsers)
- Go to ACL app index page, which can be located at:
%YOUR_HOST%:8020/cisco-ctao/apps/acl/index.html
, where%YOUR_HOST
should be substituted by host name of where frontend is deployed. You should see the main app screen: - Enter an existing node name in the search field in the upper left corner of the page. You'll see a list of existing network interfaces on this node.
- Select an interface and click add to selection list, then click Add ACL.
- Choose New from blank ACL or New from template. Here is an example of a preset template:
- Click Deploy Inbound or Deploy Outbound, enter a name and hit Confirm. Click Back to full map view, then the chevron near selected ACLs and subsequently View ACL. You'll see the ACL applied to your selected interface.
- The ACL is now applied to the interface.
- Create a python package with name equal to app name
- Create following python modules in app package with specific contents (list is to be altered):
topology_parser.py
: 1. ClassTopology
withparse_controller_topology
method that handles parsing topology from controller format to UI usable onehandler.py
: 1. ClassHandler
that subclassestornado.web.RequestHandler
class. It should provide HTTP verb methods (at least get, post, put and delete) and behave like a tornado handler- Add app name to
INSTALLED_APPS
list inbackend/local_settings.py
file - Run backend and check logs to see if app connection has been successful