hello,
        When my cisco aironet pcm342 card works in normal mode, it just looks like a 
normal 
ethernet card. And I use "tcpdump ip proto \\icmp ", it works well. However When my 
cisco
card works in "rfmon" mode, namely looking like a 802.11 card, "tcpdump ip proto 
\\icmp"
never returns a single packet!
        My libpcap version is 0.7.1, tcpdump version is 3.7.1. The filter readable 
format is:
(000) ldh       [30]
(001) jeq       #0x800  jt 2    jf      5
(002) ldb       [39]
(003) jeq       #0x1    jt 4    jf      5
(004) ret       #68
(005) ret       #0

Corresponding hex format is:
{0x28, 0, 0, 0x0000001e},
{0x15, 0, 3, 0x00000800},
{0x30, 0, 0, 0x00000027},
{0x15, 0, 1, 0x00000001},
{0x6, 0, 0, 0x00000044},
{0x6, 0, 0, 0x00000000},

Tcpdump's output is :
tcpdump: listening on eth0

0 packets received by filter
0 packets dropped by kernel

        What the matter? When I read the icmp frame data, I think (002) should be "ldb 
[41]". Is 
That right?
        In addition, I want the filter to return the entire frame, not just the frame 
header.
I may replace 0x00000044 with 0x0000ffff. But the struct bpf_program pcap_compile 
returned
has just a field indicating the block length, and a field containing just a block. 
Where
are the other blocks? How to find the 0x0000ffff?
        Forgive me for my silly question:)

Regards
--Hans

Reply via email to