components/tcpdump/patches/10-arphrd-infiniband.patch
author Stacy Yeh <stacy.yeh@oracle.com>
Tue, 23 Jun 2015 09:06:28 -0700
branchs11u2-sru
changeset 4527 72aac4474845
parent 2905 8c0fb29f2a1e
child 5469 faa7a540ddba
permissions -rw-r--r--
20852967 update to tcpdump 4.7.4 20779852 problem in UTILITY/TCPDUMP 20060934 problem in UTILITY/TCPDUMP
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4527
72aac4474845 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 2905
diff changeset
     1
InfiniBand support for tcpdump. 
72aac4474845 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 2905
diff changeset
     2
This is an in-house patch. Sent upstream for potential inclusion in future 
72aac4474845 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 2905
diff changeset
     3
versions of tcpdump.
72aac4474845 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 2905
diff changeset
     4
72aac4474845 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 2905
diff changeset
     5
diff -rupN tcpdump-4.7.4-orig/interface.h tcpdump-4.7.4/interface.h
72aac4474845 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 2905
diff changeset
     6
--- tcpdump-4.7.4-orig/interface.h	2015-05-26 14:13:17.000000000 -0700
72aac4474845 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 2905
diff changeset
     7
+++ tcpdump-4.7.4/interface.h	2015-03-09 12:07:00.000000000 -0700
72aac4474845 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 2905
diff changeset
     8
@@ -162,6 +162,7 @@ extern uint16_t create_osi_cksum(const u
72aac4474845 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 2905
diff changeset
     9
 
72aac4474845 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 2905
diff changeset
    10
 extern char *smb_errstr(int, int);
72aac4474845 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 2905
diff changeset
    11
 extern const char *nt_errstr(uint32_t);
442
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    12
+extern u_int ipoib_if_print(const struct pcap_pkthdr *, const u_char *);
4527
72aac4474845 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 2905
diff changeset
    13
 
72aac4474845 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 2905
diff changeset
    14
 #ifdef INET6
72aac4474845 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 2905
diff changeset
    15
 extern int mask62plen(const u_char *);
72aac4474845 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 2905
diff changeset
    16
diff -rupN tcpdump-4.7.4-orig/Makefile.in tcpdump-4.7.4/Makefile.in
72aac4474845 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 2905
diff changeset
    17
--- tcpdump-4.7.4-orig/Makefile.in	2015-05-26 14:13:17.000000000 -0700
72aac4474845 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 2905
diff changeset
    18
+++ tcpdump-4.7.4/Makefile.in	2015-05-26 15:12:05.727800640 -0700
72aac4474845 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 2905
diff changeset
    19
@@ -138,6 +138,7 @@ LIBNETDISSECT_SRC=\
72aac4474845 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 2905
diff changeset
    20
 	print-ipcomp.c \
72aac4474845 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 2905
diff changeset
    21
 	print-ipfc.c \
72aac4474845 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 2905
diff changeset
    22
 	print-ipnet.c \
2905
8c0fb29f2a1e 17868656 Update tcpdump to 4.5.1
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 2413
diff changeset
    23
+	print-ipoib.c \
4527
72aac4474845 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 2905
diff changeset
    24
 	print-ipx.c \
72aac4474845 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 2905
diff changeset
    25
 	print-isakmp.c \
72aac4474845 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 2905
diff changeset
    26
 	print-isoclns.c \
72aac4474845 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 2905
diff changeset
    27
diff -rupN tcpdump-4.7.4-orig/netdissect.h tcpdump-4.7.4/netdissect.h
72aac4474845 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 2905
diff changeset
    28
--- tcpdump-4.7.4-orig/netdissect.h	2015-05-26 14:13:17.000000000 -0700
72aac4474845 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 2905
diff changeset
    29
+++ tcpdump-4.7.4/netdissect.h	2015-04-22 13:32:16.000000000 -0700
72aac4474845 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 2905
diff changeset
    30
@@ -395,6 +395,7 @@ extern void ether_print(netdissect_optio
442
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    31
 
2905
8c0fb29f2a1e 17868656 Update tcpdump to 4.5.1
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 2413
diff changeset
    32
 extern u_int ether_if_print(netdissect_options *,
2413
8ca25f425497 7196707 update tcpdump to 4.3.0
Rich Burridge <rich.burridge@oracle.com>
parents: 442
diff changeset
    33
                             const struct pcap_pkthdr *,const u_char *);
8ca25f425497 7196707 update tcpdump to 4.3.0
Rich Burridge <rich.burridge@oracle.com>
parents: 442
diff changeset
    34
+extern u_int ipoib_if_print(const struct pcap_pkthdr *, const u_char *);
2905
8c0fb29f2a1e 17868656 Update tcpdump to 4.5.1
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 2413
diff changeset
    35
 extern u_int netanalyzer_if_print(netdissect_options *,
2413
8ca25f425497 7196707 update tcpdump to 4.3.0
Rich Burridge <rich.burridge@oracle.com>
parents: 442
diff changeset
    36
                                   const struct pcap_pkthdr *,const u_char *);
2905
8c0fb29f2a1e 17868656 Update tcpdump to 4.5.1
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 2413
diff changeset
    37
 extern u_int netanalyzer_transparent_if_print(netdissect_options *,
4527
72aac4474845 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 2905
diff changeset
    38
diff -rupN tcpdump-4.7.4-orig/print-arp.c tcpdump-4.7.4/print-arp.c
72aac4474845 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 2905
diff changeset
    39
--- tcpdump-4.7.4-orig/print-arp.c	2015-05-26 14:13:17.000000000 -0700
72aac4474845 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 2905
diff changeset
    40
+++ tcpdump-4.7.4/print-arp.c	2015-03-09 12:07:00.000000000 -0700
72aac4474845 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 2905
diff changeset
    41
@@ -55,6 +55,7 @@ struct  arp_pkthdr {
2905
8c0fb29f2a1e 17868656 Update tcpdump to 4.5.1
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 2413
diff changeset
    42
 #define ARPHRD_ATM2225  19      /* ATM (RFC 2225) */
8c0fb29f2a1e 17868656 Update tcpdump to 4.5.1
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 2413
diff changeset
    43
 #define ARPHRD_STRIP    23      /* Ricochet Starmode Radio hardware format */
8c0fb29f2a1e 17868656 Update tcpdump to 4.5.1
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 2413
diff changeset
    44
 #define ARPHRD_IEEE1394 24      /* IEEE 1394 (FireWire) hardware format */
4527
72aac4474845 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 2905
diff changeset
    45
+#define ARPHRD_INFINIBAND 32   /* InfiniBand RFC 4391 */
2905
8c0fb29f2a1e 17868656 Update tcpdump to 4.5.1
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 2413
diff changeset
    46
         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
    47
         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
    48
         u_char  ar_pln;         /* length of protocol address */
4527
72aac4474845 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 2905
diff changeset
    49
@@ -115,6 +115,7 @@ static const struct tok arphrd_values[]
442
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    50
     { ARPHRD_STRIP, "Strip" },
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    51
     { ARPHRD_IEEE1394, "IEEE 1394" },
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    52
     { ARPHRD_ATM2225, "ATM" },
2905
8c0fb29f2a1e 17868656 Update tcpdump to 4.5.1
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 2413
diff changeset
    53
+    { ARPHRD_INFINIBAND, "InfiniBand" },
442
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    54
     { 0, NULL }
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    55
 };
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    56
 
4527
72aac4474845 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 2905
diff changeset
    57
diff -rupN tcpdump-4.7.4-orig/print-ipoib.c tcpdump-4.7.4/print-ipoib.c
72aac4474845 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 2905
diff changeset
    58
--- tcpdump-4.7.4-orig/print-ipoib.c	1969-12-31 16:00:00.000000000 -0800
72aac4474845 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 2905
diff changeset
    59
+++ tcpdump-4.7.4/print-ipoib.c	2015-05-26 14:13:17.000000000 -0700
72aac4474845 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 2905
diff changeset
    60
@@ -0,0 +1,132 @@
442
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    61
+/*
2413
8ca25f425497 7196707 update tcpdump to 4.3.0
Rich Burridge <rich.burridge@oracle.com>
parents: 442
diff changeset
    62
+ * Copyright (c) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 
8ca25f425497 7196707 update tcpdump to 4.3.0
Rich Burridge <rich.burridge@oracle.com>
parents: 442
diff changeset
    63
+ *	1997, 2000, 2011, 2012
442
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    64
+ *	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
    65
+ *
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    66
+ * 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
    67
+ * 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
    68
+ * 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
    69
+ * 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
    70
+ * 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
    71
+ * 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
    72
+ * 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
    73
+ * ``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
    74
+ * 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
    75
+ * 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
    76
+ * 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
    77
+ * written permission.
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    78
+ * 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
    79
+ * 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
    80
+ * 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
    81
+ */
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    82
+/*
2413
8ca25f425497 7196707 update tcpdump to 4.3.0
Rich Burridge <rich.burridge@oracle.com>
parents: 442
diff changeset
    83
+ * Copyright (c) 2011, 2012, 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
    84
+ */
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    85
+#ifndef lint
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    86
+static const char rcsid[] _U_ =
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    87
+    "@(#) $Header$";
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    88
+#endif
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    89
+
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    90
+#ifdef HAVE_CONFIG_H
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    91
+#include "config.h"
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    92
+#endif
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    93
+
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    94
+#include <tcpdump-stdinc.h>
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
+#include <stdio.h>
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    97
+#include <pcap.h>
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
+#include "interface.h"
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   100
+#include "extract.h"
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   101
+#include "addrtoname.h"
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   102
+
4527
72aac4474845 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 2905
diff changeset
   103
+
442
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   104
+extern const struct tok ethertype_values[];
2413
8ca25f425497 7196707 update tcpdump to 4.3.0
Rich Burridge <rich.burridge@oracle.com>
parents: 442
diff changeset
   105
+extern int ethertype_print(netdissect_options *, u_short, const u_char *, u_int, u_int );
442
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   106
+
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   107
+#define	IPOIB_HDRLEN	44
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
+static inline void
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   110
+ipoib_hdr_print(register const u_char *bp, u_int length)
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
+	u_int16_t ether_type;
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   113
+	char abuf[40];
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   114
+
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   115
+	ether_type = EXTRACT_16BITS(&bp[40]);
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   116
+	if (!qflag) {
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   117
+		(void)printf(", ethertype %s (0x%04x)",
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   118
+			     tok2str(ethertype_values,"Unknown", ether_type),
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   119
+			     ether_type);
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   120
+	} else {
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   121
+		(void)printf(", ethertype %s",
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   122
+			     tok2str(ethertype_values,"Unknown", ether_type));
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   123
+	}
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   124
+
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   125
+	(void)printf(", length %u: ", length);
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
+
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   128
+/*
2905
8c0fb29f2a1e 17868656 Update tcpdump to 4.5.1
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 2413
diff changeset
   129
+ * Print an InfiniBand frame.
442
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   130
+ * 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
   131
+ * 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
   132
+ * 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
   133
+ */
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   134
+static void
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   135
+ipoib_print(const u_char *p, u_int length, u_int caplen,
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   136
+    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
   137
+{
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   138
+	const u_char *orig_hdr = p;
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   139
+	u_int orig_length;
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   140
+	u_short ether_type;
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   141
+	u_short extracted_ether_type;
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   142
+
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   143
+	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
   144
+		printf("[|ipoib]");
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   145
+		return;
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   146
+	}
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   147
+
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   148
+	if (eflag) {
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   149
+		if (print_encap_header != NULL)
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   150
+			(*print_encap_header)(encap_header_arg);
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   151
+		ipoib_hdr_print(p, length);
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   152
+	}
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   153
+	orig_length = length;
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
+	length -= IPOIB_HDRLEN;
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   156
+	caplen -= IPOIB_HDRLEN;
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   157
+	ether_type = EXTRACT_16BITS(&p[40]);
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   158
+	p += IPOIB_HDRLEN;
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   159
+
2413
8ca25f425497 7196707 update tcpdump to 4.3.0
Rich Burridge <rich.burridge@oracle.com>
parents: 442
diff changeset
   160
+	if (ethertype_print(gndo, ether_type, p, length, caplen) == 0) {
442
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   161
+		/* ether_type not known, print raw packet */
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   162
+		if (!eflag) {
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   163
+			if (print_encap_header != NULL)
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   164
+				(*print_encap_header)(encap_header_arg);
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   165
+			ipoib_hdr_print(orig_hdr , orig_length);
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   166
+		}
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
+		if (!suppress_default_print)
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   169
+			default_print(p, caplen);
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
+
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   173
+/*
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   174
+ * 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
   175
+ * 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
   176
+ * '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
   177
+ * 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
   178
+ */
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   179
+u_int
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   180
+ipoib_if_print(const struct pcap_pkthdr *h, const u_char *p)
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   181
+{
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   182
+	ipoib_print(p, h->len, h->caplen, NULL, NULL);
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   183
+
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   184
+	return (IPOIB_HDRLEN);
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   185
+}
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   186
+
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   187
+/*
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   188
+ * Local Variables:
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   189
+ * c-style: whitesmith
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   190
+ * c-basic-offset: 8
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   191
+ * End:
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   192
+ */
4527
72aac4474845 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 2905
diff changeset
   193
diff -rupN tcpdump-4.7.4-orig/tcpdump.c tcpdump-4.7.4/tcpdump.c
72aac4474845 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 2905
diff changeset
   194
--- tcpdump-4.7.4-orig/tcpdump.c	2015-05-26 14:13:17.000000000 -0700
72aac4474845 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 2905
diff changeset
   195
+++ tcpdump-4.7.4/tcpdump.c	2015-05-26 15:17:43.298240116 -0700
72aac4474845 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 2905
diff changeset
   196
@@ -264,6 +264,9 @@ static const struct ndo_printer ndo_prin
442
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   197
 #ifdef DLT_IPV6
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   198
 	{ raw_if_print,		DLT_IPV6 },
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   199
 #endif
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   200
+#ifdef DLT_IPOIB
4527
72aac4474845 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 2905
diff changeset
   201
+	{ ipoib_if_print, 	162 },
442
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   202
+#endif
4527
72aac4474845 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 2905
diff changeset
   203
 #ifdef HAVE_PCAP_USB_H
72aac4474845 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 2905
diff changeset
   204
 #ifdef DLT_USB_LINUX
72aac4474845 20852967 update to tcpdump 4.7.4
Stacy Yeh <stacy.yeh@oracle.com>
parents: 2905
diff changeset
   205
 	{ usb_linux_48_byte_print, DLT_USB_LINUX},