Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 202908
b: refs/heads/master
c: 43d28b6
h: refs/heads/master
v: v3
  • Loading branch information
Daniel Turull authored and David S. Miller committed Jun 12, 2010
1 parent dc39343 commit 7571bac
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 5 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 0c78a92fbd655ab990e2799f645707f05f548e2f
refs/heads/master: 43d28b6515a6ea580a198df3e253e88236f08978
5 changes: 5 additions & 0 deletions trunk/Documentation/networking/pktgen.txt
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,8 @@ Examples:

pgset stop aborts injection. Also, ^C aborts generator.

pgset "rate 300M" set rate to 300 Mb/s
pgset "ratep 1000000" set rate to 1Mpps

Example scripts
===============
Expand Down Expand Up @@ -241,6 +243,9 @@ src6
flows
flowlen

rate
ratep

References:
ftp://robur.slu.se/pub/Linux/net-development/pktgen-testing/
ftp://robur.slu.se/pub/Linux/net-development/pktgen-testing/examples/
Expand Down
42 changes: 38 additions & 4 deletions trunk/net/core/pktgen.c
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,7 @@
#include <asm/dma.h>
#include <asm/div64.h> /* do_div */

#define VERSION "2.73"
#define VERSION "2.74"
#define IP_NAME_SZ 32
#define MAX_MPLS_LABELS 16 /* This is the max label stack depth */
#define MPLS_STACK_BOTTOM htonl(0x00000100)
Expand Down Expand Up @@ -980,6 +980,40 @@ static ssize_t pktgen_if_write(struct file *file,
(unsigned long long) pkt_dev->delay);
return count;
}
if (!strcmp(name, "rate")) {
len = num_arg(&user_buffer[i], 10, &value);
if (len < 0)
return len;

i += len;
if (!value)
return len;
pkt_dev->delay = pkt_dev->min_pkt_size*8*NSEC_PER_USEC/value;
if (debug)
printk(KERN_INFO
"pktgen: Delay set at: %llu ns\n",
pkt_dev->delay);

sprintf(pg_result, "OK: rate=%lu", value);
return count;
}
if (!strcmp(name, "ratep")) {
len = num_arg(&user_buffer[i], 10, &value);
if (len < 0)
return len;

i += len;
if (!value)
return len;
pkt_dev->delay = NSEC_PER_SEC/value;
if (debug)
printk(KERN_INFO
"pktgen: Delay set at: %llu ns\n",
pkt_dev->delay);

sprintf(pg_result, "OK: rate=%lu", value);
return count;
}
if (!strcmp(name, "udp_src_min")) {
len = num_arg(&user_buffer[i], 10, &value);
if (len < 0)
Expand Down Expand Up @@ -2142,15 +2176,15 @@ static void spin(struct pktgen_dev *pkt_dev, ktime_t spin_until)
hrtimer_init_on_stack(&t.timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS);
hrtimer_set_expires(&t.timer, spin_until);

remaining = ktime_to_us(hrtimer_expires_remaining(&t.timer));
remaining = ktime_to_ns(hrtimer_expires_remaining(&t.timer));
if (remaining <= 0) {
pkt_dev->next_tx = ktime_add_ns(spin_until, pkt_dev->delay);
return;
}

start_time = ktime_now();
if (remaining < 100)
udelay(remaining); /* really small just spin */
if (remaining < 100000)
ndelay(remaining); /* really small just spin */
else {
/* see do_nanosleep */
hrtimer_init_sleeper(&t, current);
Expand Down

0 comments on commit 7571bac

Please sign in to comment.