Skip to content

Commit bf38adb

Browse files
Merge pull request #2946 from openshift-cherrypick-robot/cherry-pick-2910-to-release-4.21
[release-4.21] OCPBUGS-83422: wait for patch port to apply drop garp flows
2 parents 259ea6b + 76e5c5c commit bf38adb

1 file changed

Lines changed: 31 additions & 2 deletions

File tree

bindata/network/ovn-kubernetes/common/008-script-lib.yaml

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -256,9 +256,38 @@ data:
256256
local of_port
257257
of_port=$(ovs-vsctl get interface "$port_name" ofport)
258258
ovs-ofctl add-flow "$bridge" "cookie=$cookie,table=0,priority=$priority,in_port=$of_port,arp,arp_op=1,actions=drop" > /dev/null
259-
break
259+
echo "$(date -Iseconds) - INFO - Added GARP drop flow on $bridge port $port_name (ofport=$of_port)"
260+
return 0
261+
fi
262+
done
263+
264+
# Port not found
265+
return 1
266+
}
267+
268+
# Wait for patch port to exist and add GARP drop flow.
269+
wait-and-add-garp-drop-flow() {
270+
local bridge="$1"
271+
local max_retries=90
272+
local retries=0
273+
274+
while [[ "${retries}" -lt "${max_retries}" ]]; do
275+
if add_garp_drop_flow "${bridge}"; then
276+
return 0
277+
fi
278+
279+
(( retries += 1 ))
280+
281+
# Log once after 30 seconds to indicate we're still waiting
282+
if [[ "${retries}" -eq 15 ]]; then
283+
echo "$(date -Iseconds) - INFO - Waiting for patch port on ${bridge} to be ready..."
260284
fi
285+
286+
sleep 2
261287
done
288+
289+
echo "$(date -Iseconds) - WARN - Failed to add GARP drop flow on ${bridge} after ${max_retries} attempts (best-effort workaround)"
290+
return 1
262291
}
263292

264293
# quit-nbdb() will cleanly shut down the northbound dbserver. It is intended
@@ -524,7 +553,7 @@ data:
524553
# start temp work around
525554
# remove when https://issues.redhat.com/browse/FDP-1537 is available
526555
if ovs-vsctl br-exists "br-ex"; then
527-
add_garp_drop_flow br-ex
556+
(wait-and-add-garp-drop-flow br-ex &)
528557
fi
529558
# end temp work around
530559

0 commit comments

Comments
 (0)