net/nfp: add CPP bridge as service
authorAlejandro Lucero <alejandro.lucero@netronome.com>
Fri, 11 Jan 2019 13:25:53 +0000 (13:25 +0000)
committerThomas Monjalon <thomas@monjalon.net>
Mon, 14 Jan 2019 21:57:33 +0000 (22:57 +0100)
commit29a62d1476b64e63d87ea711d09be0301ade7060
tree24125d0dba071002f35d5dda945fe96bc9e148a9
parent9bd48e2d30c82501239c385929aa2d3888d9a70a
net/nfp: add CPP bridge as service

The Netronome's Network Flow Processor chip is highly programmable
with the goal of processing packets at high speed. Processing units
and other chip components are available from the host through the
PCIe CPP(Command Push Pull bus) interface. The NFP PF PMD configures
a CPP handler for setting up and working with vNICs, perform actions
like link up or down, or accessing extended stats from the MAC component.

There exist NFP host tools which access the NFP components for
programming and debugging but they require the CPP interface. When the
PMD is bound to the PF, the DPDK app owns the CPP interface, so these
host tools can not access the NFP through other means like NFP kernel
drivers.

This patch adds a CPP bridge using the rte_service API which can be
enabled by a DPDK app. Interestingly, DPDK clients like OVS will not
enable specific service cores, but this can be performed with a
secondary process specifically enabling this CPP bridge service and
therefore giving access to the NFP to those host tools.

Signed-off-by: Alejandro Lucero <alejandro.lucero@netronome.com>
drivers/net/nfp/nfp_net.c
drivers/net/nfp/nfp_net_logs.h
drivers/net/nfp/nfp_net_pmd.h