| .TH ATTACH 9P  | 
 | .SH NAME | 
 | attach, auth \- messages to establish a connection | 
 | .SH SYNOPSIS | 
 | .ta \w'\fLTauth 'u | 
 | .IR size [4] | 
 | .B Tauth | 
 | .IR tag [2] | 
 | .IR afid [4] | 
 | .IR uname [ s ] | 
 | .IR aname [ s ] | 
 | .br | 
 | .IR size [4] | 
 | .B Rauth | 
 | .IR tag [2] | 
 | .IR aqid [13] | 
 | .PP | 
 | .IR size [4] | 
 | .B Tattach | 
 | .IR tag [2] | 
 | .IR fid [4] | 
 | .IR afid [4] | 
 | .IR uname [ s ] | 
 | .IR aname [ s ] | 
 | .br | 
 | .IR size [4] | 
 | .B Rattach | 
 | .IR tag [2] | 
 | .IR qid [13] | 
 | .SH DESCRIPTION | 
 | .PP | 
 | The | 
 | .B attach | 
 | message serves as a fresh introduction from a user on | 
 | the client machine to the server. | 
 | The message identifies the user | 
 | .RI ( uname ) | 
 | and may select | 
 | the file tree to access | 
 | .RI ( aname ). | 
 | The | 
 | .I afid | 
 | argument specifies a fid previously established by an | 
 | .B auth | 
 | message, as described below. | 
 | .PP | 
 | As a result of the | 
 | .B attach | 
 | transaction, the client will have a connection to the root | 
 | directory of the desired file tree, | 
 | represented by | 
 | .IR fid . | 
 | An error is returned if | 
 | .I fid | 
 | is already in use. | 
 | The server's idea of the root of the file tree is represented by the returned | 
 | .IR qid . | 
 | .PP | 
 | If the client does not wish to authenticate the connection, or knows that | 
 | authentication is not required, the | 
 | .I afid | 
 | field in the | 
 | .B attach | 
 | message should be set to | 
 | .BR NOFID , | 
 | defined as | 
 | .B (u32int)~0 | 
 | in | 
 | .BR <fcall.h> . | 
 | If the client does wish to authenticate, it must acquire and validate an | 
 | .I afid | 
 | using an | 
 | .B auth | 
 | message before doing the | 
 | .BR attach . | 
 | .PP | 
 | The | 
 | .B auth | 
 | message contains | 
 | .IR afid , | 
 | a new fid to be established for authentication, and the | 
 | .I uname | 
 | and | 
 | .I aname | 
 | that will be those of the following | 
 | .B attach | 
 | message. | 
 | If the server does not require authentication, it returns | 
 | .B Rerror | 
 | to the | 
 | .B Tauth | 
 | message. | 
 | .PP | 
 | If the server does require authentication, it returns | 
 | .I aqid | 
 | defining a file of type | 
 | .B QTAUTH | 
 | (see | 
 | .IR intro (9P)) | 
 | that may be read and written (using | 
 | .B read | 
 | and | 
 | .B write | 
 | messages in the usual way) to execute an authentication protocol. | 
 | That protocol's definition is not part of 9P itself. | 
 | .PP | 
 | Once the protocol is complete, the same | 
 | .I afid | 
 | is presented in the | 
 | .B attach | 
 | message for the user, granting entry. | 
 | The same validated | 
 | .I afid | 
 | may be used for multiple | 
 | .B attach | 
 | messages with the same | 
 | .I uname | 
 | and | 
 | .IR aname . | 
 | .SH ENTRY POINTS | 
 | .I Fsmount | 
 | and | 
 | .I fsauth | 
 | (see | 
 | .IR 9pclient (3)) | 
 | generate | 
 | .B attach | 
 | and | 
 | .B auth | 
 | transactions. | 
 | .\" An | 
 | .\" .B attach | 
 | .\" transaction will be generated for kernel devices | 
 | .\" (see | 
 | .\" .IR intro (3)) | 
 | .\" when a system call evaluates a file name | 
 | .\" beginning with | 
 | .\" .LR # . | 
 | .\" .IR Pipe (2) | 
 | .\" generates an attach on the kernel device | 
 | .\" .IR pipe (3). | 
 | .\" The | 
 | .\" .I mount | 
 | .\" system call | 
 | .\" (see | 
 | .\" .IR bind (2)) | 
 | .\" generates an | 
 | .\" .B attach | 
 | .\" message to the remote file server. | 
 | .\" When the kernel boots, an | 
 | .\" .I attach | 
 | .\" is made to the root device, | 
 | .\" .IR root (3), | 
 | .\" and then an | 
 | .\" .B attach | 
 | .\" is made to the requested file server machine. | 
 | .\" .PP | 
 | .\" An | 
 | .\" .B auth | 
 | .\" transaction is generated by the | 
 | .\" .IR fauth (2) | 
 | .\" system call or by the first | 
 | .\" .B mount | 
 | .\" system call on an uninitialized connection. | 
 | .SH SEE ALSO | 
 | .IR 9pclient (3), | 
 | .IR version (9P), | 
 | Plan 9's \fIauthsrv\fR(6) |