Following are the requirements to be setup before running this project
- Python 3
- Mininet from source
- Ryu Controller
- Clone this repository
- Start the controller by
ryu-manager --observe-links controller_multipath.py - Start one of the topologies by
sudo python3 topology_3path.py
When the first packet is sent from h1 to h2, the path between these hosts get calculated using OSPF and weight metrics are calculated depending on number of links between hosts and bandwith of those links. Weight calculation is done using the following equation
Where
- pw(p) is the path weight/cost (uses OSPF cost in previous step)
- n is the total number of paths available.
Controller generates a new flow table entry whose action corresponds to a group table entry. Group table entry in itself has 3 entries, each corresponding to an output port. Weights are assigned based on the logic discussed in previous section.
Now we are testing the capabilities of multipath routing by establishing parallel TCP connections between h1 and h2. In this case, the number of parallel connections is 5.
By examining the ports of s1 and s2, we can see that the flow is mostly directed to ports s3 and s2 where the weights are more (7) in comparison to s1 (6). Similarly in the receiver side, port 3 is connected to h2 while packets are being received from 1,2 and 4. rx of port 4 is lesser compared to 1 and 2







