Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 04 Oct 2002 21:22:50 -0700
From:      Bakul Shah <bakul@bitblocks.com>
To:        Don Bowman <don@sandvine.com>
Cc:        "'stable@freebsd.org'" <stable@FreeBSD.ORG>
Subject:   Re: packet generator, GigE linerate, precomputed packets 
Message-ID:  <200210050422.AAA28047@devonshire.cnchost.com>
In-Reply-To: Your message of "Fri, 04 Oct 2002 23:23:01 EDT." <FE045D4D9F7AED4CBFF1B3B813C8533701022BCB@mail.sandvine.com> 

next in thread | previous in thread | raw e-mail | index | archive | help
> Is anyone aware of a method to efficiently transmit preconstructed
> packets under FreeBSD? This is for use in a network product 
> test environment.

You will need something specialized to bypass the normal
ponderous flow.  One idea is to add an ioctl to copy in a
whole bunch of packets.  Add more ioctls to do a little bit
of processing and send (or resend).  This avoids most of the
user/kernel crossings.  Similarly you can add logic to
compare received packets to "expected" packets.  May be even
some mmap games to examine data from a user program.  But the
key thing is to set things up and get out of the way.

You won't achieve SmartBits speeds though.  SmartBits are
easy to use but exploiting their limited flexibility is not.
Still might be worth investigating if you can work with them.

> Should I be looking @ writing a kernel module to do this?

More like extending either if_ethersubr.c or a particular netif
driver.

> I really need to achieve line rate @ 1Gbps w/ minimal size
> packets (so a ~3.2Mpps transmit rate).

Let us see: you have about 672 ns per min size packet.
Good luck:-)

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200210050422.AAA28047>