04/9/12

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.

Thanks,
Aaron

01/18/12

Calibrating Thermistors for the Arduino

This is my first post about my current geek project: building a wireless thermometer/alarm/data logger for my Weber smoker. Until now, I’ve been using a Maverick/RediCheck wireless unit which is merely OK. The wireless signal tends to be really flaky and it has only one temp probe. There are multi-probe units available, they’re still missing other features I’d be interested in such as logging the data for generating graphs, measuring ambient temperature outside and setting multiple alarms (for both the food and smoker temperature too high/low).

For my food and smoker temp measuring needs, I picked up 3 food safe probes from Thermoworks for $8/ea. Unfortunately, the probes come with no technical documentation and my email to the company requesting information was ignored. Contrary to my initial thoughts, these probes are not the same as those sold by Maverick or Amwei. I was however able to determine they are NTC thermistors and some searches turned up a way to convert the resistor readings into actual temperatures. Continue reading

09/15/11

AFM Round 7: Well That Was Fun

KC wasn’t able to make it up this round which was going to suck and not just because it meant I’d be without A/C either- KC has been a great mentor for me all year and it seems I need someone to kick me the pants lately and KC has been more then happy to oblige.

Instead, I stopped by BRG on the way up to the track on Friday and we talked about where I was loosing time and goals I should set for myself. KC said he thought I could do a 2:02 and I think I laughed. I mean, drop 3 seconds in a weekend? Riiiiight. Seemed like a big step at this point. But I’ve learned to listen to KC and so I told him I’d push harder this round in practice and try to build off that in the races. Honestly, I would of been happy with just improving my times at all. Continue reading

09/14/11

AFM Round 6: Progress (Finally!)

So I haven’t done my normal post race writeup’s this year… mostly because I really just wanted to forget the early rounds. I had really high hopes for this year: my first year with white plates, a new motor, new fairings with a pretty paint job. And then I missed the first round with food poisoning and things really didn’t improve that much for the next few rounds.

Anyways, the last round at Sears actually went pretty well with me putting in a series of personal best laps in the last race and so I was looking forward to coming back to Thunderhill. The bike was running great and I’ve always liked the track even if my laptimes (best a 2:06.3) haven’t been anything to brag about in the past.

For round 6 I’d be pitting with KC/BRG Racing again. Having KC available to talk about bike setup, strategy, lines and to basically kick my ass into gear has been nothing but awesome. The fact that his trailer has A/C and the temps were near 100F didn’t hurt either. :) Saturday practice was pretty uneventful, but my laps were as usual for practice pretty crappy. I’ve never been able to do anything close to race pace in practice and I pretty much hit a wall at 2:10. KC and I spent a lot of time talking about lines and what I needed to do to get my laptimes down between practice sessions and so I hoped I could bring my A-game on Sunday for the races.

My first race was 650Twins which all things considered went pretty well since I did a new personal best of 2:05.8 on the last lap and finished 19th, my best so far this year. It was only one lap, but at least I was consistent in the 2:06-7 range and so I hoped to build on that in my next race: 650 Production.

For some reason, I haven’t been getting as good starts this year as I did last, and this race was no different, but at least I was able to get the spot I lost back going into turn 1. I slotted in behind Stephen Smith (#769) who had beaten me in the last race. I had a good run on him down the hill out of T9, but couldn’t quite show him a wheel on the brakes and lost 5 or 6 bike lengths on the exit. I was however a lot stronger in T1 & 2 and thought I had him on the inside going into 3, but he shut the door on me and so I looked for my next chance.

That came at the end of lap 2 as I got a much better drive out of the T13. Stephen was about mid-track so I went to the outside, hoping I could carry more corner speed through 14 and beat him on the exit of 15 for the long front straight. Unfortunately for me, Stephen started to drift over to my line before I could show him a wheel and I had to give way to avoid a collision. I was still able to get a good drive out of 15 and was right on his tail into the first turn. I knew I was able to carry more corner speed through Turn 2 and so I set to pass him on the outside on the exit of 2 and into 3 and was able to make it stick this time. From the last race I knew Stephen would be all over me and so I put my head down and tried to get a little space. Just up ahead I saw a couple of Super Dino’s and I knew I had to get past them as quickly as possible and hope they’d hold him up. I was able to get the first one on the exit of T6 and the other on the exit of T8.

As I came over the hill, I could see two more bikes far in the distance so I took after them and found myself right on their tail a lap later coming out of the esses onto the back straight. I got the Super Dino on the brakes into T14 and caught up to Patrick Murphy (#752) coming out of T1 with two laps left. I followed Patrick for a few turns to get an idea of his lines and found myself getting a much better drive out of T9 and easily passed him before entering 10. With about 1-1/3 laps left, I pushed hard to keep Patrick at bay and finished in 8th place- my best of the year. Even better, I put in my most consistent times ever at Thunderhill with 5 laps in the 2:05-06 range… hardly fast, but at least I was improving and I knew where I was loosing time.

I ended up skipping Formula 4 since I seemed to be suffering from the heat and/or not enough food earlier in the day and it didn’t make sense to go out there and push hard when I’d already made a number of improvements. Spent the rest of the day hanging out, drinking beer and talking to all my friends before packing up for the drive home.

07/28/11

Did you bother to test this?

My feedback to Apple regarding Mail.app in Lion:

Seriously, wtf? How could you not notice:

1. Emails I delete from the inbox come back after a few minutes. I’ve deleted the same messages 4 or 5 times now from my inbox. I guess you figured my delete key doesn’t get enough use already?

2. Still haven’t fixed the Snow Leopard/Exchange issue where Mail.app stops downloading emails after some random period of time requiring me to restart Mail.app. The good news is I can really tell my boss I didn’t see that important email! Thank you for being my excuse!

3. Can’t quit Mail.app. Yes, it just hangs every time. Have to Force Kill it. This is great since I’m restarting Mail.app 3-5 times a day due to #2.

4. When it starts back up, it often presents me with a random email I recently sent acting like I didn’t actually send it. It’s in my Sent Mail folder… did you send it or not? It’s a mystery! We all like mysteries right?

5. How many times do I have to read an email before you mark it read? You seem to have chosen to use a random number generator for that. I guess this was designed to mess with people with alzheimer’s or something?

Outlook and Thunderbird are looking really good right now.

11/22/10

Benjamin Franklin and the War on Terrorism

I’ve been reading Walter Isaacson’s excellent biography of Benjamin Franklin lately and just came across a letter Franklin wrote to his English friend Joseph Priestly in late 1775:

Britain, at the expense of three millions, has killed 150 Yankees this campaign, which is 20,000 pounds a head… During the same time, 60,000 children have been born in America. From these data his mathematical head will easily calculate the time and expense necessary to kill us all.

Continue reading

10/9/10

Dear Google Recruiter

Dear Google Recruiter,

I’ve been contacted by a recruiter at Google every 3-6 months for the last 4+ years or so and I’ll tell you what I tell all of them:

I have no interest in interviewing with Google ever again. I expect to be treated professionally by companies and for them to be honest with me in their communication, but that did not happen when I went through your interview/hiring process. This is not negotiable and you only get one chance.

I also tell every recruiter at Google to please put a note in your HR database to not contact me any more. Obviously that never happens or doesn’t work, because you still contact me. Honestly, I’m not sure why this is so hard to accomplish for a company which specializes in storing and retrieving information, but I do find it rather annoying having to explain myself over and over again. Hence, I’ve decided to create this post so the GoogleBot will add it to your database for you.

Have a nice day,
Aaron

UPDATE: I posted this after being contacted by a Google recruiter and so I replied with this link. He replied back, was very apologetic and promised to update their records to indicate I did not wish to be contacted again and apparently that actually worked. Success!

08/22/10

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

08/15/10

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
3.x.

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!