[ovs-dev] [PATCH] dpif-netdev: Fail port addition if reconfiguration failed.

Stokes, Ian ian.stokes at intel.com
Mon Aug 26 16:11:02 UTC 2019


On 8/26/2019 3:12 PM, Ilya Maximets wrote:
> On 23.07.2019 14:20, Ilya Maximets wrote:
>> If the port was destroyed during the initial reconfiguration, we should
>> report an error to the upper layers. Otherwise, successful addition of
>> the port will be logged and upper layers will continue to configure
>> this port. For example, the 'dpif' layer will try to initilaize flow
>> API for this device.
>>
>> Fix that by checking for port existence after reconfiguration. We can't
>> get the real error code here, so let's assume EINVAL. 'ovs-vsctl' will
>> tell the user to check the logs for a real reason anyway.
>>
>> Fixes: e32971b8ddb4 ("dpif-netdev: Centralized threads and queues handling code.")
>> Signed-off-by: Ilya Maximets <i.maximets at samsung.com>
>> ---
> Any thoughts on this?
>
> Best regards, Ilya Maximets.


Good catch Ilya,


to my mind this seems reasonable, if reconfiguration fails then the port 
will be removed from the port list associated with the datapath in 
question, seems a fair way to assess whether re-config was successful.


Tests fine on my side.


Acked

Ian

>
>
>>   lib/dpif-netdev.c | 3 ++-
>>   1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c
>> index d0a1c58ad..75d85b2fd 100644
>> --- a/lib/dpif-netdev.c
>> +++ b/lib/dpif-netdev.c
>> @@ -1862,7 +1862,8 @@ do_add_port(struct dp_netdev *dp, const char *devname, const char *type,
>>   
>>       reconfigure_datapath(dp);
>>   
>> -    return 0;
>> +    /* Check that port was successfully configured. */
>> +    return dp_netdev_lookup_port(dp, port_no) ? 0 : EINVAL;
>>   }
>>   
>>   static int
>>


More information about the dev mailing list