datapath: Make use of "rte_errno" library

Currently, when an operation like mempool allocation etc. fails, we
panic. However, we do not give the reason for the failed operation. Fix
this by making use of the "rte_errno" library, which provides string
representations of the issue encountered.

Change-Id: I39854071b7298b0f4e73da8cb3cff355169247e0
Signed-off-by: Stephen Finucane <stephen.finucane@intel.com>
Reviewed-by: Mark D. Gray <mark.d.gray@intel.com>
Reviewed-by: Kevin Traynor <kevin.traynor@intel.com>
datapath: Add additional signals to signal handler

We have a signal handler that ensures threads started by vHost are
killed before exiting the application, thus preventing a hang. At
the moment we only handle SIGINT (i.e. Ctrl + C). However, this
should be extended to cover SIGHUP and SIGTERM as these are valid
exit conditions.

This will also fix an issue whereby the executable doesn't exit
with a 'kill' (SIGTERM), requiring a 'kill -9' instead (SIGKILL).

Change-Id: I8b2c80c8f3890710bc6101766c938240b1fafd92
Signed-off-by: Stephen Finucane <stephen.finucane@intel.com>
Reviewed-by: Kevin Traynor <kevin.traynor@intel.com>
Reviewed-by: Ian Stokes <ian.stokes@intel.com>
Reviewed-by: Ciara Loftus <ciara.loftus@intel.com>
datapath: Fix cuse teardown function

We manually call the teardown function built into cuse. However, we
use cuse within a thread. Per cuse documentation, we don't need to
call the teardown function as it is called automatically on receipt
of some signals. These signals can be seen in 'fuse_signals.c'.

Change-Id: I5805408b2abf9fe274b43d99740696f264ff88d9
Signed-off-by: Stephen Finucane <stephen.finucane@intel.com>
Reviewed-by: Kevin Traynor <kevin.traynor@intel.com>
Reviewed-by: Ian Stokes <ian.stokes@intel.com>
Reviewed-by: Ciara Loftus <ciara.loftus@intel.com>