Generously hosted by Tier1 Hosting Solutions
Richard Sharpe
Perhaps you were looking for one of my more illustrious former incarnations. If that is the case, you might want to look here:

   Bernard Cornwell's web site
   The Sharpe Series
   The Napoleonic Guide
   The Hero

Well, I finally read one of Bernard Cornwell's books: Sharpe's Triumph. Now I have Gettysburg, Day Three, by Jeffry D Wert, and Mother Nature, A History of Mothers, Infants, and Natural Selection, by Sarah Blaffer Hrdy to read.

However, in case you are curious, here is a picture of me pontificating about something or other in Singapore. You can also find a picture of my wife and one of our precious bundles here as well.

I have been involved with Ethereal since early 1999. In that time, I have worked on a number of dissectors, including:


More recently, I have added/fixed support in Ethereal for GSSAPI and SPNEGO so that Ethereal can decode most of the authentication protocols used by Windows networking. This support has also spilled over to NFS. I have also put up some info on writing your own DCERPC dissectors. See below.

Ethereal is getting to be such a useful tool these days. I routinely use it for examining captures I take from GigE links, but over and above the sheer number of protocols it does, it understands them to a depth that no other protocol analyser out there does. Send me mail if you find one that is better than Ethereal.

I was also involved in writing the Ethereal User's Guide.

Some info on hacking Ethereal (Now Wireshark) can be found at the following presentation and on my Ethereal Stuff page.

An Aussie in the Bay Area
Among other things, I am involved in two Open Source Software projects. You can find out more information about them at the following locations:

   EtherealWireshark, best sniffer ever
   Samba, a replacement for Windows NT/2K

Since I spend so much time working on open source software, I have started writing down some thoughts on how companies can deal with open source software.

I am currently employed at Data Robotics where I work on an interesting storage product. I used to work for Panasas who makes high-bandwidth Network attached storage.

I grew up in Darwin, in the Northern Territory, and went to Darwin High School and Nightcliff High School with a brief stint in Redcliffe High School near Brisbane. I also went to the Australian National University and lived in Garran Hall from 1975 to 1978. We are planning a reunion in 2005.

I have been involved with Samba since about 1996. Some of the things that I have done during that time are:
  • SMBlib
  • Support for long file name to smbclient/smbtar
  • libsmbclient
  • GSSAPI/SPNEGO/NTLMSSP support in the CLI routines
  • cifs-load-gen, a CIFS load generation tool based on smbtorture. You can read more about this in the SNIA CIFS2002 presentation I gave on cifs-load-gen. you can find the source at cifs-load-gen CVS.
  • net getlocalsid command (and the equivalent smbpasswd command for Samba 2.2.8 (see below)
  • profiles command for changing the SID in your roaming profiles

Along the way I have found time to be involved in two books on Samba:

    Teach Yourself Samba in 24 Hours
    Special Edition, Using Samba

Some info about Samba can be found in a presentation I gave on Samba some time ago.

I used to think that Just What is SMB? provided some useful info on the SMB protocol. These days, I point people at Chris Hertel's amazing document on Implementing CIFS.

Samba Info
I have collected together some information on Samba that you might find useful.

Ethereal Hints
Here is a hint on how to get more out of Ethereal/Wireshark. For information on constructing dissectors for complex protocols, see my Ethereal Stuff page.

It can sometimes be very helpful to have two time columns showing. One as an absolute offset from the first packet, the other as a delta from the previous packet.

To do this, change the column.format entry in your preferences file (.ethereal/preferences) to the following:

     # Packet list column format.  Each pair of strings consists of a column title 
     # and its format.
     column.format: "No.", "%m", "Time", "%t", "Delta Time", "%Tt", "Source",
          "%s", "Destination", "%d", "Protocol", "%p", "Info", "%i"

Actually, the important bit is to have the "Delta Time", "%Tt" piece in addition to what you already have.

USB Storage Devices Larger Than 2TiB (USB > 2TB)
It turns out that it is possible to access USB storage devices that are larger than 2TiB. This is so because USB Storage is simply SCSI over USB.

Windows Vista and Mac OS X both support USB Storage devices larger than 2TiB. Unfortunately, Linux does not currently support devices greater than 2TiB under USB and will not do so until 2.6.24 at the earliest.

Since it is expected that there will be a bunch of USB Storage devices that will support more that 2TiB over the next six months it will be of interest to some people to do this for current releases of Linux.

The key issue is that to support greater that 2TiB the SCSI low-level driver must support 16-byte CDBs so that the SCSI upper layers can use the standard SCSI protocol approach to retrieving the max LBA supported by the device, if the device is larger than 2TiB.

There is a simple fix that can be applied to the Linux USB Storage driver that enables more than 2TiB. The following patch can be applied to the Linux USB Storage driver for many 2.6.x versions.

    --- a/drivers/usb/storage/usb.c
    +++ b/drivers/usb/storage/usb.c
    @@ -960,6 +960,10 @@ static int storage_probe(struct usb_inte
                    return -ENOMEM;

    +       /*
    +        * Allow 16-byte CDBs and thus > 2TB
    +        */
    +       host->max_cmd_len = 16;
            us = host_to_us(host);
            memset(us, 0, sizeof(struct us_data));

Copyright Notice
All material on this site is Copyright, 2002-2007, Richard Sharpe.

If you wish to use any of this material please send me email for permission.

For corrections/additions/suggestions for this page, please send email to: rsharpe[AT]richardsharpe[dot]com
Last modified: Sat, October 27 2007.