I sent a flow to my controller's config DataBase using a REST call using the correct node ID for the switch (not MiniNet). The controller returned a STATUS 200. I then did a GET to the same URL and the controller returned the flow.
Downstream, I have an OVS 2.3.1 switch connected to the controller via OpenFlow 1.3 on the standard port. When I do a TCP dump on the controller, I do not see the controller send anything to the switch. I do see the switch (10.0.0.6) send my controller (10.0.0.5) a "Echo Request" and my Controller replies:
Any reason why my controller would not attempt to send the flow SouthBound?
I tried the approach jamoluhrsen wrote in the comments below. I used the stable Lithium release and only installed the
odl-l2switch-switch-ui module. If I connect my switch to the controller, and then add a flow to the switch with ovs-vsctl, the controller can not see the added flow. I get this error:
015-07-07 13:16:47,250 | WARN | entLoopGroup-6-2 | OFDecoder | 190 - org.opendaylight.openflowjava.openflow-protocol-impl - 0.6.0.Lithium | Message deserialization failed java.lang.IllegalStateException: Deserializer for key: msgVersion: 4 objectClass: org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.Action msgType: 65535 experimenterID: 8992 was not found - please verify that all needed deserializers ale loaded correctly
If I kill the switch, and then start over and connect to the controller and ping everything, then the "first packets" of the pings go to the controller and the controller creates flows. But those flows have alien ID's:
Note this is the same lab scenario I have for: