The vlan id for my em0 interface is not reading properly after upgrading to 4.5.
Tcpdump shows some wild vid values in the traffic when using em0: * This traffic should be on vlan2 (lan) 00:21:70:c5:3d:4f ff:ff:ff:ff:ff:ff 8100 64: 802.1Q vid 512 pri 0 arp who-has 10.107.208.1 tell 10.107.208.50 * This traffic should be on vlan3 (egress vlan) 00:1e:be:fe:f3:05 ff:ff:ff:ff:ff:ff 8100 64: 802.1Q vid 768 pri 0 arp who-has 98.196.101.152 tell 98.196.100.1 00:1e:be:fe:f3:05 ff:ff:ff:ff:ff:ff 8100 64: 802.1Q vid 768 pri 0 arp who-has 98.196.88.115 tell 98.196.88.1 * This traffic should be on vlan4, it is correct: 00:02:b3:ed:68:89 01:00:5e:7f:ff:fa 8100 308: 802.1Q vid 4 pri 0 10.0.0.1.29275 > 239.255.255.250.1900: udp 262 [ttl 1] 00:02:b3:ed:68:89 01:00:5e:7f:ff:fa 8100 380: 802.1Q vid 4 pri 0 10.0.0.1.29275 > 239.255.255.250.1900: udp 334 [ttl 1] It seems as though the vlan id is being multiplied by 256 for vlans 2 and 3. When I use the gem0 interface on the same machine, things work: * This traffic should be on vlan2 (lan), it is correct: 00:03:ba:04:b2:1d 00:50:8d:95:39:17 8100 110: 802.1Q vid 2 pri 0 10.107.208.1.22 > 10.107.208.102.2692: P 920030:920082(52) ack 11189 win 17520 (DF) [tos 0x10] 00:03:ba:04:b2:1d 00:50:8d:95:39:17 8100 110: 802.1Q vid 2 pri 0 10.107.208.1.22 > 10.107.208.102.2692: P 920082:920134(52) ack 11189 win 17520 (DF) [tos 0x10] * This traffic should be on vlan3 (egress vlan), it is correct: 00:1e:be:fe:f3:05 ff:ff:ff:ff:ff:ff 8100 64: 802.1Q vid 3 pri 0 arp who-has 98.194.104.216 tell 98.194.104.1 00:1e:be:fe:f3:05 ff:ff:ff:ff:ff:ff 8100 64: 802.1Q vid 3 pri 0 arp who-has 76.31.110.47 tell 76.31.108.1 * This traffic should be on vlan4, it is correct: 00:03:ba:04:b2:1d 01:00:5e:7f:ff:fa 8100 373: 802.1Q vid 4 pri 0 10.0.0.1.10117 > 239.255.255.250.1900: udp 327 [ttl 1] 00:03:ba:04:b2:1d 01:00:5e:7f:ff:fa 8100 373: 802.1Q vid 4 pri 0 10.0.0.1.10117 > 239.255.255.250.1900: udp 327 [ttl 1] The em0 interface worked without an issue using 4.4 as did gem0. Here are my interface configurations using gem0: # ifconfig -a lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33160 priority: 0 groups: lo inet 127.0.0.1 netmask 0xff000000 inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4 gem0: flags=8863<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST> mtu 1500 lladdr 00:03:ba:04:b2:1d priority: 0 media: Ethernet autoselect (100baseTX full-duplex) status: active inet6 fe80::203:baff:fe04:b21d%gem0 prefixlen 64 scopeid 0x1 em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 lladdr 00:02:b3:ed:68:89 priority: 0 media: Ethernet autoselect (none) status: no carrier inet6 fe80::202:b3ff:feed:6889%em0 prefixlen 64 scopeid 0x2 enc0: flags=0<> mtu 1536 priority: 0 vlan2: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 lladdr 00:03:ba:04:b2:1d priority: 0 vlan: 2 priority: 0 parent interface: gem0 groups: vlan inet6 fe80::203:baff:fe04:b21d%vlan2 prefixlen 64 scopeid 0x5 inet 10.107.208.1 netmask 0xffffff00 broadcast 10.107.208.255 vlan3: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 lladdr 00:03:ba:04:b2:1d priority: 0 vlan: 3 priority: 0 parent interface: gem0 groups: vlan egress inet6 fe80::203:baff:fe04:b21d%vlan3 prefixlen 64 scopeid 0x6 inet x.x.x.x netmask 0xfffffc00 broadcast 255.255.255.255 vlan4: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 lladdr 00:03:ba:04:b2:1d priority: 0 vlan: 4 priority: 0 parent interface: gem0 groups: vlan inet6 fe80::203:baff:fe04:b21d%vlan4 prefixlen 64 scopeid 0x7 inet 10.0.0.1 netmask 0xffffff00 broadcast 10.0.0.255 vlan5: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 lladdr 00:03:ba:04:b2:1d priority: 0 vlan: 5 priority: 0 parent interface: gem0 groups: vlan inet6 fe80::203:baff:fe04:b21d%vlan5 prefixlen 64 scopeid 0x8 inet 10.180.16.1 netmask 0xffffff00 broadcast 10.180.16.255 pflog0: flags=141<UP,RUNNING,PROMISC> mtu 33160 priority: 0 groups: pflog Here are my interface configurations using em0: lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33160 priority: 0 groups: lo inet 127.0.0.1 netmask 0xff000000 inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4 gem0: flags=8863<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST> mtu 1500 lladdr 00:03:ba:04:b2:1d priority: 0 media: Ethernet autoselect (none) status: no carrier inet6 fe80::203:baff:fe04:b21d%gem0 prefixlen 64 scopeid 0x1 em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 lladdr 00:02:b3:ed:68:89 priority: 0 media: Ethernet autoselect (1000baseT full-duplex,master) status: active inet6 fe80::202:b3ff:feed:6889%em0 prefixlen 64 scopeid 0x2 enc0: flags=0<> mtu 1536 priority: 0 vlan2: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 lladdr 00:02:b3:ed:68:89 priority: 0 vlan: 2 priority: 0 parent interface: em0 groups: vlan inet6 fe80::202:b3ff:feed:6889%vlan2 prefixlen 64 scopeid 0x5 inet 10.107.208.1 netmask 0xffffff00 broadcast 10.107.208.255 vlan3: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 lladdr 00:02:b3:ed:68:89 priority: 0 vlan: 3 priority: 0 parent interface: em0 groups: vlan inet6 fe80::202:b3ff:feed:6889%vlan3 prefixlen 64 scopeid 0x6 vlan4: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 lladdr 00:02:b3:ed:68:89 priority: 0 vlan: 4 priority: 0 parent interface: em0 groups: vlan inet6 fe80::202:b3ff:feed:6889%vlan4 prefixlen 64 scopeid 0x7 inet 10.0.0.1 netmask 0xffffff00 broadcast 10.0.0.255 vlan5: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 lladdr 00:02:b3:ed:68:89 priority: 0 vlan: 5 priority: 0 parent interface: em0 groups: vlan inet6 fe80::202:b3ff:feed:6889%vlan5 prefixlen 64 scopeid 0x8 inet 10.180.16.1 netmask 0xffffff00 broadcast 10.180.16.255 pflog0: flags=141<UP,RUNNING,PROMISC> mtu 33160 priority: 0 groups: pflog Note that vlan2 does not have an ip because dhclient could not get one. dhclient could also not verify one of the leases stored in the lease db. I collected the information above using the following procedure: 1. configure hostname.if files to use the em0 interface # cat hostname.em0 up media autoselect # cat hostname.gem0 up media autoselect # cat hostname.vlan2 inet 10.107.208.1 255.255.255.0 NONE vlan 2 vlandev em0 # cat hostname.vlan3 dhcp vlan 3 vlandev em0 # cat hostname.vlan4 inet 10.0.0.1 255.255.255.0 NONE vlan 4 vlandev em0 # cat hostname.vlan5 inet 10.180.16.1 255.255.255.0 NONE vlan 5 vlandev em0 2. Plug the em0 port on the openbsd host into the tagged port on the switch. 3. restart the host 4. dump some packets from the em0 interface and grab the ifconfig output 5. configure hostname.if files to use the gem0 interface # cat hostname.em0 up media autoselect # cat hostname.gem0 up media autoselect # cat hostname.vlan2 inet 10.107.208.1 255.255.255.0 NONE vlan 2 vlandev gem0 # cat hostname.vlan3 dhcp vlan 3 vlandev gem0 # cat hostname.vlan4 inet 10.0.0.1 255.255.255.0 NONE vlan 4 vlandev gem0 # cat hostname.vlan5 inet 10.180.16.1 255.255.255.0 NONE vlan 5 vlandev gem0 6. Plug the gem0 port on the openbsd host into the tagged port on the switch. 7. restart the host 8. dump some packets from the gem0 interface and grab the ifconfig output This machine was first built using 4.4, then upgraded to 4.5 using the console/boot from cdrom method. The files were upgraded using diff and manual updates for the files listed in the upgrade instructions; packages were updated from a mirror. The switch is a dell powerconnect 5324 and is configured with one tagged port on all vlans (2,3,4,5) and all the other ports assigned untagged to a single vlan. The packages installed on the host are minimal: # pkg_info gettext-0.17p0 GNU gettext igmpproxy-0.1-beta2 Multicast router utilizing IGMP forwarding kermit-8.0.211 serial and network communications package libiconv-1.12 character set conversion library lsof-4.81p0 list information about open files malo-firmware-1.4 Firmware binary images for malo driver rsync-3.0.5 mirroring/synchronization over low bandwidth links wget-1.11.4 retrieve files from the web via HTTP, HTTPS and FTP The kernel is an unmodified generic 4.5 kernel; the 4.4 kernel was unmodified as well. The syctl.conf changes are nothing out of the ordinary: --- /etc/sysctl.conf Sat May 23 15:49:49 2009 +++ /root/media/etc45/etc45/sysctl.conf Sat Feb 28 18:09:35 2009 @@ -4,7 +4,7 @@ # boot time. See sysctl(3) and sysctl(8) for more information on # the many available variables. # -net.inet.ip.forwarding=1 # 1=Permit forwarding (routing) of IPv4 packets +#net.inet.ip.forwarding=1 # 1=Permit forwarding (routing) of IPv4 packets #net.inet.ip.mforwarding=1 # 1=Permit forwarding (routing) of IPv4 multicast packets #net.inet.ip.multipath=1 # 1=Enable IP multipath routing #net.inet6.ip6.forwarding=1 # 1=Permit forwarding (routing) of IPv6 packets @@ -32,6 +32,6 @@ #kern.nosuidcoredump=2 # 2=Put suid coredumps in /var/crash #kern.watchdog.period=32 # >0=Enable hardware watchdog(4) timer if available #kern.watchdog.auto=0 # 0=Disable automatic watchdog(4) retriggering -machdep.led_blink=1 # 1=On sparc64, make led(s) blink +#machdep.led_blink=1 # 1=On sparc64, make led(s) blink #machdep.allowaperture=1 # See xf86(4) #machdep.kbdreset=1 # permit console to do a nice halt rc.conf.local starts a few services, nothing out of the ordinary: # cat /etc/rc.conf.local pf=YES dhcpd_flags="" named_flags="" ntpd_flags="" ftpproxy_flags="" isakmpd_flags="-K" ipsec=YES Let me know if anyone needs any more information or if this is in fact a bug and I will submit a bug report. Here is my dmesg: console is keyboard/display Copyright (c) 1982, 1986, 1989, 1991, 1993 The Regents of the University of California. All rights reserved. Copyright (c) 1995-2009 OpenBSD. All rights reserved. http://www.OpenBSD.org OpenBSD 4.5 (GENERIC) #1898: Sat Feb 28 17:42:44 MST 2009 dera...@sparc64.openbsd.org:/usr/src/sys/arch/sparc64/compile/GENERIC real mem = 805306368 (768MB) avail mem = 765681664 (730MB) mainbus0 at root: Sun Blade 100 (UltraSPARC-IIe) cpu0 at mainbus0: SUNW,UltraSPARC-IIe (rev 1.4) @ 502 MHz cpu0: physical 16K instruction (32 b/l), 16K data (32 b/l), 256K external (64 b/l) psycho0 at mainbus0: pci108e,a001, impl 0, version 0, ign 7c0 psycho0: bus range 0-1, PCI bus 0 psycho0: dvma map c0000000-dfffffff pci0 at psycho0 ebus0 at pci0 dev 12 function 0 "Sun RIO EBus" rev 0x01 "flashprom" at ebus0 addr 0-fffff not configured clock1 at ebus0 addr 0-1fff: mk48t59 ebus1 at pci0 dev 7 function 0 "Acer Labs M1533 ISA" rev 0x00 "dma" at ebus1 addr 0-ffff ivec 0x2a not configured power0 at ebus1 addr 800-82f ivec 0x20 com0 at ebus1 addr 3f8-3ff ivec 0x2b: ns16550a, 16 byte fifo com1 at ebus1 addr 2e8-2ef ivec 0x2b: ns16550a, 16 byte fifo alipm0 at pci0 dev 3 function 0 "Acer Labs M7101 Power" rev 0x00: 223KHz clock iic0 at alipm0 "max1617" at alipm0 addr 0x18 skipped due to alipm0 bugs "scm001" at alipm0 addr 0x20 skipped due to alipm0 bugs spdmem0 at iic0 addr 0x50: 256MB SDRAM ECC PC133CL2 spdmem1 at iic0 addr 0x51: 256MB SDRAM ECC PC133CL2 spdmem2 at iic0 addr 0x52: 256MB SDRAM ECC PC133CL2 gem0 at pci0 dev 12 function 1 "Sun ERI Ether" rev 0x01: ivec 0x7c6, address 00:03:ba:04:b2:1d ukphy0 at gem0 phy 1: Generic IEEE 802.3u media interface, rev. 1: OUI 0x0010dd, model 0x0002 "Sun FireWire" rev 0x01 at pci0 dev 12 function 2 not configured ohci0 at pci0 dev 12 function 3 "Sun USB" rev 0x01: ivec 0x7e4, version 1.0, legacy support autri0 at pci0 dev 8 function 0 "Acer Labs M5451 Audio" rev 0x01: ivec 0x7e3 ac97: codec id 0x41445348 (Analog Devices AD1881A) ac97: codec features headphone, Analog Devices Phat Stereo audio0 at autri0 midi0 at autri0: <4DWAVE MIDI UART> pciide0 at pci0 dev 13 function 0 "Acer Labs M5229 UDMA IDE" rev 0xc3: DMA, channel 0 configured to native-PCI, channel 1 configured to native-PCI pciide0: using ivec 0x7cc for native-PCI interrupt wd0 at pciide0 channel 0 drive 0: <WDC WD1600AAJB-56WRA0> wd0: 16-sector PIO, LBA48, 152627MB, 312581808 sectors wd0(pciide0:0:0): using PIO mode 4, Ultra-DMA mode 2 atapiscsi0 at pciide0 channel 1 drive 0 scsibus0 at atapiscsi0: 2 targets cd0 at scsibus0 targ 0 lun 0: <LITEON, CD-ROM LTN486S, YSU1> ATAPI 5/cdrom removable cd0(pciide0:1:0): using PIO mode 4, Ultra-DMA mode 2 ppb0 at pci0 dev 5 function 0 "DEC 21152 PCI-PCI" rev 0x03 pci1 at ppb0 bus 1 em0 at pci1 dev 0 function 0 "Intel PRO/1000T (82544GC)" rev 0x02: ivec 0x7d9, address 00:02:b3:ed:68:89 vgafb0 at pci0 dev 19 function 0 "ATI Rage XL" rev 0x27 wsdisplay0 at vgafb0 mux 1: console (std, sun emulation) usb0 at ohci0: USB revision 1.0 uhub0 at usb0 "Sun OHCI root hub" rev 1.00/1.00 addr 1 uhidev0 at uhub0 port 4 configuration 1 interface 0 "Sun Microsystems Type 6 Keyboard" rev 1.00/1.02 addr 2 uhidev0: iclass 3/1 ukbd0 at uhidev0: 8 modifier keys, 6 key codes, country code 33 wskbd0 at ukbd0: console keyboard, using wsdisplay0 softraid0 at root bootpath: /p...@1f,0/i...@d,0/d...@0,0 root on wd0a swap on wd0b dump on wd0b Thanks, Axton Grams