I have an application where a call netOpen() and netClose() multiple times within the same process (see below) to create, use, and destroy a session. The first session works fine, however after the second netOpen() call I never receive any packets from the destination device on the network. I tried various sequences with the API that seemed reasonable, but I cannot get the second netOpen() to receive any packets. It may also be the case that the transmit never happens and as a consequence nothing is received from the destination device on the network. Note that netInit() is called once at the start of the application process and netShutdown() is called when the application terminates. Are there any obvious issues with the sequences listed that would prevent a subsequent session from working in terms of transmit and receive?

netInit() // Called once at start of application
rte_log_set_global_level(…) // Set global log level
rte_eal_init(…)  // Initialize EAL
rte_eth_dev_count_avail // Determine the number of ports
rte_pktmbuf_pool_create(…)  // Create memory pool
rte_lcore_count()  // Validate cores
For each port
rte_eth_dev_reset(…)  // Reset port
rte_eth_dev_set_link_up(…)  // Bring up link on port
Wait for link to come up or timeout
rte_eth_link_get_nowait(…)
For each port
rte_eth_dev_socket_id(…)  // Validate polling threads
netOpen() // Called by the application when creating a session
rte_eth_dev_get_port_by_name(…) // Get the name of the port
rte_eth_dev_stop(…)  // Stop the port
rte_eth_dev_info_get(…)  // Get device info
rte_eth_dev_configure(…)  // Configure device
rte_eth_dev_adjust_nb_rx_tx_desc(…)  // Adjust descriptors
For each rx queue
rte_eth_rx_queue_setup(…)  // Setup receive queues
For each tx queue
rte_eth_tx_queue_setup(…)  // Setup transmit queues
rte_eth_promiscuous_enable(…)  // Enable promiscuous mode
rte_eth_macaddr_get(…)  // Store MAC address
rte_ring_create(…)  // Create receive ring
rte_eth_dev_start(…)   // Start the port
netClose()  // Called by the application when destroying a session
rte_eth_dev_stop(…)  // Stop the port
rte_ring_free(…)  // Free the receive ring
netShutdown() // Called once at termination of application
rte_eal_cleanup()  // Release all resources