From owner-cvs-all@FreeBSD.ORG Thu Oct 18 21:22:16 2007 Return-Path: Delivered-To: cvs-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 46B3716A417; Thu, 18 Oct 2007 21:22:16 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 37A7D13C468; Thu, 18 Oct 2007 21:22:16 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l9ILMGlr014266; Thu, 18 Oct 2007 21:22:16 GMT (envelope-from thompsa@repoman.freebsd.org) Received: (from thompsa@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l9ILMGZV014265; Thu, 18 Oct 2007 21:22:16 GMT (envelope-from thompsa) Message-Id: <200710182122.l9ILMGZV014265@repoman.freebsd.org> From: Andrew Thompson Date: Thu, 18 Oct 2007 21:22:15 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Cc: Subject: cvs commit: src/sys/net ethernet.h if_bridge.c if_ethersubr.c if_vlan.c X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 18 Oct 2007 21:22:16 -0000 thompsa 2007-10-18 21:22:15 UTC FreeBSD src repository Modified files: sys/net ethernet.h if_bridge.c if_ethersubr.c if_vlan.c Log: The bridging output function puts the mbuf directly on the interfaces send queue so the output network card must support the same tagging mechanism as how the frame was input (prepended Ethernet header tag or stripped HW mflag). Now the vlan Ethernet header is _always_ stripped in ether_input and the mbuf flagged, only only network cards with VLAN_HWTAGGING enabled would properly re-tag any outgoing vlan frames. If the outgoing interface does not support hardware tagging then readd the vlan header to the front of the frame. Move the common vlan encapsulation in to ether_vlanencap(). Reported by: Erik Osterholm, Jon Otterholm MFC after: 1 week Revision Changes Path 1.33 +1 -0 src/sys/net/ethernet.h 1.104 +17 -1 src/sys/net/if_bridge.c 1.237 +28 -0 src/sys/net/if_ethersubr.c 1.125 +1 -28 src/sys/net/if_vlan.c