Last version of ntop (ntop-current.tar.gz) does not handle correctly PPPoE
data on linux (kernel 2.4.18) with libpcap-0.7.1.

In fact, no data is handled by ntop when capturing from interface ppp0; I
found that the ppp0 interface is using a datalink type set to
DLT_LINUX_SLL. The captured packet follows a 16 byte header (found in
sll.h in libpcap).
Skipping it and calling processIpPkt with the rest of the packet made ntop
work on ppp0 interface.

Don't know if it's the correct way to operate, but with the following
modification, I could make it work!

diff ./pbuf.c /root/orig/ntop-current/ntop/pbuf.c
1781,1788d1780
<     case DLT_LINUX_SLL:
< #define SLL_HDR_LEN 16
<       length = h->len;
<       length -= SLL_HDR_LEN;
<       ether_src = ether_dst = NULL;
<       processIpPkt(p+ SLL_HDR_LEN , h, length, ether_src, ether_dst, actualDeviceId);
<       break;
<
1817,1819c1809
<        && (myGlobals.device[deviceId].datalink != DLT_RAW)
<        && (myGlobals.device[deviceId].datalink != DLT_LINUX_SLL)
<        ) {
---
>        && (myGlobals.device[deviceId].datalink != DLT_RAW)) {

Bye
 Stefano

_______________________________________________
Ntop mailing list
[EMAIL PROTECTED]
http://lists.ntop.org/mailman/listinfo/ntop

Reply via email to