Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/external/bsd/tcpdump merge changes.



details:   https://anonhg.NetBSD.org/src/rev/27ce4bdbe9f1
branches:  trunk
changeset: 826496:27ce4bdbe9f1
user:      christos <christos%NetBSD.org@localhost>
date:      Fri Sep 08 14:01:12 2017 +0000

description:
merge changes.

diffstat:

 external/bsd/tcpdump/dist/README              |  243 ----------
 external/bsd/tcpdump/dist/addrtoname.c        |   82 ++-
 external/bsd/tcpdump/dist/addrtostr.c         |   21 +-
 external/bsd/tcpdump/dist/af.c                |    4 +-
 external/bsd/tcpdump/dist/checksum.c          |    4 +-
 external/bsd/tcpdump/dist/configure           |   27 +-
 external/bsd/tcpdump/dist/configure.in        |   18 +-
 external/bsd/tcpdump/dist/extract.h           |   62 ++-
 external/bsd/tcpdump/dist/gmpls.c             |    4 +-
 external/bsd/tcpdump/dist/ip6.h               |   13 +-
 external/bsd/tcpdump/dist/ipproto.c           |  310 +++++++++++++-
 external/bsd/tcpdump/dist/ipproto.h           |    3 +-
 external/bsd/tcpdump/dist/l2vpn.c             |    4 +-
 external/bsd/tcpdump/dist/netdissect-stdinc.h |    5 +
 external/bsd/tcpdump/dist/netdissect.h        |   16 +-
 external/bsd/tcpdump/dist/nlpid.c             |    4 +-
 external/bsd/tcpdump/dist/oui.c               |    4 +-
 external/bsd/tcpdump/dist/print-802_11.c      |   17 +-
 external/bsd/tcpdump/dist/print-802_15_4.c    |  246 ++++++----
 external/bsd/tcpdump/dist/print-aodv.c        |   11 +-
 external/bsd/tcpdump/dist/print-arp.c         |   91 +++-
 external/bsd/tcpdump/dist/print-atm.c         |    4 +-
 external/bsd/tcpdump/dist/print-beep.c        |   28 +-
 external/bsd/tcpdump/dist/print-bfd.c         |    4 +-
 external/bsd/tcpdump/dist/print-bgp.c         |   57 +-
 external/bsd/tcpdump/dist/print-bootp.c       |    3 +-
 external/bsd/tcpdump/dist/print-cfm.c         |   75 ++-
 external/bsd/tcpdump/dist/print-chdlc.c       |   26 +-
 external/bsd/tcpdump/dist/print-cnfp.c        |   35 +-
 external/bsd/tcpdump/dist/print-decnet.c      |    4 +-
 external/bsd/tcpdump/dist/print-dhcp6.c       |    6 +-
 external/bsd/tcpdump/dist/print-domain.c      |   39 +-
 external/bsd/tcpdump/dist/print-eap.c         |   20 +-
 external/bsd/tcpdump/dist/print-eigrp.c       |   51 ++-
 external/bsd/tcpdump/dist/print-esp.c         |  100 ++++-
 external/bsd/tcpdump/dist/print-ether.c       |    4 +-
 external/bsd/tcpdump/dist/print-fr.c          |    4 +-
 external/bsd/tcpdump/dist/print-frag6.c       |    7 +-
 external/bsd/tcpdump/dist/print-gre.c         |    4 +-
 external/bsd/tcpdump/dist/print-hncp.c        |   10 +-
 external/bsd/tcpdump/dist/print-icmp.c        |   20 +-
 external/bsd/tcpdump/dist/print-icmp6.c       |    5 +-
 external/bsd/tcpdump/dist/print-ip.c          |   41 +-
 external/bsd/tcpdump/dist/print-ip6.c         |   13 +-
 external/bsd/tcpdump/dist/print-ip6opts.c     |    6 +-
 external/bsd/tcpdump/dist/print-isakmp.c      |  235 ++++++----
 external/bsd/tcpdump/dist/print-isoclns.c     |  576 +++++++++++++------------
 external/bsd/tcpdump/dist/print-juniper.c     |   59 ++-
 external/bsd/tcpdump/dist/print-l2tp.c        |  225 ++++++++--
 external/bsd/tcpdump/dist/print-ldp.c         |    4 +-
 external/bsd/tcpdump/dist/print-llc.c         |    4 +-
 external/bsd/tcpdump/dist/print-lldp.c        |   24 +-
 external/bsd/tcpdump/dist/print-lmp.c         |  438 +++++++++++++++---
 external/bsd/tcpdump/dist/print-lspping.c     |    5 +-
 external/bsd/tcpdump/dist/print-m3ua.c        |    4 +-
 external/bsd/tcpdump/dist/print-mobility.c    |   48 +-
 external/bsd/tcpdump/dist/print-mpcp.c        |    4 +-
 external/bsd/tcpdump/dist/print-mpls.c        |    4 +-
 external/bsd/tcpdump/dist/print-mptcp.c       |   86 ++-
 external/bsd/tcpdump/dist/print-nfs.c         |   27 +-
 external/bsd/tcpdump/dist/print-null.c        |    4 +-
 external/bsd/tcpdump/dist/print-olsr.c        |   31 +-
 external/bsd/tcpdump/dist/print-ospf6.c       |    6 +-
 external/bsd/tcpdump/dist/print-pgm.c         |  220 ++++++---
 external/bsd/tcpdump/dist/print-pim.c         |  428 ++++++++++--------
 external/bsd/tcpdump/dist/print-pktap.c       |    8 +-
 external/bsd/tcpdump/dist/print-ppp.c         |   41 +-
 external/bsd/tcpdump/dist/print-radius.c      |   16 +-
 external/bsd/tcpdump/dist/print-resp.c        |   26 +-
 external/bsd/tcpdump/dist/print-ripng.c       |   73 +-
 external/bsd/tcpdump/dist/print-rpki-rtr.c    |  173 ++++---
 external/bsd/tcpdump/dist/print-rsvp.c        |   26 +-
 external/bsd/tcpdump/dist/print-rt6.c         |   10 +-
 external/bsd/tcpdump/dist/print-rx.c          |   38 +-
 external/bsd/tcpdump/dist/print-sip.c         |    4 +-
 external/bsd/tcpdump/dist/print-sl.c          |   27 +-
 external/bsd/tcpdump/dist/print-slow.c        |    4 +-
 external/bsd/tcpdump/dist/print-stp.c         |    4 +-
 external/bsd/tcpdump/dist/print-syslog.c      |    4 +-
 external/bsd/tcpdump/dist/print-telnet.c      |    3 +-
 external/bsd/tcpdump/dist/print-tftp.c        |   65 +-
 external/bsd/tcpdump/dist/print-vqp.c         |   16 +-
 external/bsd/tcpdump/dist/print-vtp.c         |  132 +++--
 external/bsd/tcpdump/dist/print-wb.c          |   11 +-
 external/bsd/tcpdump/dist/print-zephyr.c      |   50 +-
 external/bsd/tcpdump/dist/print.c             |   27 +-
 external/bsd/tcpdump/dist/signature.c         |    4 +-
 external/bsd/tcpdump/dist/smbutil.c           |    3 +-
 external/bsd/tcpdump/dist/tcpdump.1.in        |  239 +++++-----
 external/bsd/tcpdump/dist/tcpdump.c           |   42 +-
 external/bsd/tcpdump/dist/tcpdump2netbsd      |   96 ----
 external/bsd/tcpdump/dist/util-print.c        |   29 +-
 external/bsd/tcpdump/include/config.h         |    3 +
 external/bsd/tcpdump/tcpdump2netbsd           |    4 +-
 94 files changed, 3290 insertions(+), 2075 deletions(-)

diffs (truncated from 10834 to 300 lines):

diff -r 9d813f382b8e -r 27ce4bdbe9f1 external/bsd/tcpdump/dist/README
--- a/external/bsd/tcpdump/dist/README  Fri Sep 08 13:48:22 2017 +0000
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,243 +0,0 @@
-# tcpdump
-
-[![Build
-Status](https://travis-ci.org/the-tcpdump-group/tcpdump.png)](https://travis-ci.org/the-tcpdump-group/tcpdump)
-
-TCPDUMP 4.x.y  
-Now maintained by "The Tcpdump Group"  
-See            www.tcpdump.org  
-
-Please send inquiries/comments/reports to:
-
-* tcpdump-workers%lists.tcpdump.org@localhost
-
-Anonymous Git is available via:
-
-       git clone git://bpf.tcpdump.org/tcpdump
-
-Please submit patches by forking the branch on GitHub at:
-
-*      http://github.com/the-tcpdump-group/tcpdump/tree/master
-
-and issuing a pull request.
-
-formerly from  Lawrence Berkeley National Laboratory  
-               Network Research Group <tcpdump%ee.lbl.gov@localhost>  
-               ftp://ftp.ee.lbl.gov/old/tcpdump.tar.Z (3.4)
-
-This directory contains source code for tcpdump, a tool for network
-monitoring and data acquisition.  This software was originally
-developed by the Network Research Group at the Lawrence Berkeley
-National Laboratory.  The original distribution is available via
-anonymous ftp to `ftp.ee.lbl.gov`, in `tcpdump.tar.Z`.  More recent
-development is performed at tcpdump.org, http://www.tcpdump.org/
-
-Tcpdump uses libpcap, a system-independent interface for user-level
-packet capture.  Before building tcpdump, you must first retrieve and
-build libpcap, also originally from LBL and now being maintained by
-tcpdump.org; see http://www.tcpdump.org/ .
-
-Once libpcap is built (either install it or make sure it's in
-`../libpcap`), you can build tcpdump using the procedure in the `INSTALL.txt`
-file.
-
-The program is loosely based on SMI's "etherfind" although none of the
-etherfind code remains.  It was originally written by Van Jacobson as
-part of an ongoing research project to investigate and improve tcp and
-internet gateway performance.  The parts of the program originally
-taken from Sun's etherfind were later re-written by Steven McCanne of
-LBL.  To insure that there would be no vestige of proprietary code in
-tcpdump, Steve wrote these pieces from the specification given by the
-manual entry, with no access to the source of tcpdump or etherfind.
-
-Over the past few years, tcpdump has been steadily improved by the
-excellent contributions from the Internet community (just browse
-through the `CHANGES` file).  We are grateful for all the input.
-
-Richard Stevens gives an excellent treatment of the Internet protocols
-in his book *"TCP/IP Illustrated, Volume 1"*. If you want to learn more
-about tcpdump and how to interpret its output, pick up this book.
-
-Some tools for viewing and analyzing tcpdump trace files are available
-from the Internet Traffic Archive:
-
-* http://www.sigcomm.org/ITA/
-
-Another tool that tcpdump users might find useful is tcpslice:
-
-* https://github.com/the-tcpdump-group/tcpslice
-
-It is a program that can be used to extract portions of tcpdump binary
-trace files. See the above distribution for further details and
-documentation.
-
-Problems, bugs, questions, desirable enhancements, etc. should be sent
-to the address "tcpdump-workers%lists.tcpdump.org@localhost".  Bugs, support
-requests, and feature requests may also be submitted on the GitHub issue
-tracker for tcpdump at:
-
-* https://github.com/the-tcpdump-group/tcpdump/issues
-
-Source code contributions, etc. should be sent to the email address
-above or submitted by forking the branch on GitHub at:
-
-* http://github.com/the-tcpdump-group/tcpdump/tree/master
-
-and issuing a pull request.
-
-Current versions can be found at www.tcpdump.org.
-
- - The TCPdump team
-
-original text by: Steve McCanne, Craig Leres, Van Jacobson
-
--------------------------------------
-```
-This directory also contains some short awk programs intended as
-examples of ways to reduce tcpdump data when you're tracking
-particular network problems:
-
-send-ack.awk
-       Simplifies the tcpdump trace for an ftp (or other unidirectional
-       tcp transfer).  Since we assume that one host only sends and
-       the other only acks, all address information is left off and
-       we just note if the packet is a "send" or an "ack".
-
-       There is one output line per line of the original trace.
-       Field 1 is the packet time in decimal seconds, relative
-       to the start of the conversation.  Field 2 is delta-time
-       from last packet.  Field 3 is packet type/direction.
-       "Send" means data going from sender to receiver, "ack"
-       means an ack going from the receiver to the sender.  A
-       preceding "*" indicates that the data is a retransmission.
-       A preceding "-" indicates a hole in the sequence space
-       (i.e., missing packet(s)), a "#" means an odd-size (not max
-       seg size) packet.  Field 4 has the packet flags
-       (same format as raw trace).  Field 5 is the sequence
-       number (start seq. num for sender, next expected seq number
-       for acks).  The number in parens following an ack is
-       the delta-time from the first send of the packet to the
-       ack.  A number in parens following a send is the
-       delta-time from the first send of the packet to the
-       current send (on duplicate packets only).  Duplicate
-       sends or acks have a number in square brackets showing
-       the number of duplicates so far.
-
-       Here is a short sample from near the start of an ftp:
-               3.00    0.20   send . 512
-               3.20    0.20    ack . 1024  (0.20)
-               3.20    0.00   send P 1024
-               3.40    0.20    ack . 1536  (0.20)
-               3.80    0.40 * send . 0  (3.80) [2]
-               3.82    0.02 *  ack . 1536  (0.62) [2]
-       Three seconds into the conversation, bytes 512 through 1023
-       were sent.  200ms later they were acked.  Shortly thereafter
-       bytes 1024-1535 were sent and again acked after 200ms.
-       Then, for no apparent reason, 0-511 is retransmitted, 3.8
-       seconds after its initial send (the round trip time for this
-       ftp was 1sec, +-500ms).  Since the receiver is expecting
-       1536, 1536 is re-acked when 0 arrives.
-
-packetdat.awk
-       Computes chunk summary data for an ftp (or similar
-       unidirectional tcp transfer). [A "chunk" refers to
-       a chunk of the sequence space -- essentially the packet
-       sequence number divided by the max segment size.]
-
-       A summary line is printed showing the number of chunks,
-       the number of packets it took to send that many chunks
-       (if there are no lost or duplicated packets, the number
-       of packets should equal the number of chunks) and the
-       number of acks.
-
-       Following the summary line is one line of information
-       per chunk.  The line contains eight fields:
-          1 - the chunk number
-          2 - the start sequence number for this chunk
-          3 - time of first send
-          4 - time of last send
-          5 - time of first ack
-          6 - time of last ack
-          7 - number of times chunk was sent
-          8 - number of times chunk was acked
-       (all times are in decimal seconds, relative to the start
-       of the conversation.)
-
-       As an example, here is the first part of the output for
-       an ftp trace:
-
-       # 134 chunks.  536 packets sent.  508 acks.
-       1       1       0.00    5.80    0.20    0.20    4       1
-       2       513     0.28    6.20    0.40    0.40    4       1
-       3       1025    1.16    6.32    1.20    1.20    4       1
-       4       1561    1.86    15.00   2.00    2.00    6       1
-       5       2049    2.16    15.44   2.20    2.20    5       1
-       6       2585    2.64    16.44   2.80    2.80    5       1
-       7       3073    3.00    16.66   3.20    3.20    4       1
-       8       3609    3.20    17.24   3.40    5.82    4       11
-       9       4097    6.02    6.58    6.20    6.80    2       5
-
-       This says that 134 chunks were transferred (about 70K
-       since the average packet size was 512 bytes).  It took
-       536 packets to transfer the data (i.e., on the average
-       each chunk was transmitted four times).  Looking at,
-       say, chunk 4, we see it represents the 512 bytes of
-       sequence space from 1561 to 2048.  It was first sent
-       1.86 seconds into the conversation.  It was last
-       sent 15 seconds into the conversation and was sent
-       a total of 6 times (i.e., it was retransmitted every
-       2 seconds on the average).  It was acked once, 140ms
-       after it first arrived.
-
-stime.awk
-atime.awk
-       Output one line per send or ack, respectively, in the form
-               <time> <seq. number>
-       where <time> is the time in seconds since the start of the
-       transfer and <seq. number> is the sequence number being sent
-       or acked.  I typically plot this data looking for suspicious
-       patterns.
-
-
-The problem I was looking at was the bulk-data-transfer
-throughput of medium delay network paths (1-6 sec.  round trip
-time) under typical DARPA Internet conditions.  The trace of the
-ftp transfer of a large file was used as the raw data source.
-The method was:
-
-  - On a local host (but not the Sun running tcpdump), connect to
-    the remote ftp.
-
-  - On the monitor Sun, start the trace going.  E.g.,
-      tcpdump host local-host and remote-host and port ftp-data >tracefile
-
-  - On local, do either a get or put of a large file (~500KB),
-    preferably to the null device (to minimize effects like
-    closing the receive window while waiting for a disk write).
-
-  - When transfer is finished, stop tcpdump.  Use awk to make up
-    two files of summary data (maxsize is the maximum packet size,
-    tracedata is the file of tcpdump tracedata):
-      awk -f send-ack.awk packetsize=avgsize tracedata >sa
-      awk -f packetdat.awk packetsize=avgsize tracedata >pd
-
-  - While the summary data files are printing, take a look at
-    how the transfer behaved:
-      awk -f stime.awk tracedata | xgraph
-    (90% of what you learn seems to happen in this step).
-
-  - Do all of the above steps several times, both directions,
-    at different times of day, with different protocol
-    implementations on the other end.
-
-  - Using one of the Unix data analysis packages (in my case,
-    S and Gary Perlman's Unix|Stat), spend a few months staring
-    at the data.
-
-  - Change something in the local protocol implementation and
-    redo the steps above.
-
-  - Once a week, tell your funding agent that you're discovering
-    wonderful things and you'll write up that research report
-    "real soon now".
-```
diff -r 9d813f382b8e -r 27ce4bdbe9f1 external/bsd/tcpdump/dist/addrtoname.c
--- a/external/bsd/tcpdump/dist/addrtoname.c    Fri Sep 08 13:48:22 2017 +0000
+++ b/external/bsd/tcpdump/dist/addrtoname.c    Fri Sep 08 14:01:12 2017 +0000
@@ -23,7 +23,7 @@
  */
 #include <sys/cdefs.h>
 #ifndef lint
-__RCSID("$NetBSD: addrtoname.c,v 1.9 2017/02/05 04:05:05 spz Exp $");
+__RCSID("$NetBSD: addrtoname.c,v 1.10 2017/09/08 14:01:12 christos Exp $");
 #endif
 
 #ifdef HAVE_CONFIG_H
@@ -149,13 +149,23 @@
        u_short e_addr2;
        const char *e_name;
        u_char *e_nsap;                 /* used only for nsaptable[] */
-#define e_bs e_nsap                    /* for bytestringtable */
        struct enamemem *e_nxt;
 };
 
 static struct enamemem enametable[HASHNAMESIZE];
 static struct enamemem nsaptable[HASHNAMESIZE];
-static struct enamemem bytestringtable[HASHNAMESIZE];
+
+struct bsnamemem {
+       u_short bs_addr0;
+       u_short bs_addr1;
+       u_short bs_addr2;
+       const char *bs_name;
+       u_char *bs_bytes;
+       unsigned int bs_nbytes;
+       struct bsnamemem *bs_nxt;
+};
+
+static struct bsnamemem bytestringtable[HASHNAMESIZE];
 
 struct protoidmem {
        uint32_t p_oui;
@@ -325,7 +335,7 @@
        return (p->name);
 }
 
-static const char hex[] = "0123456789abcdef";
+static const char hex[16] = "0123456789abcdef";
 
 
 /* Find the hash node that corresponds the ether address 'ep' */
@@ -363,11 +373,11 @@
  * with length 'nlen'
  */
 
-static inline struct enamemem *
+static inline struct bsnamemem *



Home | Main Index | Thread Index | Old Index