Skip to content

Commit

Permalink
third-party: Fix tcpdump patch
Browse files Browse the repository at this point in the history
Other parts of OVS have moved on since the tcpdump patch was created. This
commit brings the patch up to date and will compile cleanly against
tcpdump-4.3.0.

Signed-off-by: Joe Stringer <[email protected]>
Signed-off-by: Justin Pettit <[email protected]>
  • Loading branch information
joestringer authored and Justin Pettit committed Sep 6, 2012
1 parent 8d0abb5 commit e0f3585
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 34 deletions.
8 changes: 4 additions & 4 deletions third-party/README
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@ debugging.
tcpdump
-------
The "ofp-tcpdump.patch" patch adds the ability to parse OpenFlow
messages to tcpdump. These instructions assume that tcpdump 3.9.8
messages to tcpdump. These instructions assume that tcpdump 4.3.0
is going to be used, but it should work with other versions that are not
substantially different. To begin, download tcpdump and apply the
patch:

wget http://www.tcpdump.org/release/tcpdump-3.9.8.tar.gz
tar xzf tcpdump-3.9.8.tar.gz
ln -s tcpdump-3.9.8 tcpdump
wget http://www.tcpdump.org/release/tcpdump-4.3.0.tar.gz
tar xzf tcpdump-4.3.0.tar.gz
ln -s tcpdump-4.3.0 tcpdump
patch -p0 < ofp-tcpdump.patch

Then build the new version of tcpdump:
Expand Down
69 changes: 39 additions & 30 deletions third-party/ofp-tcpdump.patch
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
--- 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 @@
@@ -130,7 +130,8 @@

extern const char *dnaddr_string(u_short);

Expand All @@ -10,42 +10,51 @@
__attribute__((noreturn, format (printf, 1, 2)));
extern void warning(const char *, ...) __attribute__ ((format (printf, 1, 2)));

@@ -176,6 +177,7 @@
@@ -163,6 +164,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)
extern int snap_print(const u_char *, u_int, u_int, u_int);
--- tcpdump/Makefile.in 2012-06-13 04:56:20.000000000 +1200
+++ tcpdump/Makefile.in 2012-08-29 21:36:37.000000000 +1200
@@ -43,7 +43,7 @@
CC = @CC@
PROG = tcpdump
CCOPT = @V_CCOPT@
-INCLS = -I. @V_INCLS@
+INCLS = -I. @V_INCLS@ -I../../include
DEFS = @DEFS@ @CPPFLAGS@ @V_DEFS@

# Standard CFLAGS
@@ -51,10 +51,10 @@
FULL_CFLAGS = $(CCOPT) $(DEFS) $(INCLS) $(CFLAGS)

# Standard LDFLAGS
-LDFLAGS = @LDFLAGS@
+LDFLAGS = @LDFLAGS@ -L../../lib

# Standard LIBS
-LIBS = @LIBS@
+LIBS = @LIBS@ -lopenvswitch
+LIBS = @LIBS@ -lopenvswitch -lssl -lrt -lm

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 \
@@ -93,7 +93,8 @@
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-timed.c print-tipc.c print-token.c print-udld.c print-udp.c \
print-usb.c print-vjc.c print-vqp.c print-vrrp.c print-vtp.c \
- print-wb.c print-zephyr.c signature.c setsignal.c tcpdump.c util.c
+ print-wb.c print-zephyr.c signature.c setsignal.c tcpdump.c util.c \
+ print-openflow.c

LOCALSRC = @LOCALSRC@
GENSRC = version.c
LIBNETDISSECT_SRC=print-isakmp.c
LIBNETDISSECT_OBJ=$(LIBNETDISSECT_SRC:.c=.o)
--- 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 @@
@@ -0,0 +1,45 @@
+/* Copyright (C) 2007, 2008, 2009 Nicira, Inc.
+
+ Redistribution and use in source and binary forms, with or without
Expand All @@ -66,7 +75,6 @@
+ IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ */
+ *
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
Expand All @@ -75,7 +83,7 @@
+#include <stdlib.h>
+
+#include "interface.h"
+#include "../../include/openflow/openflow.h"
+#include "openflow/openflow.h"
+#include "../../lib/ofp-print.h"
+
+void
Expand All @@ -94,22 +102,23 @@
+}
--- 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 @@
@@ -56,6 +56,8 @@

#include "nameser.h"

+#include "../../include/openflow/openflow.h"
+#include "openflow/openflow.h"
+
#ifdef HAVE_LIBCRYPTO
#include <openssl/md5.h>
#include <signature.h>
@@ -669,7 +672,9 @@
}
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);
+ }

@@ -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:
return;
bad:

0 comments on commit e0f3585

Please sign in to comment.