On Mon, Nov 15, 2010 at 11:46:25PM +0000, Simon Slaytor wrote:
> Hey Folks,
>
> I've been pulling my hair out on this one for a little while now, I
> have a 4.7 AMD64 release firewall based around an Intel D945GCLF
> using the on-board 8101E based Realtek Nic which is connected to a
> Netgear FSM726v1 L2 Managed switch.
>
> I've been trying to configure the Firewall/Switch to run multiple
> .1q vlans over the single interface without any luck. Configs listed
> below. So in a fit of desperation I pulled out an old Nokia IP440,
> installed 4.8 i386 release and configured up the 'same' vlan
> interface, the Nokia uses the dc nic driver. In this configuration
> with this device the tagging works!
>
> Both devices where plugged into the same port on the switch, the
> configuration of which wasn't changed.
>
> So my question is this, is the problem with 4.7AMD64 the Realtek Nic
> or the Intel D945GCLF board? Given the teething problems of BSD of
> the Intel board I suspect its this but thought I'd try and save
> myself the time in re-installing etc if someone in the know could
> point out whats fubar'd.
>
> Cheers guys, 4.8 yet another fantastic release ;)
>
Hmm. If I read this correctly you claim that VLAN support started to fail
between OpenBSD 4.7 and 4.8. Did you ever try to attach an other system
directly to the re(4) and do a tcpdump of the packets sent out/received by
re(4)? It would be interesting if TX or RX is affected.
The following diff disabled HW VLAN tagging support, maybe do a test with
this and see if this solves your problems.
--
:wq Claudio
Index: re.c
===================================================================
RCS file: /cvs/src/sys/dev/ic/re.c,v
retrieving revision 1.130
diff -u -p -r1.130 re.c
--- re.c 12 Nov 2010 22:17:30 -0000 1.130
+++ re.c 16 Nov 2010 13:38:39 -0000
@@ -1112,7 +1112,7 @@ re_attach(struct rl_softc *sc, const cha
IFCAP_CSUM_TCPv4 | IFCAP_CSUM_UDPv4;
#if NVLAN > 0
- ifp->if_capabilities |= IFCAP_VLAN_HWTAGGING;
+/* ifp->if_capabilities |= IFCAP_VLAN_HWTAGGING; */
#endif
timeout_set(&sc->timer_handle, re_tick, sc);