Message ID | 3334f99f-6700-9732-7644-288953083799@gmail.com |
---|---|
State | Not Applicable |
Headers | show |
Series | [OpenWrt-Devel] odhcpd problem | expand |
Hi, On Fri, Apr 19, 2019 at 7:36 AM e9hack <e9hack@gmail.com> wrote: > > Hi, > > I've trouble with this patch: > > router: improve code readability > No functional changes; just improve code readabilty in send_router_advert() > > I'm using odhcpd a little bit modified. Odhcpd does not provide dhcpv6, but it sends the managed flag that dhcpv6 is > available. Dhcpv6 is done by dnsmasq. I'm using this patch: > > --- a/src/router.c 2018-06-26 14:20:53.000000000 +0200 > +++ b/src/router.c 2018-07-06 09:45:14.473544050 +0200 > @@ -379,12 +379,11 @@ > if (hlim > 0) > adv.h.nd_ra_curhoplimit = hlim; > > - if (iface->dhcpv6) { > + if (iface->dhcpv6) > adv.h.nd_ra_flags_reserved = ND_RA_FLAG_OTHER; > > - if (iface->ra_managed >= RA_MANAGED_MFLAG) > - adv.h.nd_ra_flags_reserved |= ND_RA_FLAG_MANAGED; > - } > + if (iface->ra_managed >= RA_MANAGED_MFLAG) > + adv.h.nd_ra_flags_reserved |= ND_RA_FLAG_OTHER | ND_RA_FLAG_MANAGED; > > if (iface->route_preference < 0) > adv.h.nd_ra_flags_reserved |= ND_RA_PREF_LOW; > > After the code improvement, my Raspberypi's are kicked out from network after a short time. They running headless. > Before this occurs, I can check the dhcpcd status: > > pi@raspberrypi:~ $ sudo systemctl status dhcpcd > â dhcpcd.service - dhcpcd on all interfaces > Loaded: loaded (/lib/systemd/system/dhcpcd.service; enabled; vendor preset: enabled) > Active: active (running) since Thu 2019-04-18 21:07:52 CEST; 9h ago > Process: 380 ExecStart=/usr/lib/dhcpcd5/dhcpcd -q -b (code=exited, status=0/SUCCESS) > Main PID: 392 (dhcpcd) > CPU: 20.817s > CGroup: /system.slice/dhcpcd.service > ââ392 /sbin/dhcpcd -q -b > ââ482 wpa_supplicant -B -c/etc/wpa_supplicant/wpa_supplicant.conf -iwlan0 -Dnl80211,wext > > Apr 19 07:05:05 raspberrypi dhcpcd[392]: eth0: dhcp_envoption 31.0/2: Argument list too long > Apr 19 07:05:05 raspberrypi dhcpcd[392]: eth0: dhcp_envoption 31.0/2: Argument list too long > Apr 19 07:05:05 raspberrypi dhcpcd[392]: eth0: dhcp_envoption 31.0/2: Argument list too long > Apr 19 07:05:05 raspberrypi dhcpcd[392]: eth0: dhcp_envoption 31.0/2: Argument list too long > Apr 19 07:05:05 raspberrypi dhcpcd[392]: eth0: dhcp_envoption 31.0/2: Argument list too long > Apr 19 07:05:05 raspberrypi dhcpcd[392]: eth0: dhcp_envoption 31.0/2: Argument list too long > Apr 19 07:05:05 raspberrypi dhcpcd[392]: eth0: dhcp_envoption 31.0/2: Argument list too long > Apr 19 07:05:05 raspberrypi dhcpcd[392]: eth0: dhcp_envoption 31.0/2: Argument list too long > Apr 19 07:05:05 raspberrypi dhcpcd[392]: eth0: dhcp_envoption 31.0/2: Argument list too long > Apr 19 07:05:05 raspberrypi dhcpcd[392]: eth0: dhcp_envoption 31.0/2: Argument list too long > Apr 19 07:05:05 raspberrypi dhcpcd[392]: eth0: dhcp_envoption 31.0/2: Argument list too long > Apr 19 07:05:05 raspberrypi dhcpcd[392]: eth0: dhcp_envoption 31.0/2: Argument list too long > > What does this 'eth0: dhcp_envoption 31.0/2: Argument list too long' mean and what is the reason for this? > > If they are kicked out, access is not longer possible, even if I revert odhcpd to the previous version and reconnect the > lan cables. I must power off the pi's. > > If the pi's are running well, this is the dhcpcd status: > > pi@raspberrypi:~ $ sudo systemctl status dhcpcd > â dhcpcd.service - dhcpcd on all interfaces > Loaded: loaded (/lib/systemd/system/dhcpcd.service; enabled; vendor preset: enabled) > Active: active (running) since Fri 2019-04-19 07:29:08 CEST; 14s ago > Process: 1023 ExecStop=/sbin/dhcpcd -x (code=exited, status=1/FAILURE) > Process: 1036 ExecStart=/usr/lib/dhcpcd5/dhcpcd -q -b (code=exited, status=0/SUCCESS) > Main PID: 1038 (dhcpcd) > CPU: 351ms > CGroup: /system.slice/dhcpcd.service > ââ1038 /sbin/dhcpcd -q -b > ââ1055 wpa_supplicant -B -c/etc/wpa_supplicant/wpa_supplicant.conf -iwlan0 -Dnl80211,wext > > Apr 19 07:29:08 raspberrypi dhcpcd[1038]: eth0: Router Advertisement from fe80::xxxx:xxxx:xxxx:xxxx > Apr 19 07:29:08 raspberrypi dhcpcd[1038]: eth0: adding address 2003:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx/64 > Apr 19 07:29:08 raspberrypi dhcpcd[1038]: eth0: adding address fde9:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx/64 > Apr 19 07:29:08 raspberrypi dhcpcd[1038]: eth0: adding route to 2003:xxxx:xxxx:xxxx::/64 > Apr 19 07:29:08 raspberrypi dhcpcd[1038]: eth0: adding route to fde9:xxxx:xxxx:xxxx::/64 > Apr 19 07:29:08 raspberrypi dhcpcd[1038]: eth0: adding default route via fe80::xxxx:xxxx:xxxx:xxxx > Apr 19 07:29:08 raspberrypi dhcpcd[1038]: eth0: confirming prior DHCPv6 lease > Apr 19 07:29:09 raspberrypi dhcpcd[1038]: eth0: REPLY6 received from fe80::xxxx:xxxx:xxxx:xxxx > Apr 19 07:29:09 raspberrypi dhcpcd[1038]: eth0: adding address fec0::ffff:0:0:ffff:80/128 > Apr 19 07:29:09 raspberrypi dhcpcd[1038]: eth0: renew in 86400, rebind in 151200, expire in 172800 seconds > [1]+ Done sudo systemctl restart dhcpcd The issue is fixed in commit https://git.openwrt.org/?p=project/odhcpd.git;a=commit;h=6633efeb8196853503305c2714ba6830c8d9c70b Hans > > Regards, > Hartmut
--- a/src/router.c 2018-06-26 14:20:53.000000000 +0200 +++ b/src/router.c 2018-07-06 09:45:14.473544050 +0200 @@ -379,12 +379,11 @@ if (hlim > 0) adv.h.nd_ra_curhoplimit = hlim; - if (iface->dhcpv6) { + if (iface->dhcpv6) adv.h.nd_ra_flags_reserved = ND_RA_FLAG_OTHER; - if (iface->ra_managed >= RA_MANAGED_MFLAG) - adv.h.nd_ra_flags_reserved |= ND_RA_FLAG_MANAGED; - } + if (iface->ra_managed >= RA_MANAGED_MFLAG) + adv.h.nd_ra_flags_reserved |= ND_RA_FLAG_OTHER | ND_RA_FLAG_MANAGED; if (iface->route_preference < 0) adv.h.nd_ra_flags_reserved |= ND_RA_PREF_LOW;