W klasycznym przełączniku bieżące przekazywanie pakietów (Data Path) realizowane jest z tego samego miejsca, co podstawowy poziom kontroli przełącznika (Control Path), czyli z samego urządzenia.
Przełącznik OpenFlow oddziela te dwie funkcje. Przekazywanie pakietów (Data Path) nadal jest realizowane przez przełącznik, zaś jego funkcja kontrolna (Control Path) jest przeniesiona do osobnego sterownika. Przełącznik typu OpenFlow komunikuje się z kontrolerem poprzez protokół OpenFlow, definiujący działania takie jak przyjmowanie, wysyłanie, przekazywanie, modyfikowanie pakietów. Data Path przełącznika to czysta tabela przepływu (Flow Table). Przyjmuje ona przychodzące pakiety celem ich dopasowania a następnie wykonania określonego działania (wysłanie, zmodyfikowanie, usunięcie).
Jeśli przełącznik OpenFlow otrzyma pakiet nie spotykany dotąd, dla którego nie znajduje żadnych pasujących poleceń do tabeli przepływu, wysyła ten pakiet do kontrolera. Ten podejmuje decyzję o tym, jak obsługiwać dany pakiet, np. odrzuca lub dodaje wpis do tabeli przepływu, żeby przełącznik mógł właściwie zadziałać z podobnymi pakietami w przyszłości.