nsh: datapath support for network service headers
nsh: userland support for network service headers

NSH service path (nsp) can be set/unset while creating the port
as well nsp can be matched on incoming packets.
nsh: support for setting nsp, action set_nsp=<value>

Support for setting nsp using an action namely set_nsp.
It works similar to set_tunnel in vxlan/gre tunnel and
can be used to set the outgoing nsh service path id.
Also NXM_NX_NSP is defined which enables matching NSPs.
nsh: datapath support for network service index

Here, datapath support for setting nsh service index (nsi) is added.
nsi can now be set on outgoing packet depending on port settings or
set_nsi action.
nsh: userland support for network service index

Support for nsh service index (nsi) is added, mainly incoming
nsi in a flow can be matched and appropriate action can be
taken on the flow based on it.
nsh: support for setting nsi, action set_nsi=<value>

Support for setting nsi using an action namely set_nsi.
It works similar to set_tunnel in vxlan/gre tunnel and
can be used to set the outgoing nsh service index (nsi).
Also NXM_NX_NSI is defined here which enables matching
NSIs.
nsh: support for setting nsh contexts
nsh: support nsp/nsi in test cases.