Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 19 Apr 2003 16:53:18 +0200
From:      Vincent Jardin <vjardin@wanadoo.fr>
To:        freebsd-net@freebsd.org, freebsd-atm@freebsd.org
Subject:   Netgraph ISR conflict with HARP ISR
Message-ID:  <200304191653.18655.vjardin@wanadoo.fr>

next in thread | raw e-mail | index | archive | help
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 <ngintr>
(kgdb) p atm_intr
$6 =3D {void ()} 0xc01d35bc <atm_intr>
(kgdb)

netisrs[AF_ATM] 0xc11f26b8 ie ngintr !!



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200304191653.18655.vjardin>