Summary: | [lo] FreeBSD does not assign linklocal address to loopbacks >0 | ||||||
---|---|---|---|---|---|---|---|
Product: | Base System | Reporter: | cwf-ml | ||||
Component: | kern | Assignee: | freebsd-net (Nobody) <net> | ||||
Status: | Closed FIXED | ||||||
Severity: | Affects Only Me | CC: | ae, eugen | ||||
Priority: | Normal | ||||||
Version: | Unspecified | ||||||
Hardware: | Any | ||||||
OS: | Any | ||||||
Attachments: |
|
Description
cwf-ml
2009-09-09 21:00:06 UTC
Responsible Changed From-To: freebsd-bugs->freebsd-net Over to maintainer(s). For bugs matching the following criteria: Status: In Progress Changed: (is less than) 2014-06-01 Reset to default assignee and clear in-progress tags. Mail being skipped Created attachment 189363 [details]
Proposed patch
in6_ifattach fails to add IPv6 loopback address to loopback interface due to it already exists on lo0 and then just exits before LLA should be assigned.
This patch changes the behavior, it checks for IPv6 loopback address existence in the whole system, not only on given interface. And if loopback address is already configured, it doesn't try assign it again.
A commit references this bug: Author: ae Date: Mon Jan 29 10:33:56 UTC 2018 New revision: 328540 URL: https://svnweb.freebsd.org/changeset/base/328540 Log: Assign IPv6 link-local address to loopback interfaces whith unit > 0. When an interface has IFF_LOOPBACK flag in6_ifattach() tries to assing IPv6 loopback address to this interface. It uses in6ifa_ifpwithaddr() to check, that interface doesn't already have given address and then uses in6_ifattach_loopback(). If in6_ifattach_loopback() fails, it just exits and thus skips assignment of IPv6 LLA. Fix this using in6ifa_ifwithaddr() function. If IPv6 loopback address is already assigned in the system, do not call in6_ifattach_loopback(). PR: 138678 MFC after: 3 weeks Changes: head/sys/netinet6/in6_ifattach.c A commit references this bug: Author: ae Date: Mon Feb 19 10:30:34 UTC 2018 New revision: 329558 URL: https://svnweb.freebsd.org/changeset/base/329558 Log: MFC r328540: Assign IPv6 link-local address to loopback interfaces whith unit > 0. When an interface has IFF_LOOPBACK flag in6_ifattach() tries to assing IPv6 loopback address to this interface. It uses in6ifa_ifpwithaddr() to check, that interface doesn't already have given address and then uses in6_ifattach_loopback(). If in6_ifattach_loopback() fails, it just exits and thus skips assignment of IPv6 LLA. Fix this using in6ifa_ifwithaddr() function. If IPv6 loopback address is already assigned in the system, do not call in6_ifattach_loopback(). PR: 138678 Changes: _U stable/11/ stable/11/sys/netinet6/in6_ifattach.c Fixed in head/ and stable/11. Thanks! |