[ovs-discuss] Hello version 0

Ben Pfaff blp at nicira.com
Thu Jul 24 15:07:17 UTC 2014


On Wed, Jul 23, 2014 at 07:59:10PM -0400, Anup Khadka wrote:
> If OVS receives a Hello packet with version set to 0, it logs an error
> "received message while expecting hello" and change's vconn's state without
> sending any message back to the controller.
> 
> Is this a desired behavior? The standard isn't really clear on how to
> process a Hello packet with version == 0 (or if its even a valid OpenFlow
> packet at that point), but I think its reasonable for a controller to
> expect either one of the following two messages:
> 
> 1. An OFPT_ERROR message with OFPET_HELLO_FAILED error type, and
> OFPHFC_INCOMPATIBLE error code (this was the behavior of OVS 1.4.0 stack,
> but the code base, and checks were significantly different then. The old
> code didn't really check for version number range, simply transitioned to
> VCS_SEND_ERROR state, and sent an error back to controller)
> 
> 2. An OFPT_ERROR message with OFPET_BAD_REQUEST error type, and
> OFPBRC_BAD_VERSION error code.

It's not great behavior.

I don't know how OVS would send OFPT_ERROR in this case, though, because
0x00 doesn't represent an OpenFlow version and so there aren't any error
codes to use.

If your controller is trying to negotiate version 0x00, it's buggy.  Fix
it.



More information about the discuss mailing list