]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - samples/bpf/xdp_redirect_user.c
Merge tag 'spi-fix-v5.5-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi
[linux.git] / samples / bpf / xdp_redirect_user.c
index 09747bee6668cc5e3e31e374bf41074e92af0531..5440cd620607fbee2e9c81b5640424d48e09b658 100644 (file)
 #include <stdlib.h>
 #include <stdbool.h>
 #include <string.h>
+#include <net/if.h>
 #include <unistd.h>
 #include <libgen.h>
 #include <sys/resource.h>
 
 #include "bpf_util.h"
 #include <bpf/bpf.h>
-#include "bpf/libbpf.h"
+#include "libbpf.h"
 
 static int ifindex_in;
 static int ifindex_out;
@@ -85,7 +86,7 @@ static void poll_stats(int interval, int ifindex)
 static void usage(const char *prog)
 {
        fprintf(stderr,
-               "usage: %s [OPTS] IFINDEX_IN IFINDEX_OUT\n\n"
+               "usage: %s [OPTS] <IFNAME|IFINDEX>_IN <IFNAME|IFINDEX>_OUT\n\n"
                "OPTS:\n"
                "    -S    use skb-mode\n"
                "    -N    enforce native mode\n"
@@ -128,7 +129,7 @@ int main(int argc, char **argv)
        }
 
        if (optind == argc) {
-               printf("usage: %s IFINDEX_IN IFINDEX_OUT\n", argv[0]);
+               printf("usage: %s <IFNAME|IFINDEX>_IN <IFNAME|IFINDEX>_OUT\n", argv[0]);
                return 1;
        }
 
@@ -137,8 +138,14 @@ int main(int argc, char **argv)
                return 1;
        }
 
-       ifindex_in = strtoul(argv[optind], NULL, 0);
-       ifindex_out = strtoul(argv[optind + 1], NULL, 0);
+       ifindex_in = if_nametoindex(argv[optind]);
+       if (!ifindex_in)
+               ifindex_in = strtoul(argv[optind], NULL, 0);
+
+       ifindex_out = if_nametoindex(argv[optind + 1]);
+       if (!ifindex_out)
+               ifindex_out = strtoul(argv[optind + 1], NULL, 0);
+
        printf("input: %d output: %d\n", ifindex_in, ifindex_out);
 
        snprintf(filename, sizeof(filename), "%s_kern.o", argv[0]);
@@ -189,7 +196,7 @@ int main(int argc, char **argv)
        }
 
        memset(&info, 0, sizeof(info));
-       ret = bpf_obj_get_info_by_fd(prog_fd, &info, &info_len);
+       ret = bpf_obj_get_info_by_fd(dummy_prog_fd, &info, &info_len);
        if (ret) {
                printf("can't get prog info - %s\n", strerror(errno));
                return ret;