[dpdk-dev] DPDK and custom memory
Artur, I don't have the details of what you are trying to achieve, but it sounds like something that is covered by IOMMU, SW or HW. The IOMMU creates an iova (I/O Virtual address) the nic can access the range is controlled with flags passed to the dma_map functions. So I understand your question this way, How does the DPDK work with IOMMU enabled system and can you influence the mapping? On Sat, Aug 30, 2014 at 4:03 PM, Thomas Monjalon wrote: > Hello, > > 2014-08-29 18:40, Saygin, Artur: >> Imagine a PMD for an FPGA-based NIC that is limited to accessing certain >> memory regions . > > Does it mean Intel is making an FPGA-based NIC? > >> Is there a way to make DPDK use that exact memory? > > Maybe I don't understand the question well, because it doesn't seem really > different of what other PMDs do. > Assuming your NIC is PCI, you can access it via uio (igb_uio) or VFIO. > >> Perhaps this is more of a hugetlbfs question than DPDK but I thought I'd >> start here. > > It's a pleasure to receive new drivers. > Welcome here :) > > -- > Thomas
[dpdk-dev] Pktgen-DPDK now located on dpdk.org
Hi Everyone, I now have Pktgen-DPDK a traffic generator application using DPDK. You can get the code from here: http://dpdk.org/browse/apps/pktgen-dpdk/ There is a README.md file that should explain how it is built, but I could have missed something as I was including DPDK with the Pktgen code as an example. Now I am trying to be more generic and not include DPDK or modify DPDK in anyway. The license support is reasonable, please read it to make sure you agree. Pktgen-DPDK is a ASCII based application using a few simple VT100 cursor commands for generating traffic on 10G interfaces at 64Byte wire rate speeds. I just added some color support to Pktgen and it may still contain some bugs, but it does add a bit of color. BTW, MicroSoft Hyperterm is not fully VT100 compatible and should be avoided. I normally access the Ubuntu machine using x2go client (x2go.org) or xterm(via ssh or telnet) from my MacBook Pro. You can use x2go client on Windows to access your Linux machine. Should run on any Linux machine that supports DPDK and has the correct NICs. Here is the basic screen layer using a 132x44 size xterm window. You need to make sure you view the screen with a fixed width font and some email systems do not show the emails in fixed width (Mac Mail). I just show two ports in this example, but you can have any number of ports (4-6 is normal). The number of ports to be displayed at a give time is configurable, just type ?help? at the command line. If you have more ports then displayed you can page to the different port groups. --- - Ports 0-3 of 6 ** Main Page ** Copyright (c) <2010-2014>, Wind River Systems, Inc. Powered by Intel? DPDK Flags:Port: P-:0 P-:1 Link State : ---TotalRate--- Pkts/s Rx : 0 0 0 Tx : 0 0 0 MBits/s Rx/Tx :0/00/0 0/0 Broadcast : 0 0 Multicast : 0 0 64 Bytes : 0 0 65-127: 0 0 128-255 : 0 0 256-511 : 0 0 512-1023 : 0 0 1024-1518 : 0 0 Runts/Jumbos:0/00/0 Errors Rx/Tx:0/00/0 Total Rx Pkts : 0 0 Tx Pkts : 0 0 Rx MBs: 0 0 Tx MBs: 0 0 ARP/ICMP Pkts :0/00/0 : Tx Count/% Rate : Forever/100% Forever/100% PktSize/Tx Burst: 64/16 64/16 Src/Dest Port : 1234/5678 1234/5678 Pkt Type:VLAN ID: IPv4/TCP:0001 IPv4/TCP:0001 Dst IP Address :192.168.1.1192.168.0.1 Src IP Address : 192.168.0.1/24 192.168.1.1/24 Dst MAC Address : 90:e2:ba:5a:f7:91 90:e2:ba:5a:f7:90 Src MAC Address : 90:e2:ba:5a:f7:90 90:e2:ba:5a:f7:91 -- Pktgen Ver:2.7.5(DPDK-1.7.0) - Pktgen> Also note you can use Lua to run scripts or command files with Pktgen. Please send any bugs, patches or suggestions to me. Please add ?[Pktgen]? to the subject line. Thanks ++Keith Keith Wiles, Principal Technologist with CTO office, Wind River mobile 972-213-5533
[dpdk-dev] More information on Pktgen
Here is some more information about Pktgen that others may want to know: At this point Pktgen is just a simple L2/L3 (UDP/TCP/IPv4 with some IPv6 support) traffic generator and does not have a network or any kind of state keeping. Mostly useful for sending traffic for performance testing and some other packet type testing say DPI. To maintain high performance not much checking is done on the receive side today, but hopefully in the future. It does support a simple ARP detection and reply Think of this as a poor man?s traffic generator as most of us can not buy a Spirent machine or have access to that machine all of the time. With a machine cost of round $2500 more or less depending on the port types and count you can have fast traffic generator to for each developer. I developed Pktgen for performance testing as I did not have direct access to the big mainframe traffic generator with all of the bells and whistle :-) Pktgen is not a replacement for the big iron traffic generator, but maybe some day :-) Hopefully developers find it useful for day to day development. I have a Java GUI frontend for Pktgen, which can run on the machine or from another machine, but I have not had time to finish it. The Ostinato https://code.google.com/p/ostinato/ maybe more what everyone wants, but when I did Pktgen they were not using DPDK at the time. My Java GUI fronted was just to display the ASCII screen and support the commands in a more GUI format with some simple graphs and buttons. To create something like the Ostinatio I would have to quite my day job and that is not a good thing :-) You can also use the machine at the same time without having to have two machines. I do all of my testing and debugging and development on a single machine. You can also have multiple Pktgen?s running on the same machine if you configure them to use different ports. You application could use a few ports and Pktgen could use a few ports while do development and testing on the same machine. Pktgen has a number of methods to send packets PCAP and single packet at wire rate on each port. It also has range, sequence and random packet sending support. Range allows you to define the range of packets types, sizes, address, ? and other fields in the packet. The sequence allows you to configure up to 16 packets per port to send in a round robin format. The random send allows for sending packets with random values in the packets with a given location. It also supports sending VLAN packets and some support for GRE packets. I hope that helps some. ++Keith Keith Wiles, Principal Technologist with CTO office, Wind River mobile 972-213-5533