Servus, I had the same problem here and posted it to the isdn4linux Mailing list. You need a patched kernel, and important, your ipppd has to be linked against libpcap-0.7.2 (my ipppd out of Debian sarge worked).
http://listserv.isdn4linux.de/pipermail/isdn4linux/2005-March/001319.html
diff -ur linux-2.6.8-9.org/drivers/isdn/i4l/isdn_ppp.c linux/drivers/isdn/i4l/isdn_ppp.c --- linux-2.6.8-9.org/drivers/isdn/i4l/isdn_ppp.c 2004-08-14 07:37:25.000000000 +0200 +++ linux/drivers/isdn/i4l/isdn_ppp.c 2004-09-20 12:34:20.000000000 +0200 @@ -1152,7 +1152,7 @@ { u_int16_t *p = (u_int16_t *) skb->data; - *p = 0; /* indicate inbound in DLT_LINUX_SLL */ + *p = 0; /* indicate inbound */ } if (is->pass_filter @@ -1293,12 +1293,12 @@ /* check if we should pass this packet * the filter instructions are constructed assuming * a four-byte PPP header on each packet */ - skb_push(skb, 4); + *skb_push(skb, 4) = 1; /* indicate outbound */ { u_int16_t *p = (u_int16_t *) skb->data; - *p++ = htons(4); /* indicate outbound in DLT_LINUX_SLL */ + p++; *p = htons(proto); } @@ -1491,12 +1491,12 @@ * temporarily remove part of the fake header stuck on * earlier. */ - skb_pull(skb, IPPP_MAX_HEADER - 4); + *skb_pull(skb, IPPP_MAX_HEADER - 4) = 1; /* indicate outbound */ { u_int16_t *p = (u_int16_t *) skb->data; - *p++ = htons(4); /* indicate outbound in DLT_LINUX_SLL */ + p++; *p = htons(proto); }
pgp8Za1baR4p6.pgp
Description: PGP signature
HTH, Max