Search code examples
sdnopenflowpox

Changing Bandwidth Allocation of a traffic path via OpenFlow


Is it possible to change the bandwidth allocation for a certain path reactively in SDN? Suppose in my POX controller I create a path S -> A -> B -> D (S is a client, D is a web server). Can I change the bandwidth of this path in realtime using POX and OpenFlow? If so, I don't see how to do that via flow table in each switch along this path.

Thank you so much.


Solution

  • POX uses Openflow 1.0. That said you can not directly change the bandwidth that has been setup in the Mininet topology (assume you use minitet). In order to setup a bandwidth control you have to mess up with Queues (Section 5.3.4 Queue Configuration Messages in the Openflow 1.0 specs).

    The idea is simple to get, but a bit difficult to implement. Let's say you have a client A that makes requests to Client B. To your QoS aggrement you said that the connection between those two clients can not be less than 3MB/s (24mbits/s). You have to keep record of the bandwidth in this route (A->B). Based on the current load, and the minimum required by this 2 clients you have to queue up and down the requests in the Openflow enabled switches so that they get served on time or delayed.

    To measure bandwitdh with POX please refer to this link line 84. For a verified solution on bandwidth QoS etc. please read about FlowVisor that uses queues and slices.