[[PageOutline]] This page describes how to run an OpenFlow tutorial in Mesoscale that gets around the manual approval process. We expect that this won't be needed any more after Foam 1.8 is installed in the sites. In summary the idea is to create a big slice that will contain all the flowspace for the tutorial and as the controller for that slice use a !FlowVisor (called tutorial-fv from now on) that is controlled by FOAM (called tutorial-foam). This wiki page provides step-by-step instructions. == 1. Install a FV, FOAM on a new machine == First start by installing FOAM and FV on a new machine. Currently it is not easy to run two instances of FOAM on the same machine so use a dedicated machine for this. [https://openflow.stanford.edu/display/DOCS/Installation+Guide Instructions about installing Flowvisor] [https://openflow.stanford.edu/display/FOAM/Install+Guide Instructions about installing FOAM] ==== OPTIONAL : Turn auto-approval on ==== If the users of the tutorial are going to create safe slivers (e.g. no loops), or if they are using precanned rspecs that are tested and safe then you can turn auto-approval on in FOAM, so that the administrator does not have to manually approve all the slices during the tutorial. To do this, you will need to install curl : {{{ sudo apt-get install curl }}} And then execute this command: {{{ curl -kn -u foamadmin: https://localhost:3626/admin/set-config -X POST -H "Content-Type: application/json" -d '{"key":"auto_approve","value":true}' }}} The result should look like: {{{ {"msg": "", "retcode": 0, "value": {"status": "success"}} }}} == 2. Create a big tutorial slice == Next step is to reserve the resources you want in all the OpenFlow AMs that you want to use in the tutorial. In this example at the tutorials the users will use : * All Mesoscale sites ([attachment:openflow-clemson-tut13foam.rspec Clemson], [attachment:openflow-gatech-tut13foam.rspec Gatech], [attachment:openflow-bbn-tut13foam.rspec GPO], [attachment:openflow-indiana-tut13foam.rspec Indiana], [attachment:openflow-internet2-tut13foam.rspec Internet2], [attachment:openflow-nlr-tut13foam.rspec NLR], [attachment:openflow-rutgers-tut13foam.rspec Rutgers], [attachment:openflow-stanford-tut13foam.rspec Stanford], [attachment:openflow-wisconsin-tut13foam.rspec Wisconsin], [attachment:openflow-washington-tut13foam.rspec Washington]) * All hosts on all sites * Vlan 3715 and Vlan 3716 * IP subnets : 10.42.112.0/24, 10.42.113.0/24, 10.42.116.0/24 - 10.42.132.0/24, 10.42.136.0/24, 10.42.137.0/24, 10.42.139.0/24, 10.42.144.0/24 * Ethernet types : 0x2772 - 0x279B In all the OpenFlow rspecs, make sure you replace the custom information for your site : * modify the ` tag * modify the `` tag * only include ports that you need * modify IP subnets and ethernet types == 3. Create sample OF rspecs for users == Openflow rspecs are complicated to write and it is easy for a first time user to get them wrong. In the tutorial use template OpenFlow rspecs where the users have to substitute specific information. For the example tutorial we used [attachment:openflow-tutorial-template.rspec this template rspec]. On the top there are instructions about what to substitute. We also gave paper slips to users with personalized info.