This file is indexed.

/usr/src/openvswitch-1.4.0/third-party/ofp-tcpdump.patch is in openvswitch-datapath-dkms 1.4.0-1ubuntu1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
--- tcpdump/interface.h	2007-06-13 18:03:20.000000000 -0700
+++ tcpdump/interface.h	2008-04-15 18:28:55.000000000 -0700
@@ -148,7 +148,8 @@
 
 extern const char *dnaddr_string(u_short);
 
-extern void error(const char *, ...)
+#define error(fmt, args...)   tcpdump_error(fmt, ## args)
+extern void tcpdump_error(const char *, ...)
     __attribute__((noreturn, format (printf, 1, 2)));
 extern void warning(const char *, ...) __attribute__ ((format (printf, 1, 2)));
 
@@ -176,6 +177,7 @@
 extern void hex_print_with_offset(const char *, const u_char *, u_int, u_int);
 extern void hex_print(const char *, const u_char *, u_int);
 extern void telnet_print(const u_char *, u_int);
+extern void openflow_print(const u_char *, u_int);
 extern int ether_encap_print(u_short, const u_char *, u_int, u_int, u_short *);
 extern int llc_print(const u_char *, u_int, u_int, const u_char *,
 	const u_char *, u_short *);
--- tcpdump/Makefile.in	2007-09-25 18:59:52.000000000 -0700
+++ tcpdump/Makefile.in	2009-05-11 15:59:28.000000000 -0700
@@ -49,10 +49,10 @@
 CFLAGS = $(CCOPT) $(DEFS) $(INCLS)
 
 # Standard LDFLAGS
-LDFLAGS = @LDFLAGS@
+LDFLAGS = @LDFLAGS@ -L../../lib
 
 # Standard LIBS
-LIBS = @LIBS@
+LIBS = @LIBS@ -lopenvswitch
 
 INSTALL = @INSTALL@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -87,7 +87,8 @@
 	print-slow.c print-snmp.c print-stp.c print-sunatm.c print-sunrpc.c \
 	print-symantec.c print-syslog.c print-tcp.c print-telnet.c print-tftp.c \
 	print-timed.c print-token.c print-udp.c print-vjc.c print-vrrp.c \
-	print-wb.c print-zephyr.c setsignal.c tcpdump.c util.c
+	print-wb.c print-zephyr.c setsignal.c tcpdump.c util.c \
+	print-openflow.c
 
 LOCALSRC = @LOCALSRC@
 GENSRC = version.c
--- tcpdump/print-openflow.c	1969-12-31 16:00:00.000000000 -0800
+++ tcpdump/print-openflow.c	2009-05-11 15:38:41.000000000 -0700
@@ -0,0 +1,46 @@
+/* Copyright (C) 2007, 2008, 2009 Nicira Networks.
+
+   Redistribution and use in source and binary forms, with or without
+   modification, are permitted provided that the following conditions
+   are met:
+
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in
+       the documentation and/or other materials provided with the
+       distribution.
+    3. The names of the authors may not be used to endorse or promote
+       products derived from this software without specific prior
+       written permission.
+
+   THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+   WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ */
+ *
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <stdlib.h>
+
+#include "interface.h"
+#include "../../include/openflow/openflow.h"
+#include "../../lib/ofp-print.h"
+
+void
+openflow_print(const u_char *sp, u_int length)
+{
+    const struct ofp_header *ofp = (struct ofp_header *)sp;
+
+    if (!TTEST2(*sp, ntohs(ofp->length)))
+            goto trunc;
+
+    ofp_print(stdout, sp, length, vflag);
+    return;
+
+trunc:
+    printf("[|openflow]");
+}
--- tcpdump/print-tcp.c	2006-09-19 12:07:57.000000000 -0700
+++ tcpdump/print-tcp.c	2009-05-11 15:38:25.000000000 -0700
@@ -52,6 +52,8 @@
 
 #include "nameser.h"
 
+#include "../../include/openflow/openflow.h"
+
 #ifdef HAVE_LIBCRYPTO
 #include <openssl/md5.h>
 
@@ -680,7 +682,8 @@
 		}
                 else if (length > 0 && (sport == LDP_PORT || dport == LDP_PORT)) {
                         ldp_print(bp, length);
-		}
+		} else if (sport == OFP_TCP_PORT || dport == OFP_TCP_PORT)
+			openflow_print(bp, length);
 	}
 	return;
 bad: