From owner-freebsd-net@FreeBSD.ORG Sat Apr 19 07:53:26 2003 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E57B937B401; Sat, 19 Apr 2003 07:53:26 -0700 (PDT) Received: from postfix4-1.free.fr (postfix4-1.free.fr [213.228.0.62]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2748443FB1; Sat, 19 Apr 2003 07:53:26 -0700 (PDT) (envelope-from vjardin@wanadoo.fr) Received: from mercure.vincentjardin.net (rennes-1-a7-62-147-212-239.dial.proxad.net [62.147.212.239]) by postfix4-1.free.fr (Postfix) with ESMTP id 82D5C19EC4; Sat, 19 Apr 2003 16:53:23 +0200 (CEST) Content-Type: text/plain; charset="us-ascii" From: Vincent Jardin To: freebsd-net@freebsd.org, freebsd-atm@freebsd.org Date: Sat, 19 Apr 2003 16:53:18 +0200 User-Agent: KMail/1.4.3 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Message-Id: <200304191653.18655.vjardin@wanadoo.fr> Subject: Netgraph ISR conflict with HARP ISR X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 19 Apr 2003 14:53:27 -0000 Hi, My kernel is compiled with the HARP stack (ie ATM) support. When I load t= he=20 Netgraph module, the HARP stack is not able anymore to process the incomi= ng=20 packets. It is due to the HARP's netisrs entry that is replaced by the Netgraph's = ISR=20 one !!!. For example, see on the enclosed log, netisrs[AF_ATM] is pointed= on=20 ngintr. In fact, it looks like there is a wrong comment within the source code ab= out=20 AF_NETGRAPH and NETISR_NETGRAPH, $ grep AF_NETGRAPH */*h =20 net/netisr.h:#define NETISR_NETGRAPH 30 /* same as AF_NET= GRAPH=20 */ sys/socket.h:#define AF_NETGRAPH 32 /* Netgraph socke= ts */ sys/socket.h:#define PF_NETGRAPH AF_NETGRAPH It means that NETISR_NETGRAPH is not AF_NETGRAPH. In fact it would be=20 impossible because netisrs can contain only 32 entry.=20 netisrs[NETISR_NETGRAPH] would be the 33th one ! whereas netatm/atm_if.h:#define NETISR_ATM AF_ATM sys/socket.h:#define AF_ATM 30 /* ATM */ That's ok, but Netgraph has stolen the ATM ISR entry ;-( What could be the clean solution ? Vincent PS: I get this issue on FreeBSD 4.7: # gdb -k kernel.debug (kgdb) add-symbol-file netgraph.ko 0xc11ee000+0x2a64 add symbol table from file "netgraph.ko" at text_addr =3D 0xc11f0a64? (y or n) y Reading symbols from netgraph.ko...done. (kgdb) p ngintr $5 =3D {void ()} 0xc11f26b8 (kgdb) p atm_intr $6 =3D {void ()} 0xc01d35bc (kgdb) netisrs[AF_ATM] 0xc11f26b8 ie ngintr !!