DPDK usage discussions
 help / color / mirror / Atom feed
From: Robert Van Rooyen <rob@summitscientificinc.com>
To: users@dpdk.org
Subject: Unable to Restart a Session
Date: Thu, 13 Oct 2022 21:52:26 -0700	[thread overview]
Message-ID: <CALFbpbbG5Lo54JrGbCr_jBWW005=S=QcECYDgEOXxoP9rtzcGg@mail.gmail.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 2363 bytes --]

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

[-- Attachment #2: Type: text/html, Size: 4473 bytes --]

                 reply	other threads:[~2022-10-14  4:52 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CALFbpbbG5Lo54JrGbCr_jBWW005=S=QcECYDgEOXxoP9rtzcGg@mail.gmail.com' \
    --to=rob@summitscientificinc.com \
    --cc=users@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).