Page MenuHomeFreeBSD

Merge tcpdump 4.7.4 to head
ClosedPublic

Authored by pkelsey on Jul 7 2015, 4:31 AM.
Tags
None
Referenced Files
Unknown Object (File)
Fri, Nov 15, 2:49 AM
Unknown Object (File)
Wed, Nov 13, 1:56 AM
Unknown Object (File)
Tue, Nov 12, 4:15 PM
Unknown Object (File)
Sun, Nov 3, 12:53 PM
Unknown Object (File)
Thu, Oct 31, 3:14 PM
Unknown Object (File)
Wed, Oct 23, 11:15 PM
Unknown Object (File)
Wed, Oct 23, 11:15 PM
Unknown Object (File)
Wed, Oct 23, 11:15 PM
Subscribers

Details

Summary

Following the vendor import and tag of the 4.7.4 dist, I executed the
merge as follows:

  1. Merged vendor/tcpdump/dist to head/contrib/tcpdump (there were no

file conflicts)

  1. Reviewed the 3-way diff between vendor/tcpdump/4.6.2 (the prior

vendor merge), head/contrib/tcpdump before I merged in 4.7.4, and
head/contrib/tcpdump after I merged in 4.7.4 and verified that no
local changes made since the 4.6.2 merge to head were lost.

  1. Restored the local changes made in r272451 and r272653 that were

lost in the merge of 4.6.2 and that are not part of the 4.7.4 dist
(https://lists.freebsd.org/pipermail/svn-src-head/2015-February/067853.html)

  1. Added two (u_int) casts to print-isoclns.c to avoid build failure

due to signed/unsigned comparison.

  1. In head/usr.sbin/tcpdump/tcpdump, I adjusted Makefile to

include newly added sources and to build print-ip6.c
unconditionally, modified config.h to reflect added/changed
configuration controls in vendor/tcpdump/dist/config.h.in, and
manually merged changes to vendor/tcpdump/dist/tcpdump.1.in into
tcpdump.1.

  1. Built and ad-hoc tested it on an 11-CURRENT machine, verifying

basic capture works and that Bug 199568 is resolved. Reviewed man
page changes via 'man tcpdump'.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

pkelsey retitled this revision from to Merge tcpdump 4.7.4 to head.
pkelsey updated this object.
pkelsey edited the test plan for this revision. (Show Details)
pkelsey added reviewers: brooks, delphij, hiren.
hiren edited edge metadata.

Thanks a lot for doing this!

This revision is now accepted and ready to land.Jul 7 2015, 6:12 AM

Are the local changes FreeBSD-specific? To put it another way, can they be submitted upstream to avoid being lost on the next import? The man page changes look that way, at least.

pkelsey edited edge metadata.
In D3007#59268, @wblock wrote:

Are the local changes FreeBSD-specific? To put it another way, can they be submitted upstream to avoid being lost on the next import? The man page changes look that way, at least.

The man page changes are not local changes, but were merged in from the vendor man page source. I updated item 5 in the summary to clarify this.

The other local changes that I am aware of are:

  1. If using capsicum, we also use capsicum DNS. I don't know the backstory here - whether capsicum DNS is available on Linux also and if there has been any attempt to upstream this. It is certainly not in the upstream head.
  1. When using capsicum, we add CAP_EVENT the capture file descriptor rights so that the netmap-backed version of libpcap can be used with tcpdump. netmap and capsicum support for Linux exists, so this should be a candidate for upstreaming. This is not currently in the upstream head. I will check with Luigi et al. to see if there has been any attempt to upstream this in the past and what their thoughts are here.
  1. The (uint_t) casts I added to print-isoclns.c during this merge so the build did not fail with a signed/unsigned mismatch. I will report this upstream once this merge concludes.
In D3007#59268, @wblock wrote:

Are the local changes FreeBSD-specific? To put it another way, can they be submitted upstream to avoid being lost on the next import? The man page changes look that way, at least.

The man page changes are not local changes, but were merged in from the vendor man page source. I updated item 5 in the summary to clarify this.

The other local changes that I am aware of are:

  1. If using capsicum, we also use capsicum DNS. I don't know the backstory here - whether capsicum DNS is available on Linux also and if there has been any attempt to upstream this. It is certainly not in the upstream head.
  1. When using capsicum, we add CAP_EVENT the capture file descriptor rights so that the netmap-backed version of libpcap can be used with tcpdump. netmap and capsicum support for Linux exists, so this should be a candidate for upstreaming. This is not currently in the upstream head. I will check with Luigi et al. to see if there has been any attempt to upstream this in the past and what their thoughts are here.
  1. The (uint_t) casts I added to print-isoclns.c during this merge so the build did not fail with a signed/unsigned mismatch. I will report this upstream once this merge concludes.

FreeBSD has been terrible about upstreaming local tcpdump changes. All of these should probably be submitted as pull requests to the tcpdump github.

brooks edited edge metadata.

Looks good to me

This revision was automatically updated to reflect the committed changes.