[05/10] net/nfp: add a dispatch layer for Tx function of ctrl VNIC
Checks
Commit Message
The dispatch layer aims to choose the corresponding Tx function
within NFD3 version and NFDk version for ctrl VNIC.
Signed-off-by: Chaoyong He <chaoyong.he@corigine.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund@corigine.com>
---
drivers/net/nfp/flower/nfp_flower.c | 1 +
drivers/net/nfp/flower/nfp_flower.h | 3 +++
drivers/net/nfp/flower/nfp_flower_ctrl.c | 21 +++++++++++++++++++--
drivers/net/nfp/flower/nfp_flower_ctrl.h | 1 +
4 files changed, 24 insertions(+), 2 deletions(-)
@@ -1086,6 +1086,7 @@ static void
nfp_flower_nfd_func_register(struct nfp_app_fw_flower *app_fw_flower)
{
nfp_flower_pkt_add_metadata_register(app_fw_flower);
+ nfp_flower_ctrl_vnic_xmit_register(app_fw_flower);
}
int
@@ -41,6 +41,9 @@ struct nfp_flower_nfd_func {
/** Function used to add metadata into pkt. */
uint32_t (*pkt_add_metadata_t)(struct rte_mbuf *mbuf,
uint32_t port_id);
+ /** Function used to xmit pkt through ctrl vnic. */
+ uint16_t (*ctrl_vnic_xmit_t)(struct nfp_app_fw_flower *app_fw_flower,
+ struct rte_mbuf *mbuf);
};
/* The flower application's private structure */
@@ -154,8 +154,8 @@ nfp_flower_ctrl_vnic_recv(void *rx_queue,
return avail;
}
-uint16_t
-nfp_flower_ctrl_vnic_xmit(struct nfp_app_fw_flower *app_fw_flower,
+static uint16_t
+nfp_flower_ctrl_vnic_nfd3_xmit(struct nfp_app_fw_flower *app_fw_flower,
struct rte_mbuf *mbuf)
{
uint16_t cnt = 0;
@@ -224,6 +224,23 @@ nfp_flower_ctrl_vnic_xmit(struct nfp_app_fw_flower *app_fw_flower,
return cnt;
}
+void
+nfp_flower_ctrl_vnic_xmit_register(struct nfp_app_fw_flower *app_fw_flower)
+{
+ struct nfp_flower_nfd_func *nfd_func;
+
+ nfd_func = &app_fw_flower->nfd_func;
+
+ nfd_func->ctrl_vnic_xmit_t = nfp_flower_ctrl_vnic_nfd3_xmit;
+}
+
+uint16_t
+nfp_flower_ctrl_vnic_xmit(struct nfp_app_fw_flower *app_fw_flower,
+ struct rte_mbuf *mbuf)
+{
+ return app_fw_flower->nfd_func.ctrl_vnic_xmit_t(app_fw_flower, mbuf);
+}
+
static void
nfp_flower_cmsg_rx_stats(struct nfp_flow_priv *flow_priv,
struct rte_mbuf *mbuf)
@@ -9,5 +9,6 @@
void nfp_flower_ctrl_vnic_poll(struct nfp_app_fw_flower *app_fw_flower);
uint16_t nfp_flower_ctrl_vnic_xmit(struct nfp_app_fw_flower *app_fw_flower,
struct rte_mbuf *mbuf);
+void nfp_flower_ctrl_vnic_xmit_register(struct nfp_app_fw_flower *app_fw_flower);
#endif /* _NFP_FLOWER_CTRL_H_ */