[dpdk-dev] DPDK and custom memory

2014-08-31 Thread Alex Markuze
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

2014-08-31 Thread Wiles, Roger Keith
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

2014-08-31 Thread Wiles, Roger Keith
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