Hey, This should be fixed in current as of r1.199 of src/sys/net/if_vlan.c
Sorry for the inconvenience. Cheers, dlg > On 29 Oct 2019, at 19:49, Zé Loff <zel...@zeloff.org> wrote: > > > Hi all > > Some changes in VLAN-related code went into 6.6 and I think some of them > changed the way the parent interface gets into promiscuous mode. Let me > try to explain... > > Our ISP provides internet and VoIP over two separate VLANs (100 and 101, > respectively). Our external firewall has two physical interfaces re0, > and re1, and also does the filtering and NATing for internet, but VoIP > traffic is transparently forwarded to the VoIP phone. So it's something > like this: > > GPON -> re0 -+--> vlan100 -> (PF/NAT) -> vlan90 -+-> re1 -> A switch > \-> vlan1010 -> bridge1 -> vlan1011 -/ > > The VoIP phone connected to the switch, which does all the appropriate > tagging and untagging. re0 and re1 have no IP addresses, neither do the > vlan1010, vlan1011 and bridge1 virtual interfaces. The VoIP phone gets > configured by DHCP, and gets its address (and etc) from the ISP. All > interfaces are up, and correctly configured (ifconfigs below). This > worked fine up until the 6.6 upgrade. > > Now, if things are left alone, the phone fails to get DHCP replies. > This can be checked by running "tcpdump -i re1 vlan 101", which clearly > shows the DHCP requests coming from the phone, but getting no replies. > Exactly the same is seen on vlan1011 and vlan1010 (i.e. on both sides of > the bridge1): DHCP requests but no replies. If tcpdump is run on re0 > ("tcpdump -i re0 vlan 101") then the interface goes into promiscuous > mode and the DHCP replies start flowing from the ISP and the phone > finally gets configured. Crucially, if the "-p" flag is added to > tcpdump (i.e. not putting the if in promiscuous mode), DHCP fails. > > Is this behaviour intended and, if so, can re0 be configured to stay in > promiscuous mode without having to do something silly as tcpdump'ing > into /dev/null? > > Thanks in advance > Zé > > -- > > # ifconfig -A > lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 32768 > index 5 priority 0 llprio 3 > groups: lo > inet6 ::1 prefixlen 128 > inet6 fe80::1%lo0 prefixlen 64 scopeid 0x5 > inet 127.0.0.1 netmask 0xff000000 > re0: flags=8b43<UP,BROADCAST,RUNNING,PROMISC,ALLMULTI,SIMPLEX,MULTICAST> mtu > 1500 > lladdr 00:0d:b9:3c:b0:e8 > index 1 priority 0 llprio 3 > media: Ethernet autoselect (1000baseT full-duplex,master) > status: active > re1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 9100 > lladdr 00:0d:b9:3c:b0:e9 > index 2 priority 0 llprio 3 > media: Ethernet autoselect (1000baseT full-duplex,rxpause,txpause) > status: active > re2: flags=8802<BROADCAST,SIMPLEX,MULTICAST> mtu 1500 > lladdr 00:0d:b9:3c:b0:ea > index 3 priority 0 llprio 3 > media: Ethernet autoselect (10baseT half-duplex) > status: no carrier > enc0: flags=0<> > index 4 priority 0 llprio 3 > groups: enc > status: active > bridge1: flags=41<UP,RUNNING> > index 6 llprio 3 > groups: bridge > priority 32768 hellotime 2 fwddelay 15 maxage 20 holdcnt 6 proto rstp > vlan1011 flags=3<LEARNING,DISCOVER> > port 11 ifpriority 0 ifcost 0 > vlan1010 flags=3<LEARNING,DISCOVER> > port 10 ifpriority 0 ifcost 0 > Addresses (max cache: 100, timeout: 240): > 00:00:5e:00:01:c9 vlan1010 1 flags=0<> > 80:5e:c0:12:3f:80 vlan1011 1 flags=0<> > vlan100: flags=808843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,AUTOCONF4> mtu > 1500 > lladdr 00:0d:b9:3c:b0:e8 > description: WAN > index 9 priority 0 llprio 3 > encap: vnetid 100 parent re0 txprio packet rxprio outer > groups: vlan egress > media: Ethernet autoselect (1000baseT full-duplex,master) > status: active > inet 148.69.164.57 netmask 0xfffffc00 broadcast 148.69.167.255 > inet 148.69.143.1 netmask 0xfffffffc broadcast 148.69.143.3 > vlan1010: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500 > lladdr 00:0d:b9:3c:b0:e8 > description: VoIP WAN > index 10 priority 0 llprio 3 > encap: vnetid 101 parent re0 txprio packet rxprio outer > groups: vlan > media: Ethernet autoselect (1000baseT full-duplex,master) > status: active > vlan1011: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500 > lladdr 00:0d:b9:3c:b0:e9 > description: VoIP DMZ > index 11 priority 0 llprio 3 > encap: vnetid 101 parent re1 txprio packet rxprio outer > groups: vlan > media: Ethernet autoselect (1000baseT full-duplex,rxpause,txpause) > status: active > vlan90: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 9000 > lladdr 00:0d:b9:3c:b0:e9 > description: DMZ > index 14 priority 0 llprio 3 > encap: vnetid 90 parent re1 txprio packet rxprio outer > groups: vlan > media: Ethernet autoselect (1000baseT full-duplex,rxpause,txpause) > status: active > inet 10.17.16.1 netmask 0xfffffe00 broadcast 10.17.17.255 > pflog0: flags=141<UP,RUNNING,PROMISC> mtu 33136 > index 15 priority 0 llprio 3 > groups: pflogDear sirs > > > # dmesg > > OpenBSD 6.6 (GENERIC.MP) #372: Sat Oct 12 10:56:27 MDT 2019 > dera...@amd64.openbsd.org:/usr/src/sys/arch/amd64/compile/GENERIC.MP > real mem = 2098511872 (2001MB) > avail mem = 2022256640 (1928MB) > mpath0 at root > scsibus0 at mpath0: 256 targets > mainbus0 at root > bios0 at mainbus0: SMBIOS rev. 2.7 @ 0x7e16d820 (6 entries) > bios0: vendor coreboot version "SageBios_PCEngines_APU-45" date 04/05/2014 > bios0: PC Engines APU > acpi0 at bios0: ACPI 4.0 > acpi0: sleep states S0 S1 S3 S4 S5 > acpi0: tables DSDT FACP SPCR HPET APIC HEST SSDT SSDT SSDT > acpi0: wakeup devices AGPB(S4) HDMI(S4) PBR4(S4) PBR5(S4) PBR6(S4) PBR7(S4) > PE20(S4) PE21(S4) PE22(S4) PE23(S4) PIBR(S4) UOH1(S3) UOH2(S3) UOH3(S3) > UOH4(S3) UOH5(S3) [...] > acpitimer0 at acpi0: 3579545 Hz, 32 bits > acpihpet0 at acpi0: 14318180 Hz > acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat > cpu0 at mainbus0: apid 0 (boot processor) > cpu0: AMD G-T40E Processor, 1000.14 MHz, 14-02-00 > 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,MWAIT,SSSE3,CX16,POPCNT,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,IBS,SKINIT,ITSC > cpu0: 32KB 64b/line 2-way I-cache, 32KB 64b/line 8-way D-cache, 512KB > 64b/line 16-way L2 cache > cpu0: 8 4MB entries fully associative > cpu0: DTLB 40 4KB entries fully associative, 8 4MB entries fully associative > cpu0: smt 0, core 0, package 0 > mtrr: Pentium Pro MTRR support, 8 var ranges, 88 fixed ranges > cpu0: apic clock running at 199MHz > cpu0: mwait min=64, max=64, IBE > cpu1 at mainbus0: apid 1 (application processor) > cpu1: AMD G-T40E Processor, 1000.01 MHz, 14-02-00 > cpu1: > FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,MWAIT,SSSE3,CX16,POPCNT,NXE,MMXX,FFXSR,PAGE1GB,RDTSCP,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,IBS,SKINIT,ITSC > cpu1: 32KB 64b/line 2-way I-cache, 32KB 64b/line 8-way D-cache, 512KB > 64b/line 16-way L2 cache > cpu1: 8 4MB entries fully associative > cpu1: DTLB 40 4KB entries fully associative, 8 4MB entries fully associative > cpu1: smt 0, core 1, package 0 > ioapic0 at mainbus0: apid 2 pa 0xfec00000, version 21, 24 pins > acpiprt0 at acpi0: bus 0 (PCI0) > acpiprt1 at acpi0: bus -1 (AGPB) > acpiprt2 at acpi0: bus -1 (HDMI) > acpiprt3 at acpi0: bus 1 (PBR4) > acpiprt4 at acpi0: bus 2 (PBR5) > acpiprt5 at acpi0: bus 3 (PBR6) > acpiprt6 at acpi0: bus -1 (PBR7) > acpiprt7 at acpi0: bus 5 (PE20) > acpiprt8 at acpi0: bus -1 (PE21) > acpiprt9 at acpi0: bus -1 (PE22) > acpiprt10 at acpi0: bus -1 (PE23) > acpiprt11 at acpi0: bus 4 (PIBR) > acpicpu0 at acpi0: C2(0@100 io@0x841), C1(@1 halt!), PSS > acpicpu1 at acpi0: C2(0@100 io@0x841), C1(@1 halt!), PSS > acpipci0 at acpi0 PCI0: 0x00000000 0x00000011 0x00000001 > acpicmos0 at acpi0 > acpibtn0 at acpi0: PWRB > cpu0: 1000 MHz: speeds: 1000 800 MHz > pci0 at mainbus0 bus 0 > pchb0 at pci0 dev 0 function 0 "AMD AMD64 14h Host" rev 0x00 > ppb0 at pci0 dev 4 function 0 "AMD AMD64 14h PCIE" rev 0x00: msi > pci1 at ppb0 bus 1 > re0 at pci1 dev 0 function 0 "Realtek 8168" rev 0x06: RTL8168E/8111E > (0x2c00), msi, address 00:0d:b9:3c:b0:e8 > rgephy0 at re0 phy 7: RTL8169S/8110S/8211 PHY, rev. 4 > ppb1 at pci0 dev 5 function 0 "AMD AMD64 14h PCIE" rev 0x00: msi > pci2 at ppb1 bus 2 > re1 at pci2 dev 0 function 0 "Realtek 8168" rev 0x06: RTL8168E/8111E > (0x2c00), msi, address 00:0d:b9:3c:b0:e9 > rgephy1 at re1 phy 7: RTL8169S/8110S/8211 PHY, rev. 4 > ppb2 at pci0 dev 6 function 0 "AMD AMD64 14h PCIE" rev 0x00: msi > pci3 at ppb2 bus 3 > re2 at pci3 dev 0 function 0 "Realtek 8168" rev 0x06: RTL8168E/8111E > (0x2c00), msi, address 00:0d:b9:3c:b0:ea > rgephy2 at re2 phy 7: RTL8169S/8110S/8211 PHY, rev. 4 > ahci0 at pci0 dev 17 function 0 "ATI SBx00 SATA" rev 0x40: apic 2 int 19, > AHCI 1.2 > scsibus1 at ahci0: 32 targets > ohci0 at pci0 dev 18 function 0 "ATI SB700 USB" rev 0x00: apic 2 int 18, > version 1.0, legacy support > ehci0 at pci0 dev 18 function 2 "ATI SB700 USB2" rev 0x00: apic 2 int 17 > usb0 at ehci0: USB revision 2.0 > uhub0 at usb0 configuration 1 interface 0 "ATI EHCI root hub" rev 2.00/1.00 > addr 1 > ohci1 at pci0 dev 19 function 0 "ATI SB700 USB" rev 0x00: apic 2 int 18, > version 1.0, legacy support > ehci1 at pci0 dev 19 function 2 "ATI SB700 USB2" rev 0x00: apic 2 int 17 > usb1 at ehci1: USB revision 2.0 > uhub1 at usb1 configuration 1 interface 0 "ATI EHCI root hub" rev 2.00/1.00 > addr 1 > piixpm0 at pci0 dev 20 function 0 "ATI SBx00 SMBus" rev 0x42: polling > iic0 at piixpm0 > pcib0 at pci0 dev 20 function 3 "ATI SB700 ISA" rev 0x40 > ppb3 at pci0 dev 20 function 4 "ATI SB600 PCI" rev 0x40 > pci4 at ppb3 bus 4 > ohci2 at pci0 dev 20 function 5 "ATI SB700 USB" rev 0x00: apic 2 int 18, > version 1.0, legacy support > ppb4 at pci0 dev 21 function 0 "ATI SB800 PCIE" rev 0x00 > pci5 at ppb4 bus 5 > ohci3 at pci0 dev 22 function 0 "ATI SB700 USB" rev 0x00: apic 2 int 18, > version 1.0, legacy support > ehci2 at pci0 dev 22 function 2 "ATI SB700 USB2" rev 0x00: apic 2 int 17 > usb2 at ehci2: USB revision 2.0 > uhub2 at usb2 configuration 1 interface 0 "ATI EHCI root hub" rev 2.00/1.00 > addr 1 > pchb1 at pci0 dev 24 function 0 "AMD AMD64 14h Link Cfg" rev 0x43 > pchb2 at pci0 dev 24 function 1 "AMD AMD64 14h Address Map" rev 0x00 > pchb3 at pci0 dev 24 function 2 "AMD AMD64 14h DRAM Cfg" rev 0x00 > km0 at pci0 dev 24 function 3 "AMD AMD64 14h Misc Cfg" rev 0x00 > pchb4 at pci0 dev 24 function 4 "AMD AMD64 14h CPU Power" rev 0x00 > pchb5 at pci0 dev 24 function 5 "AMD AMD64 14h Reserved" rev 0x00 > pchb6 at pci0 dev 24 function 6 "AMD AMD64 14h NB Power" rev 0x00 > pchb7 at pci0 dev 24 function 7 "AMD AMD64 14h Reserved" rev 0x00 > usb3 at ohci0: USB revision 1.0 > uhub3 at usb3 configuration 1 interface 0 "ATI OHCI root hub" rev 1.00/1.00 > addr 1 > usb4 at ohci1: USB revision 1.0 > uhub4 at usb4 configuration 1 interface 0 "ATI OHCI root hub" rev 1.00/1.00 > addr 1 > isa0 at pcib0 > isadma0 at isa0 > com0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo > com0: console > com1 at isa0 port 0x2f8/8 irq 3: ns16550a, 16 byte fifo > pcppi0 at isa0 port 0x61 > spkr0 at pcppi0 > lpt0 at isa0 port 0x378/4 irq 7 > wbsio0 at isa0 port 0x2e/2: NCT5104D rev 0x52 > usb5 at ohci2: USB revision 1.0 > uhub5 at usb5 configuration 1 interface 0 "ATI OHCI root hub" rev 1.00/1.00 > addr 1 > usb6 at ohci3: USB revision 1.0 > uhub6 at usb6 configuration 1 interface 0 "ATI OHCI root hub" rev 1.00/1.00 > addr 1 > vmm0 at mainbus0: SVM/RVI > umass0 at uhub2 port 1 configuration 1 interface 0 "Generic Flash Card > Reader/Writer" rev 2.01/1.00 addr 2 > umass0: using SCSI over Bulk-Only > scsibus2 at umass0: 2 targets, initiator 0 > sd0 at scsibus2 targ 1 lun 0: <Multiple, Card Reader, 1.00> removable > serial.058f6366058F63666485 > sd0: 7580MB, 512 bytes/sector, 15523840 sectors > vscsi0 at root > scsibus3 at vscsi0: 256 targets > softraid0 at root > scsibus4 at softraid0: 256 targets > root on sd0a (72bb3d52a1af2d9b.a) swap on sd0b dump on sd0b >