Continuing with SDN: Do not protocol it, flow it
We already separated the control part to the data part, now we will understand how the data part will work. Did you realize we do not have any protocol running inside SDN boxes? How the data will be transfered from an input to an output port? IP, TCP,STP,OSPF,BGP,MPLS... They disapeared? It is Impossible!
Flows... Man...Flows...Like our life, do not control it, just let it flows.
Every box will have a flow table which consists of Match fields and instructions ( I am simplifying too much, sorry).
A data coming from a port will be considered as a flow entry. The SDN box will read any part of the incoming data like source or destination IP addresses, TCP port, MPLS label and compare with the flow table, if match it will follow the instruction that applies, like forward to certain port or ports, push or pop vlans, change mpls labels... but if does not match? It is named tablemiss entry and the data will be droped or forwarded to the controller.
The controler can use a complex software to decide what to do with the incoming data, also consulting OSPF/BGP table to decide and send it to a non openflow port! Ops, Openflow also can run as traditional router or switches? Yes, but the routing algorithym will be in the controller, that will add some lines in the openflow boxes to "simulate" a router/switch.
As you can see the box just follow a table, just forward ( modifying or not some part) or drop, the intelligence is in the controller.
But how the box and the controller communicate? Using the openflow protocol... Let's talk about it latter. Unfortunatelly a little bit deeper than today.
See you soon!
Claudio Couto
A flow table consists of flow entries. Match Fields Priority Counters Instructions Timeouts Cookie Flags