Date: Thu, 26 Jul 2001 07:30:31 +1000 (EST) From: peter.jeremy@alcatel.com.au To: FreeBSD-gnats-submit@freebsd.org Subject: kern/29235: VLAN support for SMC EtherPower II (tx) Message-ID: <200107252130.f6PLUVj73023@gsmx07.alcatel.com.au>
next in thread | raw e-mail | index | archive | help
>Number: 29235
>Category: kern
>Synopsis: VLAN support for SMC EtherPower II (tx)
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: change-request
>Submitter-Id: current-users
>Arrival-Date: Wed Jul 25 14:40:27 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator: Peter Jeremy
>Release: FreeBSD 5.0-CURRENT i386
>Organization:
Alcatel Australia Limited
>Environment:
System: FreeBSD gsmx07.alcatel.com.au 5.0-CURRENT FreeBSD 5.0-CURRENT #0: Thu Jan 18 05:05:46 EST 2001 root@gsmx07.alcatel.com.au:/usr/obj/3.0/cvs/src/sys/gsmx i386
>Description:
The attached patch adds 802.1Q VLAN support for the SMC
EtherPower III (SMC9432TX) NIC - tx(4). I have not tested
the module version, but building it into the kernel works
well.
>How-To-Repeat:
Apply patch, attach tx NIC to VLAN trunk, configure and play.
>Fix:
Index: modules/tx/Makefile
===================================================================
RCS file: /home/CVSROOT/src/sys/modules/tx/Makefile,v
retrieving revision 1.5
diff -u -r1.5 Makefile
--- modules/tx/Makefile 2001/01/06 14:00:32 1.5
+++ modules/tx/Makefile 2001/01/07 21:03:07
@@ -1,9 +1,12 @@
# $FreeBSD: src/sys/modules/tx/Makefile,v 1.5 2001/01/06 14:00:32 obrien Exp $
.PATH: ${.CURDIR}/../../pci
-
KMOD= if_tx
-SRCS= if_tx.c opt_bdg.h device_if.h bus_if.h pci_if.h
+SRCS= if_tx.c opt_bdg.h device_if.h bus_if.h pci_if.h vlan.h
SRCS+= miibus_if.h
+CLEANFILES= vlan.h
+
+vlan.h:
+ touch vlan.h
.include <bsd.kmod.mk>
Index: pci/if_tx.c
===================================================================
RCS file: /home/CVSROOT/src/sys/pci/if_tx.c,v
retrieving revision 1.46
diff -u -r1.46 if_tx.c
--- pci/if_tx.c 2001/06/23 19:30:26 1.46
+++ pci/if_tx.c 2001/07/02 15:17:59
@@ -54,13 +54,21 @@
#if defined(__FreeBSD__)
#define NBPFILTER 1
+#include "vlan.h"
+
#include <net/if.h>
#include <net/if_arp.h>
#include <net/ethernet.h>
#include <net/if_media.h>
+#if NBPF > 0
#include <net/bpf.h>
+#endif
+#if NVLAN > 0
+#include <net/if_vlan_var.h>
+#endif
+
#include <vm/vm.h> /* for vtophys */
#include <vm/pmap.h> /* for vtophys */
#include <machine/bus_memio.h>
@@ -85,6 +93,8 @@
#else /* __OpenBSD__ */
#include "bpfilter.h"
+#define NVLAN 0 /* not sure if/how OpenBSD supports VLANs */
+
#include <sys/device.h>
#include <net/if.h>
@@ -555,6 +565,9 @@
/* Attach to OS's managers */
ether_ifattach(ifp, ETHER_BPF_SUPPORTED);
+#if NVLAN > 0
+ ifp->if_hdrlen = sizeof(struct ether_vlan_header);
+#endif
callout_handle_init(&sc->stat_ch);
fail:
@@ -1745,8 +1758,11 @@
return -1;
}
desc->bufaddr = vtophys( mtod(buf->mbuf,caddr_t) );
-
+#if NVLAN > 0
+ desc->buflength = ETHER_MAX_FRAME_LEN + EVL_ENCAPLEN;
+#else
desc->buflength = ETHER_MAX_FRAME_LEN;
+#endif
desc->status = 0x8000; /* Give to EPIC */
}
>Release-Note:
>Audit-Trail:
>Unformatted:
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200107252130.f6PLUVj73023>
