Package: openvswitch / 3.7.0-1
Metadata
| Package | Version | Patches format |
|---|---|---|
| openvswitch | 3.7.0-1 | 3.0 (quilt) |
Patch series
view the series file| Patch | File delta | Description |
|---|---|---|
| tests Make routing rules checks more resilient.patch | (download) |
tests/system-route.at |
42 20 + 22 - 0 ! |
tests: make routing rules checks more resilient. The "ovs-route - unsupported rules" test routing rule checks were failing on systems having non-standard routing rules. . These failures occurred because the test performed exact output matching on the full output of 'ovs-appctl ovs/route/rule/show', which includes both user-added and system-cached rules. . When the system has additional routing rules that meet certain criteria (FR_ACT_TO_TBL action without unsupported selectors like fwmark, dport, sport, iif, ipproto, or tun_id), OVS caches them, as expected, causing them to appear in the "Cached:" section of the output. . "ovs-route - unsupported rules" was modified in order to take this situation into account. It now captures the full initial cache state before adding test rules and verifies that the cache state remains unchanged after adding unsupported rules (keeping the intent of the test intact). |
| ovs router Fix disable system route rules filter.patch | (download) |
lib/ovs-router.c |
52 36 + 16 - 0 ! |
ovs-router: fix --disable-system-route rules filter. Even with --disable-system-route set, non-standard system routing rules were still being cached at startup via route_table_reset() calling ovs_router_rule_add() from rule_handle_msg() in route-table.c. . The use_system_routing_table flag was only checked in ovs_router_insert() and ovs_router_lookup_fallback(), but not in ovs_router_rule_add(), allowing non-standard system rules to pollute the routing cache. . Fix this by splitting ovs_router_rule_add() into an internal static ovs_router_rule_add__() function and a public ovs_router_rule_add() wrapper that checks the use_system_routing_table flag before adding rules. Internal callers (init_standard_rules, ovs_router_rule_add_cmd) use the internal version directly, while external callers like route-table.c go through the public API which respects the flag. . ovs_router_rules_flush(false) removes all non-user rules, including the standard routing rules (local, main, default). These standard rules are needed for proper route lookup even when system routing is disabled. . Re-add the standard rules after a non-full flush by calling init_standard_rules() within ovs_router_rules_flush(). |
| ovs router Fix locking in ovs_router_rule_add.patch | (download) |
lib/ovs-router.c |
4 3 + 1 - 0 ! |
ovs-router: fix locking in ovs_router_rule_add(). ovs_router_rule_add() is annotated with OVS_REQUIRES(mutex) but its external caller rule_handle_msg() in route-table.c does not hold the mutex. This could lead to data races on the rules pvector. . Fix this by changing the annotation to OVS_EXCLUDED(mutex) and acquiring the mutex inside ovs_router_rule_add() around the call to the internal ovs_router_rule_add__() function. |
1
