Running it as a separate thread in your primary application will not slow it down any more than running a second process, so I'd try that first.
Both primary and secondary processes have master lcores, which is where all the initialization is done for pools and rings before spawning the packet processing threads. On Wed, Jul 1, 2020, 02:49 Pavel Vajarov <[email protected]> wrote: > Hi there, > > Basically my question is whether it's possible to handle KNI packets > (rte_kni_tx_burst, rte_kni_handle_request, rte_kni_rx_burst) in a secondary > process? > > My idea to do this is to avoid slowing down the primary process with KNI > handling. I'm thinking of using a shared memory ring buffer to send the > needed packets to the secondary process (just like in the > mulitprocess/client_server_mp example) and then the secondary process will > do the KNI processing. Is this setup possible? > > I'm asking this because I read that the rte_kni_init function that > "This function is to be executed on the MASTER lcore only" and I was > wondering will I be able to use the kni related functions from a secondary > process? > Or maybe I need to initialize the KNI in the master process and then > use rte_kni_get before start using the KNI? > > Thanks, > Pavel. >
