nibbles - UDP print listener


What is nibbles

Nibbles is UDP print listening/filtering/logging utility with ability to generate and send custom ethernet frames. UDP prints are ascii characters sent in UDP packets. This technique is commonly used when generating logs from embedded devices with no screen attached. UDP is a lightweight networking protocol and processing UDP causes only a little overhead thus making it excellent choice for logging protocol. Penalty from small overhead is that UDP does not guarantee delivery - Eg. if for example receiver cannot process packets fast enough, prints are dropped and UDP does not have any resending mechanisms. Thus some packets may get lost. Even if dropping some log lines is usually not as fatal as is dropping some actual data, it is not what developers wish when they have a bug report... This makes it important that log receiver can perform well. This is also why nibbles is written in C to be light and fast.

What nibbles does

Nibbles can be used to:

  • Logging prints to file
  • Displaying prints on console
  • filtering displayed print lines based on keystring lists.
    • include filters
    • exclude filters
    • highlight filters
  • Ethernet packet crafting and sending
  • Storing/Loading crafted packets to text file
  • Finding C structures/definitions from header files
  • Configuring log file name, port(s) etc to listen from file

Installation

After obtaining nibbles compile and (optionally) install it by issuing commands:

make
sudo make install

in folder where Makefile is located. Note that nibbles needs ncurses library (also form, menu and panel libraries). Typically these are all included in ncurses development library, often called as ncurses-devel. On Fedora you can install ncurses by issuing command

sudo yum install ncurses-devel

More information

Nibbles provides simple help when ran with --help option.

nibbles --help

There is man page for nibbles online and included in downloads. You should be able to read page using command

man nibbles

or even without installation by switching into man folder included in packet and typing

man ./nibbles.8

Development ideas/needs or just an urge to write C?

Feel free to contact me via email (mazziesaccount@gmail.com) or just fork the project from github, improve nibbles and send me patch(es). I am open to suggestions and glad when receiving bug fixes. Also if you're up to a challenge, then nibbles would really need log rotation feature... There is even command line switches for size and file amount implemented (because old version of nibbles using fixed ram buffers instead of memory mapped file had this implemented - however that version had performance problems.)







See also my other projects:
thongs - ethernet packet capturing and generating tool | NSN - Network Status Notifier | epb - Ethernet Packet Bombardier

Liked this program?
Donate to help me spend more time developing these =)

Valid HTML 4.01 Transitional