dpif: resolve bug (repeated mbuf enqueue)

'dpdk_link.c' contains numerous macros and functions that invoke
Intel(R) DPDK 'rte_ring_enqueue_*' functions. Within 'dpdk_link.c',
a call to these functions is deemed successful by a return value of
0. However, the 'rte_ring_dequeue' functions can return one of two
values upon success: 0, or -EDQUOTA (signifying that packets were
successfully enqueued on the ring, but that the 'high watermark'
value for that ring has been exceeded).

The impact of this bug is that packets may be repeatedly enqueued
onto the target rings until a value of 0 is returned, even though
they may have already successfully been enqueued (albeit with a
negative return value).

Fix this issue by modifying the macros and functions to check for
the correct return value.

Change-Id: I4936694f84e7d9bb43e26b984ff4096d5dbc2dd4
Signed-off-By: Kevin Traynor <kevin.traynor@intel.com>
Signed-off-by: Mark Kavanagh <mark.b.kavanagh@intel.com>
Reviewed-By: Stephen Finucane <stephen.finucane@intel.com>
Reviewed-By: Mark Gray <mark.d.gray@intel.com>
Reviewed-By: Kevin Traynor <kevin.traynor@intel.com>