Hello,

As bird makes 6.6 panic, I tested it on 6.6-current. The kernel does
not panic, but after bird runs, networking deos not work anymore.

Bird seems to work correctly, it inserts routes in the kernel as
intended :

(before bird)
Routing tables

Internet:
Destination        Gateway            Flags   Refs      Use   Mtu  Prio Iface
default            10.42.42.1         UG1        0        0     -    56 em0  
224/4              127.0.0.1          URS        0       17 32768     8 lo0  
10.42.2/24         10.42.42.21        UG1        0        0     -    56 em0  
10.42.42/24        10.42.42.69        U1h        1       51     -    56 em0  
10.42.42.3         10.42.42.69        UGHD       1       51     - L  56 em0  
10.42.42.69        08:00:27:d6:6e:dd  UHLhl      1       26     -     1 em0  
10.42.42.255       10.42.42.69        UHb        0       10     -     1 em0  
127/8              127.0.0.1          UGRS       0        0 32768     8 lo0  
127.0.0.1          127.0.0.1          UHhl       1        2 32768     1 lo0  

(with bird)
Routing tables

Internet:
Destination        Gateway            Flags   Refs      Use   Mtu  Prio Iface
default            10.42.42.1         UGS        5       12     -     8 em0  
default            10.42.42.1         UG1        0        0     -    56 em0  
224/4              127.0.0.1          URS        0       15 32768     8 lo0  
10.0.42.21         10.42.42.21        UGH1       0        0     -    56 em0  
10.42.0/24         10.42.42.1         UG1        0        0     -    56 em0  
10.42.1.56/30      10.42.42.21        UG1        0        0     -    56 em0  
10.42.1.64/30      10.42.42.21        UG1        0        0     -    56 em0  
10.42.1.76/30      10.42.42.21        UG1        0        0     -    56 em0  
10.42.2/24         10.42.42.21        UGS        0        4     -     8 em0  
10.42.2/24         10.42.42.21        UG1        0        0     -    56 em0  
10.42.2.254        10.42.42.21        UGH1       0        0     -    56 em0  
10.42.7.6          10.42.42.21        UGH1       0        0     -    56 em0  
10.42.7.7          10.42.42.21        UGH1       0        0     -    56 em0  
[...]

Bird config is simple (stripped comments):
router id 10.42.42.69;
protocol device {
}
protocol direct {
        disabled;               # Disable by default
        ipv4;                   # Connect to default IPv4 table
        ipv6;                   # ... and to default IPv6 table
}
protocol kernel {
        ipv4 {                  # Connect protocol to IPv4 table by channel
              import none;      # Import to table, default is import all
              export all;       # Export to protocol. default is export none
        };
}
protocol ospf v2 ospfv2 {
        rfc1583compat yes;
        tick 2;
        ipv4 {};
        area 0 {
             interface "em0" { cost 10; };
        };
}

But although bird adjacencies are ok, the box cannot communicate with
others, via TCP (ssh) or ping, even on the same link :

BIRD 2.0.6 ready.
ospfv2:
Router ID       Pri          State      DTime   Interface  Router IP
10.42.42.21       1     ExStart/DR      39.261  em0        10.42.42.21
10.42.42.1        1     ExStart/BDR     38.635  em0        10.42.42.1
BIRD 2.0.6 ready.
ospfv3:
Router ID       Pri          State      DTime   Interface  Router IP
10.42.42.21       1     Full/DR         35.854  em0        
fe80::225:22ff:fe1e:bb7
10.42.42.1        1     Full/BDR        36.525  em0        
fe80::4262:31ff:fe01:4b66

PING fe80::225:22ff:fe1e:bb7 (fe80::225:22ff:fe1e:bb7): 56 data bytes
ping6: sendmsg: Network is unreachable
ping: wrote fe80::225:22ff:fe1e:bb7 64 chars, ret=-1
ping6: sendmsg: Network is unreachableping: wrote fe80::225:22ff:fe1e:bb7 64 
chars, ret=-1
ping6: sendmsg: Network is unreachableping: wrote fe80::225:22ff:fe1e:bb7 64 
chars, ret=-1
ping6: sendmsg: Network is unreachableping: wrote fe80::225:22ff:fe1e:bb7 64 
chars, ret=-1

--- fe80::225:22ff:fe1e:bb7 ping statistics ---
4 packets transmitted, 0 packets received, 100.0% packet loss


PING 10.42.42.1 (10.42.42.1): 56 data bytes 
ping: sendmsg: Invalid argument
ping: wrote 10.42.42.1 64 chars, ret=-1 
ping: sendmsg: Invalid argument
ping: wrote 10.42.42.1 64 chars, ret=-1 
ping: sendmsg: Invalid argument
ping: wrote 10.42.42.1 64 chars, ret=-1 
ping: sendmsg: Invalid argument
ping: wrote 10.42.42.1 64 chars, ret=-1

--- 10.42.42.1 ping statistics ---
4 packets transmitted, 0 packets received, 100.0% packet loss

Stopping bird does not let network recover, nor does flushing routes
(route -n flush) or restarting interface with netstart em0

I've done theses tests on various VMs, as I didn't want to upgrade my
real router to snapshot (the bug is reproductible on virtual box &
qemu-kvm, with intel pro/1000 or virtio interfaces)

here is the dmesg (with errors that may be relevant):
OpenBSD 6.6-current (GENERIC) #94: Thu Apr  2 14:10:04 MDT 2020
    [email protected]:/usr/src/sys/arch/amd64/compile/GENERIC
real mem = 2130640896 (2031MB)
avail mem = 2053619712 (1958MB)
mpath0 at root
scsibus0 at mpath0: 256 targets
mainbus0 at root
bios0 at mainbus0: SMBIOS rev. 2.5 @ 0xe1000 (10 entries)
bios0: vendor innotek GmbH version "VirtualBox" date 12/01/2006
bios0: innotek GmbH VirtualBox
acpi0 at bios0: ACPI 4.0
acpi0: sleep states S0 S5
acpi0: tables DSDT FACP APIC SSDT
acpi0: wakeup devices
acpitimer0 at acpi0: 3579545 Hz, 32 bits
acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat
cpu0 at mainbus0: apid 0 (boot processor)
cpu0: Intel(R) Core(TM) i5-4440 CPU @ 3.10GHz, 3100.79 MHz, 06-3c-03
cpu0: 
FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,PCLMUL,MWAIT,SSSE3,CX16,PCID,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,RDRAND,NXE,RDTSCP,LONG,LAHF,ABM,ITSC,FSGSBASE,AVX2,INVPCID,MELTDOWN
cpu0: 256KB 64b/line 8-way L2 cache
cpu0: smt 0, core 0, package 0
mtrr: CPU supports MTRRs but not enabled by BIOS
cpu0: apic clock running at 999MHz
cpu0: mwait min=64, max=64
ioapic0 at mainbus0: apid 1 pa 0xfec00000, version 20, 24 pins, remapped
acpiprt0 at acpi0: bus 0 (PCI0)
acpicpu0 at acpi0: C1(@1 halt!)
acpipci0 at acpi0 PCI0: 0x00000000 0x00000011 0x00000001
acpiac0 at acpi0: AC unit online
acpivideo0 at acpi0: GFX0
cpu0: using Broadwell MDS workaround
pci0 at mainbus0 bus 0
pchb0 at pci0 dev 0 function 0 "Intel 82441FX" rev 0x02
pcib0 at pci0 dev 1 function 0 "Intel 82371SB ISA" rev 0x00
pciide0 at pci0 dev 1 function 1 "Intel 82371AB IDE" rev 0x01: DMA, channel 0 
configured to compatibility, channel 1 configured to compatibility
wd0 at pciide0 channel 0 drive 0: <VBOX HARDDISK>
wd0: 128-sector PIO, LBA, 16384MB, 33554432 sectors
wd0(pciide0:0:0): using PIO mode 4, Ultra-DMA mode 2
atapiscsi0 at pciide0 channel 1 drive 0
scsibus1 at atapiscsi0: 2 targets
cd0 at scsibus1 targ 0 lun 0: <VBOX, CD-ROM, 1.0> removable
cd0(pciide0:1:0): using PIO mode 4, Ultra-DMA mode 2
vga1 at pci0 dev 2 function 0 "InnoTek VirtualBox Graphics Adapter" rev 0x00
wsdisplay0 at vga1 mux 1: console (80x25, vt100 emulation)
wsdisplay0: screen 1-5 added (80x25, vt100 emulation)
em0 at pci0 dev 3 function 0 "Intel 82540EM" rev 0x02: apic 1 int 19, address 
08:00:27:d6:6e:dd
"InnoTek VirtualBox Guest Service" rev 0x00 at pci0 dev 4 function 0 not 
configured
auich0 at pci0 dev 5 function 0 "Intel 82801AA AC97" rev 0x01: apic 1 int 21, 
ICH
ac97: codec id 0x83847600 (SigmaTel STAC9700)
audio0 at auich0
ohci0 at pci0 dev 6 function 0 "Apple Intrepid USB" rev 0x00: apic 1 int 22, 
version 1.0
piixpm0 at pci0 dev 7 function 0 "Intel 82371AB Power" rev 0x08: apic 1 int 23
iic0 at piixpm0
ehci0 at pci0 dev 11 function 0 "Intel 82801FB USB" rev 0x00: apic 1 int 19
usb0 at ehci0: USB revision 2.0
uhub0 at usb0 configuration 1 interface 0 "Intel EHCI root hub" rev 2.00/1.00 
addr 1
isa0 at pcib0
isadma0 at isa0
pckbc0 at isa0 port 0x60/5 irq 1 irq 12
pckbd0 at pckbc0 (kbd slot)
wskbd0 at pckbd0: console keyboard, using wsdisplay0
pms0 at pckbc0 (aux slot)
wsmouse0 at pms0 mux 0
pcppi0 at isa0 port 0x61
spkr0 at pcppi0
usb1 at ohci0: USB revision 1.0
uhub1 at usb1 configuration 1 interface 0 "Apple OHCI root hub" rev 1.00/1.00 
addr 1
vscsi0 at root
scsibus2 at vscsi0: 256 targets
softraid0 at root
scsibus3 at softraid0: 256 targets
root on wd0a (93ce6f2269537131.a) swap on wd0b dump on wd0b
arp_rtrequest: bad gateway value: em0
nd6_rtrequest: bad gateway value: em0
nd6_rtrequest: bad gateway value: em0
nd6_rtrequest: bad gateway value: em0
arpresolve: 10.42.42.0: route contains no arp information
arpresolve: 10.42.42.0: route contains no arp information
arpresolve: 10.42.42.0: route contains no arp information
arpresolve: 10.42.42.0: route contains no arp information
arpresolve: 10.42.42.0: route contains no arp information
arpresolve: 10.42.42.0: route contains no arp information
arpresolve: 10.42.42.1: route contains no arp information
arpresolve: 10.42.42.1: route contains no arp information
[...]

Reply via email to