andard interface linking the forwarding and con- trols layers of the SDN architecture, allows management and control of the forwarding plane of network devices (e.g., switches and routers) both physically and virtually. The OpenFlow helps SDN architecture to adapt to the high bandwidth and dynamic nature of user applications, adjust the network to different business needs, and reduce management and maintenance complexity. It must be noted that OpenFlow is not the only protocol avail- able or in development for SDN. To work in an OpenFlow environment, any device that wants to communicate to an SDN controller must support the OpenFlow protocol. The SDN controller sends changes to the switch/router flow table through south-bound interface, allowing network administrators to partition traffic, control flows for optimal performance, and start testing new configurations and applications (see Fig. 1.10). The OpenFlow features support a number of commonly used data-plane protocols, ranging from layer-2 to layer-4, with packet classification being performed using stateless match tables, and packet processing operations, known as actions or instructions, ranging from header modification, metering, QoS, packet replication (e.g., to implement multicast or link aggregation), and packet encapsulation/de-encapsulation. Various statistics are defined per port, per table, and per table entry. Information can be retrieved on demand or via notifica- tions. OpenFlow is, however, not merely an interface. It also defines the expected behavior of the switch and how the behavior can be customized using the interface. An OpenFlow controller is an SDN controller that uses the OpenFlow protocol to connect and 32 Chapter 1 Action Stats Packet + byte counters 1. Forward packet to port(s) 2. Encapsulate and forward to controller 3. Drop packet 4. Send to normal processing pipeline Ingress Ethernet IP SRC IP DST protocol S-Port D-Port + Mask the fields to match Figure 1.10 Example of OpenFlow flow table entries 48,49]. SDN controller SDN contr