Add support for arbitrary port names

Previously, the multiple port types provided by DPDK vSwitch, such
as KNI and IVSHM, were distinguished by using names corresponding to
'ovs_dpdk_xx', where 'xx' indicated an index of vports and hence a
corresponding type. This did not allow for arbitrary port names.

This patch seeks to remedy this. Port names can now be given any name
abiding to the OpenFlow/Open vSwitch specfications. Ports are instead
distinguished by their netdev type. For example:

  ./ovs-vsctl add-port br0 p0rtx -- set Interface p0rtx type=dpdkkni

Changes
=======

netdev:

- Add 'dpdkkni', 'dpdkphy', 'dpdkveth' and 'dpdkclient' netdev
  structs.
- Remove now-obsolete 'dpdk' netdev struct.

datapath/dpif:

- Add 'port_name' and 'port_type' members to the 'vport_info' struct.
  This will allow the datapath to differentiate between different
  ports using something other than 'port_no'.
- Replace 'in_use' flag in 'vport_info' with an 'enabled' flag, to
  better explain it's purpose. Similarly, update related functions.
- Update checks in multiple vport functions to take advantage of both
  'vport_exists' and 'vport_is_enabled' functions. This fixes an
  issue whereby 'get' only checked that a vport existed - not that it
  was "enabled" or "visible to the dpif".
- Add helper functions to convert netdev port and vport types, in
  both the datapath and the dpif.
- Add helper functions to convert OD port types to OF port types, in
  both the datapath and the dpif.

datapath:

- Add function to find next available port number for a requested
  port of given type.
- Add function to check if a 'vportid' is valid for vport of given
  'type'.

dpif:

- Add multiple setter/getter function for vport parameters.
- Split 'query_by_number' and 'query_by_name' into seperate functions,
  due to now-differing operation of each.

ovs-vsctl:

- Introduce an additional 'option' parameter to ovs-vsctl to specifiy
  the desired physical port ID, and a new netdev structure,
  'netdev_dpdk_phyport', to bind said port ID to a netdev.

tests:

- The "port management" feature moves much of the error checking code
  for dpif port management command (add/remove/dump etc.) to the
  datapath. This requires communication between the dpif and datapath
  when mananaging ports. The unit tests did not take this into account.
  Resolve this.

  Additionally, the 'flow_put' dpif test assumed an incorrect return
  value, causing part of the code to be missed. Resolve this.

- Add functions to generate "replies" from the datapath to 'port_xxx'
  requests
- Update 'port_add', 'port_del', 'port_query_by_*' and 'port_dump_*'
  dpif unit tests
- Fix 'flow_put' dpif unit tests
- Minor formatting

Signed-off-by: Mark Kavanagh <mark.b.kavanagh@intel.com>
Signed-off-by: Stephen Finucane <stephen.finucane@intel.com>
Signed-off-by: Meghan Halton <meghan.halton@intel.com>
Signed-off-by: Eimear Morrissey <eimear.morrissey@intel.com>

Change-Id: I31ba1b37d76d8080b9b2bb87d1df6ff1bf5ee29e
Reviewed-by: Mark D. Gray <mark.d.gray@intel.com>
openvswitch: remove DPDK compilation warn. messages

Remove compilation warn. message in DPDK when using GCC's flag
-Wbad-function-cast.

Change-Id: I01a107a8f68277eca9dcaa2bc6f68ee9c871cb18
Reviewed-by: Mark D. Gray <mark.d.gray@intel.com>
Reviewed-by: Meghan Halton <meghan.halton@intel.com>
Signed-off-by: Nicolas Pernas Maradei <nicolasx.pernas.maradei@intel.com>
Docs: Update OFTest baseline version

Update the OFTest commit ID against which Intel(R) DPDK vSwitch is
validated.

Change-Id: I7e63d78e47f7fb3939f77a11013d5ffee3fd0100
Signed-off-by: Mark Kavanagh <mark.b.kavanagh@intel.com>

Reviewed-By: mark.d.gray@intel.com
Reviewed-By: meghan.halton@intel.com