> 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