components/libpcap/patches/40-ipoib.patch
changeset 442 d0e244fcfff1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/libpcap/patches/40-ipoib.patch	Fri Jul 29 07:50:48 2011 -0700
@@ -0,0 +1,91 @@
+diff -u libpcap-1.1.1/gencode.c libpcap-1.1.1.new/gencode.c
+--- libpcap-1.1.1/gencode.c	Thu Mar 11 17:56:54 2010
++++ libpcap-1.1.1.new/gencode.c	Thu Jul 14 08:29:39 2011
+@@ -1588,6 +1588,13 @@
+ 		off_nl = 0;
+ 		off_nl_nosnap = -1;
+ 		return;
++
++	case DLT_IPOIB:
++		off_linktype = 40;
++		off_macpl = 44;		/* IPoIB mac_ib prefix length */
++		off_nl = 0;
++		off_nl_nosnap = -1;
++		return;
+ 	}
+ 	bpf_error("unknown data link type %d", linktype);
+ 	/* NOTREACHED */
+@@ -2048,6 +2055,16 @@
+ 	return gen_false();
+ }
+ 
++static struct block *
++gen_ipoib_linktype(proto)
++	register int proto;
++{
++	/*
++	 * This is an Ethernet type, so compare the length field with it.
++	 */
++	return gen_cmp(OR_LINK, off_linktype, BPF_H, (bpf_int32)proto);
++}
++
+ /*
+  * Generate code to match a particular packet type.
+  *
+@@ -3474,6 +3491,9 @@
+ 	case DLT_IPNET:
+ 		return gen_ipnet_linktype(proto);
+ 
++	case DLT_IPOIB:
++		return gen_ipoib_linktype(proto);
++
+ 	case DLT_LINUX_IRDA:
+ 		bpf_error("IrDA link-layer type filtering not implemented");
+ 
+diff -u libpcap-1.1.1/pcap-common.c libpcap-1.1.1.new/pcap-common.c
+--- libpcap-1.1.1/pcap-common.c	Thu Mar 11 17:56:54 2010
++++ libpcap-1.1.1.new/pcap-common.c	Thu Jul 14 08:25:56 2011
+@@ -278,6 +278,11 @@
+ #define LINKTYPE_USER15		162
+ 
+ /*
++ * IPoIB for Solaris.
++ */
++#define	LINKTYPE_IPOIB		DLT_IPOIB
++
++/*
+  * For future use with 802.11 captures - defined by AbsoluteValue
+  * Systems to store a number of bits of link-layer information
+  * including radio information:
+@@ -1067,6 +1072,9 @@
+ 	/* Solaris IPNET */
+ 	{ DLT_IPNET,		LINKTYPE_IPNET },
+ 
++	/* Solaris IPoIB */
++	{ DLT_IPOIB,		LINKTYPE_IPOIB },
++
+ 	/* CAN frames with SocketCAN headers */
+ 	{ DLT_CAN_SOCKETCAN,	LINKTYPE_CAN_SOCKETCAN },
+ 
+diff -u libpcap-1.1.1/pcap.c libpcap-1.1.1.new/pcap.c
+--- libpcap-1.1.1/pcap.c	Thu Mar 11 17:56:54 2010
++++ libpcap-1.1.1.new/pcap.c	Thu Jul 14 08:29:55 2011
+@@ -670,6 +670,7 @@
+ 	DLT_CHOICE(DLT_FC_2, "Fibre Channel FC-2"),
+ 	DLT_CHOICE(DLT_FC_2_WITH_FRAME_DELIMS, "Fibre Channel FC-2 with frame delimiters"),
+ 	DLT_CHOICE(DLT_IPNET, "Solaris ipnet"),
++	DLT_CHOICE(DLT_IPOIB, "Solaris IPoIB"),
+ 	DLT_CHOICE(DLT_CAN_SOCKETCAN, "CAN-bus with SocketCAN headers"),
+ 	DLT_CHOICE(DLT_IPV4, "Raw IPv4"),
+ 	DLT_CHOICE(DLT_IPV6, "Raw IPv6"),
+--- libpcap-1.1.1/pcap/bpf.h.dist	2010-03-11 17:56:54.000000000 -0800
++++ libpcap-1.1.1/pcap/bpf.h	2011-07-27 03:06:09.410830949 -0700
+@@ -502,6 +502,8 @@
+ #define DLT_USER14		161
+ #define DLT_USER15		162
+ 
++#define	DLT_IPOIB		DLT_USER15
++
+ /*
+  * For future use with 802.11 captures - defined by AbsoluteValue
+  * Systems to store a number of bits of link-layer information