Changes between Version 1 and Version 2 of GENIExperimenter/Tutorials/GREESC13/OpenFlowWiMAX/Execute


Ignore:
Timestamp:
06/24/13 15:19:20 (6 years ago)
Author:
Ryan Izard
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • GENIExperimenter/Tutorials/GREESC13/OpenFlowWiMAX/Execute

    v1 v2  
    4141   $ cd eth_control
    4242   $ ./delete_route.sh
    43    Verify the new routing table has a default route via the br_tap interface no routes via the br_wimax and br_wifi
    44 
    45 interfaces.
     43   }}}
     44   Verify the new routing table has a default route via the br_tap interface no routes via the br_wimax and br_wifi interfaces.
    4645   3.  In Eclipse, run Floodlight by browsing to '''Run-->Run'''. Note the console output shown toward the bottom of the
    47 
    4846Eclipse window. Since OVS is running, and the '''system_setup.sh''' script pointed each OVS bridge to the Floodlight
    49 
    5047controller, you should see where each switch DPID connects to Floodlight.
    5148   4.  In the Root Terminal, open an new tab (File-->Open Tab) or switch to an unused tab. Browse to the '''/root/06-03-
    52 
    534913/eth_control''' directory.
    5450   5.  In this directory are some Python scripts to manually add and remove flows in the OVS bridges. These scripts
    55 
    5651leverage the Static Flow Pusher REST API present in the Floodlight controller. Since we have previously disabled
    57 
    5852Forwarding, flows added by the Static Flow Pusher will be the only flows present on the switches, and thus only traffic
    59 
    6053permitted by these flows will traverse the OVS network. These flows essentially take packets from a particular ingress
    61 
    6254port and send them out a destination port. To do this, we need to determine the port numbers Floodlight has associated
    63 
    6455with the ports of our OVS bridges. The Floodlight REST API is a means of obtaining data from the Floodlight controller. We
    65 
    6656need to send a query to Floodlight asking for what it knows about any connected switches.
    6757   {{{
     
    275265   }}}
    276266   Above is sample output from the query issued. The output is organized by switch -- there should be three -- br_tap,
    277 
    278267br_wifi, and br_wimax. On each of these switches, you can see the ports and the names of the ports as they were given in
    279 
    280268'''system_setup.sh'''. Take note of the port numbers for the patch ports on each switch, as well as the port numbers for
    281 
    282269the interface port on each switch.
    283270   6.  Armed with this information, we can now create the flows we want to insert on each switch. Namely, we can specify
    284 
    285271and ingress and output port on br_tap, br_wifi, and br_wimax for packets traveling in each direction. In the Root
    286 
    287272Terminal, open the Python script '''gree13_switchWiFi.py''' with your favorite text editor. This script is designed to
    288 
    289273switch to the WiFi interface.
    290274   {{{
    291275   $ gedit gree13_switchWiFi.py
    292 
    293276import httplib
    294277import json
    295 
    296278class StaticFlowPusher(object):
    297 
    298279    def __init__(self, server):
    299280        self.server = server
     
    418399   }}}
    419400   In this script, there are four flows for each OVS bridge -- two for outgoing packets and two for incoming packets. Why
    420 
    421401two? OpenFlow filters packets by not only data like MAC and IP addresses, but also by the type of packet (its
    422 
    423402'''ethertype'''). We need to forward all IP (ethertype=0x800) and all ARP (ethertype=0x806) packets in each direction in
    424403