• How cool – I made someone's list titled: "Top Peeps The key people, the creme de la menth…. Follow Friday in a list…". It made my day #
  • It annoys me that @FirstCC can increase avg fares by 8% (13% in some cases), but we can only blame the MPs for this. Be nice to @FirstCC #
  • @GironaCycling Ahh good to see you've not lost your sense of humour! How you keeping? #
  • @GironaCycling Yes, got a house and all moved in. Training, not so much at mo for number of reasons. Hopefully next year! Only 1 tri this yr #
  • @amcyoung @SparkyInTheUK Unfortunately @FirstCC is a profit making company and will take all they can. Public services run for profit = fail #

Last night I was upgrading some ESX 3.5 VMs from “flexible” NICs to “VMXNET Enhanced” NICs and ran into a problem with on of the servers. As an aside, doing some rudimentary throughput testing using the iperf tool I was surprised to see the significant throughput increase and CPU usage decrease when switching from flexible (i.e. VMXNET) to VMXNET Enhanced (i.e. VMXNET2) NICs. Well worth doing – apart from the gotcha I ran into…

This one particular VM which showed a problem is running Quagga (a BGP daemon) to inject routes for a local AS112 server. Once I switched over the NICs the remote Cisco router started logging the following errors

  • %TCP-6-BADAUTH: No MD5 digest from
  • %TCP-6-BADAUTH: Invalid MD5 digest from

and would not bring up the BGP peering session. BGP MD5 authentication is enabled between the router and the Quagga daemon. The use of “debug ip tcp transactions” also shows the invalid MD5 signatures.

I initially suspected it was related to a offloaded checksumming issue which I previously observed (http://communities.vmware.com/thread/250159). Turns out it was not incorrect TCP checksums being calculated (related to the above post’s incorrect UDP checksums).

Digging a bit deeper I came across a post on the quagga-users mailing list describing a similar problem to the one I was observing. The usage of MD5 checksums “complicates” the process of offloading checksumming to NICs.

The VMXNET Enhanced NIC enables additional offloading from the VM to the NIC to enhance performance. This works well for many use cases but causes problems when using TCP MD5 checksums. In my case, turning off “TCP Segmentation Offload” has worked around the problem. Adding a command such as

ethtool -K eth0 tso off
ethtool -K eth0 sg off

to a startup script has worked around the issue to some degree. In an ideal world, the VMXNET driver should allow “tx-checksumming” to be turned off using ethtool aswell.

In fairness to VMware on this one, this issue appears to not be specific to virtual machines but may in fact be observed on physical hardware with NICs providing offload functions.

Having used the above two ethtool commands, to allow the BGP session to be established, I still continue to see the following errors on the Cisco router:

TCP0: bad seg from x.x.x.x -- no MD5 string: port 179 seq
%TCP-6-BADAUTH: No MD5 digest from

%TCP-6-BADAUTH: Invalid MD5 digest from


Interestingly, using the flexible and hence original VMXNET VNIC within the VM (but oddly the same actual VMXNET driver binary!!) tx-checksumming and scatter-gather is enabled for the NIC:

$ ethtool -k eth0
Offload parameters for eth0:
Cannot get device rx csum settings: Operation not supported
rx-checksumming: off
tx-checksumming: on
scatter-gather: on
tcp segmentation offload: off
udp fragmentation offload: off
generic segmentation offload: off

For the record, all the above is using the latest ESX 3.5 VMware tools build 317866 from VMwareTools-3.5.0-317866.tar.gz.


Doing a tcpdump (from a physical server) of the traffic between the router and the VM reveals that packets which leave the VM with a valid MD5 signature (as per tcpdump from within the VM) arrive on the wire with an invalid MD5 signature (tcpdump -s0 -M md5password port 179). This indicates that VMware ESXi may infact be altering the packets between the VM and the wire in some way which is invalidating the MD5 signature ūüôĀ

For now, some errors with an established session is better than lots of errors and no BGP session. Ideally there would be no errors being logged by the Cisco router.


For lab scenarios (or when you are just being cheap) some switches can be convinced to allow non-Cisco SFPs to work using the following IOS commands:

service unsupported-transceiver
no errdisable detect cause gbic-invalid
errdisable recovery cause gbic-invalid

As usual, your mileage may vary.


NY Marathon Splits per Mile
My overall place: 5596 (out of 45,350 starters/44,829 finishers) I finished in top 12.3%   Mile Total Time "Cur Mile Avg Pace/mile" "Overall Avg Pace" 0 00:00:00   3 00:22:53 00:07:38 00:07:38 4 00:30:39 00:07:46 00:07:40 5 00:37:51 00:07:12 00:07:34 6 00:45:02 00:07:11 00:07:30 7 00:52:15 00:07:13 00:07:28 8 00:59:46 00:07:31 00:07:28 9 01:07:08 00:07:22 00:07:28 10 01:14:32 00:07:24 00:07:27 11 01:22:11 00:07:39 00:07:28 12 01:29:46 00:07:35 00:07:29 13 01:37:29 00:07:43 00:07:30 14 01:45:10 00:07:41 00:07:31 15 01:53:07 00:07:57 00:07:32 16 02:01:07 00:08:00 00:07:34 17 02:09:06 00:07:59 00:07:36 18 02:16:49 00:07:43 00:07:36 19 02:24:51 00:08:02 00:07:37 20 02:33:01 00:08:10 00:07:39 21 02:41:36 00:08:35 00:07:42 22 02:51:04 00:09:28 00:07:47 23 03:01:01 00:09:57 00:07:52 24 03:11:03 00:10:02 00:07:58 25 03:20:37 00:09:34 00:08:01 26 03:30:24 00:09:47 00:08:06 26.2 03:32:35 00:10:55 00:08:07    

Well, I figured I should put a post on here about the New York Marathon 2010. I managed to get a lottery place and was really looking forward to the race. I have to admit I underestimated how cold it would be and that I also expected it to be flatter than it was.

Going over the Verrazano-Narrows Bridge at the start was amazing – it offers a fantastic view of the Manhattan skyline in the distance. In some ways exhilarating and other ways scary that I still had to get all the way over there. The first 15miles went well – there was fantastic support along the course with many bands playing great music and spectators wanting to slap hands with runners on the way past.¬†I felt like I had a just sub-3h30 time in my legs and was ahead of schedule until mile 25. Around the 15/16mile stage, going over the Queensboro Bridge, I took a bit of a knock. My foot started hurting . Also, going over the bridge there are no supporters to keep one’s spirits up. Add to that my Garmin lost GPS signal so I had no idea of pace – as it happens the pace stayed OK. Going over that bridge is tough mentally.

Turning off the bridge and heading up First Ave is great. The support resumes and the music and festivities commence once more. The only down side to the First Avenue stint is that it is a straight 3.5mile stretch of road heading off into the distance before you. Entering the Bronx (around 20 mile mark) you climb over a short steep (well it certainly felt steep!) bridge which saps the legs. The twists and turns in the Bronx are tough going and stop you getting into a rhythm. 

Returning to Manhattan and heading along Fifth Avenue is wonderful – the end is figuratively in sight. Unfortunately the two miles (23rd and 24th) along Fifth Avenue heading to Central Park are uphill – again leg and mind sapping.

It was around here that my foot was in serious agony and my quads had left for the day. The last four miles (two along Fifth Avenue and two in Central Park) were seriously tough and where I lost my time and 3h30 split. The last four miles took roughly 40 minutes and were pure agony. I resorted to a jog/walk routine and managed to limp home to the finish in 3h32:35 with an average pace of 8:07/mile.

I kept to my plan of a gel every 4 miles starting at mile 4. Towards the end of the race I starting taking on the sports drinks which prehaps I should have done sooner.

A great race at the end of the day with superb support and awesome iconic views.

Well yesterday was the 2010 Windsor Half Marathon. I went in aiming for around 1h40 – turned out I managed to do 1h26:47! Yes 1h26:47. Am over the moon with that result.

It was cool and a little chilly but no rain. The wind was gusty and at times annoying. The course is “undulating” but not ridiculously so – apart from the hill just after the 10mile mark.

I headed out during the first mile or so trying to get back on my target time after getting caught up in some runners at the start. In doing so I was running faster than my target pace. I decided to keep at the faster pace and managed to hold on much longer than I expected. After a while I realised that a 1h30 was possible and I fought through the aches and pains and started watching the mile splits anxiously. At 11 miles I realised I was on for the 1h30 and breathed a sigh of relief – all that was left for me to do was not fall over or slow down too much.

I had two gels (4miles and 9miles) washed down with a couple of sips of water – much less hydration than I’d normally do – seemed to work as it was a cool day. Now just to figure out the nutrition and hydration for the marathon in just over 5 weeks time….

I hope my right foot holds up over the next couple of weeks though – the dull ache still persists unfortunately…

So 1h26:47 and 58th overall based on my chip time and 63rd place based on race clock time.

Well it has been a while since my last blog post. Figured I had better write a quick few lines to let you know I’m still alive!

Firstly, here is a link to a great article by Joe Friel about recovery. Definitely worth a read: http://www.joefrielsblog.com/2010/09/how-to-recover.html

Since my last serious post I have completed a few races – Ironman Swiss 70.3, London Triathlon, and the National Club Relays. All good fun. Managed to PB in Swiss 70.3 and London Triathlon so am pleased with my recent performances.

My training leading up to the Windsor Half-Marathon and the New York Marathon is progressing well. Touch wood my legs are holding out with the increased running volume. This weekend I have the HSBC Standard Distance Triathlon at Dorney Lake. My main goal is sub-2h30 – with the secondary goal of beating my work colleagues who are doing a relay team race.

My swimming is holding steady and doesn’t appear to be improving significantly. I have increased my swim session duration, but have unfortunately reduced my swim frequency. Over the winter I hope to maintain my swimming and hopefully get a bit faster.

My cycling is going well Рmy last few weekly 10mile time-trials have definitely improved my 30minute (CP30) power output.  Over the winter I am looking at trying to not loose too much power while I rest up.

I will hopefully write up some brief race reports over the coming days.