mirror of
https://github.com/systemd/systemd.git
synced 2026-08-03 22:50:29 +00:00
Merge pull request #12977 from yuwata/network-route-type-local-12975
network: do not touch kernel-created multicast route
This commit is contained in:
@@ -2416,6 +2416,15 @@ static int link_drop_foreign_config(Link *link) {
|
||||
if (route->protocol == RTPROT_KERNEL)
|
||||
continue;
|
||||
|
||||
/* do not touch multicast route added by kernel */
|
||||
/* FIXME: Why the kernel adds this route with protocol RTPROT_BOOT??? We need to investigate that.
|
||||
* https://tools.ietf.org/html/rfc4862#section-5.4 may explain why. */
|
||||
if (route->protocol == RTPROT_BOOT &&
|
||||
route->family == AF_INET6 &&
|
||||
route->dst_prefixlen == 8 &&
|
||||
in_addr_equal(AF_INET6, &route->dst, &(union in_addr_union) { .in6 = {{{ 0xff,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0 }}} }))
|
||||
continue;
|
||||
|
||||
if (route->protocol == RTPROT_STATIC &&
|
||||
FLAGS_SET(link->network->keep_configuration, KEEP_CONFIGURATION_STATIC))
|
||||
continue;
|
||||
|
||||
@@ -2163,6 +2163,12 @@ class NetworkdBridgeTests(unittest.TestCase, Utilities):
|
||||
print(output)
|
||||
self.assertRegex(output, '192.168.0.16/24')
|
||||
|
||||
# for issue #6088
|
||||
print('### ip -6 route list table all dev bridge99')
|
||||
output = check_output('ip -6 route list table all dev bridge99')
|
||||
print(output)
|
||||
self.assertRegex(output, 'ff00::/8 table local metric 256 pref medium')
|
||||
|
||||
self.assertEqual(call('ip link del test1'), 0)
|
||||
time.sleep(3)
|
||||
|
||||
@@ -2179,6 +2185,11 @@ class NetworkdBridgeTests(unittest.TestCase, Utilities):
|
||||
self.assertNotRegex(output, '192.168.0.15/24')
|
||||
self.assertNotRegex(output, '192.168.0.16/24')
|
||||
|
||||
print('### ip -6 route list table all dev bridge99')
|
||||
output = check_output('ip -6 route list table all dev bridge99')
|
||||
print(output)
|
||||
self.assertRegex(output, 'ff00::/8 table local metric 256 (?:linkdown |)pref medium')
|
||||
|
||||
def test_bridge_ignore_carrier_loss(self):
|
||||
copy_unit_to_networkd_unit_path('11-dummy.netdev', '12-dummy.netdev', '26-bridge.netdev',
|
||||
'26-bridge-slave-interface-1.network', '26-bridge-slave-interface-2.network',
|
||||
|
||||
Reference in New Issue
Block a user