Fix DPDK build on arm
[csit.git] / resources / libraries / bash / function / dpdk.sh
index da46c6d..4298e79 100644 (file)
@@ -108,6 +108,12 @@ function dpdk_compile () {
 
     sed -i "${sed_i40e}" "${sed_file}" || die "Patch failed"
 
+    sed_build_fix='s/#include <\(rte_ethdev.*.h\)>/#include "\1"/g'
+    # can't put the filename in quotes so that shell expands it
+    sed -i "${sed_build_fix}" ./lib/librte_ethdev/rte_ethdev*.h || {
+        die "DPDK build patch failed"
+    }
+
     # Compile
     make install T="${arch}"-"${machine}"-linuxapp-gcc -j || {
         die "Failed to compile DPDK!"
@@ -206,7 +212,7 @@ function dpdk_kill () {
     fi
 
     # Remove hugepages
-    sudo rm -f /dev/hugepages/* || die "Removing hugepages failed!"
+    sudo rm -rf /dev/hugepages/* || die "Removing hugepages failed!"
 }
 
 
@@ -350,9 +356,11 @@ function dpdk_testpmd () {
 
     for attempt in {1..60}; do
         echo "Checking if testpmd is alive, attempt nr ${attempt}"
-        if fgrep "Press enter to exit" screenlog.0; then
-            cat screenlog.0
-            exit 0
+         if fgrep "Press enter to exit" screenlog.0 && \
+            fgrep "Port 0: link state change event" screenlog.0 && \
+            fgrep "Port 1: link state change event" screenlog.0; then
+             cat screenlog.0
+             exit 0
         fi
         sleep 1
     done