Thanks Tim for the interesting inputs. Some of them may require a dedicated thread to continue the discussion based on some preliminary specifications or drafts.
2016-10-10 16:13, O'Driscoll, Tim: > Elastic Flow Distributor: The Elastic Flow Distributor (EFD) is a flow-based > load balancing library which scales linearly for both lookup and insert with > the number of threads or cores. EFD lookup uses a "perfect hashing" scheme > where only the information needed to compute a key's value (and not the key > itself) is stored in the lookup table, thus reducing CPU cache storage > requirements. What is the scope of this library? Just apply rte_hash to a flow table? Or is it also sending the packets in some queues? Does it depend of librte_distributor? > Extended Stats (Latency and Bit Rate Statistics): Enhance the Extended NIC > Stats (Xstats) implementation to support the collection and reporting of > latency and bit rate measurements. Latency statistics will include min, max > and average latency, and jitter. Bit rate statistics will include peak and > average bit rate aggregated over a user-defined time period. This will be > implemented for IXGBE and I40E. Are they retrieved from hardware or just computed in software? Could we have some drivers hook to compute them in a generic layer? > Run-Time Configuration of Packet Type (PTYPE) for I40E: At the moment all > packet types in DPDK are statically defined. This makes impossible to add new > values without first defining them statically and then recompiling DPDK. The > ability to configure packet types at run time will be added for I40E. The packet types are part of the API. Although not yet convinced by the packet types, I do not understand how to benefit from some run-time defined packet types. > Packet Distributor Enhancements: Enhancements will be made to the Packet > Distributor library to improve performance: > 1. Introduce burst functionality to allow batches of packets to be sent to > workers. > 2. Improve the performance of the flow/core affinity through the use of > SSE/AVX instructions. The packet distributor looks more and more like a DPDK application at the same level of BESS, VPP, OVS, etc. > Add MACsec for IXGBE: MACsec support will be added for IXGBE. Ethdev API > primitives will be added to create/delete/enable/disable SC/SA, Next_PN etc. > similar to those used in Linux for the macsec_ops. Sample apps (l3fwd, > testpmd, etc.) will be updated to support MACsec for the IXGBE. How the ethdev interface and the cryptodev capabilities will be linked for MACsec? [...] > Create Crypto Performance Test App: A new app, similar to testpmd, will be > created to allow crypto performance to be tested using any crypto PMD and any > supported crypto algorithm. Good idea :) When I read "testpmd", I tend to think that it could test any PMD, including crypto. Are you saying that we should read dpdk-netdev-test? And you would introduce dpdk-cryptodev-test? [...] > Optimize Vhost-User Performance for Large Packets: A new memory copy function > optimized for core-to-core memory copy which will be added. This will be > beneficial for virtualization cases involving large packets, but it can be > used for other core-to-core cases as well. Is it an enhancement of rte_memcpy or something else? > Support New Device Types in Vhost-User: Support will be added to vhost-user > for new device types including vhost-scsi and vhost-blk. Great! Is it only related to networking or should we expect some storage-related code or drivers to come up? > Interrupt Mode Support in Virtio PMD: Support for interrupt mode will be > added to the virtio PMD. I guess you mean Rx interrupt in virtio PMD to avoid 100% polling in the VM? > Virtio-User as an Alternative Exception Path: Investigate the use of > virtio-user and vhost-net as an alternative exception path to KNI that does > not require out of tree drivers. This work is still at an experimental stage, > so it may not be included in 17.02. Interesting. Please share more details of the design you are thinking of.