OpenFlow Flow Table has following three things:
Header Field, Action, Counters
Header Field:
Each flow table header entry is made up of six components, which define the matching rules and
other basic rules for the corresponding flow.
Match Fields: Used to select packets that match the values in the fields
Ingress Port, Ethernet Source, Ethernet Destionation, Ethernet Type, VLAN ID,
VLAN Priority, IP Source, IP Destination, IP Protocol, IP ToS Bits,
TCP/UDP Source Ports, TCP/UDP Designation Ports
Priority: Relative priority of table entries.
Counters: Updated for matching packets
Instructions: Actions to be taken if a match occurs
Timeouts: Maximum amount of idle time before a flow is expired by the switch
Cookie: Opague data value chosen by the controller
Action:
Each flow entry is associated with zero or more actions that dictate how the device handles
matching packets. Actions in OpenFlow specification are defined as required and optional.
Optional actions are not required to be implemented by vendors as such.
Forward: required actions are ALL, Controller, Local, Table, In-Port
optional actions are Normal, Flood
Drop: required
Modify Field: optional
Counters:
Counters are maintained per-table, per-flow, per-port and per queue. There are a set of required
counters that all the implementations should support and there are additionally optional counters.
Here are various counters:
Table: Active entries, Packet Lookup, Packet Matches
Flow: Received Packets, Received Bytes, Duration (seconds), Duration(nanoseconds)
Port: Received Packets, Transimitted Packets, Received Bytes, Transimitted Bytes,
Receive Drops, Transmit Drops, Receive Errors, Receive Frame Alignment Errors,
Receive Overrun Errors, Receive CRC Errors, Collisions
Queue: Transmit Packets, Transmit Bytes, Transmit Overrun Errors
Examples:
match=(eth.src[40]), action=(drop;)
a broadcast/multicast source MAC, gets dropped
match=(vlan.present), action=(drop;)
Anything with a logical VLAN tag.
No comments:
Post a Comment