From owner-freebsd-bugs@FreeBSD.ORG Sun Jul 29 20:40:02 2007 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 750CC16A41A for ; Sun, 29 Jul 2007 20:40:02 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 5079E13C465 for ; Sun, 29 Jul 2007 20:40:02 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.1/8.14.1) with ESMTP id l6TKe2sx086264 for ; Sun, 29 Jul 2007 20:40:02 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.1/8.14.1/Submit) id l6TKe2sY086256; Sun, 29 Jul 2007 20:40:02 GMT (envelope-from gnats) Resent-Date: Sun, 29 Jul 2007 20:40:02 GMT Resent-Message-Id: <200707292040.l6TKe2sY086256@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Kirill Nuzhdin Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 24F4A16A5AE for ; Sun, 29 Jul 2007 20:32:30 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from www.freebsd.org (www.freebsd.org [IPv6:2001:4f8:fff6::21]) by mx1.freebsd.org (Postfix) with ESMTP id ED14C13C45D for ; Sun, 29 Jul 2007 20:32:29 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from www.freebsd.org (localhost [127.0.0.1]) by www.freebsd.org (8.14.1/8.14.1) with ESMTP id l6TKWTk0071586 for ; Sun, 29 Jul 2007 20:32:29 GMT (envelope-from nobody@www.freebsd.org) Received: (from nobody@localhost) by www.freebsd.org (8.14.1/8.14.1/Submit) id l6TKWTFL071585; Sun, 29 Jul 2007 20:32:29 GMT (envelope-from nobody) Message-Id: <200707292032.l6TKWTFL071585@www.freebsd.org> Date: Sun, 29 Jul 2007 20:32:29 GMT From: Kirill Nuzhdin To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-3.0 Cc: Subject: kern/115019: [netgraph] ng_ether upper hook packet flow stops on adding ethernet interface to ifconfig bridge X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 29 Jul 2007 20:40:02 -0000 >Number: 115019 >Category: kern >Synopsis: [netgraph] ng_ether upper hook packet flow stops on adding ethernet interface to ifconfig bridge >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sun Jul 29 20:40:01 GMT 2007 >Closed-Date: >Last-Modified: >Originator: Kirill Nuzhdin >Release: 6.2-STABLE >Organization: >Environment: FreeBSD pile.local 6.2-STABLE FreeBSD 6.2-STABLE #0: Mon Jul 9 15:25:08 MSD 2007 root@pile.local:/usr/obj/usr/.amd_mount/src/sys/PILE amd64 >Description: If we add ethernet interface to ifconfig bridge, a packet flow from the upper hook of the ether node of a netgraph construction disappears. Meanwhile, packet flow from the lower hook is not effected. Following tests show that on adding ethernet interface to an ifconfig bridge, corresponding netgraph node "forgets" about its upper hook. Without loss of generality one can use instead of an arbitrary netgraph construction a tee netgraph node. Initial position: 1. bce1 - ethernet interface (or fxp, does not matter) 2. netgraph construction: ngctl mkpeer bce1: tee lower right ngctl connect bce1:lower bce1: left upper 3. traffic monitoring with NGM_TEE_GET_STATS: ngctl msg bce1:lower getstats or ngctl msg bce1:upper getstats 4. traffic flow from external net to bce1 interface and vice versa initial position, action: no action result: - left2right hook shows traffic flow - right2left hook shows traffic flow - traffic through bce1 flows normally initial position, action: # ifconfig bridge0 create # ifconfig bridge0 addm bce1 result: - left2right hook shows no traffic - right2left hook shows traffic flow - traffic through bce1 flows normally initial position, action: # ifconfig bridge0 create # ifconfig bridge0 addm bce1 # ngctl rmhook bce1: lower result: - left2right hook shows no traffic - right2left hook shows no traffic - traffic through bce1 flows stops initial position, action: # ifconfig bridge0 create # ifconfig bridge0 addm bce1 # ngctl rmhook bce1: upper result: - left2right hook shows no traffic - right2left hook shows traffic flow - traffic through bce1 flows normally Also reproducible in this environment: FreeBSD gw.local 6.2-STABLE FreeBSD 6.2-STABLE #0: Sat Jun 16 13:24:55 MSD 2007 root@gw.local:/usr/obj/usr/src/sys/GW i386 >How-To-Repeat: - kldload ng_tee kldload ng_ether ngctl mkpeer if0: tee lower right ngctl connect if0:lower if0: left upper - ngctl msg if0:lower getstats make sure left->right and right->left hooks traffic is fine - ifconfig bridge0 create ifconfig bridge0 addm if0 - ngctl msg if0:lower getstats - make sure there is no left->right hooks traffic >Fix: >Release-Note: >Audit-Trail: >Unformatted: