net/ark: support multi-port pkt generation
A message that is not in the archive (sent off-list or not yet received): [email protected]
PATCH v2 1/1 net/ark: support multi-port pkt generation
Added support for packet generation in multi-port Arkville implementations. The packet generator is a singleton within the device but is capable of generating packets for any port within one device.
Signed-off-by John Miller <[email protected]>
---
v2:
- Incorporated changes from Ferruh's comments.
--- drivers/net/ark/ark_ethdev.c | 14 +++++++++++--- drivers/net/ark/ark_global.h | 1 + 2 files changed, 12 insertions(+), 3 deletions(-)
drivers/net/ark/ark_ethdev.c +11 -3
@@ -493,6 +493,7 @@ ark_config_device(struct rte_eth_dev *dev)* known state */ ark->start_pg =0 ; + ark->pg_running =0 ; ark->pg =ark_pktgen_init (ark->pktgen.v,0 ,1 );if (ark->pg ==NULL )return -1 ;
@@ -607,18 +608,23 @@ eth_ark_dev_start(struct rte_eth_dev *dev)if (ark->start_pg)ark_pktchkr_run (ark->pc); -if (ark->start_pg && (dev->data->port_id ==0 )) { +if (ark->start_pg && !ark->pg_running) {pthread_t thread;/* Delay packet generatpr start allow the hardware to be ready * This is only used for sanity checking with internal generator */ -if (rte_ctrl_thread_create (&thread,"ark-delay-pg" ,NULL , +char tname[32 ]; +snprintf (tname,sizeof (tname),"ark-delay-pg-%d" , + dev->data->port_id); + +if (rte_ctrl_thread_create (&thread, tname,NULL , ark_pktgen_delay_start, ark->pg)) {ARK_PMD_LOG (ERR ,"Could not create pktgen " "starter thread\n" );return -1 ; } + ark->pg_running =1 ; }if (ark->user_ext.dev_start)
@@ -647,8 +653,10 @@ eth_ark_dev_stop(struct rte_eth_dev *dev) ark->user_data[dev->data->port_id]);/* Stop the packet generator */ -if (ark->start_pg) +if (ark->start_pg && ark->pg_running) {ark_pktgen_pause (ark->pg); + ark->pg_running =0 ; + } dev->rx_pkt_burst = rte_eth_pkt_burst_dummy; dev->tx_pkt_burst = rte_eth_pkt_burst_dummy;
drivers/net/ark/ark_global.h +1 -0
@@ -107,6 +107,7 @@ struct ark_adapter {/* Pointers to packet generator and checker */ int start_pg; +uint16_t pg_running;ark_pkt_gen_t pg;ark_pkt_chkr_t pc;ark_pkt_dir_t pd;
Signature · 1 line
2.25.1
Ferruh Yigit
AppliedQuoted 7 lines · John Miller
Added support for packet generation in multi-port Arkville implementations. The packet generator is a singleton within the device but is capable of generating packets for any port within one device.
Signed-off-by John Miller<[email protected]>
Applied to dpdk-next-net/main, thanks.