On Oct 27, 2014, at 6:12 AM, Jason Pyeron wrote:
> On Oct 27, 2014, at 1:47 PM, Guy Harris wrote:
>
>> On Oct 26, 2014, at 7:55 PM, "Jason Pyeron" wrote:
>>
>>> When I './tcpdump -r -' I get a:
>>> reading from file -, link-type PFLOG (OpenBSD pflog file)
>>> tcpdump: packet printing is not supported for link type PFLOG: use -w
>>>
>>> I am using tcpdump 4ac7226 and libpcap 625575f.
>>>
>>> Did I miss a configure option?
>>
>> Are you building on an operating system that supports PFLOG
>> as a filter mechanism?
>
> Not even close.
I.e., you're not building it on a FreeBSD 8.1, 8.2, or 8.3 system?
>> I think the only OSes that support those options are OpenBSD
>> and FreeBSD; if you're not building on those OSes, you can't
>> read PFLOG files, because the developers of PFLOG apparently
>> found it too difficult either to standardize the PFLOG header
>> or to add a version field to it, so that
>> LINKTYPE_PFLOG/DLT_PFLOG can be a standard format in pcap and
>> pcap-ng files writable by one operating system and readable
>> by a different operating system, rather than a file whose
>> format is OS and OS-version dependent and that therefor can
>> only be read by a program expecting a particular OS version's
>> flavor of PFLOG.
>
> Nice job BSD people. Could there be a way to force support for a specific
> version? In my case FreeBSD 8.1-RELEASE-p13 / FreeBSD 8.3-RELEASE-p16.
So I assume you're *not* building on one of those OSes, or on any other version
of FreeBSD or OpenBSD or any other OS on which there's a
/usr/include/net/pfvar.h header?
If there *is* a /usr/include/net/pfvar.h header on your system, the configure
script *should* have figured out that it's there and configured the pflog
printer in. However, it'll handle the PFLOG format that the "struct pfloghdr"
defined in the /usr/include/net/if_pflog.h header defines.
If there *isn't* a /usr/include/net/pfvar.h header on your system, you'd have
to copy /usr/include/net/pfvar.h and /usr/include/net/if_pflog.h from the one
of the FreeBSD systems in question to /usr/include/net on your machine, and
re-run the configure script and try to build. (You might have to tweak the
copied-over headers to get the compilation to work on your machine.)
If the different FreeBSD versions have different "struct pfloghdr" structure
layouts, you'll need to build different versions of tcpdump for them!
>> (And if you *are* building on those OSes, what you'll get is
>> a version of tcpdump that can read dumps from that particular
>> version of the OS, but won't necessarily be able to read
>> dumps from other versions of the same OS or other OSes.)
>
> This may be off topic but how does wireshark deal with this issue?
By having a particular message format hardwired into it. I don't know what OS
versions that handles.
___
tcpdump-workers mailing list
tcpdump-workers@lists.tcpdump.org
https://lists.sandelman.ca/mailman/listinfo/tcpdump-workers