Support ETHERCAP_VLAN_MTU by ignoring the EX_UPD_ERROR and EX_UPD_OVERSIZED

status bits. Tested with a 3c905-TX.
This commit is contained in:
bouyer 2000-10-17 16:16:52 +00:00
parent 5cc13a273b
commit f87b1573c3
2 changed files with 12 additions and 3 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: elinkxl.c,v 1.42 2000/10/11 16:57:45 thorpej Exp $ */
/* $NetBSD: elinkxl.c,v 1.43 2000/10/17 16:16:52 bouyer Exp $ */
/*-
* Copyright (c) 1998 The NetBSD Foundation, Inc.
@ -434,6 +434,11 @@ ex_config(sc)
ifp->if_flags =
IFF_BROADCAST | IFF_SIMPLEX | IFF_NOTRAILERS | IFF_MULTICAST;
/*
* We can support 802.1Q VLAN-sized frames.
*/
sc->sc_ethercom.ec_capabilities |= ETHERCAP_VLAN_MTU;
if_attach(ifp);
ether_ifattach(ifp, macaddr);
@ -1206,7 +1211,10 @@ ex_intr(arg)
if (ex_add_rxbuf(sc, rxd) == 0) {
u_int16_t total_len;
if (pktstat & EX_UPD_ERR) {
if (pktstat &
((sc->sc_ethercom.ec_capenable &
ETHERCAP_VLAN_MTU) ?
EX_UPD_ERR_VLAN : EX_UPD_ERR)) {
ifp->if_ierrors++;
m_freem(m);
goto rcvloop;

View File

@ -1,4 +1,4 @@
/* $NetBSD: elinkxlreg.h,v 1.3 2000/09/19 01:15:28 fvdl Exp $ */
/* $NetBSD: elinkxlreg.h,v 1.4 2000/10/17 16:16:52 bouyer Exp $ */
/*-
* Copyright (c) 1998 The NetBSD Foundation, Inc.
@ -320,3 +320,4 @@ struct ex_txdesc {
#define EX_UPD_UDPCKSUMERR 0x08000000 /* UDP cksum error (90xB) */
#define EX_UPD_ERR 0x001f4000 /* Errors we check for */
#define EX_UPD_ERR_VLAN 0x000f0000 /* same for 802.1q */