aboutsummaryrefslogtreecommitdiff
path: root/man/man9/version.html
blob: 3d382f6bac3e69fff311ef186cad7438cad9f07e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
<head>
<title>version(9P) - Plan 9 from User Space</title>
<meta content="text/html; charset=utf-8" http-equiv=Content-Type>
</head>
<body bgcolor=#ffffff>
<table border=0 cellpadding=0 cellspacing=0 width=100%>
<tr height=10><td>
<tr><td width=20><td>
<tr><td width=20><td><b>VERSION(9P)</b><td align=right><b>VERSION(9P)</b>
<tr><td width=20><td colspan=2>
    <br>
<p><font size=+1><b>NAME     </b></font><br>

<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>

    version &ndash; negotiate protocol version<br>
    
</table>
<p><font size=+1><b>SYNOPSIS     </b></font><br>

<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>

    <i>size</i>[4] <tt><font size=+1>Tversion</font></tt> <i>tag</i>[2] <i>msize</i>[4] <i>version</i>[<i>s</i>]<br>
    <i>size</i>[4] <tt><font size=+1>Rversion</font></tt> <i>tag</i>[2] <i>msize</i>[4] <i>version</i>[<i>s</i>]<br>
    
</table>
<p><font size=+1><b>DESCRIPTION     </b></font><br>

<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>

    The <tt><font size=+1>version</font></tt> request negotiates the protocol version and message
    size to be used on the connection and initializes the connection
    for I/O. <tt><font size=+1>Tversion</font></tt> must be the first message sent on the 9P connection,
    and the client cannot issue any further requests until it has
    received the <tt><font size=+1>Rversion</font></tt> reply. The <i>tag</i> should be
    <tt><font size=+1>NOTAG</font></tt> (value <tt><font size=+1>(ushort)~0</font></tt>) for a <tt><font size=+1>version</font></tt> message. 
    <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
    
    The client suggests a maximum message size, <tt><font size=+1>msize</font></tt>, that is the
    maximum length, in bytes, it will ever generate or expect to receive
    in a single 9P message. This count includes all 9P protocol data,
    starting from the <tt><font size=+1>size</font></tt> field and extending through the message,
    but excludes enveloping transport protocols. The
    server responds with its own maximum, <tt><font size=+1>msize</font></tt>, which must be less
    than or equal to the client&#8217;s value. Thenceforth, both sides of
    the connection must honor this limit. 
    <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
    
    The <tt><font size=+1>version</font></tt> string identifies the level of the protocol. The string
    must always begin with the two characters &#8220;<tt><font size=+1>9P</font></tt>&#8221;. If the server
    does not understand the client&#8217;s version string, it should respond
    with an <tt><font size=+1>Rversion</font></tt> message (not <tt><font size=+1>Rerror</font></tt>) with the <tt><font size=+1>version</font></tt> string
    the 7 characters &#8220;<tt><font size=+1>unknown</font></tt>&#8221;. 
    <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
    
    The server may respond with the client&#8217;s version string, or a
    version string identifying an earlier defined protocol version.
    Currently, the only defined version is the 6 characters &#8220;<tt><font size=+1>9P2000</font></tt>&#8221;.
    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 <tt><font size=+1>9P</font></tt><i>nnnn</i>, where <i>nnnn</i> is less than or equal to the digits sent
    by the client. 
    <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
    
    The client and server will use the protocol version defined by
    the server&#8217;s response for all subsequent communication on the
    connection. 
    <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
    
    A successful <tt><font size=+1>version</font></tt> request initializes the connection. All outstanding
    I/O on the connection is aborted; all active fids are freed (&#8216;clunked&#8217;)
    automatically. The set of messages between <tt><font size=+1>version</font></tt> requests is
    called a <i>session</i>.<br>
    
</table>
<p><font size=+1><b>ENTRY POINTS    </b></font><br>

<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>

    <i>Fsversion</i> (see <a href="../man3/9pclient.html"><i>9pclient</i>(3)</a>) generates <tt><font size=+1>version</font></tt> messages; it is
    called automatically by <i>fsmount</i>.<br>
    
</table>

<td width=20>
<tr height=20><td>
</table>
<!-- TRAILER -->
<table border=0 cellpadding=0 cellspacing=0 width=100%>
<tr height=15><td width=10><td><td width=10>
<tr><td><td>
<center>
<a href="../../"><img src="../../dist/spaceglenda100.png" alt="Space Glenda" border=1></a>
</center>
</table>
<!-- TRAILER -->
</body></html>