Bug 252121 - rtadvd should not put an upper limit on rdnssltime and dnsslltime
Summary: rtadvd should not put an upper limit on rdnssltime and dnsslltime
Status: Open
Alias: None
Product: Base System
Classification: Unclassified
Component: bin (show other bugs)
Version: 12.2-RELEASE
Hardware: Any Any
: --- Affects Some People
Assignee: freebsd-bugs (Nobody)
URL:
Keywords: easy
Depends on:
Blocks:
 
Reported: 2020-12-25 01:57 UTC by Kevin Barry
Modified: 2023-03-22 22:10 UTC (History)
1 user (show)

See Also:


Attachments
Removes upper limit on RDNSS and DNSSL lifetimes. (1.20 KB, patch)
2020-12-25 01:57 UTC, Kevin Barry
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Kevin Barry 2020-12-25 01:57:52 UTC
Created attachment 220903 [details]
Removes upper limit on RDNSS and DNSSL lifetimes.

rtadvd (in config.c) limits both rdnssltime and dnsslltime to 2*maxinterval. If this limit is exceeded, rtadvd completely discards the corresponding rdnss or dnssl and sends router advertisements without it. This means that sending RAs every 15s places an upper limit on rdnssltime of 30s.

Specifically, this short lifetime seems to prevent Android 11 (maybe others) from accepting the RDNSS option. (It's unclear what its minimum is, but 600s seems to be fine.)

I've attached a patch to effectively remove the upper limits. To make it minimally intrusive, I just set the upper limit to USHRT_MAX. (Potentially making it 32-bit would be a separate issue.)

Note that RFC 8106 (https://tools.ietf.org/html/rfc8106) recommends a default value of 3*maxinterval for both parameters, and doesn't mention any sort of upper limit.