| 146 | We have installed the PoX controller under `/tmp/pox`. On the terminal of the OVS host run: |
| 147 | {{{ |
| 148 | cd /tmp/pox |
| 149 | }}} |
| 150 | PoX comes with a set of example modules that you can use out of the box. One of the modules is a learning switch. Let's start the controller: |
| 151 | {{{ |
| 152 | ./pox.py --verbose forwarding.l2_learning |
| 153 | }}} |
| 154 | Go back to the terminal of `host1` and try to ping `host2` again: |
| 155 | {{{ |
| 156 | ping 10.10.1.2 |
| 157 | }}} |
| 158 | Now the ping should work. |
| 159 | |
| 160 | Go back to your OVS host and take a look at the print outs. You should see that your controller installed flows based on the mac addresses of your packets. Kill your controller by pressing `Ctrl-C`. Notice what will happen to your ping. |
| 161 | |
| 162 | === Soft vs Hard Timeouts === |
| 163 | All rules on the switch have two different timeouts: |
| 164 | * '''Soft Timeout''': This determines for how long the flow will remain at the forwarding table of the switch, if there no packets received that match the specific flow. As long as packets from that flow are received the flow remains on the flow table. |
| 165 | * '''Hard Timeout''': This determines the total time that a flow will remain at the forwarding table, independent of whether packets that match the flow are received; i.e. the flow will be removed after the hard timeout expires. |
| 166 | |
| 167 | Can you tell now why there were packets flowing even after you killed your controller? |
| 168 | |