I have a question concerning an example of OpenFlow utilization for a campus network made in the paper: Open Flow: Enabling Innovation in Campus Networks. I will first quote the paper to provide some context about the example I am struggling with. After which, I quote the specific passage that I do not understand.
- USING OPENFLOW
As a simple example of how an OpenFlow Switch might be used imagine that Amy (a researcher) invented Amy-OSPF as a new routing protocol to replace OSPF.
She wants to try her protocol in a network of OpenFlow Switches, without changing any end-host software. Amy-OSPF will run in a controller; each time a new application flow starts AmyOSPF picks a route through a series of OpenFlow Switches, and adds a flow- entry in each switch along the path.
In her experiment, Amy decides to use Amy-OSPF for the traffic entering the OpenFlow network from her own desktop PC— so she doesn’t disrupt the network for others. To do this, she defines one flow to be all the traffic entering the OpenFlow switch through the switch port her PC is connected to, and adds a flow-entry with the action “Encapsulate and forward all packets to a controller”.
Following is the excerpt that I struggle to understand:
When her packets reach a controller, her new protocol chooses a route and adds a new flow-entry (for the application flow) to every switch along the chosen path. When subsequent packets arrive at a switch, they are processed quickly (and at line-rate) by the Flow Table
So, if my understanding is correct:
Amy defines one flow to be all the traffic coming from port N on router R.
Add a flow-entry with action "encapsulate+forward to controller".
Packets are routed using Path P_0, to controller C_1
Packets are reaching C_1
Amy-OSPF will compute the best route/path (which may be different from P_0), we call it P_1, from port N on router R to C1.
It multicast the flow-entry to the chosen routers on path P_1, saying that if a packet is labeled to be from port N on router R forward to the next router on P_1.
Each router on path P_1 has a local view of the best path (next hop), whereas C_1 has the global view (all the hops from start to finish).
Further processing will be very fast because the router will just execute the flow-entry communicated by the controller C_1.
Am I missing something? Also, to which router/switch is Amy adding the rules for 0 and 1 (defining a flow, adding a flow-entry "encapsulate + forward to controller").