On Fri, Feb 18, 2022 at 02:25:45PM +0100, Anton Lindqvist wrote:
> On Thu, Feb 17, 2022 at 10:25:19PM +0100, Anton Lindqvist wrote:
> > On Thu, Feb 17, 2022 at 09:50:20PM +0100, Alexander Bluhm wrote:
> > > Hi,
> > > 
> > > With this snapshot regress/sys/net/vxlan crashes the kernel
> > > OpenBSD 7.0-current (GENERIC.MP) #355: Wed Feb 16 13:44:38 MST 2022
> > > 
> > > START     sys/net/vxlan   2022-02-17T08:07:25Z
> > > 
> > > rm -f a.out [Ee]rrs mklog *.core y.tab.h        
> > > 
> > > ==== vxlan_1 ====
> > > ksh /usr/src/regress/sys/net/vxlan/vxlan_1.sh -R "11 12" -I "11 12"
> > > ifconfig: SIOCSLIFPHYRTABLE: Device busy
> > > ifconfig: SIOCSLIFPHYRTABLE: Device busy
> > > Timeout, server ot6 not responding.
> > > 
> > > uvm_fault(0xfffffd8240699668, 0xc, 0, 2) -> e
> > > kernel: page fault trap, code=0
> > > Stopped at      in_delmulti+0x54:       addl    $-0x1,0xc(%r14)
> > >     TID    PID    UID     PRFLAGS     PFLAGS  CPU  COMMAND
> > > *455775  97669      0         0x2          0    1K ifconfig
> > > in_delmulti(0) at in_delmulti+0x54
> > > vxlan_ioctl(ffff800000e03000,80206910,ffff80002236d760) at 
> > > vxlan_ioctl+0xfce
> > > ifioctl(fffffd82765d8e08,80206910,ffff80002236d760,ffff8000221b8008) at 
> > > ifioctl+0x92b
> > > soo_ioctl(fffffd81408b7ae0,80206910,ffff80002236d760,ffff8000221b8008) at 
> > > soo_ioctl+0x161
> > > sys_ioctl(ffff8000221b8008,ffff80002236d870,ffff80002236d8c0) at 
> > > sys_ioctl+0x2c4
> > > syscall(ffff80002236d930) at syscall+0x374
> > > Xsyscall() at Xsyscall+0x128
> > > end of kernel
> > > end trace frame: 0x7f7ffffcb4f0, count: 8
> > > 
> > > The same happens on i386, powerpc64, armv7, arm64, sparc64.
> > 
> > Same here on my amd64-regress machine.
> 
> No panic this time but the tests are failing.
> 
> > sys/net/vxlan:
> Exit: 1
> Duration: 00:04:35
> Log: 151-sys-net-vxlan.log

vxlan needs a parent interface specified when using a multicast
destination address on the tunnel.

the first chunk forces arp to have run before letting pure icmp
through. it shouldnt be necessary, but i have to dig around the arp code
again.

Index: vxlan_2.sh
===================================================================
RCS file: /cvs/src/regress/sys/net/vxlan/vxlan_2.sh,v
retrieving revision 1.2
diff -u -p -r1.2 vxlan_2.sh
--- vxlan_2.sh  30 Nov 2016 22:21:20 -0000      1.2
+++ vxlan_2.sh  18 Feb 2022 03:34:20 -0000
@@ -22,6 +22,7 @@ do_ping()
 {
        local source="$1"
        local dest="${VXLAN_NETID}${2}"
+       $PING -q -c 1 -w 1 -V "$source" "$dest" > /dev/null # warm up arp
        $PING -q -c 3 -w 1 -V "$source" "$dest" | grep -q ' 0.0% packet loss' 
&& return
        echo "Failed to ping $dest from vstack $source"
        STATUS=1
@@ -96,7 +97,7 @@ vstack_add() {
        $SUDO ifconfig "$vstack_pairname" rdomain "$vstack" $IFCONFIG_OPTS
        $SUDO ifconfig "$vstack_pairname" "$AF" "${vstack_tunsrc}${PAIR_PREFX}" 
up
        $SUDO ifconfig "vxlan$vstack" rdomain "$vstack" tunneldomain "$vstack" 
$IFCONFIG_OPTS
-       $SUDO ifconfig "vxlan$vstack" vnetid "$VNETID" tunnel "$vstack_tunsrc" 
"${VXLAN_TUNDST}${tundst_sufx}" up
+       $SUDO ifconfig "vxlan$vstack" vnetid "$VNETID" tunnel "$vstack_tunsrc" 
"${VXLAN_TUNDST}${tundst_sufx}" parent "$vstack_pairname" up
        [[ -n $DYNAMIC ]] && $SUDO ifconfig "bridge$vstack" rdomain "$vstack" 
add "vxlan$vstack" $IFCONFIG_OPTS up
 }
 

Reply via email to