Winmodem Redux

Radiant Light

Another technical note about Exchange 2007, of interest only to Google and Google-directed posterity. EHLO, world.

An update: A while ago, I mentioned this problem:

The problem is that an Outlook user can’t connect to the exchange server, and the extraordinarily useful error message says “Exchange server not available”. But it won’t tell you why it’s supposedly unavailable, and:

  • that’s a lie, it’s very clearly available,
  • it’s not a network problem, and
  • it is limited to that user’s account, but
  • they can get their mail through OWA just fine.

So basically all your first-line diagnostic tools will tell you that everything is fine, but a specific user will not be able to use Outlook for no obvious reason.

We’ve determined why the MAPI connections aren’t dying or timing out correctly, even after days; the culprit is the Windows Scalable Networking Pack, that offloads a lot of the network-traffic processing work from the CPU to the NIC. Whether or WSNP works right is, apparently, extremely driver-dependent; if foo-card driver version x.y.a works correctly, x.y.b might not. Suffice to say that it wasn’t working correctly for us.

To solve the problem, you can use this command on your storage cluster:

netsh int ip set chimney disabled

On both sides of the cluster, don’t forget, but you can do that on a hot system without rebooting and without dropping a packet, which is nice. You can even reenable it with “netsh int ip set chimney enabled”, but this is one of those take-a-deep-breath-between commands (you can type “sync” three times, if you like the retros; all the kids are doing it these days). That said, if you don’t need that sliver of extra performance, I’d leave it turned off until you can make a change that guarantees the issue won’t come back.


  1. Posted October 9, 2008 at 11:21 am | Permalink

    Actually, most cards do a whole lot of the work on the card themselves that used to happen in the software stack. It’s the reverse of the WinModem, offloading TCP work to the LAN card from the CPU. The problem is that a lot of them do it badly, and you’re better off just letting the main processor deal with it. Unless you’re a core router on a major backbone, the amount of CPU used is lost in the noise.

  2. Mike HOye
    Posted October 10, 2008 at 8:30 am | Permalink

    Well, yeah – the opposite of the winmodem, sort of meant. “Problems with whether or not works is offloaded to peripherals” is where I was really going with that, but I was clearly unclear.