Hm, dpctl cannot be used with EXOS based switches, because EXOS does not correctly configure a "passive" controller. The "passive" controller seems to listen on localhost only:
Controller : Secondary
Status : INACTIVE
Datapath ID : 00000800273d25b3
VR : VR-Mgmt
Mode : out-of-band Passive
Target : ptcp:127.0.0.1:6633
Uptime(secs) : 0
As a result dpctl cannot connect to the switch:
$ ./dpctl show tcp:192.168.42.3:6633
dpctl: talking to tcp:192.168.42.3:6633: Connection refused
$ telnet 192.168.42.3
Trying 192.168.42.3...
telnet: Unable to connect to remote host: Connection refused
$ ping -c1 192.168.42.3
PING 192.168.42.3 (192.168.42.3) 56(84) bytes of data.
64 bytes from 192.168.42.3: icmp_seq=1 ttl=64 time=1.13 ms
--- 192.168.42.3 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 1.135/1.135/1.135/0.000 ms
$ ssh admin@192.168.42.3 "show openflow"
admin@192.168.42.3's password:
OpenFlow: Enabled
Versions: OpenFlow10, OpenFlow13
Mode: Standard
FDB: On
Access-list width: Single
---< further output omitted >---Just tested with EXOS 21.1.1.4, which includes OpenFlow in the base image.
:-(