> On Jun 18, 2015, at 10:49 AM, Alin Serdean <aserd...@cloudbasesolutions.com> 
> wrote:
> 
> Acked-by: Alin Gabriel Serdean <aserd...@cloudbasesolutions.com>
> 
> 
> 
> -----Mesaj original-----
> De la: dev [mailto:dev-boun...@openvswitch.org] În numele Sorin Vinturis
> Trimis: Thursday, June 18, 2015 8:48 PM
> Către: dev@openvswitch.org
> Subiect: [ovs-dev] [PATCH] datapath-windows: Return success for already 
> existing WFP objects
> 
> There are cases when the WFP callout or sublayer, being persistent objects, 
> already exists when we try to register the OVS callout. In this cases, when 
> trying to add again these WFP objects the return code is 
> STATUS_FWP_ALREADY_EXISTS, which we are interpreting as an error.
> This is incorrect and this patch changes that.
> 
> Signed-off-by: Sorin Vinturis <svintu...@cloudbasesolutions.com>
> Reported-by: Sorin Vinturis <svintu...@cloudbasesolutions.com>
> Reported-at: 
> https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_openvswitch_ovs-2Dissues_issues_84&d=BQIGaQ&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=pNHQcdr7B40b4h6Yb7FIedI1dnBsxdDuTLBYD3JqV80&m=rX71NqE4W3rJm_p7PO1gMTHS01MdjzzvSMvhWrguYnE&s=VWNAc5ZJ39xqft1iOxDl1bgRthpOYFqz00GzSBKNT-I&e=
>  
> ---
> datapath-windows/ovsext/TunnelFilter.c | 12 ++++++++++--
> 1 file changed, 10 insertions(+), 2 deletions(-)
> 
> diff --git a/datapath-windows/ovsext/TunnelFilter.c 
> b/datapath-windows/ovsext/TunnelFilter.c
> index 08cc13f..4224e04 100644
> --- a/datapath-windows/ovsext/TunnelFilter.c
> +++ b/datapath-windows/ovsext/TunnelFilter.c
> @@ -414,7 +414,11 @@ OvsTunnelRegisterDatagramDataCallouts(const GUID 
> *layerKey,
> 
>     status = FwpmCalloutAdd(gEngineHandle, &mCallout, NULL, NULL);
>     if (!NT_SUCCESS(status)) {
> -        goto Exit;
> +        if (STATUS_FWP_ALREADY_EXISTS != status) {
> +            OVS_LOG_ERROR("Failed to add WFP callout, status: %x.",
> +                          status);
> +            goto Exit;
> +        }
>     }


hi Sorin,
What is the fix here? If status == STATUS_FWP_ALREADY_EXISTS, execution would 
continue, and eventually hit the follow code which would unregister the 
callout. No?

OvsTunnelRegisterDatagramDataCallouts()
 Exit:                                                                          
          
                                                                                
          
     if (!NT_SUCCESS(status)){                                                  
          
         if (calloutRegistered) {                                               
          
             FwpsCalloutUnregisterById(*calloutId);                             
          
             *calloutId = 0;                                                    
          
         }                                                                      
          
     }                                                                          
          
                                                                                
          
     return status;                                                             
          
 }                                                                              
          

Can you pls. describe the tests you ran to validate the fix?

thanks,
-- Nithin
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to