Skip to content
This repository was archived by the owner on Oct 17, 2022. It is now read-only.

Commit

Permalink
Including topology exercise
Browse files Browse the repository at this point in the history
  • Loading branch information
rvilalta committed May 7, 2021
1 parent 3dbc288 commit 0b29021
Show file tree
Hide file tree
Showing 40 changed files with 1,639 additions and 591 deletions.
66 changes: 41 additions & 25 deletions commands.txt
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ $ pyang -f pybind topology.yang --plugindir $PYBINDPLUGIN -o binding_topology.py
$ python3 topology.py

=== EXERCISE: CONNECTION
$ cd /root/OFC_SC472/yang/connection
$ python3 connection.py

== NETCONF
Expand All @@ -34,30 +35,46 @@ In another window, run client:
$ cd /root/OFC_SC472/netconf
$ python3 clientTopology.py

=== EXERCISE: NETCONF EDIT-CONFIG

Run server:
$ cd /root/OFC_SC472/netconf/connection
$ python3 serverTopologyConnection.py

In another window, run client:
$ cd /root/OFC_SC472/netconf/connection
$ python3 clientConnection.py


== RESTCONF

=== YANG2SWAGGER

$ cd /root/OFC_SC472/restconf
(if needed)
$ wget https://github.com/bartoszm/yang2swagger/releases/download/1.1.11/swagger-generator-cli-1.1.11-executable.jar

Generate swagger files:
$ java -jar swagger-generator-cli-1.1.11-executable.jar -yang-dir ../yang/ -output topology.yaml topology
$ java -jar swagger-generator-cli-1.1.11-executable.jar -yang-dir ../yang/ -output connection.yaml connection

=== SERVER
$ cd /root/OFC_SC472/restconf
(if needed)
$ wget https://repo1.maven.org/maven2/io/swagger/codegen/v3/swagger-codegen-cli/3.0.11/swagger-codegen-cli-3.0.11.jar -O swagger-codegen-cli.jar

Create the server:
$ java -jar swagger-codegen-cli.jar generate -i connection.yaml -l python-flask -o server/
$ mkdir /root/OFC_SC472/restconf/server
$ java -jar swagger-codegen-cli.jar generate -i connection.yaml -l python-flask -o server

Run the server:
$ cd /root/OFC_SC472/restconf/server
$ pip3 install -r requirements.txt
(Open /root/OFC_SC472/restconfserver/swagger_server/swagger/swagger.yaml and modify all: "name: connection_id" for "name: connection-id")
(Open /root/OFC_SC472/restconf/server/swagger_server/swagger/swagger.yaml and modify all: "name: connection_id" for "name: connection-id")
RUN AUTOGENERATED SERVER
$ python3 -m swagger_server

RUN CONNECTION SERVER
$ cd /root/OFC_SC472/restconf/connectionserver
$ python3 -m swagger_server
(you have the solution in /root/OFC_SC472/restconf/connectionserver )

RUN CURL AS CLIENT (In another window)
$ cd /root/OFC_SC472/restconf/
Expand All @@ -66,19 +83,15 @@ $ curl -X GET -H "Content-Type: application/yang-data+json" http://127.0.0.1:808
$ curl -X DELETE -H "Content-Type: application/yang-data+json" http://127.0.0.1:8080/data/connection=0/


== RUN ONOS
$ cd /root/onos-2.1.0/apache-karaf-4.2.3/bin/
$ ./karaf clean
> app activate org.onosproject.openflow
> app activate org.onosproject.gui

In another terminal, run mininet:
$ mn --topo linear,3 --mac --controller=remote,ip=127.0.0.1,port=6653 --switch ovs,protocols=OpenFlow13
=== Exercise: RESTCONF TOPOLOGY ===
$ mkdir /root/OFC_SC472/restconf/topologyserver
$ java -jar swagger-codegen-cli.jar generate -i topology.yaml -l python-flask -o topologyserver
$ cd /root/OFC_SC472/restconf/topologyserver
(Open /root/OFC_SC472/restconf/topologyserver/swagger_server/swagger/swagger.yaml and modify all: "name: link_id" for "name: link-id", same for node and port)
$ python3 -m swagger_server

In another terminal, we use ONOS REST API:
$ curl -X GET -u onos:rocks --header 'Accept: application/json' http://localhost:8181/onos/v1/links | python -m json.tool
$ cd /root/OFC_SC472/onos_api/
$ python3 onos_topology.py
RUN CURL AS CLIENT (In another window)
$curl -X GET -H "Content-Type: application/yang-data+json" http://127.0.0.1:8080/data/topology/

== TAPI
RUN TAPI SERVER:
Expand Down Expand Up @@ -191,13 +204,16 @@ $ ./confd_cli
> exit
> exit

== APPENDIX: NETCONF EDIT-CONFIG

Run server:
$ cd /root/OFC_SC472/netconf/connection
$ python3 serverTopologyConnection.py
== RUN ONOS
$ cd /root/onos-2.1.0/apache-karaf-4.2.3/bin/
$ ./karaf clean
> app activate org.onosproject.openflow
> app activate org.onosproject.gui

In another window, run client:
$ cd /root/OFC_SC472/netconf/connection
$ python3 clientConnection.py
In another terminal, run mininet:
$ mn --topo linear,3 --mac --controller=remote,ip=127.0.0.1,port=6653 --switch ovs,protocols=OpenFlow13

In another terminal, we use ONOS REST API:
$ curl -X GET -u onos:rocks --header 'Accept: application/json' http://localhost:8181/onos/v1/links | python -m json.tool
$ cd /root/OFC_SC472/onos_api/
$ python3 onos_topology.py

This file was deleted.

7 changes: 0 additions & 7 deletions restconf/server/swagger_server/models/__init__.py

This file was deleted.

Loading

0 comments on commit 0b29021

Please sign in to comment.