The SDN controller is the central intelligence of your network. It maintains topology, computes paths, and programs switches.
Responsibilities: Discover topology, track link states, compute forwarding paths, install flow rules, provide APIs.
Popular open-source controllers:
OpenDaylight. Large ecosystem, Java-based, strong enterprise adoption.
ONOS. Built for service provider scale, distributed clustering.
Ryu. Lightweight Python controller, good for learning.
Floodlight. Java-based with REST API, simple to deploy.
Choose based on your scale, language preference, and required features.