* [PATCH] Enable Netdev XDP tutorial for Ubuntu 17.04
@ 2017-04-11 3:35 Jay Vosburgh
2017-04-11 20:01 ` Andy Gospodarek
2017-04-12 11:51 ` Johannes Berg
0 siblings, 2 replies; 7+ messages in thread
From: Jay Vosburgh @ 2017-04-11 3:35 UTC (permalink / raw)
To: xdp-newbies; +Cc: Jesper Dangaard Brouer, Andy Gospodarek
This patch resolves build issues when compiling the samples on
Ubuntu 17.04 with the distro 4.10 kernel and the linux-headers package
installed. This permits running the samples using distro packages
without needing to rebuild the kernel from source.
Tested on a 17.04 VM using virtio_net.
Signed-off-by: Jay Vosburgh <jay.vosburgh@canonical.com>
---
I haven't tried the patched version of this on a built from
source kernel yet, so it might break that.
kernel/samples/bpf/Makefile | 18 ++++--------------
kernel/samples/bpf/libbpf.h | 2 +-
kernel/samples/bpf/xdp_ddos01_blacklist_cmdline.c | 3 +--
3 files changed, 6 insertions(+), 17 deletions(-)
diff --git a/kernel/samples/bpf/Makefile b/kernel/samples/bpf/Makefile
index 2aa4f73a6bba..7d77e53d6cd8 100644
--- a/kernel/samples/bpf/Makefile
+++ b/kernel/samples/bpf/Makefile
@@ -49,17 +49,7 @@ KERNEL=$(kbuilddir)
CFLAGS := -O2 -Wall
# Local copy of kernel/tools/lib/
-CFLAGS += -I./tools/lib
-#CFLAGS += -I$(KERNEL)/tools/lib
-#
-# Local copy of uapi/linux/bpf.h kept under ./tools/include
-# needed due to enum dependency in bpf_helpers.h
-CFLAGS += -I./tools/include
-CFLAGS += -I$(KERNEL)/tools/include
-#CFLAGS += -I$(KERNEL)/tools/perf
-CFLAGS += -I$(KERNEL)/usr/include
-# Strange dependency to "selftests" due to "bpf_util.h"
-#CFLAGS += -I$(KERNEL)/tools/testing/selftests/bpf/
+USER_CFLAGS := $(CFLAGS) -I./tools/lib
LDFLAGS= -lelf
@@ -151,7 +141,7 @@ $(OBJECT_LIBBPF): %.o: %.c
$(CC) $(CFLAGS) -o $@ -c $<
$(OBJECT_LOADBPF): bpf_load.c
- $(CC) $(CFLAGS) -o $@ -c $<
+ $(CC) $(USER_CFLAGS) -o $@ -c $<
# Compiling of eBPF restricted-C code with LLVM
# clang option -S generated output file with suffix .ll
@@ -168,7 +158,7 @@ $(KERN_OBJECTS): %.o: %.c
$(LLC) -march=bpf -filetype=obj -o $@ ${@:.o=.ll}
$(TARGETS): %: %_user.c $(OBJECTS) Makefile
- $(CC) $(CFLAGS) $(OBJECTS) $(LDFLAGS) -o $@ $<
+ $(CC) $(USER_CFLAGS) $(OBJECTS) $(LDFLAGS) -o $@ $<
$(CMDLINE_TOOLS): %: %.c $(OBJECTS) Makefile $(COMMON_H)
- $(CC) -g $(CFLAGS) $(OBJECTS) $(LDFLAGS) -o $@ $<
+ $(CC) -g $(USER_CFLAGS) $(OBJECTS) $(LDFLAGS) -o $@ $<
diff --git a/kernel/samples/bpf/libbpf.h b/kernel/samples/bpf/libbpf.h
index 1a3c7a06f4c3..b572a0517498 100644
--- a/kernel/samples/bpf/libbpf.h
+++ b/kernel/samples/bpf/libbpf.h
@@ -9,7 +9,7 @@
* construct of -I$(KERNEL)/tools/lib/ this include find
* tools/lib/bpf/bpf.h which defines the userspace API
*/
-#include <bpf/bpf.h>
+#include "bpf/bpf.h"
struct bpf_insn;
diff --git a/kernel/samples/bpf/xdp_ddos01_blacklist_cmdline.c b/kernel/samples/bpf/xdp_ddos01_blacklist_cmdline.c
index 11157f94b062..5cf297ee2664 100644
--- a/kernel/samples/bpf/xdp_ddos01_blacklist_cmdline.c
+++ b/kernel/samples/bpf/xdp_ddos01_blacklist_cmdline.c
@@ -13,7 +13,6 @@ static const char *__doc__=
#include <string.h>
#include <unistd.h>
#include <locale.h>
-#include <linux/bitops.h>
#include <sys/resource.h>
#include <getopt.h>
@@ -212,7 +211,7 @@ static void blacklist_print_proto(int key, __u64 count)
printf("\n\t\"%s\" : %llu", xdp_proto_filter_names[key], count);
}
-static void blacklist_print_port(int key, u32 val, int countfds[])
+static void blacklist_print_port(int key, __u32 val, int countfds[])
{
int i;
__u64 count;
--
2.7.4
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH] Enable Netdev XDP tutorial for Ubuntu 17.04
2017-04-11 3:35 [PATCH] Enable Netdev XDP tutorial for Ubuntu 17.04 Jay Vosburgh
@ 2017-04-11 20:01 ` Andy Gospodarek
2017-04-11 21:58 ` Jay Vosburgh
2017-04-12 11:51 ` Johannes Berg
1 sibling, 1 reply; 7+ messages in thread
From: Andy Gospodarek @ 2017-04-11 20:01 UTC (permalink / raw)
To: Jay Vosburgh; +Cc: xdp-newbies, Jesper Dangaard Brouer
On Mon, Apr 10, 2017 at 08:35:13PM -0700, Jay Vosburgh wrote:
> This patch resolves build issues when compiling the samples on
> Ubuntu 17.04 with the distro 4.10 kernel and the linux-headers package
> installed. This permits running the samples using distro packages
> without needing to rebuild the kernel from source.
>
> Tested on a 17.04 VM using virtio_net.
This is a good goal and I like where you are going with this.
Unfortunately with this patch applied I cannot build against a locally
installed and running kernel.
$ make
gcc -O2 -Wall -o tools/lib/bpf/bpf.o -c tools/lib/bpf/bpf.c
tools/lib/bpf/bpf.c: In function ‘bpf_create_map’:
tools/lib/bpf/bpf.c:67:6: error: ‘union bpf_attr’ has no member named ‘map_flags’
attr.map_flags = map_flags;
^
Makefile:141: recipe for target 'tools/lib/bpf/bpf.o' failed
make: *** [tools/lib/bpf/bpf.o] Error 1
The build deps are not ideal in this Makefile, so I'm wondering if your
build was successful because you had tools/lib/bpf/bpf.o left over from
a successful build.
This patch on top of yours does work for me. Can you add this on top
and let me know if your build still works?
diff --git a/kernel/samples/bpf/Makefile b/kernel/samples/bpf/Makefile
index 7d77e53..8e493b1 100644
--- a/kernel/samples/bpf/Makefile
+++ b/kernel/samples/bpf/Makefile
@@ -49,7 +49,7 @@ KERNEL=$(kbuilddir)
CFLAGS := -O2 -Wall
# Local copy of kernel/tools/lib/
-USER_CFLAGS := $(CFLAGS) -I./tools/lib
+USER_CFLAGS := $(CFLAGS) -I./tools/lib -I./tools/include/uapi/
LDFLAGS= -lelf
@@ -138,7 +138,7 @@ verify_llvm_target_bpf: verify_cmds
# The fake-minimal-libbpf
$(OBJECT_LIBBPF): %.o: %.c
- $(CC) $(CFLAGS) -o $@ -c $<
+ $(CC) $(USER_CFLAGS) -o $@ -c $<
$(OBJECT_LOADBPF): bpf_load.c
$(CC) $(USER_CFLAGS) -o $@ -c $<
>
> Signed-off-by: Jay Vosburgh <jay.vosburgh@canonical.com>
> ---
>
> I haven't tried the patched version of this on a built from
> source kernel yet, so it might break that.
>
> kernel/samples/bpf/Makefile | 18 ++++--------------
> kernel/samples/bpf/libbpf.h | 2 +-
> kernel/samples/bpf/xdp_ddos01_blacklist_cmdline.c | 3 +--
> 3 files changed, 6 insertions(+), 17 deletions(-)
>
> diff --git a/kernel/samples/bpf/Makefile b/kernel/samples/bpf/Makefile
> index 2aa4f73a6bba..7d77e53d6cd8 100644
> --- a/kernel/samples/bpf/Makefile
> +++ b/kernel/samples/bpf/Makefile
> @@ -49,17 +49,7 @@ KERNEL=$(kbuilddir)
> CFLAGS := -O2 -Wall
>
> # Local copy of kernel/tools/lib/
> -CFLAGS += -I./tools/lib
> -#CFLAGS += -I$(KERNEL)/tools/lib
> -#
> -# Local copy of uapi/linux/bpf.h kept under ./tools/include
> -# needed due to enum dependency in bpf_helpers.h
> -CFLAGS += -I./tools/include
> -CFLAGS += -I$(KERNEL)/tools/include
> -#CFLAGS += -I$(KERNEL)/tools/perf
> -CFLAGS += -I$(KERNEL)/usr/include
> -# Strange dependency to "selftests" due to "bpf_util.h"
> -#CFLAGS += -I$(KERNEL)/tools/testing/selftests/bpf/
> +USER_CFLAGS := $(CFLAGS) -I./tools/lib
>
> LDFLAGS= -lelf
>
> @@ -151,7 +141,7 @@ $(OBJECT_LIBBPF): %.o: %.c
> $(CC) $(CFLAGS) -o $@ -c $<
>
> $(OBJECT_LOADBPF): bpf_load.c
> - $(CC) $(CFLAGS) -o $@ -c $<
> + $(CC) $(USER_CFLAGS) -o $@ -c $<
>
> # Compiling of eBPF restricted-C code with LLVM
> # clang option -S generated output file with suffix .ll
> @@ -168,7 +158,7 @@ $(KERN_OBJECTS): %.o: %.c
> $(LLC) -march=bpf -filetype=obj -o $@ ${@:.o=.ll}
>
> $(TARGETS): %: %_user.c $(OBJECTS) Makefile
> - $(CC) $(CFLAGS) $(OBJECTS) $(LDFLAGS) -o $@ $<
> + $(CC) $(USER_CFLAGS) $(OBJECTS) $(LDFLAGS) -o $@ $<
>
> $(CMDLINE_TOOLS): %: %.c $(OBJECTS) Makefile $(COMMON_H)
> - $(CC) -g $(CFLAGS) $(OBJECTS) $(LDFLAGS) -o $@ $<
> + $(CC) -g $(USER_CFLAGS) $(OBJECTS) $(LDFLAGS) -o $@ $<
> diff --git a/kernel/samples/bpf/libbpf.h b/kernel/samples/bpf/libbpf.h
> index 1a3c7a06f4c3..b572a0517498 100644
> --- a/kernel/samples/bpf/libbpf.h
> +++ b/kernel/samples/bpf/libbpf.h
> @@ -9,7 +9,7 @@
> * construct of -I$(KERNEL)/tools/lib/ this include find
> * tools/lib/bpf/bpf.h which defines the userspace API
> */
> -#include <bpf/bpf.h>
> +#include "bpf/bpf.h"
>
> struct bpf_insn;
>
> diff --git a/kernel/samples/bpf/xdp_ddos01_blacklist_cmdline.c b/kernel/samples/bpf/xdp_ddos01_blacklist_cmdline.c
> index 11157f94b062..5cf297ee2664 100644
> --- a/kernel/samples/bpf/xdp_ddos01_blacklist_cmdline.c
> +++ b/kernel/samples/bpf/xdp_ddos01_blacklist_cmdline.c
> @@ -13,7 +13,6 @@ static const char *__doc__=
> #include <string.h>
> #include <unistd.h>
> #include <locale.h>
> -#include <linux/bitops.h>
>
> #include <sys/resource.h>
> #include <getopt.h>
> @@ -212,7 +211,7 @@ static void blacklist_print_proto(int key, __u64 count)
> printf("\n\t\"%s\" : %llu", xdp_proto_filter_names[key], count);
> }
>
> -static void blacklist_print_port(int key, u32 val, int countfds[])
> +static void blacklist_print_port(int key, __u32 val, int countfds[])
> {
> int i;
> __u64 count;
> --
> 2.7.4
>
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH] Enable Netdev XDP tutorial for Ubuntu 17.04
2017-04-11 20:01 ` Andy Gospodarek
@ 2017-04-11 21:58 ` Jay Vosburgh
0 siblings, 0 replies; 7+ messages in thread
From: Jay Vosburgh @ 2017-04-11 21:58 UTC (permalink / raw)
To: Andy Gospodarek; +Cc: xdp-newbies, Jesper Dangaard Brouer
Andy Gospodarek <andy@greyhouse.net> wrote:
>On Mon, Apr 10, 2017 at 08:35:13PM -0700, Jay Vosburgh wrote:
>> This patch resolves build issues when compiling the samples on
>> Ubuntu 17.04 with the distro 4.10 kernel and the linux-headers package
>> installed. This permits running the samples using distro packages
>> without needing to rebuild the kernel from source.
>>
>> Tested on a 17.04 VM using virtio_net.
>
>This is a good goal and I like where you are going with this.
>
>Unfortunately with this patch applied I cannot build against a locally
>installed and running kernel.
>
>$ make
>gcc -O2 -Wall -o tools/lib/bpf/bpf.o -c tools/lib/bpf/bpf.c
>tools/lib/bpf/bpf.c: In function ‘bpf_create_map’:
>tools/lib/bpf/bpf.c:67:6: error: ‘union bpf_attr’ has no member named ‘map_flags’
> attr.map_flags = map_flags;
> ^
>Makefile:141: recipe for target 'tools/lib/bpf/bpf.o' failed
>make: *** [tools/lib/bpf/bpf.o] Error 1
FWIW, I saw this error when originally trying to compile on the
Ubuntu 16.04 user space, because the glibc headers are too old to have
this field in bpf_attr.
>The build deps are not ideal in this Makefile, so I'm wondering if your
>build was successful because you had tools/lib/bpf/bpf.o left over from
>a successful build.
"make clean" looks like it erases that bpf.o, so I don't think
this was it.
Also, I just noticed that make clean isn't getting the command
line program itself:
diff --git a/kernel/samples/bpf/Makefile b/kernel/samples/bpf/Makefile
index 7d77e53d6cd8..cd6b6ab03bb8 100644
--- a/kernel/samples/bpf/Makefile
+++ b/kernel/samples/bpf/Makefile
@@ -96,6 +96,7 @@ clean:
rm -f $(TARGETS)
rm -f $(KERN_OBJECTS)
rm -f $(USER_OBJECTS)
+ rm -f $(CMDLINE_TOOLS)
dependencies: verify_llvm_target_bpf linux-src-devel-headers
>This patch on top of yours does work for me. Can you add this on top
>and let me know if your build still works?
With your patch applied, on my system it still builds fine.
-J
>diff --git a/kernel/samples/bpf/Makefile b/kernel/samples/bpf/Makefile
>index 7d77e53..8e493b1 100644
>--- a/kernel/samples/bpf/Makefile
>+++ b/kernel/samples/bpf/Makefile
>@@ -49,7 +49,7 @@ KERNEL=$(kbuilddir)
> CFLAGS := -O2 -Wall
>
> # Local copy of kernel/tools/lib/
>-USER_CFLAGS := $(CFLAGS) -I./tools/lib
>+USER_CFLAGS := $(CFLAGS) -I./tools/lib -I./tools/include/uapi/
>
> LDFLAGS= -lelf
>
>@@ -138,7 +138,7 @@ verify_llvm_target_bpf: verify_cmds
>
> # The fake-minimal-libbpf
> $(OBJECT_LIBBPF): %.o: %.c
>- $(CC) $(CFLAGS) -o $@ -c $<
>+ $(CC) $(USER_CFLAGS) -o $@ -c $<
>
> $(OBJECT_LOADBPF): bpf_load.c
> $(CC) $(USER_CFLAGS) -o $@ -c $<
>
>>
>> Signed-off-by: Jay Vosburgh <jay.vosburgh@canonical.com>
>> ---
>>
>> I haven't tried the patched version of this on a built from
>> source kernel yet, so it might break that.
>>
>> kernel/samples/bpf/Makefile | 18 ++++--------------
>> kernel/samples/bpf/libbpf.h | 2 +-
>> kernel/samples/bpf/xdp_ddos01_blacklist_cmdline.c | 3 +--
>> 3 files changed, 6 insertions(+), 17 deletions(-)
>>
>> diff --git a/kernel/samples/bpf/Makefile b/kernel/samples/bpf/Makefile
>> index 2aa4f73a6bba..7d77e53d6cd8 100644
>> --- a/kernel/samples/bpf/Makefile
>> +++ b/kernel/samples/bpf/Makefile
>> @@ -49,17 +49,7 @@ KERNEL=$(kbuilddir)
>> CFLAGS := -O2 -Wall
>>
>> # Local copy of kernel/tools/lib/
>> -CFLAGS += -I./tools/lib
>> -#CFLAGS += -I$(KERNEL)/tools/lib
>> -#
>> -# Local copy of uapi/linux/bpf.h kept under ./tools/include
>> -# needed due to enum dependency in bpf_helpers.h
>> -CFLAGS += -I./tools/include
>> -CFLAGS += -I$(KERNEL)/tools/include
>> -#CFLAGS += -I$(KERNEL)/tools/perf
>> -CFLAGS += -I$(KERNEL)/usr/include
>> -# Strange dependency to "selftests" due to "bpf_util.h"
>> -#CFLAGS += -I$(KERNEL)/tools/testing/selftests/bpf/
>> +USER_CFLAGS := $(CFLAGS) -I./tools/lib
>>
>> LDFLAGS= -lelf
>>
>> @@ -151,7 +141,7 @@ $(OBJECT_LIBBPF): %.o: %.c
>> $(CC) $(CFLAGS) -o $@ -c $<
>>
>> $(OBJECT_LOADBPF): bpf_load.c
>> - $(CC) $(CFLAGS) -o $@ -c $<
>> + $(CC) $(USER_CFLAGS) -o $@ -c $<
>>
>> # Compiling of eBPF restricted-C code with LLVM
>> # clang option -S generated output file with suffix .ll
>> @@ -168,7 +158,7 @@ $(KERN_OBJECTS): %.o: %.c
>> $(LLC) -march=bpf -filetype=obj -o $@ ${@:.o=.ll}
>>
>> $(TARGETS): %: %_user.c $(OBJECTS) Makefile
>> - $(CC) $(CFLAGS) $(OBJECTS) $(LDFLAGS) -o $@ $<
>> + $(CC) $(USER_CFLAGS) $(OBJECTS) $(LDFLAGS) -o $@ $<
>>
>> $(CMDLINE_TOOLS): %: %.c $(OBJECTS) Makefile $(COMMON_H)
>> - $(CC) -g $(CFLAGS) $(OBJECTS) $(LDFLAGS) -o $@ $<
>> + $(CC) -g $(USER_CFLAGS) $(OBJECTS) $(LDFLAGS) -o $@ $<
>> diff --git a/kernel/samples/bpf/libbpf.h b/kernel/samples/bpf/libbpf.h
>> index 1a3c7a06f4c3..b572a0517498 100644
>> --- a/kernel/samples/bpf/libbpf.h
>> +++ b/kernel/samples/bpf/libbpf.h
>> @@ -9,7 +9,7 @@
>> * construct of -I$(KERNEL)/tools/lib/ this include find
>> * tools/lib/bpf/bpf.h which defines the userspace API
>> */
>> -#include <bpf/bpf.h>
>> +#include "bpf/bpf.h"
>>
>> struct bpf_insn;
>>
>> diff --git a/kernel/samples/bpf/xdp_ddos01_blacklist_cmdline.c b/kernel/samples/bpf/xdp_ddos01_blacklist_cmdline.c
>> index 11157f94b062..5cf297ee2664 100644
>> --- a/kernel/samples/bpf/xdp_ddos01_blacklist_cmdline.c
>> +++ b/kernel/samples/bpf/xdp_ddos01_blacklist_cmdline.c
>> @@ -13,7 +13,6 @@ static const char *__doc__=
>> #include <string.h>
>> #include <unistd.h>
>> #include <locale.h>
>> -#include <linux/bitops.h>
>>
>> #include <sys/resource.h>
>> #include <getopt.h>
>> @@ -212,7 +211,7 @@ static void blacklist_print_proto(int key, __u64 count)
>> printf("\n\t\"%s\" : %llu", xdp_proto_filter_names[key], count);
>> }
>>
>> -static void blacklist_print_port(int key, u32 val, int countfds[])
>> +static void blacklist_print_port(int key, __u32 val, int countfds[])
>> {
>> int i;
>> __u64 count;
>> --
>> 2.7.4
>>
---
-Jay Vosburgh, jay.vosburgh@canonical.com
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH] Enable Netdev XDP tutorial for Ubuntu 17.04
2017-04-11 3:35 [PATCH] Enable Netdev XDP tutorial for Ubuntu 17.04 Jay Vosburgh
2017-04-11 20:01 ` Andy Gospodarek
@ 2017-04-12 11:51 ` Johannes Berg
2017-04-21 20:58 ` Jay Vosburgh
1 sibling, 1 reply; 7+ messages in thread
From: Johannes Berg @ 2017-04-12 11:51 UTC (permalink / raw)
To: Jay Vosburgh, xdp-newbies; +Cc: Jesper Dangaard Brouer, Andy Gospodarek
On Mon, 2017-04-10 at 20:35 -0700, Jay Vosburgh wrote:
> This patch resolves build issues when compiling the samples on
> Ubuntu 17.04 with the distro 4.10 kernel and the linux-headers
> package
> installed. This permits running the samples using distro packages
> without needing to rebuild the kernel from source.
>
> Tested on a 17.04 VM using virtio_net.
>
> Signed-off-by: Jay Vosburgh <jay.vosburgh@canonical.com>
> ---
>
> I haven't tried the patched version of this on a built from
> source kernel yet, so it might break that.
I was able to build on a recent Debian testing by simply inserting the
following line into samples/bpf/Makefile to force it to use the
kernel's UAPI instead of the installed headers:
HOSTCFLAGS += -I$(srctree)/include/uapi/ -D__EXPORTED_HEADERS__
johannes
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] Enable Netdev XDP tutorial for Ubuntu 17.04
2017-04-12 11:51 ` Johannes Berg
@ 2017-04-21 20:58 ` Jay Vosburgh
2017-04-25 8:35 ` Jesper Dangaard Brouer
0 siblings, 1 reply; 7+ messages in thread
From: Jay Vosburgh @ 2017-04-21 20:58 UTC (permalink / raw)
To: Johannes Berg; +Cc: xdp-newbies, Jesper Dangaard Brouer, Andy Gospodarek
Johannes Berg <johannes@sipsolutions.net> wrote:
>On Mon, 2017-04-10 at 20:35 -0700, Jay Vosburgh wrote:
>> This patch resolves build issues when compiling the samples on
>> Ubuntu 17.04 with the distro 4.10 kernel and the linux-headers
>> package
>> installed. This permits running the samples using distro packages
>> without needing to rebuild the kernel from source.
>>
>> Tested on a 17.04 VM using virtio_net.
>>
>> Signed-off-by: Jay Vosburgh <jay.vosburgh@canonical.com>
>> ---
>>
>> I haven't tried the patched version of this on a built from
>> source kernel yet, so it might break that.
>
>I was able to build on a recent Debian testing by simply inserting the
>following line into samples/bpf/Makefile to force it to use the
>kernel's UAPI instead of the installed headers:
>
>HOSTCFLAGS += -I$(srctree)/include/uapi/ -D__EXPORTED_HEADERS__
Getting back to this after a couple of weeks...
The above changes didn't make any difference for me, but it
turns out all of the various Makefile hacks I did previously aren't
needed for Ubuntu 17.04, the following lets the examples build and run
fine:
diff --git a/kernel/samples/bpf/xdp_ddos01_blacklist_cmdline.c b/kernel/samples/bpf/xdp_ddos01_blacklist_cmdline.c
index 11157f9..5cf297e 100644
--- a/kernel/samples/bpf/xdp_ddos01_blacklist_cmdline.c
+++ b/kernel/samples/bpf/xdp_ddos01_blacklist_cmdline.c
@@ -13,7 +13,6 @@ static const char *__doc__=
#include <string.h>
#include <unistd.h>
#include <locale.h>
-#include <linux/bitops.h>
#include <sys/resource.h>
#include <getopt.h>
@@ -212,7 +211,7 @@ static void blacklist_print_proto(int key, __u64 count)
printf("\n\t\"%s\" : %llu", xdp_proto_filter_names[key], count);
}
-static void blacklist_print_port(int key, u32 val, int countfds[])
+static void blacklist_print_port(int key, __u32 val, int countfds[])
{
int i;
__u64 count;
-J
---
-Jay Vosburgh, jay.vosburgh@canonical.com
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH] Enable Netdev XDP tutorial for Ubuntu 17.04
2017-04-21 20:58 ` Jay Vosburgh
@ 2017-04-25 8:35 ` Jesper Dangaard Brouer
2017-04-26 14:59 ` Jesper Dangaard Brouer
0 siblings, 1 reply; 7+ messages in thread
From: Jesper Dangaard Brouer @ 2017-04-25 8:35 UTC (permalink / raw)
To: Jay Vosburgh; +Cc: Johannes Berg, xdp-newbies, Andy Gospodarek, brouer
On Fri, 21 Apr 2017 13:58:42 -0700 Jay Vosburgh <jay.vosburgh@canonical.com> wrote:
> Johannes Berg <johannes@sipsolutions.net> wrote:
>
> >On Mon, 2017-04-10 at 20:35 -0700, Jay Vosburgh wrote:
> >> This patch resolves build issues when compiling the samples on
> >> Ubuntu 17.04 with the distro 4.10 kernel and the linux-headers
> >> package
> >> installed. This permits running the samples using distro packages
> >> without needing to rebuild the kernel from source.
> >>
> >> Tested on a 17.04 VM using virtio_net.
> >>
> >> Signed-off-by: Jay Vosburgh <jay.vosburgh@canonical.com>
> >> ---
> >>
> >> I haven't tried the patched version of this on a built from
> >> source kernel yet, so it might break that.
> >
> >I was able to build on a recent Debian testing by simply inserting the
> >following line into samples/bpf/Makefile to force it to use the
> >kernel's UAPI instead of the installed headers:
> >
> >HOSTCFLAGS += -I$(srctree)/include/uapi/ -D__EXPORTED_HEADERS__
>
> Getting back to this after a couple of weeks...
>
> The above changes didn't make any difference for me, but it
> turns out all of the various Makefile hacks I did previously aren't
> needed for Ubuntu 17.04, the following lets the examples build and run
> fine:
>
> diff --git a/kernel/samples/bpf/xdp_ddos01_blacklist_cmdline.c b/kernel/samples/bpf/xdp_ddos01_blacklist_cmdline.c
> index 11157f9..5cf297e 100644
> --- a/kernel/samples/bpf/xdp_ddos01_blacklist_cmdline.c
> +++ b/kernel/samples/bpf/xdp_ddos01_blacklist_cmdline.c
> @@ -13,7 +13,6 @@ static const char *__doc__=
> #include <string.h>
> #include <unistd.h>
> #include <locale.h>
> -#include <linux/bitops.h>
This include was added by Andy in commit 888606b5accb ("samples/bpf:
xdp_ddos01 add support for port blacklisting").
To Andy, are you okay with this change/patch?
> #include <sys/resource.h>
> #include <getopt.h>
> @@ -212,7 +211,7 @@ static void blacklist_print_proto(int key, __u64 count)
> printf("\n\t\"%s\" : %llu", xdp_proto_filter_names[key], count);
> }
>
> -static void blacklist_print_port(int key, u32 val, int countfds[])
> +static void blacklist_print_port(int key, __u32 val, int countfds[])
> {
> int i;
> __u64 count;
>
--
Best regards,
Jesper Dangaard Brouer
MSc.CS, Principal Kernel Engineer at Red Hat
LinkedIn: http://www.linkedin.com/in/brouer
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] Enable Netdev XDP tutorial for Ubuntu 17.04
2017-04-25 8:35 ` Jesper Dangaard Brouer
@ 2017-04-26 14:59 ` Jesper Dangaard Brouer
0 siblings, 0 replies; 7+ messages in thread
From: Jesper Dangaard Brouer @ 2017-04-26 14:59 UTC (permalink / raw)
To: Jay Vosburgh; +Cc: Johannes Berg, xdp-newbies, Andy Gospodarek, brouer
Hi Jay,
On Tue, 25 Apr 2017 10:35:37 +0200
Jesper Dangaard Brouer <brouer@redhat.com> wrote:
> > Getting back to this after a couple of weeks...
> >
> > The above changes didn't make any difference for me, but it
> > turns out all of the various Makefile hacks I did previously aren't
> > needed for Ubuntu 17.04, the following lets the examples build and run
> > fine:
> >
> > diff --git a/kernel/samples/bpf/xdp_ddos01_blacklist_cmdline.c b/kernel/samples/bpf/xdp_ddos01_blacklist_cmdline.c
> > index 11157f9..5cf297e 100644
> > --- a/kernel/samples/bpf/xdp_ddos01_blacklist_cmdline.c
> > +++ b/kernel/samples/bpf/xdp_ddos01_blacklist_cmdline.c
> > @@ -13,7 +13,6 @@ static const char *__doc__=
> > #include <string.h>
> > #include <unistd.h>
> > #include <locale.h>
> > -#include <linux/bitops.h>
>
> This include was added by Andy in commit 888606b5accb ("samples/bpf:
> xdp_ddos01 add support for port blacklisting").
>
> To Andy, are you okay with this change/patch?
I've applied this and gave you author credit for the fix:
https://github.com/netoptimizer/prototype-kernel/commit/7e879ecd6a96
> > #include <sys/resource.h>
> > #include <getopt.h>
> > @@ -212,7 +211,7 @@ static void blacklist_print_proto(int key, __u64 count)
> > printf("\n\t\"%s\" : %llu", xdp_proto_filter_names[key], count);
> > }
> >
> > -static void blacklist_print_port(int key, u32 val, int countfds[])
> > +static void blacklist_print_port(int key, __u32 val, int countfds[])
> > {
> > int i;
> > __u64 count;
> >
Applied
--
Best regards,
Jesper Dangaard Brouer
MSc.CS, Principal Kernel Engineer at Red Hat
LinkedIn: http://www.linkedin.com/in/brouer
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2017-04-26 15:08 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-04-11 3:35 [PATCH] Enable Netdev XDP tutorial for Ubuntu 17.04 Jay Vosburgh
2017-04-11 20:01 ` Andy Gospodarek
2017-04-11 21:58 ` Jay Vosburgh
2017-04-12 11:51 ` Johannes Berg
2017-04-21 20:58 ` Jay Vosburgh
2017-04-25 8:35 ` Jesper Dangaard Brouer
2017-04-26 14:59 ` Jesper Dangaard Brouer
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.