Basic software to help me build a network appliance
I posted this a while back but didn't get any responses. Perhaps
I didn't state my problem well enough, so I'd like to retry again w/
a better problem definition.
I'm looking for any free (or low cost) software that can help me
build my network appliance. What I need is simply:
1. Something that redirects/passes Ethernet frames as seen by the
interface into my C/C++ program. I need to set the interface to
promiscuous mode at times. These Ethernet frames should be sent
to my program before being passed to the Linux Kernel by the
network device (if possible, i.e. as early on as possible).
2. My program needs to be able to construct Ethernet frames and
send it out on an interface.
3. My system is a Pentium 4 1.8GHz with 256MB RAM and dual
Intel gigE interfaces running Linux 2.6.x (w/ just the kernel and the
min. development setup, I can put additional software in if needed).
3. Currently I'm using libpcap and libnet for the above tasks. But
these libraries performance is not high enough because I'm dropping
some frames when I put the system into promiscuous mode and
get traffic that's ony about 15Mbps. (I'd like to get as close to
Thanks in advance for your help.
If I receive any emailed answers, I will post a summary. My email
address is frank_6014 at yahoo (with the .com)
Re: Basic software to help me build a network appliance
Previously I posted asking if there is any free software available that
allows me to filter network traffic and inject new traffic on the
Ethernet frame level on my PC (network appliance) based on Linux.
Mainly, I wanted to replace the libpcap and libnet that I was using at
the time because of a lack of performance w/ those libs.
I mentioned I'd post a summary of anything I received...
Anyway, I didn't get any responses so I wrote a basic kernel driver
that uses memory mapping to transfer the Ethernet frames intercepted on
any of my computer's interfaces to my user-space programs. this module
replaced libnet and libpcap and solved my performance issue. The
driver communicates w/ user-space programs thru as char device (similar
to vtun but with flexible filtering). Also wrote a C library that
provides high level access to the driver.
If anyone's interested, I can let you use it (send email to me
frank_6014 at yahoo) since I can't find any existing softwrae and
nobody's replied to my numerous posts... so either nobody wants this or
there aren't any free ones.