E-SNIFF: The Embedded Ethernet Packet Sniffer
HOME

LOG

HARDWARE

SOFTWARE

IMAGES

DOCUMENTS

LINKS

PROJECT LOG

04.29.2007 - Today I built packet logging routines using the altera HAL libraries for CFI flash. The log can be cleared, viewed or turned on/off using simple keyboard commands. I had to make a rather large RAM buffer which I fill before writing to flash. This is because the altera HAL library erases every sector it writes to before actually writing data to it. The way it works now is it writes all log data to a 64kB biffer, then writes a whole sector to flash at once. This creates a nasty half second delay. If anyone knows a better way to do this, email me at alex.hoyland@gmail.com please!!!!

The software is now complete except for the remaining packet dissectors and flashing the green leds. I also need to correct a plethora of minor hardware problems. Hopefully I can do all this in a week!

04.28.2007 - Implemented filtering and filter commands today so that packets can be filtered by src/dest ip/mac/port and by protocol. Will begin work on the packet log tomorrow.

04.22.2007 - I used some simple if statements to implement verbosity control today. Verbosity now works for all completed packet dissectors and can be set to none, low, medium or high

04.15.2007 - I am sorry to say I've been neglecting the website somewhat... The project is about 80% completed at the time of this first entry.

Hardware Progress: A Nios II soft CPU has been implemented with support for CFI and EPCS flash, SDRAM, a 10kB on-chip memory, PIOs for keyboard, VGA, button, switch and LED interaction, a 1ms interrupt timer, a 1s interrupt timer, and a Nios II/F core. The CPU is clocked at 100 MHz using an Altera PLL megawizard. The keyboard receiver has been implemented, and has been set up to correct alignment errors automatically when a misformed PS/2 message is received. The display controller interacts correctly with the keyboard and CPU and displays 74 lines of 54 characters each, with a hardware line return. At this time, the hardware is complete except for two known issues: the keyboard occasionally misses or sends incorrect characters to the display, and the LCD can only display text on the top line due a problem with the bidirectional ports. These problems are minor and will be deferred until the software is completed.

Software Progress: The drivers for the ethernet, vga, leds, LCD and keyboard are written. A system run timer has been implemented for timestamping purposes, which consists of a 1ms interrupt that updates the status bar. A CPU meter has also been implemented, which lights the red LEDs on the DE2 board to indicate CPU usage. The ethernet interrupt handler has been written, and basic packet dissection has been implemented for Ethernet, IP, TCP, UDP and ARP. A keyboard interrupt handler has been written, and command processing routines have been written with complete help documentation for every command. Filtering and verbosity control are unimplmented, as well as packet logging and dissection of most of the application-layer protocols I intend to dissect.