On 15.06.2016 19:02, Neil Horman wrote: > On Wed, Jun 15, 2016 at 03:43:56PM +0600, Yerden Zhumabekov wrote: >> Hello everybody, >> >> DPDK already got a number of PMDs for various eth devices, it even has PMD >> emulations for backends such as pcap, sw rings etc. >> >> I've been thinking about the idea of having PMD which would generate mbufs >> on the fly in some randomized fashion. This would serve goals like, for >> example: >> >> 1) running tests for applications with network processing capabilities >> without additional software packet generators; >> 2) making performance measurements with no hw inteference; >> 3) ability to run without root privileges, --no-pci, --no-huge, for CI >> build, so on. >> >> Maybe there's no such need, and these goals may be achieved by other means >> and this idea is flawed? Any thoughts? >> > I think you already have a solution to this problem. Linux/BSD have multiple > user space packet generators that can dump thier output to a pcap format file, > and dpdk has a pcap pmd that accepts a pcap file as input to send in packets.
Things that I don't like about the idea of using PCAP PMD: 1) the need to create additional files with additional scripts and keep those with your test suite; 2) the need to rewind pcap once you played it (fixable); 3) reading packets one-by-one, file operations which may lead to perf impact; 4) low variability among source packets. Those are things which put me on idea of randomized packet generator PMD. Possible devargs could be: 1) id of a template, like "ipv4", "ipv6", "dot1q" etc; 2) size of mbuf payload; 3) array of tuples like (offset, size, value) with value being exact value or "rnd" keyword.