cvs commit: src/sys/net bpf.c
Poul-Henning Kamp
phk at phk.freebsd.dk
Tue Jul 25 19:20:17 UTC 2006
In message <200607252001.aa18647 at salmon.maths.tcd.ie>, David Malone writes:
>> > libpcap does not need to be modified; it works already for
>> > wireless. The fact that the DLT is named DLT_IEEE802_11_RADIO is a
>> > bit of a misnomer; it's not entirely 802.11-specific.
>
>> Ah, you mean we just exploit DLT_IEEE802_11_RADIO. Hmm... How about
>> processing overhead? Can we synchronize the timestamping with system
>> time?
>
>It sounds to me like a reasonable thing to do would be to pass up
>a raw version of the timestamp (as returned by the hardware).
You can only do that for a very limited time. To make it work for
more than a fraction of a second you would need to grab the following data:
timecounter reading timehands->th_counter->tc_gettimecount()
timecounter width timehands->th_counter->tc_counter_mask
reference count timehands->th_offset_count
reference timestamp timehands->th_offset
scaling factor timehands->th_scale
UTC offset boottimebin
In total we're talking 4+4+4+12+8+12 bytes = 44 bytes.
At the expense of a subtraction and an AND, you can save 8 bytes
by storing only the masked counter delta instead of the raw values.
At the expense of a 96 bit addition, you can add the utc offset
to the boottimebin, and save another 12 bytes.
That would bring it down to 4+12+8 = 24 bytes.
--
Poul-Henning Kamp | UNIX since Zilog Zeus 3.20
phk at FreeBSD.ORG | TCP/IP since RFC 956
FreeBSD committer | BSD since 4.3-tahoe
Never attribute to malice what can adequately be explained by incompetence.
More information about the cvs-src
mailing list