In an abstract way, Software Defined Networking controls the forwarding plane elements remotely for the purpose of determining communication path and other controlling matters. I learned that SDN forwarding plane consists of (programmable) switches which is sometimes denoted by OpenFlow-based switches such as OpenvSwitch. However, I've read multiple times that SDN can be used to remotely control real conventional hardware switches!! This really changes everything I've learned so far! Is that really possible?
First, as I indicated in What Exactly is SDN?, if it ain't running the trademarked OpenFlow® protocol, it ain't SDN, it's SDN Fashioned. OpenFlow®'s owner, the ONF, spells out a Software-Defined Networking (SDN) Definition which specifies that the OpenFlow® protocol is a foundational element for building SDN solutions.
Cisco, for example, owns and markets an SDN fashioned solution called Cisco Application Centric Infrastructure (ACI) which they say is better and more feature rich than plain old SDN w/ OpenFlow®. Cisco also markets a pre-packaged plug&play SDN fashioned product called Cisco Meraki.
VMWare offers an SDN fashioned product called NSX. With their solution, the SDN functionality is an overlay. They basically tunnel/encapsulate another network on top of the existing underlying IP network and Ethernet switches.
Finally, to answer your question, in order for an Ethernet switch to be controlled by an SDN controller it must speak OpenFlow® or some vendor specific flavor of something similar such as Cisco's OpFlex.