On Tue, Dec 03, 2019 at 04:18:54PM +0100, Lars Schotte wrote: > Hi folks, > > I have this EdgeRouter Lite an running OpenBSD on it. Now I upgraded it > from 6.5 to 6.6 and ran into a problem that renders my OpenBSD DSL > router unusable, because it fails after PPPoE is started.
This was discussed on the lists last month, resulting in a fix that was committed to -current. https://marc.info/?t=157421116500012&r=1&w=2 You can probably apply the fix from Miod to a 6.6 src tree if upgrading to -current is difficult. https://marc.info/?l=openbsd-bugs&m=157424812129411&q=raw -Bryan. > One important thing to notice here is that my DSL connection is IPv6! > Configuration somewhat like this: > > edge# cat /etc/hostname.pppoe0 > of course I had to move that away in order to start :-) > Alternatively it also works as long as cable is pulled out/modem turned off. > > inet 0.0.0.0 255.255.255.255 NONE pppoedev cnmac1 authproto pap authname > '***' authkey '***' up > inet6 eui64 > !/sbin/route add -inet6 default -ifp pppoe0 fe80::%pppoe0 > > SO! > > Now following happens after I started my DSL Modem: > > tcpdump: listening on cnmac1, link-type EN10MB > 01:47:46.688711 :: > ff02::1:ffe8:bfc6: icmp6: neighbor sol: who has > fe80::3e1e:4ff:fee8:bfc6 [icmp6 cksum ok] (len 24, hlim 255) > 01:48:15.864033 PPPoE-Discovery > code Initiation, version 1, type 1, id 0x0000, length 12 > tag Service-Name, length 0 > tag Host-Uniq, length 4 \263\007R\220 > 01:49:15.846567 PPPoE-Discovery > code Initiation, version 1, type 1, id 0x0000, length 12 > tag Service-Name, length 0 > tag Host-Uniq, length 4 \263\007R\220 > 01:50:15.844513 PPPoE-Discovery > code Initiation, version 1, type 1, id 0x0000, length 12 > tag Service-Name, length 0 > tag Host-Uniq, length 4 \263\007R\220 > 01:51:15.848512 PPPoE-Discovery > code Initiation, version 1, type 1, id 0x0000, length 12 > tag > Trap cause = 2 Frame 0x980000000ffdb860 > Trap PC 0xffffffff813ba9dc RA 0xffffffff8145fe1c fault 0x0 > 0xffffffff813ba928 (1,9800000007f21776,1,2) ra 0xffffffff8145fe1c sp > 0x980000000ffdb9b8, sz 0 > 0xffffffff8145fd10 (1,9800000007f21776,1,2) ra 0xffffffff8145bca4 sp > 0x980000000ffdb9b8, sz 144 > 0xffffffff8145ba30 (1,9800000007f21776,1,2) ra 0xffffffff8145586c sp > 0x980000000ffdba48, sz 128 > 0xffffffff814551b0 (1,9800000007f21776,1,2) ra 0x0 sp 0x980000000ffdbac8, sz > 0 > User-level: pid 93301 > stopped on non ddb fault > Stopped at 0xffffffff813ba9dc: lbu v1,0(a0) > ddb{1}> boot reboot > System restart. > > > On boot: > starting early daemons: syslogd pflogd nsd > Trap cause = 2 Frame 0x980000000ffdb860 > Trap PC 0xffffffff813ba9dc RA 0xffffffff8145fe1c fault 0x0 > 0xffffffff813ba928 (1,980000000644b476,1,2) ra 0xffffffff8145fe1c sp > 0x980000000ffdb9b8, sz 0 > 0xffffffff8145fd10 (1,980000000644b476,1,2) ra 0xffffffff8145bca4 sp > 0x980000000ffdb9b8, sz 144 > 0xffffffff8145ba30 (1,980000000644b476,1,2) ra 0xffffffff8145586c sp > 0x980000000ffdba48, sz 128 > 0xffffffff814551b0 (1,980000000644b476,1,2) ra 0x0 sp 0x980000000ffdbac8, sz > 0 > User-level: pid 45763 > stopped on non ddb fault > Stopped at 0xffffffff813ba9dc: lbu v1,0(a0) > ddb{1}> boot reboot > System restart. > > Same thing! > > So ... I was experimenting somewhat in order to get some more info for you: > Trap cause = 2 Frame 0x980000000ffdb860 > Trap PC 0xffffffff813ba9dc RA 0xffffffff8145fe1c fault 0x0 > 0xffffffff813ba928 (1,9800000005b73976,1,2) ra 0xffffffff8145fe1c sp > 0x980000000ffdb9b8, sz 0 > 0xffffffff8145fd10 (1,9800000005b73976,1,2) ra 0xffffffff8145bca4 sp > 0x980000000ffdb9b8, sz 144 > 0xffffffff8145ba30 (1,9800000005b73976,1,2) ra 0xffffffff8145586c sp > 0x980000000ffdba48, sz 128 > 0xffffffff814551b0 (1,9800000005b73976,1,2) ra 0x0 sp 0x980000000ffdbac8, sz > 0 > User-level: pid 64532 > stopped on non ddb fault > Stopped at 0xffffffff813ba9dc: lbu v1,0(a0) > ddb{0}> trace > 0xffffffff813ba928 (1,9800000005b73976,1,2) ra 0xffffffff8145fe1c sp > 0x9800000 > 00ffdb9b8, sz 0 > 0xffffffff8145fd10 (1,9800000005b73976,1,2) ra 0xffffffff8145bca4 sp > 0x9800000 > 00ffdb9b8, sz 144 > 0xffffffff8145ba30 (1,9800000005b73976,1,2) ra 0xffffffff8145586c sp > 0x9800000 > 00ffdba48, sz 128 > 0xffffffff814551b0 (1,9800000005b73976,1,2) ra 0x0 sp 0x980000000ffdbac8, sz > 0 > > User-level: pid 64532 > ddb{0}> help > machine kill print p pprint examine > x search set write w delete > d break dwatch watch step s > continue c until next match trace > bt call ps callout show boot > help hangman dmesg > ddb{0}> examine > 0xffffffff813ba9dc: 90830000 > ddb{0}> > ddb{0}> continue > panic: trap > Starting stack trace... > mips trace requires a trap frame... giving up > End of stack trace. > syncing disks... > > Here machine hanged itself, had to turn off power. > > And again, I was trying to find out somewhat more: > > ddb{1}> show register > at 0x1 > v0 0x980000000ffdba28 > v1 0x9800000003a5f377 > a0 0x1 > a1 0x9800000003a5f376 > a2 0x1 > a3 0x2 > a4 0x1 > a5 0xae79a5801a40124f > a6 0xae79a5801a40124f > a7 0xc00000000000afe0 > t0 0x2 > t1 0 > t2 0x1 > t3 0xce2d0000 > s0 0xffffffff815f0000 > s1 0x9800000003a5f300 > s2 0xffffffff815af558 > s3 0x9800000003a5f376 > s4 0x1 > s5 0xffffffff > s6 0x9800000003a5f370 > s7 0x1 > t8 0x272dce97f87b7500 > t9 0xffffffff8118e380 > k0 0x5b10 > k1 0x5b00 > gp 0xffffffff815dca20 > sp 0x980000000ffdb9b8 > s8 0x8851 > ra 0xffffffff8145fe1c > sr 0x10008fe3 > lo 0x6b9f78acc26fb8 > hi 0 > bad 0 > cs 0x8 > pc 0xffffffff813ba9dc > 0xffffffff813ba9dc: lbu v1,0(a0) > ddb{1}> show panic > the kernel did not panic > ddb{1}> show mbuf > mbuf 0xffffffff813ba9dc > m_type: 0 m_flags: 0 > > Trap cause = 4 Frame 0x980000000ffdb3b0 > Trap PC 0xffffffff8130bd34 RA 0xffffffff8130bd24 fault 0xffffffff813ba9dc > 0xffffffff8130bc88 (c00000000000c470,9001070000000000,228,0) ra > 0xffffffff8130bd24 sp 0x980000000ffdb508, sz 0 > 0xffffffff8130bc88 (c00000000000c470,9001070000000000,228,0) ra 0x0 sp > 0x980000000ffdb508, sz 0 > User-level: pid 88020 > Caught exception in ddb. > ddb{1}> > > ddb{1}> show socket > socket 0xffffffff813ba9dc > so_type: 992 > so_options: 0x0008 > so_linger: 0 > so_state: 0x64a50001 > > Trap cause = 4 Frame 0x980000000ffdb340 > Trap PC 0xffffffff811bfccc RA 0xffffffff811bfcb8 fault 0xffffffff813ba9e4 > 0xffffffff811bfbd0 (c00000000000c470,9001070000000000,228,0) ra > 0xffffffff81200b9c sp 0x980000000ffdb498, sz 144 > 0xffffffff81200b78 (c00000000000c470,9001070000000000,228,0) ra > 0xffffffff81200638 sp 0x980000000ffdb528, sz 16 > 0xffffffff81200240 (c00000000000c470,9001070000000000,228,0) ra > 0xffffffff81201a98 sp 0x980000000ffdb538, sz 208 > 0xffffffff812018e8 (c00000000000c470,9001070000000000,228,0) ra > 0xffffffff812ff004 sp 0x980000000ffdb608, sz 208 > 0xffffffff812feda0 (c00000000000c470,9001070000000000,228,0) ra > 0xffffffff81049024 sp 0x980000000ffdb6d8, sz 48 > 0xffffffff81048e14 (c00000000000c470,9001070000000000,228,0) ra 0x0 sp > 0x980000000ffdb708, sz 0 > User-level: pid 88020 > Caught exception in ddb. > ddb{1}> > > And so on. It says that it did not panic, but this trap has exactly an effect > like a panic. > Router drops into DDB even though sysctl panic=0, so he does not care about > that. Does not > restart automatically. > > I collected these outputs by copying it using GNU screen > from a ttyUSB console (console connected on Edgerouter Lite). > > Hope that helps! > > To me it looks like it fails during PPPoE initialization. > I do not have here an IPv4-only PPPoE, > so I can not tell if it is happening on IPv6-only PPPoE. > However, it is an update of OpenBSD 6.5 which worked fine, > OpenBSD 6.6 broke this. Configuration did not change. > > First I was thinking maybe it had something to do with > a bridge I was filtering on bad BRAS MAC addresses, on cnmac1, > where my DSL Modem is connected, but it was not the bridge. > It fails also without a bridge. It is definitely PPPoE device. > When I turn off the modem, or I simply remove /etc/hostname.pppoe0 > in order not to start PPPoE, like stated above, the router works > without reliability issues (sofar). > > > -- > Lars Schotte > Mudroňova 13 > 92101 Piešťany
