From easton@traffic-shaper.mia.net Mon Jun 21 21:48:49 1999
Return-Path: <easton@traffic-shaper.mia.net>
Received: from traffic-shaper.mia.net (traffic-shaper.mia.net [206.190.23.223])
	by hub.freebsd.org (Postfix) with ESMTP id 592B614DC3
	for <FreeBSD-gnats-submit@freebsd.org>; Mon, 21 Jun 1999 21:48:44 -0700 (PDT)
	(envelope-from easton@traffic-shaper.mia.net)
Received: (from easton@localhost)
	by traffic-shaper.mia.net (8.9.2/8.9.2) id XAA00913;
	Mon, 21 Jun 1999 23:48:16 -0500 (CDT)
	(envelope-from easton)
Message-Id: <199906220448.XAA00913@traffic-shaper.mia.net>
Date: Mon, 21 Jun 1999 23:48:16 -0500 (CDT)
From: easton@mia.net
Sender: easton@traffic-shaper.mia.net
Reply-To: easton@mia.net
To: FreeBSD-gnats-submit@freebsd.org
Subject: if_pn.c lacks bridging support; patch enclosed to add it
X-Send-Pr-Version: 3.2

>Number:         12335
>Category:       kern
>Synopsis:       if_pn.c lacks bridging support; patch enclosed to add it
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon Jun 21 21:50:00 PDT 1999
>Closed-Date:    Thu May 24 02:40:18 PDT 2001
>Last-Modified:  Thu May 24 02:40:33 PDT 2001
>Originator:     Josh Easton
>Release:        FreeBSD 3.1-RELEASE i386
>Organization:
Maria's Internet Access
>Environment:

	All versions of FreeBSD (including -current)

>Description:

	if_pn.c has never had bridging support added to it. Fix attached

>How-To-Repeat:

	Any attempts to enable bridging fail

>Fix:
	
	Patch to 3.1-RELEASE:

--- if_pn.c     Mon Jun 21 03:34:49 1999
+++ if_pn.c.bridging    Mon Jun 21 23:22:24 1999
@@ -77,6 +77,10 @@
 #include <net/bpf.h>
 #endif

+#ifdef BRIDGE
+#include <net/bridge.h>
+#endif
+
 #include <vm/vm.h>              /* for vtophys */
 #include <vm/pmap.h>            /* for vtophys */
 #include <machine/clock.h>      /* for DELAY */
@@ -1325,11 +1329,26 @@
                        }
                }
 #endif
-               /* Remove header from mbuf and pass it on. */
+
+#ifdef BRIDGE
+               m->m_pkthdr.rcvif = ifp;
+               m->m_pkthdr.len = total_len;
+               if (do_bridge) {
+                 struct ifnet *bdg_ifp;
+                 bdg_ifp = bridge_in(m);
+                 if (bdg_ifp == BDG_DROP)
+                   return;
+                 if (bdg_ifp != BDG_LOCAL)
+                   bdg_forward(&m, bdg_ifp);
+                 if (bdg_ifp != BDG_LOCAL && bdg_ifp != BDG_BCAST &&
+                     bdg_ifp != BDG_MCAST)
+                   return;
+               }
+#endif
+               /* Remove header from mbuf and pass it on. */
                m_adj(m, sizeof(struct ether_header));
                ether_input(ifp, eh, m);
        }
-
        return;
 }


>Release-Note:
>Audit-Trail:
State-Changed-From-To: open->closed 
State-Changed-By: phk 
State-Changed-When: Thu May 24 02:40:18 PDT 2001 
State-Changed-Why:  
The if_pn driver has been replaced. 

http://www.FreeBSD.org/cgi/query-pr.cgi?pr=12335 
>Unformatted:
