> On Jun 18, 2015, at 10:49 AM, Alin Serdean <[email protected]>
> wrote:
>
> Acked-by: Alin Gabriel Serdean <[email protected]>
>
>
>
> -----Mesaj original-----
> De la: dev [mailto:[email protected]] În numele Sorin Vinturis
> Trimis: Thursday, June 18, 2015 8:48 PM
> Către: [email protected]
> 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 <[email protected]>
> Reported-by: Sorin Vinturis <[email protected]>
> 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
[email protected]
http://openvswitch.org/mailman/listinfo/dev