Controller roles

By operating in different modes, controllers can synchronize handoffs in a scenario where multiple controllers are connected to the switch. Per the OpenFlow specification 1.3.1, a Controller can operate in one of the following roles:
  • Equal

  • Master

  • Slave


Equal is the default role for a controller. The controller has full access to the switch and is equal to other controllers in the same role receiving all asynchronous messages from the switch (such as packet-in, flow-removed). Controller-to-switch commands are sent and modified within this role.


A Slave controller has read-only access to the switch. The controller cannot receive switch asynchronous messages except for Port-status messages. The controller is denied execution of the controller-to-switch commands: OFPT_PACKET_OUT, OFPT_FLOW_MOD, OFPT_GROUP_MOD, OFPT_PORT_MOD and OFPT_TABLE_MOD.


The Master controller has full read-write access to the switch. Only one controller can be the Master at a given time. When the role of a controller is changed to Master, the switch changes all other controllers that it connects to, to a Slave role.


To know the roles of controllers that a switch is connected to, use the following command:

show openflow instance <instance-name>


switch(openflow)# show openflow instance test

Configured OF Version         : 1.3 only
Negotiated OF Version         : 1.3
Instance Name                 : test
Data-path Description         : test
Administrator Status          : Enabled
Member List                   : VLAN 3
Pipeline Model                : Standard Match
Listen Port                   : 6633
Operational Status            : Up
Operational Status Reason     : NA
Datapath ID                   : 000340a8f09e8600
Mode                          : Active
Flow Location                 : Hardware and Software
No. of Hardware Flows         : 6
No. of Software Flows         : 4
Hardware Rate Limit           : 0 kbps
Software Rate Limit           : 100 pps
Conn. Interrupt Mode          : Fail-Secure
Maximum Backoff Interval      : 60 seconds
Probe Interval                : 10 seconds
Hardware Table Miss Count     : NA
No. of Software Flow Tables   : 1
Egress Only Ports             : None
Table Model                   : Policy Engine and Software
Source MAC Group Table        : Disabled
Destination MAC Group Table   : Disabled

Controller Id Connection Status Connection State Secure Role
------------- ----------------- ---------------- ------ ------
1             Connected         Active           No     Slave
2             Connected         Active           No     Master