New upstream version 18.11-rc3
[deb_dpdk.git] / test / bpf / t3.c
index 531b9cb..9ba3463 100644 (file)
@@ -6,9 +6,15 @@
  * eBPF program sample.
  * Accepts pointer to struct rte_mbuf as an input parameter.
  * Dump the mbuf into stdout if it is an ARP packet (aka tcpdump 'arp').
- * To compile:
- * clang -O2 -I${RTE_SDK}/${RTE_TARGET}/include \
+ *
+ * To compile on x86:
+ * clang -O2 -U __GNUC__ -I${RTE_SDK}/${RTE_TARGET}/include \
  * -target bpf -Wno-int-to-void-pointer-cast -c t3.c
+ *
+ * To compile on ARM:
+ * clang -O2 -I/usr/include/aarch64-linux-gnu \
+ * -I${RTE_SDK}/${RTE_TARGET}/include -target bpf \
+ * -Wno-int-to-void-pointer-cast -c t3.c
  */
 
 #include <stdint.h>
@@ -17,6 +23,7 @@
 #include <net/ethernet.h>
 #include <rte_config.h>
 #include "mbuf.h"
+#include <arpa/inet.h>
 
 extern void rte_pktmbuf_dump(FILE *, const struct rte_mbuf *, unsigned int);
 
@@ -29,7 +36,7 @@ entry(const void *pkt)
        mb = pkt;
        eth = rte_pktmbuf_mtod(mb, const struct ether_header *);
 
-       if (eth->ether_type == __builtin_bswap16(ETHERTYPE_ARP))
+       if (eth->ether_type == htons(ETHERTYPE_ARP))
                rte_pktmbuf_dump(stdout, mb, 64);
 
        return 1;