TeensyDSC – it works!

So last night I was finally able to test my custom digital setting circles setup on my AD12… it worked great!  I used the Astrosystems 10K encoder kit with the TeensyDSC and SkySafari on my iPad.  Here’s the photos of my setup:

My Digital Settings Circles setup using SkySafari on the iPad

My Digital Settings Circles setup using SkySafari on the iPad

Alt encoder and Wireless DSC module powered by a USB battery pack

Alt encoder and Wireless DSC module powered by a USB battery pack




Cassandra + Hector + JRuby == Awesome

So a few months ago I started looking into using Cassandra for a project. Not being fluent in Java or Python which have excellent client libraries for interfacing to Cassandra (Hector and Pycassa respectfully), I looked into the Perl and Ruby clients.

At the time, none of the native Perl or Ruby clients weren’t nearly as powerful, feature rich or as actively maintained as Hector/Pycassa. I started hacking on the Perl client, but a) realized it was going to need a lot of work and b) I really wanted to use Ruby on Rails as the front end for my application I started looking into using Hector with JRuby. Continue reading


Need help with tcpreplay? Read this!

I’ve noticed a certain pattern come up more and more recently and so I’d just like to make a public statement about asking for help with using tcpreplay:

Occasionally people are testing some kind of top secret device with tcpreplay and can’t tell me how it works or what it does or share their pcap file (because it has some kind of exploit or something like that I guess), but expect me to help them figure out why it can’t “see” the traffic tcpreplay sends. That’s a lot like asking your car mechanic to fix your car, but you won’t let them look at it because you’ve modified the engine to run on tap water and don’t want the mechanic to figure out your secret. As you might imagine, this is both very frustrating and a huge waste of my time.

Simply put, if you see the traffic in Wireshark or tcpdump, but your device under test can’t see it, then it’s most likely either a) bug in your product, b) you’ve miss-configured tcpreplay or c) you’ve got a bad pcap. You’ve pretty much ruled out a bug in tcpreplay at that point. Hence if you want help with determining if it’s A, B or C you’re going to have to give me your pcap, tell me what your product does and some basics about how it works under the hood. Honestly, I wouldn’t consider any of this at the company secrets level unless you’re hacking directly in kernel-space and are completely avoiding the well known socket API’s, but that’s your call.

Anyways, if you’re unable to tell the whole world on this mailing list the above, then your other option is to hire me as a consultant (for a price) at which point I’d be happy to sign an NDA to keep your secrets and we can work off list. Other then that, your best bet is to try and figure it out on your own, but please don’t ask me or the list for help to your problem.



Why Tcpreplay went GPL

I’ve been thinking about this for a while and honestly pretty made up my mind months ago, but I finally go enough determination to edit almost all the files in the trunk source tree and change the license from the 3 clause BSD to GPLv3.

There’s actually a number of reasons for the change and I wanted to share the ones that were most important to me. I don’t expect everyone to like the decision, but probably most won’t care since it doesn’t really impact them. But sometimes people get all bent out of shape when a project that has been around as long as Tcpreplay (10 years? Damn, where did the time go?) changes its license so I wanted to give my side of it. The change doesn’t mean I don’t like the BSD license anymore, just that I now feel the GPL is more appropriate for the Tcpreplay Suite. Continue reading


tcpreplay 3.4.5 beta1 released

Just a quick heads up for everyone, I’ve released tcpreplay 3.4.5
beta1beta2: https://synfin.net/tcpreplay-3.4.5beta2.tar.gz

I wasn’t originally planning on doing a beta for 3.4.5, but due to
feature creep it’s taking more time then I thought. Now that I’m done
racing for the summer, hopefully I’ll have more time to fix the
remaining open bugs & enhancements before the fall. It’s my goal that
3.4.5 will be the final 3.x release, with future enhancements being
placed in the 4.0 branch- it’s become too much of a PITA to keep
merging code between the two branches since 4.0 is really nothing like

Anyways, this release concentrates on features & bugs users requested
or found. Special thanks goes out to Dmitriy Gerasimov who
submitted a patch for Linux TX_RING support. It’s not yet supported
on all Linux systems, but on those that it does should hopefully see
improved topspeed performance. I’d love what people’s experience is
with this feature- does it help? If so when? The other major feature
is sending two files at the same time- one out each interface. Should
hopefully be useful when replaying traffic captured via network taps.
Both features probably haven’t seen enough testing by me, but
hopefully some people are interested enough by them to try them out
and let me know how well they work.

Obligatory changelog:

08/15/2010 Version 3.4.5beta1
   - First pass at fixing 'make test' on many little-endian systems (#429)
   - Don't try to fragroute non-IPv4/v6 packets so we don't error out (#432)
   - Warn users when processing LINUX_SLL frames w/o an Ethernet source MAC (#434)
   - Initial Linux TX_RING sending support (#435)
   - Update to GNU Autoconf 2.67 (#436)
   - Add tcpcapinfo which dumps information about the pcap header/packets (#437)
   - Add --dualfile support for replaying two files at the same time (#439)
   - Fix bug where --tos=0 didn't do anything (#440)
   - Fix crash when processing CIDR data (#441)

Update: Turns out I forgot to merge the TX_RING support in. 3.4.5beta2 fixes that. Sorry for any confusion!



As I expected, Tcpreplay was not accepted for the Google Summer of Code. Most likely because compared to many of the other mentoring organization applicants, Tcpreplay is not able to accept many students- hence the overhead is too high.

Of course, if you are a student (or anyone else for that matter) and are interested in working on Tcpreplay and learn about networking, I’m always willing to help people get up to speed on the code and contribute.


GSoC 2009

Well I decided to throw my hat into the ring for being a mentoring organization for the 2009 Google Summer of Code for Tcpreplay. Obviously Tcpreplay will be one of the smallest “organizations” to submit an application so I can’t say that I have high hopes of being accepted, but I figured it was worth a try. Continue reading