- An OpenFlow switch communcates with a controller(ex. Trema, Floodlight, NOX) over secure channel using the OpenFlow protocol.
- Flow Table contains lots of flow entries which consists of Header Fields, Counters, Actions.
- Flow Entry
- Header Fields to match against packets
- Counters to update for matching packet
- Actions to apply to matching packets
- 12-tuple Header Field from packets used to match against flow entries
- Actions were divided to "Required Action" and "Optional Action", and the OpenFlow switch doesn't need to support all the actions in OpenFlow protocol. So, there are two types OpenFlow-compliant switches : OpenFlow-only, and OpenFlow-enabled.
- The packet is dropped if no forward actions are present.
- A switch may reject a flow entry if it cannot process the action list in the order specified.
- All packets processed by the switch are compared against the flow table. If a matching entry is found, any actions for that entry are performed on the packet. If no match is found, the packet is forwarded to the controller over the secure channel.
- OpenFlow protocol massage types
- Controller-to-Switch : Controller/switch messages are initiated by the controller.(ex. Features, Modify-State : add/delete and modify flows, Read-State:used by the controller to collect statistics, Send-Packet)
- Asynchronous : Switches send asynchronous messages to the controller without the controller soliciting them.(ex. Packet-In : For all packets that do not have a matching flow entry, a packet-in event is sent to the controller, Flow-Removed, Port-status)
- Symmetric : Bidirectional massages exchanges.(ex. Hello, Echo)
References : http://www.openflow.org/



No comments:
Post a Comment