[spp] SPP PCIe hotplug changes for SPP

Choi, Sy Jong sy.jong.choi at intel.com
Mon Feb 20 09:37:00 CET 2017


Hi Everyone,

New Architecture for SPP to support PCIe hotplug.

Based on DPDK testpmd here are the steps you need to perform PCIe hotplug
1) Detaching : port stop, port close and then port detach
2) Attaching : port attach and then port start

In order to support PCI hotplug, we need to follow DPDK. And here are a few limitation with SPP primary secondary configuration:-

Limitation 1:-
Port information created by primary, hotplug changes port information. So attach and detaching at primary, will not update port information on secondary process.
- Now primary will attaching and detaching the port, because primary owns the port 
- We need to put in place some rediscovery in secondary processes.

Limitation 2:
To update the port information on the secondary process, it require to us to reinit dpdk eal, which dpdk eal init can only be executed once.
- Multi thread will not solve the problem.
- We will use fork, so we separated the communication part and the datapath part.

The new spp primary will attach/detach port, secondary will reinit to rediscover port changes.

    +----+----------+-------------------------------------------------+   
    |    | SPP NFV  |                                                 |   
    |    +----------+   +--------------+   fork    +--------------+   |   
    |                   | Parent       |           | Child        |   |   
    |                   | Comm - spp.py|           | dpdk         |   | 
    |                   | Commands     |           | init         |   |   
    |                   | share mem to |           | fwd          |   |
    |                   | control child|           |              |   |
    +-------------------+--------------+-----------+--------------+---+

Code changes will be posted in the following emails.




Regards,
Choi, Sy Jong
Platform Application Engineer



More information about the spp mailing list