diff options
author | Camiel Dobbelaar <camield@cvs.openbsd.org> | 2005-06-15 16:30:35 +0000 |
---|---|---|
committer | Camiel Dobbelaar <camield@cvs.openbsd.org> | 2005-06-15 16:30:35 +0000 |
commit | 603b6d93ffbb284ccfb6b1062049168c94fcd32a (patch) | |
tree | 1f9715f9a6d60268dac3709fb3ec387311c9643c | |
parent | b32a46ee7619c54c0ca1ec638120daa1e423fd40 (diff) |
Disable hardware vlan decapsulation.
ok brad henning jason
-rw-r--r-- | sys/dev/pci/if_bge.c | 28 |
1 files changed, 4 insertions, 24 deletions
diff --git a/sys/dev/pci/if_bge.c b/sys/dev/pci/if_bge.c index 13126aa7eaf..c774a20b140 100644 --- a/sys/dev/pci/if_bge.c +++ b/sys/dev/pci/if_bge.c @@ -1,4 +1,4 @@ -/* $OpenBSD: if_bge.c,v 1.62 2005/06/07 20:39:07 brad Exp $ */ +/* $OpenBSD: if_bge.c,v 1.63 2005/06/15 16:30:34 camield Exp $ */ /* * Copyright (c) 2001 Wind River Systems * Copyright (c) 1997, 1998, 1999, 2001 @@ -2214,10 +2214,6 @@ bge_rxeof(sc) struct bge_rx_bd *cur_rx; u_int32_t rxidx; struct mbuf *m = NULL; -#if NVLAN > 0 - u_int16_t vlan_tag = 0; - int have_tag = 0; -#endif #ifdef BGE_CHECKSUM int sumflags = 0; #endif @@ -2228,13 +2224,6 @@ bge_rxeof(sc) rxidx = cur_rx->bge_idx; BGE_INC(sc->bge_rx_saved_considx, sc->bge_return_ring_cnt); -#if NVLAN > 0 - if (cur_rx->bge_flags & BGE_RXBDFLAG_VLAN_TAG) { - have_tag = 1; - vlan_tag = cur_rx->bge_vlan_tag; - } -#endif - if (cur_rx->bge_flags & BGE_RXBDFLAG_JUMBO_RING) { BGE_INC(sc->bge_jumbo, BGE_JUMBO_RX_RING_CNT); m = sc->bge_cdata.bge_rx_jumbo_chain[rxidx]; @@ -2317,18 +2306,6 @@ bge_rxeof(sc) m->m_pkthdr.csum_flags = sumflags; sumflags = 0; #endif - -#if NVLAN > 0 - /* - * If we received a packet with a vlan tag, pass it - * to vlan_input() instead of ether_input(). - */ - if (have_tag) { - vlan_input_tag(m, vlan_tag); - have_tag = vlan_tag = 0; - continue; - } -#endif ether_input_mbuf(ifp, m); } @@ -2827,6 +2804,9 @@ bge_init(xsc) BGE_CLRBIT(sc, BGE_RX_MODE, BGE_RXMODE_RX_PROMISC); } + /* Disable hardware decapsulation of vlan frames. */ + BGE_SETBIT(sc, BGE_RX_MODE, BGE_RXMODE_RX_KEEP_VLAN_DIAG); + /* Program multicast filter. */ bge_setmulti(sc); |