OpenFlow data plane abstractionflow: defined by header fieldsgeneralized forwarding: simple packet-handling rulesPattern: match values in packet header fieldsActions: for matched packet: drop, forward, modify, matched packet or send matched packet to controllerPriority: disambiguate overlapping patternsCounters: #bytes and #packets