DPDK usage discussions
 help / color / mirror / Atom feed
* [dpdk-users] DPDK-pktgen Flows
@ 2021-01-03 16:03 Merve Orakcı
  2021-01-04 14:21 ` Wiles, Keith
  0 siblings, 1 reply; 4+ messages in thread
From: Merve Orakcı @ 2021-01-03 16:03 UTC (permalink / raw)
  To: users

Hi everyone, I will get flows using the "range" command. So I am reviewing
documents and sample codes about this topic. I would like to ask a few
things that I cannot understand. What is the flow generation procedure of
range command? Take port 0 as an example. 128 different ip addresses and
2000 different port numbers are used for source and destination. As far as
I understand, these lines are repeated for each package.But how is the flow
creation procedure?
My opinions:
First: Is it a random port number and ip address for each pass over the
file? So total 128 * 2000= 256000 flows were created here.
Second: when we think of increment operator, generated packets:
1. packet:  dst_ip: 192.168.1.1  ,  src_ip:  192.168.0.1 , dst_port: 2000 ,
src_port: 5000
2. packet   dst_ip: 192.168.1.2  ,  src_ip:  192.168.0.2 , dst_port: 2001 ,
src_port: 5001
................................
128. packet:   dst_ip: 192.168.1.128  ,  src_ip:  192.168.0.128 , dst_port:
2128 , src_port: 5128
129.packet      dst_ip: 192.168.1.1  ,  src_ip:  192.168.0.1 , dst_port:
2129, src_port: 5129  or (???)  dst_ip: 192.168.1.128  ,  src_ip:
192.168.0.128 , dst_port: 2129, src_port: 5129

then it will end when source and destination port numbers reach their
highest value..

........
Can you help with this issue? I want to measure the performance of the
system that I have created in different flow numbers with the pktgen tool.
For this reason, the number of flows is important for me. Thanks for your
help.

pktgen.range.dst_mac("0", "start", "3c:fd:fe:9c:5c:b8");

pktgen.range.src_mac("0", "start", "3c:fd:fe:9c:5c:d8");

pktgen.range.dst_ip("0", "start", "192.168.1.1");

pktgen.range.dst_ip("0", "inc", "0.0.0.1");

pktgen.range.dst_ip("0", "min", "192.168.1.1");

pktgen.range.dst_ip("0", "max", "192.168.1.128");

pktgen.range.src_ip("0", "start", "192.168.0.1");

pktgen.range.src_ip("0", "inc", "0.0.0.1");

pktgen.range.src_ip("0", "min", "192.168.0.1");


pktgen.range.src_ip("0", "max", "192.168.0.128");

pktgen.set_proto("0", "udp");

pktgen.range.dst_port("0", "start", 2000);

pktgen.range.dst_port("0", "inc", 1);

pktgen.range.dst_port("0", "min", 2000);

pktgen.range.dst_port("0", "max", 4000);

pktgen.range.src_port("0", "start", 5000);

pktgen.range.src_port("0", "inc", 1);

pktgen.range.src_port("0", "min", 5000);

pktgen.range.src_port("0", "max", 7000);

pktgen.range.pkt_size("0", "start", 64);

pktgen.range.pkt_size("0", "inc", 0);

pktgen.range.pkt_size("0", "min", 64);

pktgen.range.pkt_size("0", "max", 256);

-- Set up second port

pktgen.range.dst_mac("1", "start", "3c:fd:fe:9c:5c:d8");

pktgen.range.src_mac("1", "start", "3c:fd:fe:9c:5c:b8");


pktgen.range.dst_ip("1", "start", "192.168.0.1");

pktgen.range.dst_ip("1", "inc", "0.0.0.1");

pktgen.range.dst_ip("1", "min", "192.168.0.1");

pktgen.range.dst_ip("1", "max", "192.168.0.128");

pktgen.range.src_ip("1", "start", "192.168.1.1");

pktgen.range.src_ip("1", "inc", "0.0.0.1");

pktgen.range.src_ip("1", "min", "192.168.1.1");

pktgen.range.src_ip("1", "max", "192.168.1.128");

pktgen.set_proto("all", "udp");

pktgen.range.dst_port("1", "start", 5000);

pktgen.range.dst_port("1", "inc", 1);

pktgen.range.dst_port("1", "min", 5000);

pktgen.range.dst_port("1", "max", 7000);

pktgen.range.src_port("1", "start", 2000);

pktgen.range.src_port("1", "inc", 1);

pktgen.range.src_port("1", "min", 2000);

pktgen.range.src_port("1", "max", 4000);

pktgen.range.pkt_size("1", "start", 64);

pktgen.range.pkt_size("1", "inc", 0);

pktgen.range.pkt_size("1", "min", 64);

pktgen.range.pkt_size("1", "max", 256);

pktgen.set_range("all", "on");

-- 
*Merve Orakcı*
Research Asistant
Gazi University - Institute of Informatics
Computer Forensics
Phone :+90 0312 202 3814

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [dpdk-users] DPDK-pktgen Flows
  2021-01-03 16:03 [dpdk-users] DPDK-pktgen Flows Merve Orakcı
@ 2021-01-04 14:21 ` Wiles, Keith
  0 siblings, 0 replies; 4+ messages in thread
From: Wiles, Keith @ 2021-01-04 14:21 UTC (permalink / raw)
  To: Merve Orakcı; +Cc: users



> On Jan 3, 2021, at 10:03 AM, Merve Orakcı <merveorakci58@gmail.com> wrote:
> 
> Hi everyone, I will get flows using the "range" command. So I am reviewing
> documents and sample codes about this topic. I would like to ask a few
> things that I cannot understand. What is the flow generation procedure of
> range command? Take port 0 as an example. 128 different ip addresses and
> 2000 different port numbers are used for source and destination. As far as
> I understand, these lines are repeated for each package.But how is the flow
> creation procedure?
> My opinions:
> First: Is it a random port number and ip address for each pass over the
> file? So total 128 * 2000= 256000 flows were created here.
> Second: when we think of increment operator, generated packets:
> 1. packet:  dst_ip: 192.168.1.1  ,  src_ip:  192.168.0.1 , dst_port: 2000 ,
> src_port: 5000
> 2. packet   dst_ip: 192.168.1.2  ,  src_ip:  192.168.0.2 , dst_port: 2001 ,
> src_port: 5001
> ................................
> 128. packet:   dst_ip: 192.168.1.128  ,  src_ip:  192.168.0.128 , dst_port:
> 2128 , src_port: 5128
> 129.packet      dst_ip: 192.168.1.1  ,  src_ip:  192.168.0.1 , dst_port:
> 2129, src_port: 5129  or (???)  dst_ip: 192.168.1.128  ,  src_ip:
> 192.168.0.128 , dst_port: 2129, src_port: 5129
> 
> then it will end when source and destination port numbers reach their
> highest value..
> 

The flow generation in Pktgen is pretty simple. Every time a packet is sent it fields you have setup are updated. This means if you have four fields setup to increment then they are changed for each packet sent. They are not random values as you can tell below.

> ........
> Can you help with this issue? I want to measure the performance of the
> system that I have created in different flow numbers with the pktgen tool.
> For this reason, the number of flows is important for me. Thanks for your
> help.
> 
> pktgen.range.dst_mac("0", "start", "3c:fd:fe:9c:5c:b8");
> 
> pktgen.range.src_mac("0", "start", "3c:fd:fe:9c:5c:d8");
> 
> pktgen.range.dst_ip("0", "start", "192.168.1.1");
> 
> pktgen.range.dst_ip("0", "inc", "0.0.0.1");
> 
> pktgen.range.dst_ip("0", "min", "192.168.1.1");
> 
> pktgen.range.dst_ip("0", "max", "192.168.1.128");
> 
> pktgen.range.src_ip("0", "start", "192.168.0.1");
> 
> pktgen.range.src_ip("0", "inc", "0.0.0.1");
> 
> pktgen.range.src_ip("0", "min", "192.168.0.1");
> 
> 
> pktgen.range.src_ip("0", "max", "192.168.0.128");
> 
> pktgen.set_proto("0", "udp");
> 
> pktgen.range.dst_port("0", "start", 2000);
> 
> pktgen.range.dst_port("0", "inc", 1);
> 
> pktgen.range.dst_port("0", "min", 2000);
> 
> pktgen.range.dst_port("0", "max", 4000);
> 
> pktgen.range.src_port("0", "start", 5000);
> 
> pktgen.range.src_port("0", "inc", 1);
> 
> pktgen.range.src_port("0", "min", 5000);
> 
> pktgen.range.src_port("0", "max", 7000);
> 
> pktgen.range.pkt_size("0", "start", 64);
> 
> pktgen.range.pkt_size("0", "inc", 0);
> 
> pktgen.range.pkt_size("0", "min", 64);
> 
> pktgen.range.pkt_size("0", "max", 256);
> 
> -- Set up second port
> 
> pktgen.range.dst_mac("1", "start", "3c:fd:fe:9c:5c:d8");
> 
> pktgen.range.src_mac("1", "start", "3c:fd:fe:9c:5c:b8");
> 
> 
> pktgen.range.dst_ip("1", "start", "192.168.0.1");
> 
> pktgen.range.dst_ip("1", "inc", "0.0.0.1");
> 
> pktgen.range.dst_ip("1", "min", "192.168.0.1");
> 
> pktgen.range.dst_ip("1", "max", "192.168.0.128");
> 
> pktgen.range.src_ip("1", "start", "192.168.1.1");
> 
> pktgen.range.src_ip("1", "inc", "0.0.0.1");
> 
> pktgen.range.src_ip("1", "min", "192.168.1.1");
> 
> pktgen.range.src_ip("1", "max", "192.168.1.128");
> 
> pktgen.set_proto("all", "udp");
> 
> pktgen.range.dst_port("1", "start", 5000);
> 
> pktgen.range.dst_port("1", "inc", 1);
> 
> pktgen.range.dst_port("1", "min", 5000);
> 
> pktgen.range.dst_port("1", "max", 7000);
> 
> pktgen.range.src_port("1", "start", 2000);
> 
> pktgen.range.src_port("1", "inc", 1);
> 
> pktgen.range.src_port("1", "min", 2000);
> 
> pktgen.range.src_port("1", "max", 4000);
> 
> pktgen.range.pkt_size("1", "start", 64);
> 
> pktgen.range.pkt_size("1", "inc", 0);
> 
> pktgen.range.pkt_size("1", "min", 64);
> 
> pktgen.range.pkt_size("1", "max", 256);
> 
> pktgen.set_range("all", "on");
> 
> -- 
> *Merve Orakcı*
> Research Asistant
> Gazi University - Institute of Informatics
> Computer Forensics
> Phone :+90 0312 202 3814


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [dpdk-users] DPDK-pktgen Flows
  2020-12-21 20:11 Merve Orakcı
@ 2020-12-22 16:04 ` Wiles, Keith
  0 siblings, 0 replies; 4+ messages in thread
From: Wiles, Keith @ 2020-12-22 16:04 UTC (permalink / raw)
  To: Merve Orakcı, users



From: users <users-bounces@dpdk.org>
Date: Monday, December 21, 2020 at 2:12 PM
To: users <users@dpdk.org>
Subject: [dpdk-users] DPDK-pktgen Flows
Hi everyone, I want to perform tests by creating different numbers of
flows. Are
there any commands that I can see the number of flows I have created? Also,
where can I find flow samples created in different numbers? I could get
very little information in the document. For example how do I create 1000
or 10000 flows?

Look into the range command in Pktgen ‘help range’ on the command line or TRex from Cisco could also be an option.

The range command allows you to adjust fields in the packets for starting/ending and increment values. The ‘page range’ allow you the configuration per port.

Switch between ports with ‘port X’ command to see other port configs while in the ‘page range’ screen.
Make sure you use the ‘enable <portlist> range’ command to enable range sending on a port.

One of the limitation for range is it will slow down the traffic as Pktgen needs to touch every packet.


--
*Merve Orakcı*
Research Asistant
Gazi University - Institute of Informatics
Computer Forensics
Phone :+90 0312 202 3814

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [dpdk-users] DPDK-pktgen Flows
@ 2020-12-21 20:11 Merve Orakcı
  2020-12-22 16:04 ` Wiles, Keith
  0 siblings, 1 reply; 4+ messages in thread
From: Merve Orakcı @ 2020-12-21 20:11 UTC (permalink / raw)
  To: users

Hi everyone, I want to perform tests by creating different numbers of
flows. Are
there any commands that I can see the number of flows I have created? Also,
where can I find flow samples created in different numbers? I could get
very little information in the document. For example how do I create 1000
or 10000 flows?

-- 
*Merve Orakcı*
Research Asistant
Gazi University - Institute of Informatics
Computer Forensics
Phone :+90 0312 202 3814

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-01-04 14:21 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-03 16:03 [dpdk-users] DPDK-pktgen Flows Merve Orakcı
2021-01-04 14:21 ` Wiles, Keith
  -- strict thread matches above, loose matches on Subject: below --
2020-12-21 20:11 Merve Orakcı
2020-12-22 16:04 ` Wiles, Keith

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).