[ovs-dev] [PATCH v2] ofproto/ofproto.c: After port_mod + barrier, port config may not be updated

Ben Pfaff blp at nicira.com
Thu Oct 18 18:31:03 UTC 2012

On Thu, Oct 18, 2012 at 08:08:52AM +0900, Isaku Yamahata wrote:
> The following OF packets may produce the wrong result as follows.
> It depends on how ovs-vswitchd serves OF packets. Sending the OF packets
> in single TCP packet will increase the possiblity.
> OF request:
>   feature request
>   port_mod with config LINK DOWN
>   barrier
>   feature request
> The replies:
>   feature reply with port config UP
>   barrier
>   feature reply with port config UP (this should be DOWN because
>                                      it's after barrier)
>   port status with port config = DOWN and port status = DOWN
> The direct cause is updte_port_config() @ ofproto/ofproto.c doesn't update
> ofputil_phy_port::config. And later the config member is updated
> by update_port() in main loop().
> It seems that it tries to produce port_status event due to config change.
> But changing other OFPC flags doesn't generate port_status event, so it's
> consistent not to generate the event when OFPC_LINK_DOWN flag is changed.
> Signed-off-by: Isaku Yamahata <yamahata at valinux.co.jp>

You did a good job preserving the existing properties of this code, but
the existing properties are really confusing and I'm having a really
hard time figuring out why they exist.  That's bad, because I'm almost
certainly the original author of this code.

I think I need to take some time to figure out why this code is so odd,
before we continue to hack on it more.  I'll try to do that tomorrow.

More information about the dev mailing list