components/tcpdump/patches/10-arphrd-infiniband.patch
author Mike Sullivan <Mike.Sullivan@Oracle.COM>
Fri, 07 Apr 2017 17:56:36 -0700
changeset 7851 f82a18f72950
parent 7674 e5be4a3b0c32
permissions -rw-r--r--
Close of build 122.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7674
e5be4a3b0c32 25466336 Update tcpdump to version 4.9.0
Rich Burridge <rich.burridge@oracle.com>
parents: 5469
diff changeset
     1
InfiniBand support for tcpdump.
e5be4a3b0c32 25466336 Update tcpdump to version 4.9.0
Rich Burridge <rich.burridge@oracle.com>
parents: 5469
diff changeset
     2
This is an in-house patch. Sent upstream for potential inclusion in future
4468
2f1bf786d396 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 1632
diff changeset
     3
versions of tcpdump.
2f1bf786d396 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 1632
diff changeset
     4
7674
e5be4a3b0c32 25466336 Update tcpdump to version 4.9.0
Rich Burridge <rich.burridge@oracle.com>
parents: 5469
diff changeset
     5
--- tcpdump-4.9.0/Makefile.in.orig	2017-01-29 12:23:58.596267167 +0000
e5be4a3b0c32 25466336 Update tcpdump to version 4.9.0
Rich Burridge <rich.burridge@oracle.com>
parents: 5469
diff changeset
     6
+++ tcpdump-4.9.0/Makefile.in	2017-01-29 12:49:27.808281048 +0000
e5be4a3b0c32 25466336 Update tcpdump to version 4.9.0
Rich Burridge <rich.burridge@oracle.com>
parents: 5469
diff changeset
     7
@@ -147,6 +147,7 @@
4468
2f1bf786d396 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 1632
diff changeset
     8
 	print-ipcomp.c \
2f1bf786d396 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 1632
diff changeset
     9
 	print-ipfc.c \
2f1bf786d396 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 1632
diff changeset
    10
 	print-ipnet.c \
1632
fd2ec3291103 17868656 Update tcpdump to 4.5.1
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 1001
diff changeset
    11
+	print-ipoib.c \
4468
2f1bf786d396 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 1632
diff changeset
    12
 	print-ipx.c \
2f1bf786d396 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 1632
diff changeset
    13
 	print-isakmp.c \
2f1bf786d396 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 1632
diff changeset
    14
 	print-isoclns.c \
7674
e5be4a3b0c32 25466336 Update tcpdump to version 4.9.0
Rich Burridge <rich.burridge@oracle.com>
parents: 5469
diff changeset
    15
--- tcpdump-4.9.0/netdissect.h.orig	2017-01-29 12:25:29.886259423 +0000
e5be4a3b0c32 25466336 Update tcpdump to version 4.9.0
Rich Burridge <rich.burridge@oracle.com>
parents: 5469
diff changeset
    16
+++ tcpdump-4.9.0/netdissect.h	2017-01-29 12:27:00.348907240 +0000
e5be4a3b0c32 25466336 Update tcpdump to version 4.9.0
Rich Burridge <rich.burridge@oracle.com>
parents: 5469
diff changeset
    17
@@ -410,6 +410,7 @@
e5be4a3b0c32 25466336 Update tcpdump to version 4.9.0
Rich Burridge <rich.burridge@oracle.com>
parents: 5469
diff changeset
    18
 extern u_int ieee802_11_radio_if_print IF_PRINTER_ARGS;
e5be4a3b0c32 25466336 Update tcpdump to version 4.9.0
Rich Burridge <rich.burridge@oracle.com>
parents: 5469
diff changeset
    19
 extern u_int ieee802_15_4_if_print IF_PRINTER_ARGS;
e5be4a3b0c32 25466336 Update tcpdump to version 4.9.0
Rich Burridge <rich.burridge@oracle.com>
parents: 5469
diff changeset
    20
 extern u_int ipfc_if_print IF_PRINTER_ARGS;
e5be4a3b0c32 25466336 Update tcpdump to version 4.9.0
Rich Burridge <rich.burridge@oracle.com>
parents: 5469
diff changeset
    21
+extern u_int ipoib_if_print IF_PRINTER_ARGS;
e5be4a3b0c32 25466336 Update tcpdump to version 4.9.0
Rich Burridge <rich.burridge@oracle.com>
parents: 5469
diff changeset
    22
 extern u_int ipnet_if_print IF_PRINTER_ARGS;
e5be4a3b0c32 25466336 Update tcpdump to version 4.9.0
Rich Burridge <rich.burridge@oracle.com>
parents: 5469
diff changeset
    23
 extern u_int juniper_atm1_print IF_PRINTER_ARGS;
e5be4a3b0c32 25466336 Update tcpdump to version 4.9.0
Rich Burridge <rich.burridge@oracle.com>
parents: 5469
diff changeset
    24
 extern u_int juniper_atm2_print IF_PRINTER_ARGS;
e5be4a3b0c32 25466336 Update tcpdump to version 4.9.0
Rich Burridge <rich.burridge@oracle.com>
parents: 5469
diff changeset
    25
--- tcpdump-4.9.0/print-arp.c.orig	2017-01-29 12:27:35.797281364 +0000
e5be4a3b0c32 25466336 Update tcpdump to version 4.9.0
Rich Burridge <rich.burridge@oracle.com>
parents: 5469
diff changeset
    26
+++ tcpdump-4.9.0/print-arp.c	2017-01-29 12:28:48.668009704 +0000
e5be4a3b0c32 25466336 Update tcpdump to version 4.9.0
Rich Burridge <rich.burridge@oracle.com>
parents: 5469
diff changeset
    27
@@ -56,6 +56,7 @@
1632
fd2ec3291103 17868656 Update tcpdump to 4.5.1
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 1001
diff changeset
    28
 #define ARPHRD_ATM2225  19      /* ATM (RFC 2225) */
fd2ec3291103 17868656 Update tcpdump to 4.5.1
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 1001
diff changeset
    29
 #define ARPHRD_STRIP    23      /* Ricochet Starmode Radio hardware format */
fd2ec3291103 17868656 Update tcpdump to 4.5.1
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 1001
diff changeset
    30
 #define ARPHRD_IEEE1394 24      /* IEEE 1394 (FireWire) hardware format */
7674
e5be4a3b0c32 25466336 Update tcpdump to version 4.9.0
Rich Burridge <rich.burridge@oracle.com>
parents: 5469
diff changeset
    31
+#define ARPHRD_INFINIBAND 32    /* InfiniBand RFC 4391 */
1632
fd2ec3291103 17868656 Update tcpdump to 4.5.1
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 1001
diff changeset
    32
         u_short ar_pro;         /* format of protocol address */
442
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    33
         u_char  ar_hln;         /* length of hardware address */
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    34
         u_char  ar_pln;         /* length of protocol address */
7674
e5be4a3b0c32 25466336 Update tcpdump to version 4.9.0
Rich Burridge <rich.burridge@oracle.com>
parents: 5469
diff changeset
    35
@@ -116,6 +117,7 @@
442
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    36
     { ARPHRD_STRIP, "Strip" },
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    37
     { ARPHRD_IEEE1394, "IEEE 1394" },
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    38
     { ARPHRD_ATM2225, "ATM" },
1632
fd2ec3291103 17868656 Update tcpdump to 4.5.1
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 1001
diff changeset
    39
+    { ARPHRD_INFINIBAND, "InfiniBand" },
442
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    40
     { 0, NULL }
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    41
 };
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    42
 
7674
e5be4a3b0c32 25466336 Update tcpdump to version 4.9.0
Rich Burridge <rich.burridge@oracle.com>
parents: 5469
diff changeset
    43
--- tcpdump-4.9.0/print-ipoib.c.orig	2017-01-29 12:30:15.468355816 +0000
e5be4a3b0c32 25466336 Update tcpdump to version 4.9.0
Rich Burridge <rich.burridge@oracle.com>
parents: 5469
diff changeset
    44
+++ tcpdump-4.9.0/print-ipoib.c	2017-01-29 13:24:49.576498883 +0000
e5be4a3b0c32 25466336 Update tcpdump to version 4.9.0
Rich Burridge <rich.burridge@oracle.com>
parents: 5469
diff changeset
    45
@@ -0,0 +1,131 @@
442
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    46
+/*
1001
cc349e8980c4 7196707 update tcpdump to 4.3.0
Srinivasa Sarva <Srinivasa.Sarva@oracle.com>
parents: 442
diff changeset
    47
+ * Copyright (c) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 
cc349e8980c4 7196707 update tcpdump to 4.3.0
Srinivasa Sarva <Srinivasa.Sarva@oracle.com>
parents: 442
diff changeset
    48
+ *	1997, 2000, 2011, 2012
442
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    49
+ *	The Regents of the University of California.  All rights reserved.
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    50
+ *
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    51
+ * Redistribution and use in source and binary forms, with or without
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    52
+ * modification, are permitted provided that: (1) source code distributions
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    53
+ * retain the above copyright notice and this paragraph in its entirety, (2)
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    54
+ * distributions including binary code include the above copyright notice and
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    55
+ * this paragraph in its entirety in the documentation or other materials
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    56
+ * provided with the distribution, and (3) all advertising materials mentioning
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    57
+ * features or use of this software display the following acknowledgement:
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    58
+ * ``This product includes software developed by the University of California,
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    59
+ * Lawrence Berkeley Laboratory and its contributors.'' Neither the name of
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    60
+ * the University nor the names of its contributors may be used to endorse
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    61
+ * or promote products derived from this software without specific prior
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    62
+ * written permission.
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    63
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    64
+ * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    65
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    66
+ */
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    67
+/*
5469
faa7a540ddba 22538532 solaris11.2/11.3 tcpdump can't analyze IPoIB packets
Petr Sumbera <petr.sumbera@oracle.com>
parents: 4468
diff changeset
    68
+ * Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
442
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    69
+ */
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    70
+#ifndef lint
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    71
+static const char rcsid[] _U_ =
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    72
+    "@(#) $Header$";
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    73
+#endif
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    74
+
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    75
+#ifdef HAVE_CONFIG_H
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    76
+#include "config.h"
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    77
+#endif
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    78
+
7674
e5be4a3b0c32 25466336 Update tcpdump to version 4.9.0
Rich Burridge <rich.burridge@oracle.com>
parents: 5469
diff changeset
    79
+#include <netdissect-stdinc.h>
442
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    80
+
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    81
+#include <stdio.h>
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    82
+#include <pcap.h>
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    83
+
7674
e5be4a3b0c32 25466336 Update tcpdump to version 4.9.0
Rich Burridge <rich.burridge@oracle.com>
parents: 5469
diff changeset
    84
+#include "netdissect.h"
442
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    85
+#include "extract.h"
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    86
+#include "addrtoname.h"
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    87
+
4468
2f1bf786d396 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 1632
diff changeset
    88
+
442
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    89
+extern const struct tok ethertype_values[];
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    90
+
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    91
+#define	IPOIB_HDRLEN	44
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    92
+
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    93
+static inline void
7674
e5be4a3b0c32 25466336 Update tcpdump to version 4.9.0
Rich Burridge <rich.burridge@oracle.com>
parents: 5469
diff changeset
    94
+ipoib_hdr_print(netdissect_options *ndo, const u_char *bp, u_int length)
442
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    95
+{
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    96
+	u_int16_t ether_type;
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    97
+	char abuf[40];
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    98
+
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    99
+	ether_type = EXTRACT_16BITS(&bp[40]);
7674
e5be4a3b0c32 25466336 Update tcpdump to version 4.9.0
Rich Burridge <rich.burridge@oracle.com>
parents: 5469
diff changeset
   100
+	if (!ndo->ndo_qflag) {
442
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   101
+		(void)printf(", ethertype %s (0x%04x)",
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   102
+			     tok2str(ethertype_values,"Unknown", ether_type),
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   103
+			     ether_type);
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   104
+	} else {
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   105
+		(void)printf(", ethertype %s",
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   106
+			     tok2str(ethertype_values,"Unknown", ether_type));
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   107
+	}
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   108
+
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   109
+	(void)printf(", length %u: ", length);
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   110
+}
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   111
+
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   112
+/*
1632
fd2ec3291103 17868656 Update tcpdump to 4.5.1
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 1001
diff changeset
   113
+ * Print an InfiniBand frame.
442
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   114
+ * This might be encapsulated within another frame; we might be passed
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   115
+ * a pointer to a function that can print header information for that
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   116
+ * frame's protocol, and an argument to pass to that function.
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   117
+ */
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   118
+static void
7674
e5be4a3b0c32 25466336 Update tcpdump to version 4.9.0
Rich Burridge <rich.burridge@oracle.com>
parents: 5469
diff changeset
   119
+ipoib_print(netdissect_options *ndo, const u_char *p, u_int length, u_int caplen,
442
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   120
+    void (*print_encap_header)(const u_char *), const u_char *encap_header_arg)
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   121
+{
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   122
+	const u_char *orig_hdr = p;
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   123
+	u_int orig_length;
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   124
+	u_short ether_type;
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   125
+	u_short extracted_ether_type;
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   126
+
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   127
+	if (caplen < IPOIB_HDRLEN || length < IPOIB_HDRLEN) {
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   128
+		printf("[|ipoib]");
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   129
+		return;
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   130
+	}
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   131
+
7674
e5be4a3b0c32 25466336 Update tcpdump to version 4.9.0
Rich Burridge <rich.burridge@oracle.com>
parents: 5469
diff changeset
   132
+	if (ndo->ndo_eflag) {
442
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   133
+		if (print_encap_header != NULL)
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   134
+			(*print_encap_header)(encap_header_arg);
7674
e5be4a3b0c32 25466336 Update tcpdump to version 4.9.0
Rich Burridge <rich.burridge@oracle.com>
parents: 5469
diff changeset
   135
+		ipoib_hdr_print(ndo, p, length);
442
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   136
+	}
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   137
+	orig_length = length;
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   138
+
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   139
+	length -= IPOIB_HDRLEN;
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   140
+	caplen -= IPOIB_HDRLEN;
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   141
+	ether_type = EXTRACT_16BITS(&p[40]);
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   142
+	p += IPOIB_HDRLEN;
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   143
+
7674
e5be4a3b0c32 25466336 Update tcpdump to version 4.9.0
Rich Burridge <rich.burridge@oracle.com>
parents: 5469
diff changeset
   144
+	if (ethertype_print(ndo, ether_type, p, length, caplen, NULL, NULL) == 0) {
442
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   145
+		/* ether_type not known, print raw packet */
7674
e5be4a3b0c32 25466336 Update tcpdump to version 4.9.0
Rich Burridge <rich.burridge@oracle.com>
parents: 5469
diff changeset
   146
+		if (!ndo->ndo_eflag) {
442
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   147
+			if (print_encap_header != NULL)
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   148
+				(*print_encap_header)(encap_header_arg);
7674
e5be4a3b0c32 25466336 Update tcpdump to version 4.9.0
Rich Burridge <rich.burridge@oracle.com>
parents: 5469
diff changeset
   149
+			ipoib_hdr_print(ndo, orig_hdr , orig_length);
442
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   150
+		}
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   151
+
7674
e5be4a3b0c32 25466336 Update tcpdump to version 4.9.0
Rich Burridge <rich.burridge@oracle.com>
parents: 5469
diff changeset
   152
+		if (!ndo->ndo_suppress_default_print)
e5be4a3b0c32 25466336 Update tcpdump to version 4.9.0
Rich Burridge <rich.burridge@oracle.com>
parents: 5469
diff changeset
   153
+			ND_DEFAULTPRINT(p, caplen);
442
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   154
+	}
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   155
+}
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   156
+
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   157
+/*
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   158
+ * This is the top level routine of the printer.  'p' points
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   159
+ * to the ether header of the packet, 'h->ts' is the timestamp,
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   160
+ * 'h->len' is the length of the packet off the wire, and 'h->caplen'
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   161
+ * is the number of bytes actually captured.
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   162
+ */
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   163
+u_int
5469
faa7a540ddba 22538532 solaris11.2/11.3 tcpdump can't analyze IPoIB packets
Petr Sumbera <petr.sumbera@oracle.com>
parents: 4468
diff changeset
   164
+ipoib_if_print(netdissect_options *ndo, const struct pcap_pkthdr *h, const u_char *p)
442
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   165
+{
7674
e5be4a3b0c32 25466336 Update tcpdump to version 4.9.0
Rich Burridge <rich.burridge@oracle.com>
parents: 5469
diff changeset
   166
+	ipoib_print(ndo, p, h->len, h->caplen, NULL, NULL);
442
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   167
+
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   168
+	return (IPOIB_HDRLEN);
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   169
+}
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   170
+
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   171
+/*
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   172
+ * Local Variables:
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   173
+ * c-style: whitesmith
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   174
+ * c-basic-offset: 8
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   175
+ * End:
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   176
+ */
7674
e5be4a3b0c32 25466336 Update tcpdump to version 4.9.0
Rich Burridge <rich.burridge@oracle.com>
parents: 5469
diff changeset
   177
--- tcpdump-4.9.0/print.c.orig	2017-01-29 12:32:40.142061378 +0000
e5be4a3b0c32 25466336 Update tcpdump to version 4.9.0
Rich Burridge <rich.burridge@oracle.com>
parents: 5469
diff changeset
   178
+++ tcpdump-4.9.0/print.c	2017-01-29 12:38:05.641526344 +0000
e5be4a3b0c32 25466336 Update tcpdump to version 4.9.0
Rich Burridge <rich.burridge@oracle.com>
parents: 5469
diff changeset
   179
@@ -99,6 +99,9 @@
442
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   180
 #ifdef DLT_IPV6
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   181
 	{ raw_if_print,		DLT_IPV6 },
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   182
 #endif
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   183
+#ifdef DLT_IPOIB
7674
e5be4a3b0c32 25466336 Update tcpdump to version 4.9.0
Rich Burridge <rich.burridge@oracle.com>
parents: 5469
diff changeset
   184
+	{ ipoib_if_print,       DLT_IPOIB },
442
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   185
+#endif
4468
2f1bf786d396 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 1632
diff changeset
   186
 #ifdef HAVE_PCAP_USB_H
2f1bf786d396 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 1632
diff changeset
   187
 #ifdef DLT_USB_LINUX
2f1bf786d396 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 1632
diff changeset
   188
 	{ usb_linux_48_byte_print, DLT_USB_LINUX},