glenda.party
term% ls -F
term% cat index.txt
VERSION(5)                    File Formats Manual                   VERSION(5)



NAME
       version - negotiate protocol version

SYNOPSIS
       size[4] Tversion tag[2] msize[4] version[s]
       size[4] Rversion tag[2] msize[4] version[s]

DESCRIPTION
       The version request negotiates the protocol version and message size to
       be used on the connection  and  initializes  the  connection  for  I/O.
       Tversion  must  be the first message sent on the 9P connection, and the
       client cannot issue any further requests  until  it  has  received  the
       Rversion  reply.  The tag should be NOTAG (value (ushort)~0) for a ver‐
       sion message.

       The client suggests a maximum message size, msize, that is the  maximum
       length,  in bytes, it will ever generate or expect to receive in a sin‐
       gle 9P message.  This count includes all  9P  protocol  data,  starting
       from the size field and extending through the message, but excludes en‐
       veloping transport protocols.  The server responds with its  own  maxi‐
       mum,  msize,  which  must  be less than or equal to the client's value.
       Thenceforth, both sides of the connection must honor this limit.

       The version string identifies the level of the  protocol.   The  string
       must  always  begin with the two characters ``9P''.  If the server does
       not understand the client's version string, it should respond  with  an
       Rversion  message (not Rerror) with the version string the 7 characters
       ``unknown''.

       The server may respond with the client's version string, or  a  version
       string identifying an earlier defined protocol version.  Currently, the
       only defined version is the 6 characters ``9P2000''.   Version  strings
       are defined such that, if the client string contains one or more period
       characters, the initial substring up to but not  including  any  single
       period  in the version string defines a version of the protocol.  After
       stripping any such period-separated suffix, the server  is  allowed  to
       respond  with  a  string of the form 9Pnnnn, where nnnn is less than or
       equal to the digits sent by the client.

       The client and server will use the  protocol  version  defined  by  the
       server's response for all subsequent communication on the connection.

       A successful version request initializes the connection.  All outstand‐
       ing I/O on the  connection  is  aborted;  all  active  fids  are  freed
       (`clunked')  automatically.   The  set  of messages between version re‐
       quests is called a session.

ENTRY POINTS
       The version message is generated by the fversion system  call.   It  is
       also  generated  automatically, if required, by a mount or fauth system
       call on an uninitialized connection.



                                                                    VERSION(5)