components/tcpdump/patches/10-arphrd-infiniband.patch
author Darren Reed <Darren.Reed@Oracle.COM>
Fri, 29 Jul 2011 07:50:48 -0700
changeset 442 d0e244fcfff1
child 1001 cc349e8980c4
child 2909 a4709a200379
permissions -rw-r--r--
7003338 infiniband adapters do not work with tcpdump
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
442
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
     1
diff -uN tcpdump-4.1.1/Makefile.in tcpdump-4.1.1.new/Makefile.in
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
     2
--- tcpdump-4.1.1/Makefile.in	2010-04-05 18:18:35.000000000 -0700
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
     3
+++ tcpdump-4.1.1.new/Makefile.in	2011-07-14 08:43:36.561637014 -0700
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
     4
@@ -78,6 +78,7 @@
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
     5
 	print-esp.c print-ether.c print-fddi.c print-fr.c \
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
     6
 	print-gre.c print-hsrp.c print-icmp.c print-igmp.c \
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
     7
 	print-igrp.c print-ip.c print-ipcomp.c print-ipfc.c print-ipnet.c \
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
     8
+	print-ipoib.c \
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
     9
 	print-ipx.c print-isoclns.c print-juniper.c print-krb.c \
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    10
 	print-l2tp.c print-lane.c print-ldp.c print-lldp.c print-llc.c \
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    11
         print-lmp.c print-lspping.c print-lwapp.c \
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    12
diff -uN tcpdump-4.1.1/interface.h tcpdump-4.1.1.new/interface.h
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    13
--- tcpdump-4.1.1/interface.h	2010-03-11 17:56:44.000000000 -0800
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    14
+++ tcpdump-4.1.1.new/interface.h	2011-07-14 08:44:55.908614708 -0700
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    15
@@ -192,6 +192,7 @@
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    16
 extern void ether_print(const u_char *, u_int, u_int,
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    17
     void (*)(const u_char *), const u_char *);
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    18
 extern u_int ether_if_print(const struct pcap_pkthdr *, const u_char *);
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    19
+extern u_int ipoib_if_print(const struct pcap_pkthdr *, const u_char *);
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    20
 extern u_int token_print(const u_char *, u_int, u_int);
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    21
 extern u_int token_if_print(const struct pcap_pkthdr *, const u_char *);
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    22
 extern void fddi_print(const u_char *, u_int, u_int);
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    23
Common subdirectories: tcpdump-4.1.1/lbl and tcpdump-4.1.1.new/lbl
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    24
Common subdirectories: tcpdump-4.1.1/missing and tcpdump-4.1.1.new/missing
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    25
diff -uN tcpdump-4.1.1/netdissect.h tcpdump-4.1.1.new/netdissect.h
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    26
--- tcpdump-4.1.1/netdissect.h	2010-03-11 17:56:44.000000000 -0800
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    27
+++ tcpdump-4.1.1.new/netdissect.h	2011-07-14 08:44:35.643598462 -0700
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    28
@@ -320,6 +320,7 @@
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    29
 
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    30
 extern void arcnet_if_print(u_char*,const struct pcap_pkthdr *,const u_char *);
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    31
 extern void ether_if_print(u_char *,const struct pcap_pkthdr *,const u_char *);
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    32
+extern void ipoib_if_print(u_char *,const struct pcap_pkthdr *,const u_char *);
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    33
 extern void token_if_print(u_char *,const struct pcap_pkthdr *,const u_char *);
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    34
 extern void fddi_if_print(u_char *,const struct pcap_pkthdr *, const u_char *);
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    35
 
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    36
diff -uN tcpdump-4.1.1/print-arp.c tcpdump-4.1.1.new/print-arp.c
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    37
--- tcpdump-4.1.1/print-arp.c	2010-03-11 17:56:44.000000000 -0800
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    38
+++ tcpdump-4.1.1.new/print-arp.c	2011-07-14 09:01:08.965396346 -0700
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    39
@@ -62,6 +62,7 @@
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    40
         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
    41
         u_char  ar_pln;         /* length of protocol address */
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    42
         u_short ar_op;          /* one of: */
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    43
+#define ARPHRD_INFINIBAND 32    /* Infiniband RFC 4391 */
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    44
 #define ARPOP_REQUEST   1       /* request to resolve address */
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    45
 #define ARPOP_REPLY     2       /* response to previous request */
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    46
 #define ARPOP_REVREQUEST 3      /* request protocol address given hardware */
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    47
@@ -118,6 +119,7 @@
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    48
     { ARPHRD_STRIP, "Strip" },
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    49
     { ARPHRD_IEEE1394, "IEEE 1394" },
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    50
     { ARPHRD_ATM2225, "ATM" },
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    51
+    { ARPHRD_INFINIBAND, "Infiniband" },
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    52
     { 0, NULL }
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    53
 };
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    54
 
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    55
diff -uN tcpdump-4.1.1/print-ipoib.c tcpdump-4.1.1.new/print-ipoib.c
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    56
--- tcpdump-4.1.1/print-ipoib.c	1969-12-31 16:00:00.000000000 -0800
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    57
+++ tcpdump-4.1.1.new/print-ipoib.c	2011-07-14 08:46:52.029342720 -0700
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    58
@@ -0,0 +1,131 @@
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    59
+/*
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    60
+ * Copyright (c) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 2000
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    61
+ *	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
    62
+ *
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    63
+ * 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
    64
+ * 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
    65
+ * 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
    66
+ * 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
    67
+ * 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
    68
+ * 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
    69
+ * 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
    70
+ * ``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
    71
+ * 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
    72
+ * 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
    73
+ * 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
    74
+ * written permission.
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    75
+ * 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
    76
+ * 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
    77
+ * 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
    78
+ */
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    79
+/*
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    80
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
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
+#ifndef lint
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    83
+static const char rcsid[] _U_ =
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    84
+    "@(#) $Header$";
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    85
+#endif
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    86
+
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    87
+#ifdef HAVE_CONFIG_H
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    88
+#include "config.h"
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    89
+#endif
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
+#include <tcpdump-stdinc.h>
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
+#include <stdio.h>
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    94
+#include <pcap.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 "interface.h"
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    97
+#include "extract.h"
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    98
+#include "addrtoname.h"
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
    99
+
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   100
+extern const struct tok ethertype_values[];
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   101
+extern int ethertype_print(u_short, const u_char *, u_int, u_int );
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   102
+
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   103
+#define	IPOIB_HDRLEN	44
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   104
+
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   105
+static inline void
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   106
+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
   107
+{
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   108
+	u_int16_t ether_type;
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   109
+	char abuf[40];
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
+	ether_type = EXTRACT_16BITS(&bp[40]);
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   112
+	if (!qflag) {
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   113
+		(void)printf(", ethertype %s (0x%04x)",
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   114
+			     tok2str(ethertype_values,"Unknown", ether_type),
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   115
+			     ether_type);
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   116
+	} else {
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   117
+		(void)printf(", ethertype %s",
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
+	}
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   120
+
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   121
+	(void)printf(", length %u: ", length);
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   122
+}
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
+ * Print an Infiniband frame.
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   126
+ * 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
   127
+ * 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
   128
+ * 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
   129
+ */
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   130
+static void
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   131
+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
   132
+    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
   133
+{
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   134
+	const u_char *orig_hdr = p;
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   135
+	u_int orig_length;
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   136
+	u_short ether_type;
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   137
+	u_short extracted_ether_type;
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
+	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
   140
+		printf("[|ipoib]");
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   141
+		return;
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
+
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   144
+	if (eflag) {
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   145
+		if (print_encap_header != NULL)
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   146
+			(*print_encap_header)(encap_header_arg);
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   147
+		ipoib_hdr_print(p, length);
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   148
+	}
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   149
+	orig_length = length;
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
+	length -= IPOIB_HDRLEN;
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   152
+	caplen -= IPOIB_HDRLEN;
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   153
+	ether_type = EXTRACT_16BITS(&p[40]);
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   154
+	p += IPOIB_HDRLEN;
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
+	if (ethertype_print(ether_type, p, length, caplen) == 0) {
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   157
+		/* 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
   158
+		if (!eflag) {
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   159
+			if (print_encap_header != NULL)
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   160
+				(*print_encap_header)(encap_header_arg);
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   161
+			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
   162
+		}
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   163
+
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   164
+		if (!suppress_default_print)
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   165
+			default_print(p, caplen);
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
+
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
+ * 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
   171
+ * 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
   172
+ * '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
   173
+ * 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
   174
+ */
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   175
+u_int
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   176
+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
   177
+{
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   178
+	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
   179
+
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   180
+	return (IPOIB_HDRLEN);
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
+
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
+ * Local Variables:
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   185
+ * c-style: whitesmith
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   186
+ * c-basic-offset: 8
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   187
+ * End:
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   188
+ */
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   189
+
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   190
diff -uN tcpdump-4.1.1/tcpdump.c tcpdump-4.1.1.new/tcpdump.c
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   191
--- tcpdump-4.1.1/tcpdump.c	2010-03-11 17:56:44.000000000 -0800
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   192
+++ tcpdump-4.1.1.new/tcpdump.c	2011-07-14 08:44:25.329300635 -0700
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   193
@@ -299,6 +299,9 @@
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   194
 #ifdef DLT_IPV6
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   195
 	{ raw_if_print,		DLT_IPV6 },
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   196
 #endif
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   197
+#ifdef DLT_IPOIB
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   198
+	{ ipoib_if_print,	DLT_IPOIB },
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
 	{ NULL,			0 },
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   201
 };
d0e244fcfff1 7003338 infiniband adapters do not work with tcpdump
Darren Reed <Darren.Reed@Oracle.COM>
parents:
diff changeset
   202