unix: mkdir VPP_RUN_DIR before opening a socket in it

Change https://gerrit.fd.io/r/#/c/7230/ added a Unix domain
CLI socket in the default startup.conf; however unless you
had previously run VPP with the DPDK plugin enabled the
directory that it is created in. /run/vpp, would not exist
and startup would fail. This directory is typically hosted
in a tmpfs ramdisk and is thus ephemeral.

This patch adds a function that attempts to mkdir VPP_RUN_DIR
and uses it in both the DPDK plugin and the CLI code if the
CLI socket is to be created in that directory.

Change-Id: Ibbf925819099dce2b5eb0fa238b9edca1036d6fd
Signed-off-by: Chris Luke <chrisy@flirble.org>
diff --git a/src/vlib/unix/util.c b/src/vlib/unix/util.c
index edc3e59..51b4a4e 100644
--- a/src/vlib/unix/util.c
+++ b/src/vlib/unix/util.c
@@ -222,6 +222,19 @@
   return r;
 }
 
+clib_error_t *
+unix_make_vpp_run_dir (void)
+{
+  int rv;
+
+  rv = mkdir (VPP_RUN_DIR, 0755);
+  if (rv && errno != EEXIST)
+    return clib_error_return (0, "mkdir '%s' failed errno %d",
+			      VPP_RUN_DIR, errno);
+
+  return 0;
+}
+
 /*
  * fd.io coding-style-patch-verification: ON
  *