Conversation
gmelikov
force-pushed
the
sdn-min
branch
2 times, most recently
from
August 16, 2026 12:59
92876c7 to
d0d14a0
Compare
When the route reflector dies, gobgp withdraws reflected routes (it flushes on the shutdown NOTIFICATION even with graceful-restart), and replace-flows tears down the matching OVS flows — so an RR outage breaks existing connectivity. New [gobgp] fail_static option (default: true): while any peer is not ESTABLISHED, sync the union of the freshly computed flows and the last-known-good snapshot; deletions resume once all sessions are back. An empty peer list counts as degraded too, being what a restarted gobgp looks like before it has read its config; a node that genuinely has no peers is unaffected, its snapshot never fills, so the union is a no-op. State is logged when it changes rather than on every step. Metrics: fail_static_active, fail_static_retained_cnt. A union only adds. Local additions and changes still land, a flow being equal to another by its match alone and the fresh side winning; local deletions wait for the sessions to come back. Validated on a 3-node stand: a 2-minute RR outage with flows and connectivity retained, clean release on recovery.
A rule that names a group of workloads rather than a prefix needs the sender's identity to travel with the packet, or every host enforcing it has to be told who the members are and told again on every change. VXLAN-GBP has 16 bits for it, but a tunnel field is cleared crossing a patch port in both directions, so nothing set where policy lives reaches the wire. The skb mark survives that hop, so the fabric copies between the two at the tunnel and interprets neither. Both directions are complete on purpose: every path onto the wire carries it (switched, routed, flooded), and off the wire it is recovered on every flow a tunnel ingress can hit — the Type 2 one, VirtNet's stand-in for a missing Type 2 announce, and the VRF's. Never on local traffic, which had no header and whose mark reading one would erase. [ovs] gbp (default: false) is read once and handed to both the tunnel and the flows, so they cannot disagree, and turning it off unmakes an existing GBP tunnel, so the flag is not one-way. Proven on two real hosts (gcl_sdk sdn_fabric tier).
oslo.config 3.22 reads collections.Mapping, removed in python 3.10, so the service died on import; protobuf 3.14 and grpcio 1.26 have no wheels for a current interpreter. Split by python version, so the old band keeps the pins it had, and bound each new one from above as the rest of this file does. setuptools is pinned for all of them: pbr reads the package version through pkg_resources, which setuptools 81 dropped and a fresh venv no longer provides. pbr itself cannot move past it, loopster caps it at 5.8.1.
The unit job ran `tox -e 3.8`, which is not an environment this tox.ini defines: its commands are bound to the py27/py38 factors, so an env named `3.8` matched none of them and the job passed in 0.02s having run nothing. The matrix now names real environments, py313/py314 are added to the factor list they were missing from, and 3.14 is covered. Lint stays on 3.8. That surfaced two failures the job had never been in a position to see: pytest 8 no longer calls nose-style setup/teardown (renamed to setup_method/teardown_method, which every pytest since 2.x accepts), and pbr needs pkg_resources, which a fresh venv does not ship. Both also fail on master with the same invocation.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
See separate commit descriptions.