GNOME Bugzilla – Bug 637075
ipv6 rdnss handling not RFC compliant
Last modified: 2010-12-15 23:40:36 UTC
RFC5006/RFC6106 specifies fairly detailed how RDNSS entries need to be handled with regard to ordering and updates. Unfortunately NM doesn't follow that description and will therefore misbehave on non-trivial IPv6 networks. Working on patches, stay tuned. ;)
Created attachment 176292 [details] [review] 0001-ip6-rdnss-structure-needs-to-be-packed.patch First a quick minor fix to the data structure.
Created attachment 176293 [details] [review] 0002-ip6-restructure-RDNSS-code-to-be-RFC-compliant.patch Main patch. I've tried to test all code paths here, but if you have time for a more complex setup then please torture it further. :)
Bah... already realised the patch is buggy. changed is not properly initialised in process_nduseropt_rdnss ().
patch1: 4e8cb2f193f90bdcde2e1eb1ddd875c57b5808ea (master) 45e35018c3fa99b1110cb84f0fad1f6bc2071e89 (0.8.x) patch2: 4e8cb2f193f90bdcde2e1eb1ddd875c57b5808ea (master) 3610c0a3cf9b4b2bad1f21196db71a68ce427af9 (0.8.x) I touched up the second patch to be: + switch (opt->nd_opt_type) { + case ND_OPT_RDNSS: + changed = process_nduseropt_rdnss (device, opt); + break; which seems a bit clearer. Thanks again!