(fanfair!)

    NFS Patch #8 for -current is now available.  This patch fixes serious bugs
    w/ NFS/TCP.  Probably not *all* the failure conditions, but hopefully
    most of them.

        http://www.backplane.com/FreeBSD4/

    NFS attempts to realign packet buffers and trods all over the underlying
    mbufs.  For TCP connections, several RPC's may be present in an mbuf 
    chain.  The realignment of one of them may destroy the others.  This does
    not occur with UDP because each UDP packet contains only a single rpc.

    Packet buffers may be unaligned for a number of reasons.  The main reason
    is due to the 14 byte MAC header on the ethernet frame.  This causes the
    remainder of the packet - the ip payload - to NOT be 4-byte aligned.

    Many ethernet drivers fudge the packet buffer in order to cause the
    IP payload to be aligned.  Some do not.  The ones that do not
    cause the NFS code to realign the packet and it is the nfs_realign() 
    procedure that is broken.  So the combination of having the wrong ethernet
    card in the server and trying to use NFS/TCP would cause some people to
    have lots of problems while other people might not have any problems.

    Neither the 'de' nor the 'xl' ethernet drivers align the packet.  The 'xl'
    driver conditionally aligns it for the alpha.  Part of the patch fixes
    the 'xl' driver to unconditionally align the packet buffer in order to
    improve NFS performance.  I could not do the same for the 'de' driver
    because I am unsure if the dec chipset can handle an unaligned start
    address.

    The patch also fixes the nfs_realign() code so it will work properly with
    unaligned packets.  The patch has also been updated to patch against
    the latest -current.

    As usual, any and all feedback will be appreciated.  There are still NFS
    issues to be resolved, including a number related to 
    AMD ( automountdaemon).  Depending on how my testing works, further TCP
    patches may be in the wings.

                                        -Matt
                                        Matthew Dillon 
                                        <dil...@backplane.com>



To Unsubscribe: send mail to majord...@freebsd.org
with "unsubscribe freebsd-current" in the body of the message

Reply via email to