xdmcp.xml revision 44dda7b2
144dda7b2Smrg<?xml version="1.0" encoding="UTF-8" ?>
244dda7b2Smrg<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
344dda7b2Smrg                   "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
444dda7b2Smrg
544dda7b2Smrg<book id="xdmcp">
644dda7b2Smrg
744dda7b2Smrg<bookinfo>
844dda7b2Smrg   <title>X Display Manager Control Protocol</title>
944dda7b2Smrg   <subtitle>X.Org Standard</subtitle>
1044dda7b2Smrg   <releaseinfo>Version 1.1</releaseinfo>
1144dda7b2Smrg   <authorgroup>
1244dda7b2Smrg   <author>
1344dda7b2Smrg      <firstname>Keith</firstname><surname>Packard</surname>
1444dda7b2Smrg      <affiliation><orgname>
1544dda7b2SmrgX Consortium,
1644dda7b2SmrgLaboratory for Computer Science,
1744dda7b2SmrgMassachusetts Institute of Technology
1844dda7b2Smrg      </orgname></affiliation>
1944dda7b2Smrg   </author>
2044dda7b2Smrg   </authorgroup>
2144dda7b2Smrg
2244dda7b2Smrg   <copyright><year>1989</year><holder>The Open Group</holder></copyright>
2344dda7b2Smrg   <copyright><year>2004</year><holder>The Open Group</holder></copyright>
2444dda7b2Smrg   <productnumber>X Version 11, Release 6.8</productnumber>
2544dda7b2Smrg
2644dda7b2Smrg<legalnotice>
2744dda7b2Smrg
2844dda7b2Smrg
2944dda7b2Smrg
3044dda7b2Smrg<para>
3144dda7b2SmrgPermission is hereby granted, free of charge, to any person obtaining a copy
3244dda7b2Smrgof this software and associated documentation files (the "Software"), to deal
3344dda7b2Smrgin the Software without restriction, including without limitation the rights
3444dda7b2Smrgto use, copy, modify, merge, publish, distribute, sublicense, and/or sell
3544dda7b2Smrgcopies of the Software, and to permit persons to whom the Software is
3644dda7b2Smrgfurnished to do so, subject to the following conditions:
3744dda7b2Smrg</para>
3844dda7b2Smrg<para>
3944dda7b2SmrgThe above copyright notice and this permission notice shall be included in
4044dda7b2Smrgall copies or substantial portions of the Software.
4144dda7b2Smrg</para>
4244dda7b2Smrg<para>
4344dda7b2SmrgTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
4444dda7b2SmrgIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
4544dda7b2SmrgFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
4644dda7b2SmrgOPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
4744dda7b2SmrgAN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
4844dda7b2SmrgCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
4944dda7b2Smrg</para>
5044dda7b2Smrg<para>
5144dda7b2SmrgExcept as contained in this notice, the name of The Open Group shall not be
5244dda7b2Smrgused in advertising or otherwise to promote the sale, use or other dealings
5344dda7b2Smrgin this Software without prior written authorization from The Open Group.
5444dda7b2Smrg</para>
5544dda7b2Smrg
5644dda7b2Smrg<para>
5744dda7b2Smrg<emphasis remap='I'>X Window System</emphasis> is a trademark of The Open Group.
5844dda7b2Smrg</para>
5944dda7b2Smrg</legalnotice>
6044dda7b2Smrg</bookinfo>
6144dda7b2Smrg
6244dda7b2Smrg<chapter id="TITLE">
6344dda7b2Smrg<title>TITLE</title>
6444dda7b2Smrg<sect1 id="Purpose_and_Goals">
6544dda7b2Smrg<title>Purpose and Goals</title>
6644dda7b2Smrg<!-- .XS -->
6744dda7b2Smrg<!-- (SN Purpose and Goals -->
6844dda7b2Smrg<!-- .XE -->
6944dda7b2Smrg<para>
7044dda7b2Smrg<!-- .LP -->
7144dda7b2SmrgThe purpose of the X Display Manager Control Protocol (XDMCP)
7244dda7b2Smrgis to provide a uniform mechanism for an autonomous
7344dda7b2Smrgdisplay to request login service from a remote host.
7444dda7b2SmrgBy autonomous, we mean
7544dda7b2Smrgthe display consists of hardware and processes that are independent of any
7644dda7b2Smrgparticular host where login service is desired.  (For example, the server
7744dda7b2Smrgcannot simply be started by a
7844dda7b2Smrg<function>fork/exec</function>
7944dda7b2Smrgsequence on the host.)
8044dda7b2SmrgAn X terminal (screen, keyboard, mouse, processor, network interface)
8144dda7b2Smrgis a prime example of an autonomous display.
8244dda7b2Smrg</para>
8344dda7b2Smrg
8444dda7b2Smrg<para>
8544dda7b2SmrgFrom the point of view of the end user, it is very important to make
8644dda7b2Smrgautonomous displays as easy to use as traditional hardwired character
8744dda7b2Smrgterminals.  Specifically, you can typically just power on a hardwired
8844dda7b2Smrgterminal and be greeted with a login prompt.  The same should be possible
8944dda7b2Smrgwith autonomous displays.  However, in a network environment with multiple
9044dda7b2Smrghosts, the end user may want to choose which host(s) to connect to.  In an
9144dda7b2Smrgenvironment with many displays and many hosts, a site administrator may want
9244dda7b2Smrgto associate particular collections of hosts with particular displays.  We
9344dda7b2Smrgwould like to support the following options:
9444dda7b2Smrg</para>
9544dda7b2Smrg
9644dda7b2Smrg<itemizedlist>
9744dda7b2Smrg  <listitem>
9844dda7b2Smrg    <para>
9944dda7b2SmrgThe display has a single, fixed host to which it should connect.  It should be
10044dda7b2Smrgpossible to power on the display and receive a login prompt, without user
10144dda7b2Smrgintervention.
10244dda7b2Smrg    </para>
10344dda7b2Smrg  </listitem>
10444dda7b2Smrg  <listitem>
10544dda7b2Smrg    <para>
10644dda7b2SmrgAny one of several hosts on a network or subnetwork may be acceptable
10744dda7b2Smrgfor accepting login from the display.
10844dda7b2Smrg(For example, the user's file systems can be mounted onto
10944dda7b2Smrgany such host, providing comparable environments.)  It should be possible
11044dda7b2Smrgfor the display to broadcast to find such hosts and to have the display
11144dda7b2Smrgeither automatically choose a host or present the possible hosts to the
11244dda7b2Smrguser for selection.
11344dda7b2Smrg    </para>
11444dda7b2Smrg  </listitem>
11544dda7b2Smrg  <listitem>
11644dda7b2Smrg    <para>
11744dda7b2SmrgThe display has a fixed set of hosts that it can connect to.  It should be
11844dda7b2Smrgpossible for the display to have that set stored in RAM, but it should also be
11944dda7b2Smrgpossible for a site administrator to be able to maintain host sets for a
12044dda7b2Smrglarge number of displays using a centralized facility, without having to
12144dda7b2Smrginteract (physically or electronically) with each individual display.
12244dda7b2SmrgParticular hosts should be allowed to refuse login service, based on
12344dda7b2Smrgwhatever local criteria are desired.
12444dda7b2Smrg    </para>
12544dda7b2Smrg  </listitem>
12644dda7b2Smrg</itemizedlist>
12744dda7b2Smrg
12844dda7b2Smrg<para>
12944dda7b2SmrgThe control protocol should be designed in such a way that it can be used over
13044dda7b2Smrga reasonable variety of communication transport layers.  In fact, it is quite
13144dda7b2Smrgdesirable if every major network protocol family that supports the standard X
13244dda7b2Smrgprotocol is also capable of supporting XDMCP, because the end result of XDMCP
13344dda7b2Smrgnegotiation will be standard X protocol connections to the display.
13444dda7b2SmrgHowever, because the number of displays per host may be large,
13544dda7b2Smrga connection-based protocol appears less desirable
13644dda7b2Smrgthan a connection-less protocol.  For this reason the protocol is designed
13744dda7b2Smrgto use datagram services with the display responsible for sequencing and
13844dda7b2Smrgretransmission.
13944dda7b2Smrg</para>
14044dda7b2Smrg<para>
14144dda7b2Smrg<!-- .LP -->
14244dda7b2SmrgTo keep the burden on displays at a minimum (because display cost is not
14344dda7b2Smrga factor that can be ignored), it is desirable that displays not be required
14444dda7b2Smrgto maintain permanent state (across power cycles) for the purposes
14544dda7b2Smrgof the control protocol,
14644dda7b2Smrgand it is desirable to keep required state at a minimum while the
14744dda7b2Smrgdisplay is powered on.
14844dda7b2Smrg</para>
14944dda7b2Smrg<para>
15044dda7b2Smrg<!-- .LP -->
15144dda7b2SmrgSecurity is an important consideration and must be an integral part of the
15244dda7b2Smrgdesign.  The important security goals in the context of XDMCP are:
15344dda7b2Smrg</para>
15444dda7b2Smrg<itemizedlist>
15544dda7b2Smrg  <listitem>
15644dda7b2Smrg    <para>
15744dda7b2SmrgIt should be possible for the display to verify that it is communicating
15844dda7b2Smrgwith a legitimate host login service.  Because the user will present
15944dda7b2Smrgcredentials (for example, password) to this service,
16044dda7b2Smrgit is important to avoid spoof attacks.
16144dda7b2Smrg    </para>
16244dda7b2Smrg  </listitem>
16344dda7b2Smrg  <listitem>
16444dda7b2Smrg    <para>
16544dda7b2SmrgIt should be possible for the display and the login service to negotiate the
16644dda7b2Smrgauthorization mechanism to be used for the standard X protocol.
16744dda7b2Smrg    </para>
16844dda7b2Smrg  </listitem>
16944dda7b2Smrg  <listitem>
17044dda7b2Smrg    <para>
17144dda7b2SmrgIt should be possible to provide the same level of security in verifying the
17244dda7b2Smrglogin service as is provided by the negotiated authorization mechanism.
17344dda7b2Smrg    </para>
17444dda7b2Smrg  </listitem>
17544dda7b2Smrg  <listitem>
17644dda7b2Smrg    <para>
17744dda7b2SmrgBecause there are no firm standards yet in the area of security,
17844dda7b2SmrgXDMCP must be flexible enough to accomodate a variety of security mechanisms.
17944dda7b2Smrg    </para>
18044dda7b2Smrg  </listitem>
18144dda7b2Smrg</itemizedlist>
18244dda7b2Smrg</sect1>
18344dda7b2Smrg
18444dda7b2Smrg<sect1 id="Overview_of_the_Protocol">
18544dda7b2Smrg<title>Overview of the Protocol</title>
18644dda7b2Smrg<!-- .XS -->
18744dda7b2Smrg<!-- (SN Overview of the Protocol -->
18844dda7b2Smrg<!-- .XE -->
18944dda7b2Smrg<para>
19044dda7b2Smrg<!-- .LP -->
19144dda7b2SmrgXDMCP is designed to provide authenticated access to display management
19244dda7b2Smrgservices for remote displays.  A new network server, called a \fIDisplay
19344dda7b2SmrgManager\fP, will use XDMCP to communicate with displays to negotiate the
19444dda7b2Smrgstartup of X sessions.  The protocol allows the display to authenticate the
19544dda7b2Smrgmanager.  It also allows most of the configuration information to be
19644dda7b2Smrgcentralized with the manager and to ease the burden of system administration
19744dda7b2Smrgin a large network of displays.
19844dda7b2SmrgThe essential goal is to provide plug-and-play
19944dda7b2Smrgservices similar to those provided in the familiar mainframe/terminal world.
20044dda7b2Smrg</para>
20144dda7b2Smrg<para>
20244dda7b2Smrg<!-- .LP -->
20344dda7b2SmrgDisplays may be turned off by the user at any time.  Any existing session
20444dda7b2Smrgrunning on a display that has been turned off must be identifiable.  This
20544dda7b2Smrgis made possible by requiring a three-way handshake to start a session.  If
20644dda7b2Smrgthe handshake succeeds, any existing session is terminated immediately and a
20744dda7b2Smrgnew session started.  There is the problem (at least with TCP) that
20844dda7b2Smrgconnections may not be closed when the display is turned off.  In most
20944dda7b2Smrgenvironments, the manager should reduce this problem by periodically XSync'ing
21044dda7b2Smrgon its own connection, perhaps every five to ten minutes, and terminating the
21144dda7b2Smrgsession if its own connection ever closes.
21244dda7b2Smrg</para>
21344dda7b2Smrg<para>
21444dda7b2Smrg<!-- .LP -->
21544dda7b2SmrgDisplays should not be required to retain permanent state for purposes of
21644dda7b2Smrgthe control protocol.  One solution to packets received out of sequence
21744dda7b2Smrgwould be to use monotonically increasing message identifiers in each message
21844dda7b2Smrgto allow both sides to ignore messages that arrive out-of-sequence.  For
21944dda7b2Smrgthis to work, displays would at a minimum have to increment a stable crash
22044dda7b2Smrgcount each time they are powered on and use that number as part of a
22144dda7b2Smrglarger sequence number.  But if displays cannot retain permanent state this
22244dda7b2Smrgcannot work.  Instead, the manager assumes the responsibility for permanent
22344dda7b2Smrgstate by generating unique numbers that identify a particular session and
22444dda7b2Smrgthe protocol simply ignores packets that correspond to an invalid session.
22544dda7b2Smrg</para>
22644dda7b2Smrg<para>
22744dda7b2Smrg<!-- .LP -->
22844dda7b2SmrgThe Manager must not be responsible for packet reception.  To prevent the
22944dda7b2SmrgManager from becoming stuck because of a hostile display, no portion of the
23044dda7b2Smrgprotocol requires the Manager to retransmit a packet.  Part of this means
23144dda7b2Smrgthat any valid packet that the Manager does receive must be
23244dda7b2Smrgacknowledged in some way to prevent the display from continuously resending
23344dda7b2Smrgpackets.  The display can keep the protocol running as it will always know
23444dda7b2Smrgwhen the Manager has received (at least one copy of) a packet.  On the
23544dda7b2SmrgManager side, this means that any packet may be received more than once (if
23644dda7b2Smrgthe response was lost) and duplicates must be ignored.
23744dda7b2Smrg</para>
23844dda7b2Smrg</sect1>
23944dda7b2Smrg
24044dda7b2Smrg<sect1 id="Data_Types">
24144dda7b2Smrg<title>Data Types</title>
24244dda7b2Smrg<!-- .XS -->
24344dda7b2Smrg<!-- (SN Data Types -->
24444dda7b2Smrg<!-- .XE -->
24544dda7b2Smrg<para>
24644dda7b2Smrg<!-- .LP -->
24744dda7b2SmrgXDMCP packets contain several types of data.  Integer values are always
24844dda7b2Smrgstored most significant byte first in the packet ("Big Endian" order).
24944dda7b2SmrgAs XDMCP will not be used to transport large quantities of data, this
25044dda7b2Smrgrestriction will not substantially hamper the efficiency of any
25144dda7b2Smrgimplementation.  Also, no padding of any sort will occur within the packets.
25244dda7b2Smrg</para>
25344dda7b2Smrg
25444dda7b2Smrg<informaltable frame="none">
25544dda7b2Smrg  <tgroup cols='3' align='left'>
25644dda7b2Smrg  <colspec colname='c1' colsep="0"/>
25744dda7b2Smrg  <colspec colname='c2' colsep="0"/>
25844dda7b2Smrg  <colspec colname='c3' colsep="0"/>
25944dda7b2Smrg  <thead>
26044dda7b2Smrg    <row>
26144dda7b2Smrg      <entry>Type Name</entry>
26244dda7b2Smrg      <entry>Length (Bytes)</entry>
26344dda7b2Smrg      <entry>Description</entry>
26444dda7b2Smrg    </row>
26544dda7b2Smrg  </thead>
26644dda7b2Smrg  <tbody>
26744dda7b2Smrg    <row rowsep="0">
26844dda7b2Smrg      <entry>CARD8</entry>
26944dda7b2Smrg      <entry>1</entry>
27044dda7b2Smrg      <entry>A single byte unsigned integer</entry>
27144dda7b2Smrg    </row>
27244dda7b2Smrg    <row rowsep="0">
27344dda7b2Smrg      <entry>CARD16</entry>
27444dda7b2Smrg      <entry>2</entry>
27544dda7b2Smrg      <entry>Two byte unsigned integer</entry>
27644dda7b2Smrg    </row>
27744dda7b2Smrg    <row rowsep="0">
27844dda7b2Smrg      <entry>CARD32</entry>
27944dda7b2Smrg      <entry>4</entry>
28044dda7b2Smrg      <entry>Four byte unsigned integer</entry>
28144dda7b2Smrg    </row>
28244dda7b2Smrg    <row rowsep="0">
28344dda7b2Smrg      <entry>ARRAY8</entry>
28444dda7b2Smrg      <entry>n+2</entry>
28544dda7b2Smrg      <entry>
28644dda7b2SmrgThis is actually a CARD16 followed by
28744dda7b2Smrga collection of CARD8.  The value of the CARD16
28844dda7b2Smrgfield (n) specifies the number of CARD8 values to follow
28944dda7b2Smrg      </entry>
29044dda7b2Smrg    </row>
29144dda7b2Smrg    <row rowsep="0">
29244dda7b2Smrg      <entry>ARRAY16</entry>
29344dda7b2Smrg      <entry>2*m+1</entry>
29444dda7b2Smrg      <entry>
29544dda7b2SmrgThis is a CARD8 (m) which specifies the
29644dda7b2Smrgnumber of CARD16 values to follow
29744dda7b2Smrg      </entry>
29844dda7b2Smrg    </row>
29944dda7b2Smrg    <row rowsep="0">
30044dda7b2Smrg      <entry>ARRAY32</entry>
30144dda7b2Smrg      <entry>4*l+1</entry>
30244dda7b2Smrg      <entry>
30344dda7b2SmrgThis is a CARD8 (l) which specifies the
30444dda7b2Smrgnumber of CARD32 values to follow
30544dda7b2Smrg      </entry>
30644dda7b2Smrg    </row>
30744dda7b2Smrg    <row rowsep="0">
30844dda7b2Smrg      <entry>ARRAYofARRAY8</entry>
30944dda7b2Smrg      <entry>?</entry>
31044dda7b2Smrg      <entry>
31144dda7b2SmrgThis is a CARD8 which specifies the
31244dda7b2Smrgnumber of ARRAY8 values to follow.
31344dda7b2Smrg      </entry>
31444dda7b2Smrg    </row>
31544dda7b2Smrg  </tbody>
31644dda7b2Smrg  </tgroup>
31744dda7b2Smrg</informaltable>
31844dda7b2Smrg</sect1>
31944dda7b2Smrg
32044dda7b2Smrg<sect1 id="Packet_Format">
32144dda7b2Smrg<title>Packet Format</title>
32244dda7b2Smrg<!-- .XS -->
32344dda7b2Smrg<!-- (SN Packet Format -->
32444dda7b2Smrg<!-- .XE -->
32544dda7b2Smrg<para>
32644dda7b2SmrgAll XDMCP packets have the following information:
32744dda7b2Smrg</para>
32844dda7b2Smrg
32944dda7b2Smrg<informaltable frame="none">
33044dda7b2Smrg  <tgroup cols='3' align='left'>
33144dda7b2Smrg  <colspec colname='c1' colsep="0"/>
33244dda7b2Smrg  <colspec colname='c2' colsep="0"/>
33344dda7b2Smrg  <colspec colname='c3' colsep="0"/>
33444dda7b2Smrg  <thead>
33544dda7b2Smrg    <row>
33644dda7b2Smrg      <entry>Length (Bytes)</entry>
33744dda7b2Smrg      <entry>Field Type</entry>
33844dda7b2Smrg      <entry>Description</entry>
33944dda7b2Smrg    </row>
34044dda7b2Smrg  </thead>
34144dda7b2Smrg  <tbody>
34244dda7b2Smrg    <row rowsep="0">
34344dda7b2Smrg      <entry>2</entry>
34444dda7b2Smrg      <entry>CARD16</entry>
34544dda7b2Smrg      <entry>version number</entry>
34644dda7b2Smrg    </row>
34744dda7b2Smrg    <row rowsep="0">
34844dda7b2Smrg      <entry>2</entry>
34944dda7b2Smrg      <entry>CARD16</entry>
35044dda7b2Smrg      <entry>opcode packet header</entry>
35144dda7b2Smrg    </row>
35244dda7b2Smrg    <row rowsep="0">
35344dda7b2Smrg      <entry>2</entry>
35444dda7b2Smrg      <entry>CARD16</entry>
35544dda7b2Smrg      <entry>n = length of remaining data in bytes</entry>
35644dda7b2Smrg    </row>
35744dda7b2Smrg    <row rowsep="0">
35844dda7b2Smrg      <entry>n</entry>
35944dda7b2Smrg      <entry>???</entry>
36044dda7b2Smrg      <entry>packet-specific data</entry>
36144dda7b2Smrg    </row>
36244dda7b2Smrg  </tbody>
36344dda7b2Smrg  </tgroup>
36444dda7b2Smrg</informaltable>
36544dda7b2Smrg
36644dda7b2Smrg<para>
36744dda7b2Smrg<!-- .LP -->
36844dda7b2SmrgThe fields are as follows:
36944dda7b2Smrg</para>
37044dda7b2Smrg
37144dda7b2Smrg<variablelist>
37244dda7b2Smrg  <varlistentry>
37344dda7b2Smrg    <term>Version number</term>
37444dda7b2Smrg    <listitem>
37544dda7b2Smrg      <para>
37644dda7b2SmrgThis specifies the version of XDMCP that generated this packet in
37744dda7b2Smrgcase changes in this protocol are required.  Displays and
37844dda7b2Smrgmanagers may choose to support older versions for compatibility.
37944dda7b2SmrgThis field will initially be one (1).
38044dda7b2Smrg      </para>
38144dda7b2Smrg    </listitem>
38244dda7b2Smrg  </varlistentry>
38344dda7b2Smrg  <varlistentry>
38444dda7b2Smrg    <term>Opcode</term>
38544dda7b2Smrg    <listitem>
38644dda7b2Smrg      <para>
38744dda7b2SmrgThis specifies what step of the protocol this packet represents and should
38844dda7b2Smrgcontain one of the following values (encoding provided in section below):
38944dda7b2Smrg<emphasis role="bold">BroadcastQuery</emphasis>,
39044dda7b2Smrg<emphasis role="bold">Query</emphasis>,
39144dda7b2Smrg<emphasis role="bold">IndirectQuery</emphasis>,
39244dda7b2Smrg<emphasis role="bold">ForwardQuery</emphasis>,
39344dda7b2Smrg<emphasis role="bold">Willing</emphasis>,
39444dda7b2Smrg<emphasis role="bold">Unwilling</emphasis>,
39544dda7b2Smrg<emphasis role="bold">Request</emphasis>,
39644dda7b2Smrg<emphasis role="bold">Accept</emphasis>,
39744dda7b2Smrg<emphasis role="bold">Decline</emphasis>,
39844dda7b2Smrg<emphasis role="bold">Manage</emphasis>,
39944dda7b2Smrg<emphasis role="bold">Refuse</emphasis>,
40044dda7b2Smrg<emphasis role="bold">Failed</emphasis>,
40144dda7b2Smrg<emphasis role="bold">KeepAlive</emphasis>
40244dda7b2Smrgor
40344dda7b2Smrg<emphasis role="bold">Alive</emphasis>.
40444dda7b2Smrg      </para>
40544dda7b2Smrg    </listitem>
40644dda7b2Smrg  </varlistentry>
40744dda7b2Smrg  <varlistentry>
40844dda7b2Smrg    <term>Length of data in bytes</term>
40944dda7b2Smrg    <listitem>
41044dda7b2Smrg      <para>
41144dda7b2SmrgThis specifies the length of the information following the first 6 bytes.
41244dda7b2SmrgEach packet-type has a different format and will need to be separately
41344dda7b2Smrglength-checked against this value.  Because every data item has either an
41444dda7b2Smrgexplicit or implicit length, this can be easily accomplished.
41544dda7b2SmrgPackets that have too little or too much data should be ignored.
41644dda7b2Smrg      </para>
41744dda7b2Smrg    </listitem>
41844dda7b2Smrg  </varlistentry>
41944dda7b2Smrg</variablelist>
42044dda7b2Smrg<para>
42144dda7b2SmrgPackets should be checked to make sure that they satisfy the following
42244dda7b2Smrgconditions:
42344dda7b2Smrg</para>
42444dda7b2Smrg
42544dda7b2Smrg<orderedlist>
42644dda7b2Smrg  <listitem>
42744dda7b2Smrg    <para>
42844dda7b2SmrgThey must contain valid opcodes.
42944dda7b2Smrg    </para>
43044dda7b2Smrg  </listitem>
43144dda7b2Smrg  <listitem>
43244dda7b2Smrg    <para>
43344dda7b2SmrgThe length of the remaining data should correspond to the sum of the
43444dda7b2Smrglengths of the individual remaining data items.
43544dda7b2Smrg    </para>
43644dda7b2Smrg  </listitem>
43744dda7b2Smrg  <listitem>
43844dda7b2Smrg    <para>
43944dda7b2SmrgThe opcode should be expected (a finite state diagram is given
44044dda7b2Smrgin a later section).
44144dda7b2Smrg    </para>
44244dda7b2Smrg  </listitem>
44344dda7b2Smrg  <listitem>
44444dda7b2Smrg    <para>
44544dda7b2SmrgIf the packet is of type
44644dda7b2Smrg<emphasis role="bold">Manage</emphasis> or
44744dda7b2Smrg<emphasis role="bold">Refuse</emphasis>,
44844dda7b2Smrgthe Session ID should match the value sent in the preceding
44944dda7b2Smrg<emphasis role="bold">Accept</emphasis> packet.
45044dda7b2Smrg    </para>
45144dda7b2Smrg  </listitem>
45244dda7b2Smrg</orderedlist>
45344dda7b2Smrg</sect1>
45444dda7b2Smrg
45544dda7b2Smrg<sect1 id="Protocol">
45644dda7b2Smrg<title>Protocol</title>
45744dda7b2Smrg<!-- .XS -->
45844dda7b2Smrg<!-- (SN Protocol -->
45944dda7b2Smrg<!-- .XE -->
46044dda7b2Smrg<para>
46144dda7b2SmrgEach of the opcodes is described below.  Because a given packet type is only
46244dda7b2Smrgever sent one way, each packet description below indicates the direction.
46344dda7b2SmrgMost of the packets have additional information included beyond the
46444dda7b2Smrgdescription above.  The additional information is appended to the packet
46544dda7b2Smrgheader in the order described without padding, and the length field is
46644dda7b2Smrgcomputed accordingly.
46744dda7b2Smrg</para>
46844dda7b2Smrg
46944dda7b2Smrg<informaltable frame="none">
47044dda7b2Smrg  <tgroup cols='10' align='left'>
47144dda7b2Smrg  <colspec colname='col1' colsep="0" colwidth="1*"/>
47244dda7b2Smrg  <colspec colname='col2' colsep="0" colwidth="1*"/>
47344dda7b2Smrg  <colspec colname='col3' colsep="0" colwidth="1*"/>
47444dda7b2Smrg  <colspec colname='col4' colsep="0" colwidth="1*"/>
47544dda7b2Smrg  <colspec colname='col5' colsep="0" colwidth="1*"/>
47644dda7b2Smrg  <colspec colname='col6' colsep="0" colwidth="1*"/>
47744dda7b2Smrg  <colspec colname='col7' colsep="0" colwidth="1*"/>
47844dda7b2Smrg  <colspec colname='col8' colsep="0" colwidth="1*"/>
47944dda7b2Smrg  <colspec colname='col9' colsep="0" colwidth="1*"/>
48044dda7b2Smrg  <colspec colname='col10' colsep="0" colwidth="1*"/>
48144dda7b2Smrg  <spanspec namest="col1" nameend="col10" spanname="col1_on" align="left"/>
48244dda7b2Smrg  <spanspec namest="col2" nameend="col10" spanname="col2_on" align="left"/>
48344dda7b2Smrg  <spanspec namest="col3" nameend="col10" spanname="col3_on" align="left"/>
48444dda7b2Smrg  <spanspec namest="col4" nameend="col10" spanname="col4_on" align="left"/>
48544dda7b2Smrg  <spanspec namest="col5" nameend="col10" spanname="col5_on" align="left"/>
48644dda7b2Smrg  <tbody>
48744dda7b2Smrg    <row rowsep="0">
48844dda7b2Smrg      <entry spanname="col1_on"><emphasis role="bold">Query</emphasis></entry>
48944dda7b2Smrg    </row>
49044dda7b2Smrg    <row rowsep="0">
49144dda7b2Smrg      <entry spanname="col1_on"><emphasis role="bold">BroadcastQuery</emphasis></entry>
49244dda7b2Smrg    </row>
49344dda7b2Smrg    <row rowsep="0">
49444dda7b2Smrg      <entry spanname="col1_on"><emphasis role="bold">IndirectQuery</emphasis></entry>
49544dda7b2Smrg    </row>
49644dda7b2Smrg    <row rowsep="0">
49744dda7b2Smrg      <entry></entry>
49844dda7b2Smrg      <entry spanname="col2_on">Display -> Manager</entry>
49944dda7b2Smrg    </row>
50044dda7b2Smrg    <row rowsep="0">
50144dda7b2Smrg      <entry></entry>
50244dda7b2Smrg      <entry spanname="col2_on">Additional Fields:</entry>
50344dda7b2Smrg    </row>
50444dda7b2Smrg    <row rowsep="0">
50544dda7b2Smrg      <entry></entry>
50644dda7b2Smrg      <entry></entry>
50744dda7b2Smrg      <entry spanname="col3_on">
50844dda7b2Smrg<emphasis>Authentication Names</emphasis>: ARRAYofARRAY8
50944dda7b2Smrg      </entry>
51044dda7b2Smrg    </row>
51144dda7b2Smrg    <row rowsep="0">
51244dda7b2Smrg      <entry></entry>
51344dda7b2Smrg      <entry></entry>
51444dda7b2Smrg      <entry></entry>
51544dda7b2Smrg      <entry spanname="col4_on">
51644dda7b2SmrgSpecifies a list of authentication names that the display supports.  The
51744dda7b2Smrgmanager will choose one of these and return it in the
51844dda7b2Smrg<emphasis role="bold">Willing</emphasis> packet.
51944dda7b2Smrg      </entry>
52044dda7b2Smrg    </row>
52144dda7b2Smrg<!-- AAAAAAAAAAAAA -->
52244dda7b2Smrg    <row rowsep="0">
52344dda7b2Smrg      <entry></entry>
52444dda7b2Smrg      <entry></entry>
52544dda7b2Smrg      <entry>Semantics</entry>
52644dda7b2Smrg    </row>
52744dda7b2Smrg    <row rowsep="0">
52844dda7b2Smrg      <entry></entry>
52944dda7b2Smrg      <entry></entry>
53044dda7b2Smrg      <entry></entry>
53144dda7b2Smrg      <entry spanname="col4_on">
53244dda7b2Smrg<para>
53344dda7b2SmrgA <function>Query</function>
53444dda7b2Smrgpacket is sent from the display to a specific host to ask if
53544dda7b2Smrgthat host is willing to provide management services to this display.  The
53644dda7b2Smrghost should respond with
53744dda7b2Smrg<function>Willing</function>
53844dda7b2Smrgif it is willing to service the display or
53944dda7b2Smrg<function>Unwilling</function>
54044dda7b2Smrgif it is not.
54144dda7b2Smrg</para>
54244dda7b2Smrg
54344dda7b2Smrg<para>
54444dda7b2SmrgA
54544dda7b2Smrg<function>BroadcastQuery</function>
54644dda7b2Smrgpacket is similar to the
54744dda7b2Smrg<function>Query</function>
54844dda7b2Smrgpacket except that it is intended to be received by all hosts on the network
54944dda7b2Smrg(or subnetwork).  However, unlike
55044dda7b2Smrg<function>Query</function>
55144dda7b2Smrgrequests, hosts that are not willing to service the display
55244dda7b2Smrgshould simply ignore
55344dda7b2Smrg<function>BroadcastQuery</function>
55444dda7b2Smrgrequests.
55544dda7b2Smrg</para>
55644dda7b2Smrg
55744dda7b2Smrg<para>
55844dda7b2SmrgAn
55944dda7b2Smrg<function>IndirectQuery</function>
56044dda7b2Smrgpacket is sent to a well known manager that forwards
56144dda7b2Smrgthe request to a larger collection of secondary managers using
56244dda7b2Smrg<function>ForwardQuery</function>
56344dda7b2Smrgpackets.
56444dda7b2SmrgIn this way, the collection of managers that respond can be grouped
56544dda7b2Smrgon other than network boundaries; the use of a central manager reduces
56644dda7b2Smrgsystem administrative overhead.
56744dda7b2SmrgThe primary manager may also send a
56844dda7b2Smrg<function>Willing</function>
56944dda7b2Smrgpacket in response to this packet.
57044dda7b2Smrg</para>
57144dda7b2Smrg
57244dda7b2Smrg<para>
57344dda7b2SmrgEach packet type has slightly different semantics:
57444dda7b2Smrg</para>
57544dda7b2Smrg      </entry>
57644dda7b2Smrg    </row>
57744dda7b2Smrg    <row rowsep="0">
57844dda7b2Smrg      <entry></entry>
57944dda7b2Smrg      <entry></entry>
58044dda7b2Smrg      <entry></entry>
58144dda7b2Smrg      <entry></entry>
58244dda7b2Smrg      <entry spanname="col5_on">
58344dda7b2Smrg<para>
58444dda7b2SmrgThe
58544dda7b2Smrg<function>Query</function>
58644dda7b2Smrgpacket is destined only for a single host.
58744dda7b2SmrgIf the display is instructed to
58844dda7b2Smrg<function>Query</function>
58944dda7b2Smrgmultiple managers, it will send multiple
59044dda7b2Smrg<function>Query</function>
59144dda7b2Smrgpackets.  The
59244dda7b2Smrg<function>Query</function>
59344dda7b2Smrgpacket also demands a response from the manager, either
59444dda7b2Smrg<function>Willing</function>
59544dda7b2Smrgor
59644dda7b2Smrg<function>Unwilling</function>.
59744dda7b2Smrg    </para>
59844dda7b2Smrg    <para>
59944dda7b2SmrgThe
60044dda7b2Smrg<function>BroadcastQuery</function>
60144dda7b2Smrgpacket is sent to many hosts.
60244dda7b2SmrgEach manager that receives this packet will not respond with an
60344dda7b2Smrg<function>Unwilling</function>
60444dda7b2Smrgpacket.
60544dda7b2Smrg    </para>
60644dda7b2Smrg    <para>
60744dda7b2SmrgThe
60844dda7b2Smrg<function>IndirectQuery</function>
60944dda7b2Smrgpacket is sent to only one manager with the request
61044dda7b2Smrgthat the request be forwarded to a larger list of managers using
61144dda7b2Smrg<function>ForwardQuery</function>
61244dda7b2Smrgpackets.  This list is expected to be maintained at one
61344dda7b2Smrgcentral site to reduce administrative overhead.
61444dda7b2SmrgThe function of this packet type is similar to
61544dda7b2Smrg<function>BroadcastQuery except that</function>
61644dda7b2Smrg<function>BroadcastQuery</function>
61744dda7b2Smrgis not forwarded.
61844dda7b2Smrg    </para>
61944dda7b2Smrg      </entry>
62044dda7b2Smrg    </row>
62144dda7b2Smrg    <row rowsep="0">
62244dda7b2Smrg      <entry></entry>
62344dda7b2Smrg      <entry></entry>
62444dda7b2Smrg      <entry></entry>
62544dda7b2Smrg      <entry spanname="col4_on">Valid Responses:</entry>
62644dda7b2Smrg    </row>
62744dda7b2Smrg    <row rowsep="0">
62844dda7b2Smrg      <entry></entry>
62944dda7b2Smrg      <entry></entry>
63044dda7b2Smrg      <entry spanname="col3_on">
63144dda7b2Smrg<function>Willing</function>,
63244dda7b2Smrg<function>Unwilling</function>
63344dda7b2Smrg      </entry>
63444dda7b2Smrg    </row>
63544dda7b2Smrg    <row rowsep="0">
63644dda7b2Smrg      <entry></entry>
63744dda7b2Smrg      <entry></entry>
63844dda7b2Smrg      <entry></entry>
63944dda7b2Smrg      <entry spanname="col4_on">Problems/Solutions:</entry>
64044dda7b2Smrg    </row>
64144dda7b2Smrg    <row rowsep="0">
64244dda7b2Smrg      <entry></entry>
64344dda7b2Smrg      <entry></entry>
64444dda7b2Smrg      <entry spanname="col3_on">Problem:</entry>
64544dda7b2Smrg    </row>
64644dda7b2Smrg    <row rowsep="0">
64744dda7b2Smrg      <entry></entry>
64844dda7b2Smrg      <entry></entry>
64944dda7b2Smrg      <entry></entry>
65044dda7b2Smrg      <entry spanname="col4_on">
65144dda7b2Smrg<para>Not all managers receive the query packet.</para>
65244dda7b2Smrg<para>Indication:</para>
65344dda7b2Smrg      </entry>
65444dda7b2Smrg    </row>
65544dda7b2Smrg    <row rowsep="0">
65644dda7b2Smrg      <entry></entry>
65744dda7b2Smrg      <entry></entry>
65844dda7b2Smrg      <entry></entry>
65944dda7b2Smrg      <entry></entry>
66044dda7b2Smrg      <entry spanname="col5_on">
66144dda7b2SmrgNone if
66244dda7b2Smrg<function>BroadcastQuery</function>
66344dda7b2Smrgor
66444dda7b2Smrg<function>IndirectQuery</function>
66544dda7b2Smrgwas sent, else failure to receive
66644dda7b2Smrg<function>Willing</function>.
66744dda7b2Smrg      </entry>
66844dda7b2Smrg    </row>
66944dda7b2Smrg    <row rowsep="0">
67044dda7b2Smrg      <entry></entry>
67144dda7b2Smrg      <entry></entry>
67244dda7b2Smrg      <entry></entry>
67344dda7b2Smrg      <entry spanname="col4_on">Solution:</entry>
67444dda7b2Smrg    </row>
67544dda7b2Smrg    <row rowsep="0">
67644dda7b2Smrg      <entry></entry>
67744dda7b2Smrg      <entry></entry>
67844dda7b2Smrg      <entry></entry>
67944dda7b2Smrg      <entry></entry>
68044dda7b2Smrg      <entry spanname="col5_on">
68144dda7b2SmrgRepeatedly send the packet while waiting for user to choose a manager.
68244dda7b2Smrg      </entry>
68344dda7b2Smrg    </row>
68444dda7b2Smrg    <row rowsep="0">
68544dda7b2Smrg      <entry></entry>
68644dda7b2Smrg      <entry></entry>
68744dda7b2Smrg      <entry spanname="col3_on">
68844dda7b2SmrgTimeout/Retransmission policy:
68944dda7b2Smrg      </entry>
69044dda7b2Smrg    </row>
69144dda7b2Smrg    <row rowsep="0">
69244dda7b2Smrg      <entry></entry>
69344dda7b2Smrg      <entry></entry>
69444dda7b2Smrg      <entry></entry>
69544dda7b2Smrg      <entry spanname="col4_on">
69644dda7b2SmrgAn exponential backoff algorithm should be used here to reduce network load
69744dda7b2Smrgfor long-standing idle displays.  Start at 2 seconds, back off by factors of
69844dda7b2Smrg2 to 32 seconds, and discontinue retransmit after 126 seconds.  The display
69944dda7b2Smrgshould reset the timeout when user-input is detected.  In this way, the
70044dda7b2Smrgdisplay will wakeup when touched by the user.
70144dda7b2Smrg      </entry>
70244dda7b2Smrg    </row>
70344dda7b2Smrg    <row rowsep="0">
70444dda7b2Smrg      <entry spanname="col1_on">
70544dda7b2Smrg<function>ForwardQuery</function>
70644dda7b2Smrg      </entry>
70744dda7b2Smrg    </row>
70844dda7b2Smrg    <row rowsep="0">
70944dda7b2Smrg      <entry></entry>
71044dda7b2Smrg      <entry spanname="col2_on">
71144dda7b2Smrg<para>Primary Manager -&gt; Secondary Manager</para>
71244dda7b2Smrg<para>Additional Fields:</para>
71344dda7b2Smrg      </entry>
71444dda7b2Smrg    </row>
71544dda7b2Smrg    <row rowsep="0">
71644dda7b2Smrg      <entry></entry>
71744dda7b2Smrg      <entry></entry>
71844dda7b2Smrg      <entry spanname="col3_on">
71944dda7b2Smrg<emphasis remap='I'>Client Address</emphasis>: ARRAY8
72044dda7b2Smrg      </entry>
72144dda7b2Smrg    </row>
72244dda7b2Smrg    <row rowsep="0">
72344dda7b2Smrg      <entry></entry>
72444dda7b2Smrg      <entry></entry>
72544dda7b2Smrg      <entry></entry>
72644dda7b2Smrg      <entry spanname="col4_on">
72744dda7b2SmrgSpecifies the network address of the client display.
72844dda7b2Smrg      </entry>
72944dda7b2Smrg    </row>
73044dda7b2Smrg    <row rowsep="0">
73144dda7b2Smrg      <entry></entry>
73244dda7b2Smrg      <entry></entry>
73344dda7b2Smrg      <entry spanname="col3_on">
73444dda7b2Smrg<emphasis remap='I'>Client Port</emphasis>: ARRAY8
73544dda7b2Smrg      </entry>
73644dda7b2Smrg    </row>
73744dda7b2Smrg    <row rowsep="0">
73844dda7b2Smrg      <entry></entry>
73944dda7b2Smrg      <entry></entry>
74044dda7b2Smrg      <entry></entry>
74144dda7b2Smrg      <entry spanname="col4_on">
74244dda7b2SmrgSpecifies an identification of the client task on the client display.
74344dda7b2Smrg      </entry>
74444dda7b2Smrg    </row>
74544dda7b2Smrg    <row rowsep="0">
74644dda7b2Smrg      <entry></entry>
74744dda7b2Smrg      <entry></entry>
74844dda7b2Smrg      <entry spanname="col3_on">
74944dda7b2Smrg<emphasis remap='I'>Authentication Names</emphasis>: ARRAYofARRAY8
75044dda7b2Smrg      </entry>
75144dda7b2Smrg    </row>
75244dda7b2Smrg    <row rowsep="0">
75344dda7b2Smrg      <entry></entry>
75444dda7b2Smrg      <entry></entry>
75544dda7b2Smrg      <entry></entry>
75644dda7b2Smrg      <entry spanname="col4_on">
75744dda7b2SmrgIs a duplicate of Authentication Names array that was received
75844dda7b2Smrgin the
75944dda7b2Smrg<function>IndirectQuery</function>
76044dda7b2Smrgpacket.
76144dda7b2Smrg      </entry>
76244dda7b2Smrg    </row>
76344dda7b2Smrg    <row rowsep="0">
76444dda7b2Smrg      <entry></entry>
76544dda7b2Smrg      <entry spanname="col2_on">
76644dda7b2SmrgSemantics:
76744dda7b2Smrg      </entry>
76844dda7b2Smrg    </row>
76944dda7b2Smrg    <row rowsep="0">
77044dda7b2Smrg      <entry></entry>
77144dda7b2Smrg      <entry></entry>
77244dda7b2Smrg      <entry spanname="col3_on">
77344dda7b2Smrg        <para>
77444dda7b2SmrgWhen primary manager receives a
77544dda7b2Smrg<function>IndirectQuery</function>
77644dda7b2Smrgpacket, it is responsible for sending
77744dda7b2Smrg<function>ForwardQuery</function>
77844dda7b2Smrgpackets to an appropriate list of
77944dda7b2Smrgmanagers that can provide service to the display using the same network
78044dda7b2Smrgtype as the one the original
78144dda7b2Smrg<function>IndirectQuery</function>
78244dda7b2Smrgpacket was received from.
78344dda7b2SmrgThe Client Address and Client Port fields must contain an
78444dda7b2Smrgaddress that the secondary manager can use to reach the display also using
78544dda7b2Smrgthis same network.  Each secondary manager sends a
78644dda7b2Smrg<function>Willing</function>
78744dda7b2Smrgpacket to the display if it is willing to provide service.
78844dda7b2Smrg        </para>
78944dda7b2Smrg
79044dda7b2Smrg        <para>
79144dda7b2Smrg<function>ForwardQuery</function>
79244dda7b2Smrgpackets are similar to
79344dda7b2Smrg<function>BroadcastQuery</function>
79444dda7b2Smrgpackets in that managers that are not willing to service
79544dda7b2Smrgparticular displays should not send a
79644dda7b2Smrg<function>Unwilling</function>
79744dda7b2Smrgpacket.
79844dda7b2Smrg        </para>
79944dda7b2Smrg      </entry>
80044dda7b2Smrg    </row>
80144dda7b2Smrg    <row rowsep="0">
80244dda7b2Smrg      <entry></entry>
80344dda7b2Smrg      <entry spanname="col2_on">
80444dda7b2SmrgValid Responses:
80544dda7b2Smrg      </entry>
80644dda7b2Smrg    </row>
80744dda7b2Smrg
80844dda7b2Smrg    <row rowsep="0">
80944dda7b2Smrg      <entry></entry>
81044dda7b2Smrg      <entry></entry>
81144dda7b2Smrg      <entry spanname="col3_on">
81244dda7b2Smrg<function>Willing</function>
81344dda7b2Smrg      </entry>
81444dda7b2Smrg    </row>
81544dda7b2Smrg    <row rowsep="0">
81644dda7b2Smrg      <entry></entry>
81744dda7b2Smrg      <entry spanname="col2_on">
81844dda7b2SmrgProblems/Solutions:
81944dda7b2Smrg      </entry>
82044dda7b2Smrg    </row>
82144dda7b2Smrg    <row rowsep="0">
82244dda7b2Smrg      <entry></entry>
82344dda7b2Smrg      <entry></entry>
82444dda7b2Smrg      <entry spanname="col3_on">
82544dda7b2SmrgIdentical to
82644dda7b2Smrg<function>BroadcastQuery</function>
82744dda7b2Smrg      </entry>
82844dda7b2Smrg    </row>
82944dda7b2Smrg    <row rowsep="0">
83044dda7b2Smrg      <entry></entry>
83144dda7b2Smrg      <entry spanname="col2_on">
83244dda7b2SmrgTimeout/Retransmission policy:
83344dda7b2Smrg      </entry>
83444dda7b2Smrg    </row>
83544dda7b2Smrg    <row rowsep="0">
83644dda7b2Smrg      <entry></entry>
83744dda7b2Smrg      <entry></entry>
83844dda7b2Smrg      <entry spanname="col3_on">
83944dda7b2SmrgLike all packets sent from a manager, this packet should never be
84044dda7b2Smrgretransmitted.
84144dda7b2Smrg      </entry>
84244dda7b2Smrg    </row>
84344dda7b2Smrg
84444dda7b2Smrg    <row rowsep="0">
84544dda7b2Smrg      <entry spanname="col1_on">
84644dda7b2Smrg<function>Willing</function>
84744dda7b2Smrg      </entry>
84844dda7b2Smrg    </row>
84944dda7b2Smrg
85044dda7b2Smrg    <row rowsep="0">
85144dda7b2Smrg      <entry></entry>
85244dda7b2Smrg      <entry spanname="col2_on">
85344dda7b2Smrg        <para>
85444dda7b2SmrgManager -&gt; Display
85544dda7b2Smrg        </para>
85644dda7b2Smrg        <para>
85744dda7b2SmrgAdditional Fields:
85844dda7b2Smrg        </para>
85944dda7b2Smrg      </entry>
86044dda7b2Smrg    </row>
86144dda7b2Smrg
86244dda7b2Smrg    <row rowsep="0">
86344dda7b2Smrg      <entry></entry>
86444dda7b2Smrg      <entry></entry>
86544dda7b2Smrg      <entry spanname="col3_on">
86644dda7b2Smrg<emphasis remap='I'>Authentication Name</emphasis>: ARRAY8
86744dda7b2Smrg      </entry>
86844dda7b2Smrg    </row>
86944dda7b2Smrg
87044dda7b2Smrg    <row rowsep="0">
87144dda7b2Smrg      <entry></entry>
87244dda7b2Smrg      <entry></entry>
87344dda7b2Smrg      <entry></entry>
87444dda7b2Smrg      <entry spanname="col4_on">
87544dda7b2Smrg<para>
87644dda7b2SmrgSpecifies the authentication method, selected from the list offered in the
87744dda7b2Smrg<function>Query ,</function>
87844dda7b2Smrg<function>BroadcastQuery ,</function>
87944dda7b2Smrgor
88044dda7b2Smrg<function>IndirectQuery</function>
88144dda7b2Smrgpacket that the manger expects the display to use in the subsequent
88244dda7b2Smrg<function>Request</function>
88344dda7b2Smrgpacket.
88444dda7b2SmrgThis choice should remain as constant as feasible so that displays that
88544dda7b2Smrgsend multiple
88644dda7b2Smrg<function>Query</function>
88744dda7b2Smrgpackets can use the Authentication Name from any
88844dda7b2Smrg<function>Willing</function>
88944dda7b2Smrgpacket that arrives.
89044dda7b2Smrg</para>
89144dda7b2Smrg<para>
89244dda7b2SmrgThe display is free to ignore managers that request an insufficient level
89344dda7b2Smrgof authentication.
89444dda7b2Smrg</para>
89544dda7b2Smrg      </entry>
89644dda7b2Smrg    </row>
89744dda7b2Smrg
89844dda7b2Smrg    <row rowsep="0">
89944dda7b2Smrg      <entry></entry>
90044dda7b2Smrg      <entry></entry>
90144dda7b2Smrg      <entry spanname="col3_on">
90244dda7b2Smrg<emphasis remap='I'>Hostname</emphasis>: ARRAY8
90344dda7b2Smrg      </entry>
90444dda7b2Smrg    </row>
90544dda7b2Smrg
90644dda7b2Smrg    <row rowsep="0">
90744dda7b2Smrg      <entry></entry>
90844dda7b2Smrg      <entry></entry>
90944dda7b2Smrg      <entry></entry>
91044dda7b2Smrg      <entry spanname="col4_on">
91144dda7b2SmrgIs a human readable string describing the host from which the packet was sent.
91244dda7b2SmrgThe protocol specifies no interpretation of the data in this field.
91344dda7b2Smrg      </entry>
91444dda7b2Smrg    </row>
91544dda7b2Smrg
91644dda7b2Smrg    <row rowsep="0">
91744dda7b2Smrg      <entry></entry>
91844dda7b2Smrg      <entry></entry>
91944dda7b2Smrg      <entry spanname="col3_on">
92044dda7b2Smrg<emphasis remap='I'>Status</emphasis>: ARRAY8
92144dda7b2Smrg      </entry>
92244dda7b2Smrg    </row>
92344dda7b2Smrg
92444dda7b2Smrg    <row rowsep="0">
92544dda7b2Smrg      <entry></entry>
92644dda7b2Smrg      <entry></entry>
92744dda7b2Smrg      <entry></entry>
92844dda7b2Smrg      <entry spanname="col4_on">
92944dda7b2SmrgIs a human readable string describing the status of the host.  This could
93044dda7b2Smrginclude load average/number of users connected or other information.  The
93144dda7b2Smrgprotocol specifies no interpretation of the data in this field.
93244dda7b2Smrg      </entry>
93344dda7b2Smrg    </row>
93444dda7b2Smrg
93544dda7b2Smrg
93644dda7b2Smrg    <row rowsep="0">
93744dda7b2Smrg      <entry></entry>
93844dda7b2Smrg      <entry spanname="col2_on">
93944dda7b2SmrgSemantics:
94044dda7b2Smrg      </entry>
94144dda7b2Smrg    </row>
94244dda7b2Smrg
94344dda7b2Smrg    <row rowsep="0">
94444dda7b2Smrg      <entry></entry>
94544dda7b2Smrg      <entry></entry>
94644dda7b2Smrg      <entry spanname="col3_on">
94744dda7b2SmrgA
94844dda7b2Smrg<function>Willing</function>
94944dda7b2Smrgpacket is sent by managers that may service connections from
95044dda7b2Smrgthis display.  It is sent in response to either a
95144dda7b2Smrg<function>Query ,</function>
95244dda7b2Smrg<function>BroadcastQuery ,</function>
95344dda7b2Smrgor
95444dda7b2Smrg<function>ForwardQuery</function>
95544dda7b2Smrgbut does not imply a commitment to provide service
95644dda7b2Smrg(for example, it may later decide that it has accepted enough
95744dda7b2Smrgconnections already).
95844dda7b2Smrg      </entry>
95944dda7b2Smrg    </row>
96044dda7b2Smrg
96144dda7b2Smrg    <row rowsep="0">
96244dda7b2Smrg      <entry></entry>
96344dda7b2Smrg      <entry spanname="col2_on">
96444dda7b2SmrgProblems/Solutions:
96544dda7b2Smrg      </entry>
96644dda7b2Smrg    </row>
96744dda7b2Smrg
96844dda7b2Smrg    <row rowsep="0">
96944dda7b2Smrg      <entry></entry>
97044dda7b2Smrg      <entry></entry>
97144dda7b2Smrg      <entry spanname="col3_on">
97244dda7b2SmrgProblem:
97344dda7b2Smrg      </entry>
97444dda7b2Smrg    </row>
97544dda7b2Smrg
97644dda7b2Smrg    <row rowsep="0">
97744dda7b2Smrg      <entry></entry>
97844dda7b2Smrg      <entry></entry>
97944dda7b2Smrg      <entry></entry>
98044dda7b2Smrg      <entry spanname="col4_on">
98144dda7b2Smrg<para>
98244dda7b2Smrg<function>Willing</function>
98344dda7b2Smrgnot received by the display.
98444dda7b2Smrg</para>
98544dda7b2Smrg<para>
98644dda7b2SmrgIndication:
98744dda7b2Smrg</para>
98844dda7b2Smrg      </entry>
98944dda7b2Smrg    </row>
99044dda7b2Smrg
99144dda7b2Smrg    <row rowsep="0">
99244dda7b2Smrg      <entry></entry>
99344dda7b2Smrg      <entry></entry>
99444dda7b2Smrg      <entry></entry>
99544dda7b2Smrg      <entry></entry>
99644dda7b2Smrg      <entry spanname="col5_on">
99744dda7b2SmrgNone if
99844dda7b2Smrg<function>BroadcastQuery</function>
99944dda7b2Smrgor
100044dda7b2Smrg<function>IndirectQuery</function>
100144dda7b2Smrgwas sent, else failure to receive
100244dda7b2Smrg<function>Willing .</function>
100344dda7b2Smrg      </entry>
100444dda7b2Smrg    </row>
100544dda7b2Smrg
100644dda7b2Smrg    <row rowsep="0">
100744dda7b2Smrg      <entry></entry>
100844dda7b2Smrg      <entry></entry>
100944dda7b2Smrg      <entry></entry>
101044dda7b2Smrg      <entry spanname="col4_on">
101144dda7b2SmrgSolution:
101244dda7b2Smrg      </entry>
101344dda7b2Smrg    </row>
101444dda7b2Smrg
101544dda7b2Smrg    <row rowsep="0">
101644dda7b2Smrg      <entry></entry>
101744dda7b2Smrg      <entry></entry>
101844dda7b2Smrg      <entry></entry>
101944dda7b2Smrg      <entry></entry>
102044dda7b2Smrg      <entry spanname="col5_on">
102144dda7b2SmrgThe display should continue to send the query until a response is received.
102244dda7b2Smrg      </entry>
102344dda7b2Smrg    </row>
102444dda7b2Smrg
102544dda7b2Smrg
102644dda7b2Smrg
102744dda7b2Smrg    <row rowsep="0">
102844dda7b2Smrg      <entry></entry>
102944dda7b2Smrg      <entry spanname="col2_on">
103044dda7b2SmrgTimeout/Retransmission policy:
103144dda7b2Smrg      </entry>
103244dda7b2Smrg    </row>
103344dda7b2Smrg
103444dda7b2Smrg    <row rowsep="0">
103544dda7b2Smrg      <entry></entry>
103644dda7b2Smrg      <entry></entry>
103744dda7b2Smrg      <entry spanname="col3_on">
103844dda7b2SmrgLike all packets sent from the manager to the display, this packet should
103944dda7b2Smrgnever be retransmitted.
104044dda7b2Smrg      </entry>
104144dda7b2Smrg    </row>
104244dda7b2Smrg
104344dda7b2Smrg    <row rowsep="0">
104444dda7b2Smrg      <entry spanname="col1_on">
104544dda7b2Smrg<function>Unwilling</function>
104644dda7b2Smrg      </entry>
104744dda7b2Smrg    </row>
104844dda7b2Smrg
104944dda7b2Smrg    <row rowsep="0">
105044dda7b2Smrg      <entry></entry>
105144dda7b2Smrg      <entry spanname="col2_on">
105244dda7b2Smrg        <para>
105344dda7b2SmrgManager -&gt; Display
105444dda7b2Smrg        </para>
105544dda7b2Smrg        <para>
105644dda7b2SmrgAdditional Fields:
105744dda7b2Smrg        </para>
105844dda7b2Smrg      </entry>
105944dda7b2Smrg    </row>
106044dda7b2Smrg
106144dda7b2Smrg    <row rowsep="0">
106244dda7b2Smrg      <entry></entry>
106344dda7b2Smrg      <entry></entry>
106444dda7b2Smrg      <entry spanname="col3_on">
106544dda7b2SmrgThe Hostname and Status fields as in the
106644dda7b2Smrg<function>Willing</function>
106744dda7b2Smrgpacket.
106844dda7b2SmrgThe Status field should indicate to the user a reason
106944dda7b2Smrgfor the refusal of service.
107044dda7b2Smrg      </entry>
107144dda7b2Smrg    </row>
107244dda7b2Smrg
107344dda7b2Smrg    <row rowsep="0">
107444dda7b2Smrg      <entry></entry>
107544dda7b2Smrg      <entry spanname="col2_on">
107644dda7b2SmrgSemantics:
107744dda7b2Smrg      </entry>
107844dda7b2Smrg    </row>
107944dda7b2Smrg
108044dda7b2Smrg    <row rowsep="0">
108144dda7b2Smrg      <entry></entry>
108244dda7b2Smrg      <entry></entry>
108344dda7b2Smrg      <entry spanname="col3_on">
108444dda7b2SmrgAn
108544dda7b2Smrg<function>Unwilling</function>
108644dda7b2Smrgpacket is sent by managers in response to direct
108744dda7b2Smrg<function>Query</function>
108844dda7b2Smrgrequests (as opposed to
108944dda7b2Smrg<function>BroadcastQuery</function>
109044dda7b2Smrgor
109144dda7b2Smrg<function>IndirectQuery</function>
109244dda7b2Smrgrequests) if the manager will not accept requests for management.
109344dda7b2SmrgThis is typically sent by managers that wish to only service
109444dda7b2Smrgparticular displays or that handle a limited number of displays at once.
109544dda7b2Smrg      </entry>
109644dda7b2Smrg    </row>
109744dda7b2Smrg
109844dda7b2Smrg    <row rowsep="0">
109944dda7b2Smrg      <entry></entry>
110044dda7b2Smrg      <entry spanname="col2_on">
110144dda7b2SmrgProblems/Solutions:
110244dda7b2Smrg      </entry>
110344dda7b2Smrg    </row>
110444dda7b2Smrg
110544dda7b2Smrg    <row rowsep="0">
110644dda7b2Smrg      <entry></entry>
110744dda7b2Smrg      <entry></entry>
110844dda7b2Smrg      <entry spanname="col3_on">
110944dda7b2SmrgProblem:
111044dda7b2Smrg      </entry>
111144dda7b2Smrg    </row>
111244dda7b2Smrg
111344dda7b2Smrg    <row rowsep="0">
111444dda7b2Smrg      <entry></entry>
111544dda7b2Smrg      <entry></entry>
111644dda7b2Smrg      <entry></entry>
111744dda7b2Smrg      <entry spanname="col4_on">
111844dda7b2Smrg<para>
111944dda7b2Smrg<function>Unwilling</function>
112044dda7b2Smrgnot received by the display.
112144dda7b2Smrg</para>
112244dda7b2Smrg<para>
112344dda7b2SmrgIndication:
112444dda7b2Smrg</para>
112544dda7b2Smrg      </entry>
112644dda7b2Smrg    </row>
112744dda7b2Smrg
112844dda7b2Smrg    <row rowsep="0">
112944dda7b2Smrg      <entry></entry>
113044dda7b2Smrg      <entry></entry>
113144dda7b2Smrg      <entry></entry>
113244dda7b2Smrg      <entry></entry>
113344dda7b2Smrg      <entry spanname="col5_on">
113444dda7b2SmrgDisplay fails to receive
113544dda7b2Smrg<function>Unwilling .</function>
113644dda7b2Smrg      </entry>
113744dda7b2Smrg    </row>
113844dda7b2Smrg
113944dda7b2Smrg    <row rowsep="0">
114044dda7b2Smrg      <entry></entry>
114144dda7b2Smrg      <entry></entry>
114244dda7b2Smrg      <entry></entry>
114344dda7b2Smrg      <entry spanname="col4_on">
114444dda7b2SmrgSolution:
114544dda7b2Smrg      </entry>
114644dda7b2Smrg    </row>
114744dda7b2Smrg
114844dda7b2Smrg    <row rowsep="0">
114944dda7b2Smrg      <entry></entry>
115044dda7b2Smrg      <entry></entry>
115144dda7b2Smrg      <entry></entry>
115244dda7b2Smrg      <entry></entry>
115344dda7b2Smrg      <entry spanname="col5_on">
115444dda7b2SmrgThe display should continue to send
115544dda7b2Smrg<function>Query</function>
115644dda7b2Smrgmessages until a response is received.
115744dda7b2Smrg      </entry>
115844dda7b2Smrg    </row>
115944dda7b2Smrg
116044dda7b2Smrg    <row rowsep="0">
116144dda7b2Smrg      <entry></entry>
116244dda7b2Smrg      <entry spanname="col2_on">
116344dda7b2SmrgTimeout/Retransmission policy:
116444dda7b2Smrg      </entry>
116544dda7b2Smrg    </row>
116644dda7b2Smrg
116744dda7b2Smrg    <row rowsep="0">
116844dda7b2Smrg      <entry></entry>
116944dda7b2Smrg      <entry></entry>
117044dda7b2Smrg      <entry spanname="col3_on">
117144dda7b2SmrgLike all packets sent from the manager to the display, this packet should
117244dda7b2Smrgnever be retransmitted.
117344dda7b2Smrg      </entry>
117444dda7b2Smrg    </row>
117544dda7b2Smrg    <row rowsep="0">
117644dda7b2Smrg      <entry spanname="col1_on">
117744dda7b2Smrg<function>Request</function>
117844dda7b2Smrg      </entry>
117944dda7b2Smrg    </row>
118044dda7b2Smrg
118144dda7b2Smrg    <row rowsep="0">
118244dda7b2Smrg      <entry></entry>
118344dda7b2Smrg      <entry spanname="col2_on">
118444dda7b2Smrg        <para>
118544dda7b2SmrgDisplay -&gt; Manager
118644dda7b2Smrg        </para>
118744dda7b2Smrg        <para>
118844dda7b2SmrgAdditional Fields:
118944dda7b2Smrg        </para>
119044dda7b2Smrg      </entry>
119144dda7b2Smrg    </row>
119244dda7b2Smrg
119344dda7b2Smrg    <row rowsep="0">
119444dda7b2Smrg      <entry></entry>
119544dda7b2Smrg      <entry></entry>
119644dda7b2Smrg      <entry spanname="col3_on">
119744dda7b2Smrg<emphasis remap='I'>Display Number</emphasis>: CARD16
119844dda7b2Smrg      </entry>
119944dda7b2Smrg    </row>
120044dda7b2Smrg
120144dda7b2Smrg    <row rowsep="0">
120244dda7b2Smrg      <entry></entry>
120344dda7b2Smrg      <entry></entry>
120444dda7b2Smrg      <entry></entry>
120544dda7b2Smrg      <entry spanname="col4_on">
120644dda7b2SmrgSpecifies the index of this particular server for the host
120744dda7b2Smrgon which the display is resident.
120844dda7b2SmrgThis value will be zero for most autonomous displays.
120944dda7b2Smrg      </entry>
121044dda7b2Smrg    </row>
121144dda7b2Smrg
121244dda7b2Smrg    <row rowsep="0">
121344dda7b2Smrg      <entry></entry>
121444dda7b2Smrg      <entry></entry>
121544dda7b2Smrg      <entry spanname="col3_on">
121644dda7b2Smrg<emphasis remap='I'>Connection Types</emphasis>: ARRAY16
121744dda7b2Smrg      </entry>
121844dda7b2Smrg    </row>
121944dda7b2Smrg
122044dda7b2Smrg    <row rowsep="0">
122144dda7b2Smrg      <entry></entry>
122244dda7b2Smrg      <entry></entry>
122344dda7b2Smrg      <entry></entry>
122444dda7b2Smrg      <entry spanname="col4_on">
122544dda7b2SmrgSpecifies an array indicating the stream services accepted by the display.
122644dda7b2SmrgIf the high-order byte in a particular entry is zero, the low-order byte
122744dda7b2Smrgcorresponds to an X-protocol host family type.
122844dda7b2Smrg      </entry>
122944dda7b2Smrg    </row>
123044dda7b2Smrg
123144dda7b2Smrg    <row rowsep="0">
123244dda7b2Smrg      <entry></entry>
123344dda7b2Smrg      <entry></entry>
123444dda7b2Smrg      <entry spanname="col3_on">
123544dda7b2Smrg<emphasis remap='I'>Connection Addresses</emphasis>: ARRAYofARRAY8
123644dda7b2Smrg      </entry>
123744dda7b2Smrg    </row>
123844dda7b2Smrg
123944dda7b2Smrg    <row rowsep="0">
124044dda7b2Smrg      <entry></entry>
124144dda7b2Smrg      <entry></entry>
124244dda7b2Smrg      <entry></entry>
124344dda7b2Smrg      <entry spanname="col4_on">
124444dda7b2SmrgFor each connection type in the previous array, the corresponding entry in
124544dda7b2Smrgthis array indicates the network address of the display device.
124644dda7b2Smrg      </entry>
124744dda7b2Smrg    </row>
124844dda7b2Smrg
124944dda7b2Smrg    <row rowsep="0">
125044dda7b2Smrg      <entry></entry>
125144dda7b2Smrg      <entry></entry>
125244dda7b2Smrg      <entry spanname="col3_on">
125344dda7b2Smrg        <para>
125444dda7b2Smrg<emphasis remap='I'>Authentication Name</emphasis>: ARRAY8
125544dda7b2Smrg        </para>
125644dda7b2Smrg        <para>
125744dda7b2Smrg<emphasis remap='I'>Authentication Data</emphasis>: ARRAY8
125844dda7b2Smrg        </para>
125944dda7b2Smrg      </entry>
126044dda7b2Smrg    </row>
126144dda7b2Smrg
126244dda7b2Smrg    <row rowsep="0">
126344dda7b2Smrg      <entry></entry>
126444dda7b2Smrg      <entry></entry>
126544dda7b2Smrg      <entry></entry>
126644dda7b2Smrg      <entry spanname="col4_on">
126744dda7b2SmrgSpecifies the authentication protocol that the display expects
126844dda7b2Smrgthe manager to validate itself with.  The Authentication Data is
126944dda7b2Smrgexpected to contain data that the manager will interpret, modify
127044dda7b2Smrgand use to authenticate itself.
127144dda7b2Smrg      </entry>
127244dda7b2Smrg    </row>
127344dda7b2Smrg
127444dda7b2Smrg    <row rowsep="0">
127544dda7b2Smrg      <entry></entry>
127644dda7b2Smrg      <entry></entry>
127744dda7b2Smrg      <entry spanname="col3_on">
127844dda7b2Smrg<emphasis remap='I'>Authorization Names</emphasis>: ARRAYofARRAY8
127944dda7b2Smrg      </entry>
128044dda7b2Smrg    </row>
128144dda7b2Smrg
128244dda7b2Smrg    <row rowsep="0">
128344dda7b2Smrg      <entry></entry>
128444dda7b2Smrg      <entry></entry>
128544dda7b2Smrg      <entry></entry>
128644dda7b2Smrg      <entry spanname="col4_on">
128744dda7b2SmrgSpecifies which types of authorization the display supports.  The
128844dda7b2Smrgmanager may decide to reject displays with which it cannot perform
128944dda7b2Smrgauthorization.
129044dda7b2Smrg      </entry>
129144dda7b2Smrg    </row>
129244dda7b2Smrg
129344dda7b2Smrg    <row rowsep="0">
129444dda7b2Smrg      <entry></entry>
129544dda7b2Smrg      <entry></entry>
129644dda7b2Smrg      <entry spanname="col3_on">
129744dda7b2Smrg<emphasis remap='I'>Manufacturer Display ID</emphasis>: ARRAY8
129844dda7b2Smrg      </entry>
129944dda7b2Smrg    </row>
130044dda7b2Smrg
130144dda7b2Smrg    <row rowsep="0">
130244dda7b2Smrg      <entry></entry>
130344dda7b2Smrg      <entry></entry>
130444dda7b2Smrg      <entry></entry>
130544dda7b2Smrg      <entry spanname="col4_on">
130644dda7b2SmrgCan be used by the manager to determine how to decrypt the
130744dda7b2SmrgAuthentication Data field in this packet.  See the section below on
130844dda7b2SmrgManufacturer Display ID Format.
130944dda7b2Smrg      </entry>
131044dda7b2Smrg    </row>
131144dda7b2Smrg
131244dda7b2Smrg    <row rowsep="0">
131344dda7b2Smrg      <entry></entry>
131444dda7b2Smrg      <entry spanname="col2_on">
131544dda7b2SmrgSemantics:
131644dda7b2Smrg      </entry>
131744dda7b2Smrg    </row>
131844dda7b2Smrg
131944dda7b2Smrg    <row rowsep="0">
132044dda7b2Smrg      <entry></entry>
132144dda7b2Smrg      <entry></entry>
132244dda7b2Smrg      <entry spanname="col3_on">
132344dda7b2SmrgA
132444dda7b2Smrg<function>Request</function>
132544dda7b2Smrgpacket is sent by a display to a specific host to request a
132644dda7b2Smrgsession ID in preparation for a establishing a connection.  If the manager
132744dda7b2Smrgis willing to service a connection to this display, it should return an
132844dda7b2Smrg<function>Accept</function>
132944dda7b2Smrgpacket with a valid session ID and should be ready for a subsequent
133044dda7b2Smrg<function>Manage</function>
133144dda7b2Smrgrequest.  Otherwise, it should return a
133244dda7b2Smrg<function>Decline</function>
133344dda7b2Smrgpacket.
133444dda7b2Smrg      </entry>
133544dda7b2Smrg    </row>
133644dda7b2Smrg
133744dda7b2Smrg    <row rowsep="0">
133844dda7b2Smrg      <entry></entry>
133944dda7b2Smrg      <entry spanname="col2_on">
134044dda7b2SmrgValid Responses:
134144dda7b2Smrg      </entry>
134244dda7b2Smrg    </row>
134344dda7b2Smrg
134444dda7b2Smrg    <row rowsep="0">
134544dda7b2Smrg      <entry></entry>
134644dda7b2Smrg      <entry></entry>
134744dda7b2Smrg      <entry spanname="col3_on">
134844dda7b2Smrg<function>Accept ,</function>
134944dda7b2Smrg<function>Decline</function>
135044dda7b2Smrg      </entry>
135144dda7b2Smrg    </row>
135244dda7b2Smrg
135344dda7b2Smrg    <row rowsep="0">
135444dda7b2Smrg      <entry></entry>
135544dda7b2Smrg      <entry spanname="col2_on">
135644dda7b2SmrgProblems/Solutions:
135744dda7b2Smrg      </entry>
135844dda7b2Smrg    </row>
135944dda7b2Smrg
136044dda7b2Smrg    <row rowsep="0">
136144dda7b2Smrg      <entry></entry>
136244dda7b2Smrg      <entry></entry>
136344dda7b2Smrg      <entry spanname="col3_on">
136444dda7b2SmrgProblem:
136544dda7b2Smrg      </entry>
136644dda7b2Smrg    </row>
136744dda7b2Smrg
136844dda7b2Smrg    <row rowsep="0">
136944dda7b2Smrg      <entry></entry>
137044dda7b2Smrg      <entry></entry>
137144dda7b2Smrg      <entry></entry>
137244dda7b2Smrg      <entry spanname="col4_on">
137344dda7b2SmrgRequest not received by manager.
137444dda7b2Smrg      </entry>
137544dda7b2Smrg    </row>
137644dda7b2Smrg
137744dda7b2Smrg    <row rowsep="0">
137844dda7b2Smrg      <entry></entry>
137944dda7b2Smrg      <entry></entry>
138044dda7b2Smrg      <entry></entry>
138144dda7b2Smrg      <entry spanname="col4_on">
138244dda7b2SmrgIndication:
138344dda7b2Smrg      </entry>
138444dda7b2Smrg    </row>
138544dda7b2Smrg
138644dda7b2Smrg    <row rowsep="0">
138744dda7b2Smrg      <entry></entry>
138844dda7b2Smrg      <entry></entry>
138944dda7b2Smrg      <entry></entry>
139044dda7b2Smrg      <entry></entry>
139144dda7b2Smrg      <entry spanname="col5_on">
139244dda7b2SmrgDisplay timeout waiting for response.
139344dda7b2Smrg      </entry>
139444dda7b2Smrg    </row>
139544dda7b2Smrg
139644dda7b2Smrg    <row rowsep="0">
139744dda7b2Smrg      <entry></entry>
139844dda7b2Smrg      <entry></entry>
139944dda7b2Smrg      <entry></entry>
140044dda7b2Smrg      <entry spanname="col4_on">
140144dda7b2SmrgSolution:
140244dda7b2Smrg      </entry>
140344dda7b2Smrg    </row>
140444dda7b2Smrg
140544dda7b2Smrg    <row rowsep="0">
140644dda7b2Smrg      <entry></entry>
140744dda7b2Smrg      <entry></entry>
140844dda7b2Smrg      <entry></entry>
140944dda7b2Smrg      <entry></entry>
141044dda7b2Smrg      <entry spanname="col5_on">
141144dda7b2SmrgDisplay resends
141244dda7b2Smrg<function>Request</function>
141344dda7b2Smrgmessage.
141444dda7b2Smrg      </entry>
141544dda7b2Smrg    </row>
141644dda7b2Smrg
141744dda7b2Smrg
141844dda7b2Smrg    <row rowsep="0">
141944dda7b2Smrg      <entry></entry>
142044dda7b2Smrg      <entry></entry>
142144dda7b2Smrg      <entry></entry>
142244dda7b2Smrg      <entry spanname="col4_on">
142344dda7b2SmrgProblem:
142444dda7b2Smrg      </entry>
142544dda7b2Smrg    </row>
142644dda7b2Smrg
142744dda7b2Smrg    <row rowsep="0">
142844dda7b2Smrg      <entry></entry>
142944dda7b2Smrg      <entry></entry>
143044dda7b2Smrg      <entry></entry>
143144dda7b2Smrg      <entry></entry>
143244dda7b2Smrg      <entry spanname="col5_on">
143344dda7b2SmrgMessage received out of order by manager.
143444dda7b2Smrg      </entry>
143544dda7b2Smrg    </row>
143644dda7b2Smrg
143744dda7b2Smrg    <row rowsep="0">
143844dda7b2Smrg      <entry></entry>
143944dda7b2Smrg      <entry></entry>
144044dda7b2Smrg      <entry></entry>
144144dda7b2Smrg      <entry spanname="col4_on">
144244dda7b2SmrgIndication:
144344dda7b2Smrg      </entry>
144444dda7b2Smrg    </row>
144544dda7b2Smrg
144644dda7b2Smrg    <row rowsep="0">
144744dda7b2Smrg      <entry></entry>
144844dda7b2Smrg      <entry></entry>
144944dda7b2Smrg      <entry></entry>
145044dda7b2Smrg      <entry></entry>
145144dda7b2Smrg      <entry spanname="col5_on">
145244dda7b2SmrgNone.
145344dda7b2Smrg      </entry>
145444dda7b2Smrg    </row>
145544dda7b2Smrg
145644dda7b2Smrg    <row rowsep="0">
145744dda7b2Smrg      <entry></entry>
145844dda7b2Smrg      <entry></entry>
145944dda7b2Smrg      <entry></entry>
146044dda7b2Smrg      <entry spanname="col4_on">
146144dda7b2SmrgSolution:
146244dda7b2Smrg      </entry>
146344dda7b2Smrg    </row>
146444dda7b2Smrg
146544dda7b2Smrg    <row rowsep="0">
146644dda7b2Smrg      <entry></entry>
146744dda7b2Smrg      <entry></entry>
146844dda7b2Smrg      <entry></entry>
146944dda7b2Smrg      <entry></entry>
147044dda7b2Smrg      <entry spanname="col5_on">
147144dda7b2SmrgEach time a
147244dda7b2Smrg<function>Request</function>
147344dda7b2Smrgis sent, the manager sends the Session ID
147444dda7b2Smrgassociated with the next session in the
147544dda7b2Smrg<function>Accept .</function>
147644dda7b2SmrgIf that next session is not yet started,
147744dda7b2Smrgthe manager will simply resend with the same Session ID.
147844dda7b2SmrgIf the session is in progress, the manager will reply
147944dda7b2Smrgwith a new Session ID; in which case, the
148044dda7b2Smrg<function>Accept</function>
148144dda7b2Smrgwill be discarded by the display.
148244dda7b2Smrg      </entry>
148344dda7b2Smrg    </row>
148444dda7b2Smrg
148544dda7b2Smrg    <row rowsep="0">
148644dda7b2Smrg      <entry></entry>
148744dda7b2Smrg      <entry spanname="col2_on">
148844dda7b2SmrgTimeout/Retransmission policy:
148944dda7b2Smrg      </entry>
149044dda7b2Smrg    </row>
149144dda7b2Smrg
149244dda7b2Smrg    <row rowsep="0">
149344dda7b2Smrg      <entry></entry>
149444dda7b2Smrg      <entry></entry>
149544dda7b2Smrg      <entry spanname="col3_on">
149644dda7b2SmrgTimeout after 2 seconds, exponential backoff to 32 seconds.
149744dda7b2SmrgAfter no more than 126 seconds, give up and report an error to the user.
149844dda7b2Smrg      </entry>
149944dda7b2Smrg    </row>
150044dda7b2Smrg
150144dda7b2Smrg    <row rowsep="0">
150244dda7b2Smrg      <entry spanname="col1_on">
150344dda7b2Smrg<function>Accept</function>
150444dda7b2Smrg      </entry>
150544dda7b2Smrg    </row>
150644dda7b2Smrg
150744dda7b2Smrg    <row rowsep="0">
150844dda7b2Smrg      <entry></entry>
150944dda7b2Smrg      <entry spanname="col2_on">
151044dda7b2Smrg        <para>
151144dda7b2SmrgManager -&gt; Display
151244dda7b2Smrg        </para>
151344dda7b2Smrg        <para>
151444dda7b2SmrgAdditional Fields:
151544dda7b2Smrg        </para>
151644dda7b2Smrg      </entry>
151744dda7b2Smrg    </row>
151844dda7b2Smrg
151944dda7b2Smrg    <row rowsep="0">
152044dda7b2Smrg      <entry></entry>
152144dda7b2Smrg      <entry></entry>
152244dda7b2Smrg      <entry spanname="col3_on">
152344dda7b2Smrg<emphasis remap='I'>Session ID</emphasis>: CARD32
152444dda7b2Smrg      </entry>
152544dda7b2Smrg    </row>
152644dda7b2Smrg
152744dda7b2Smrg    <row rowsep="0">
152844dda7b2Smrg      <entry></entry>
152944dda7b2Smrg      <entry></entry>
153044dda7b2Smrg      <entry></entry>
153144dda7b2Smrg      <entry spanname="col4_on">
153244dda7b2SmrgIdentifies the session that can be started by the manager.
153344dda7b2Smrg      </entry>
153444dda7b2Smrg    </row>
153544dda7b2Smrg
153644dda7b2Smrg    <row rowsep="0">
153744dda7b2Smrg      <entry></entry>
153844dda7b2Smrg      <entry></entry>
153944dda7b2Smrg      <entry spanname="col3_on">
154044dda7b2Smrg        <para>
154144dda7b2Smrg<emphasis remap='I'>Authentication Name</emphasis>: ARRAY8
154244dda7b2Smrg        </para>
154344dda7b2Smrg        <para>
154444dda7b2Smrg<emphasis remap='I'>Authentication Data</emphasis>: ARRAY8
154544dda7b2Smrg        </para>
154644dda7b2Smrg      </entry>
154744dda7b2Smrg    </row>
154844dda7b2Smrg
154944dda7b2Smrg    <row rowsep="0">
155044dda7b2Smrg      <entry></entry>
155144dda7b2Smrg      <entry></entry>
155244dda7b2Smrg      <entry></entry>
155344dda7b2Smrg      <entry spanname="col4_on">
155444dda7b2SmrgIs the data sent back to the display to authenticate the manager.
155544dda7b2SmrgIf the Authentication Data is not the value expected by the display, it
155644dda7b2Smrgshould terminate the protocol at this point and display an error to the user.
155744dda7b2Smrg      </entry>
155844dda7b2Smrg    </row>
155944dda7b2Smrg
156044dda7b2Smrg    <row rowsep="0">
156144dda7b2Smrg      <entry></entry>
156244dda7b2Smrg      <entry></entry>
156344dda7b2Smrg      <entry spanname="col3_on">
156444dda7b2Smrg        <para>
156544dda7b2Smrg<emphasis remap='I'>Authorization Name</emphasis>: ARRAY8
156644dda7b2Smrg        </para>
156744dda7b2Smrg        <para>
156844dda7b2Smrg<emphasis remap='I'>Authorization Data</emphasis>: ARRAY8
156944dda7b2Smrg        </para>
157044dda7b2Smrg      </entry>
157144dda7b2Smrg    </row>
157244dda7b2Smrg
157344dda7b2Smrg    <row rowsep="0">
157444dda7b2Smrg      <entry></entry>
157544dda7b2Smrg      <entry></entry>
157644dda7b2Smrg      <entry></entry>
157744dda7b2Smrg      <entry spanname="col4_on">
157844dda7b2SmrgIs the data sent to the display to indicate the type of authorization the
157944dda7b2Smrgmanager will be using in the first call to
158044dda7b2Smrg<function>XOpenDisplay</function>
158144dda7b2Smrgafter the
158244dda7b2Smrg<function>Manage</function>
158344dda7b2Smrgpacket is received.
158444dda7b2Smrg      </entry>
158544dda7b2Smrg    </row>
158644dda7b2Smrg
158744dda7b2Smrg
158844dda7b2Smrg    <row rowsep="0">
158944dda7b2Smrg      <entry></entry>
159044dda7b2Smrg      <entry spanname="col2_on">
159144dda7b2SmrgSemantics:
159244dda7b2Smrg      </entry>
159344dda7b2Smrg    </row>
159444dda7b2Smrg
159544dda7b2Smrg    <row rowsep="0">
159644dda7b2Smrg      <entry></entry>
159744dda7b2Smrg      <entry></entry>
159844dda7b2Smrg      <entry spanname="col3_on">
159944dda7b2Smrg<para>
160044dda7b2SmrgAn
160144dda7b2Smrg<function>Accept</function>
160244dda7b2Smrgpacket is sent by a manager in response to a
160344dda7b2Smrg<function>Request</function>
160444dda7b2Smrgpacket if the manager is willing to establish a connection for the display.
160544dda7b2SmrgThe Session ID is used to identify this connection from any preceding
160644dda7b2Smrgones and will be used by the display in its subsequent
160744dda7b2Smrg<function>Manage</function>
160844dda7b2Smrgpacket.
160944dda7b2SmrgThe Session ID is a 32-bit number that is incremented each time an
161044dda7b2Smrg<function>Accept</function>
161144dda7b2Smrgpacket is sent as it must be unique over a reasonably long period of time.
161244dda7b2Smrg</para>
161344dda7b2Smrg<para>
161444dda7b2SmrgIf the authentication information is invalid, a
161544dda7b2Smrg<function>Decline</function>
161644dda7b2Smrgpacket will be returned with an appropriate
161744dda7b2Smrg<function>Status</function>
161844dda7b2Smrgmessage.
161944dda7b2Smrg</para>
162044dda7b2Smrg      </entry>
162144dda7b2Smrg    </row>
162244dda7b2Smrg
162344dda7b2Smrg    <row rowsep="0">
162444dda7b2Smrg      <entry></entry>
162544dda7b2Smrg      <entry spanname="col2_on">
162644dda7b2SmrgProblems/Solutions:
162744dda7b2Smrg      </entry>
162844dda7b2Smrg    </row>
162944dda7b2Smrg
163044dda7b2Smrg    <row rowsep="0">
163144dda7b2Smrg      <entry></entry>
163244dda7b2Smrg      <entry></entry>
163344dda7b2Smrg      <entry spanname="col3_on">
163444dda7b2SmrgProblem:
163544dda7b2Smrg      </entry>
163644dda7b2Smrg    </row>
163744dda7b2Smrg
163844dda7b2Smrg    <row rowsep="0">
163944dda7b2Smrg      <entry></entry>
164044dda7b2Smrg      <entry></entry>
164144dda7b2Smrg      <entry></entry>
164244dda7b2Smrg      <entry spanname="col4_on">
164344dda7b2Smrg<function>Accept</function>
164444dda7b2Smrgor
164544dda7b2Smrg<function>Decline</function>
164644dda7b2Smrgnot received by display.
164744dda7b2Smrg      </entry>
164844dda7b2Smrg    </row>
164944dda7b2Smrg
165044dda7b2Smrg    <row rowsep="0">
165144dda7b2Smrg      <entry></entry>
165244dda7b2Smrg      <entry></entry>
165344dda7b2Smrg      <entry></entry>
165444dda7b2Smrg      <entry spanname="col4_on">
165544dda7b2SmrgIndication:
165644dda7b2Smrg      </entry>
165744dda7b2Smrg    </row>
165844dda7b2Smrg
165944dda7b2Smrg    <row rowsep="0">
166044dda7b2Smrg      <entry></entry>
166144dda7b2Smrg      <entry></entry>
166244dda7b2Smrg      <entry></entry>
166344dda7b2Smrg      <entry></entry>
166444dda7b2Smrg      <entry spanname="col5_on">
166544dda7b2SmrgDisplay timeout waiting for response to
166644dda7b2Smrg<function>Request .</function>
166744dda7b2Smrg      </entry>
166844dda7b2Smrg    </row>
166944dda7b2Smrg
167044dda7b2Smrg    <row rowsep="0">
167144dda7b2Smrg      <entry></entry>
167244dda7b2Smrg      <entry></entry>
167344dda7b2Smrg      <entry></entry>
167444dda7b2Smrg      <entry spanname="col4_on">
167544dda7b2SmrgSolution:
167644dda7b2Smrg      </entry>
167744dda7b2Smrg    </row>
167844dda7b2Smrg
167944dda7b2Smrg    <row rowsep="0">
168044dda7b2Smrg      <entry></entry>
168144dda7b2Smrg      <entry></entry>
168244dda7b2Smrg      <entry></entry>
168344dda7b2Smrg      <entry></entry>
168444dda7b2Smrg      <entry spanname="col5_on">
168544dda7b2SmrgDisplay resends
168644dda7b2Smrg<function>Request</function>
168744dda7b2Smrgmessage.
168844dda7b2Smrg      </entry>
168944dda7b2Smrg    </row>
169044dda7b2Smrg
169144dda7b2Smrg    <row rowsep="0">
169244dda7b2Smrg      <entry></entry>
169344dda7b2Smrg      <entry></entry>
169444dda7b2Smrg      <entry spanname="col3_on">
169544dda7b2SmrgProblem:
169644dda7b2Smrg      </entry>
169744dda7b2Smrg    </row>
169844dda7b2Smrg
169944dda7b2Smrg    <row rowsep="0">
170044dda7b2Smrg      <entry></entry>
170144dda7b2Smrg      <entry></entry>
170244dda7b2Smrg      <entry></entry>
170344dda7b2Smrg      <entry spanname="col4_on">
170444dda7b2SmrgMessage received out of order by display.
170544dda7b2Smrg      </entry>
170644dda7b2Smrg    </row>
170744dda7b2Smrg
170844dda7b2Smrg    <row rowsep="0">
170944dda7b2Smrg      <entry></entry>
171044dda7b2Smrg      <entry></entry>
171144dda7b2Smrg      <entry></entry>
171244dda7b2Smrg      <entry spanname="col4_on">
171344dda7b2SmrgIndication:
171444dda7b2Smrg      </entry>
171544dda7b2Smrg    </row>
171644dda7b2Smrg
171744dda7b2Smrg    <row rowsep="0">
171844dda7b2Smrg      <entry></entry>
171944dda7b2Smrg      <entry></entry>
172044dda7b2Smrg      <entry></entry>
172144dda7b2Smrg      <entry></entry>
172244dda7b2Smrg      <entry spanname="col5_on">
172344dda7b2SmrgDisplay receives
172444dda7b2Smrg<function>Accept</function>
172544dda7b2Smrgafter
172644dda7b2Smrg<function>Manage</function>
172744dda7b2Smrghas been sent.
172844dda7b2Smrg      </entry>
172944dda7b2Smrg    </row>
173044dda7b2Smrg
173144dda7b2Smrg    <row rowsep="0">
173244dda7b2Smrg      <entry></entry>
173344dda7b2Smrg      <entry></entry>
173444dda7b2Smrg      <entry></entry>
173544dda7b2Smrg      <entry spanname="col4_on">
173644dda7b2SmrgSolution:
173744dda7b2Smrg      </entry>
173844dda7b2Smrg    </row>
173944dda7b2Smrg
174044dda7b2Smrg    <row rowsep="0">
174144dda7b2Smrg      <entry></entry>
174244dda7b2Smrg      <entry></entry>
174344dda7b2Smrg      <entry></entry>
174444dda7b2Smrg      <entry></entry>
174544dda7b2Smrg      <entry spanname="col5_on">
174644dda7b2SmrgDisplay discards
174744dda7b2Smrg<function>Accept</function>
174844dda7b2Smrgmessages after it has sent a
174944dda7b2Smrg<function>Manage</function>
175044dda7b2Smrgmessage.
175144dda7b2Smrg      </entry>
175244dda7b2Smrg    </row>
175344dda7b2Smrg
175444dda7b2Smrg    <row rowsep="0">
175544dda7b2Smrg      <entry></entry>
175644dda7b2Smrg      <entry spanname="col2_on">
175744dda7b2SmrgTimeout/Retransmission policy:
175844dda7b2Smrg      </entry>
175944dda7b2Smrg    </row>
176044dda7b2Smrg
176144dda7b2Smrg    <row rowsep="0">
176244dda7b2Smrg      <entry></entry>
176344dda7b2Smrg      <entry></entry>
176444dda7b2Smrg      <entry spanname="col3_on">
176544dda7b2SmrgLike all packets sent from the manager to the display, this packet should
176644dda7b2Smrgnever be retransmitted.
176744dda7b2Smrg      </entry>
176844dda7b2Smrg    </row>
176944dda7b2Smrg
177044dda7b2Smrg    <row rowsep="0">
177144dda7b2Smrg      <entry spanname="col1_on">
177244dda7b2Smrg<function>Decline</function>
177344dda7b2Smrg      </entry>
177444dda7b2Smrg    </row>
177544dda7b2Smrg
177644dda7b2Smrg    <row rowsep="0">
177744dda7b2Smrg      <entry></entry>
177844dda7b2Smrg      <entry spanname="col2_on">
177944dda7b2Smrg        <para>
178044dda7b2SmrgManager -&gt; Display
178144dda7b2Smrg        </para>
178244dda7b2Smrg        <para>
178344dda7b2SmrgAdditional Fields:
178444dda7b2Smrg        </para>
178544dda7b2Smrg      </entry>
178644dda7b2Smrg    </row>
178744dda7b2Smrg
178844dda7b2Smrg    <row rowsep="0">
178944dda7b2Smrg      <entry></entry>
179044dda7b2Smrg      <entry></entry>
179144dda7b2Smrg      <entry spanname="col3_on">
179244dda7b2Smrg<emphasis remap='I'>Status</emphasis>: ARRAY8
179344dda7b2Smrg      </entry>
179444dda7b2Smrg    </row>
179544dda7b2Smrg
179644dda7b2Smrg    <row rowsep="0">
179744dda7b2Smrg      <entry></entry>
179844dda7b2Smrg      <entry></entry>
179944dda7b2Smrg      <entry></entry>
180044dda7b2Smrg      <entry spanname="col4_on">
180144dda7b2SmrgIs a human readable string indicating the reason for refusal of
180244dda7b2Smrgservice.
180344dda7b2Smrg      </entry>
180444dda7b2Smrg    </row>
180544dda7b2Smrg
180644dda7b2Smrg    <row rowsep="0">
180744dda7b2Smrg      <entry></entry>
180844dda7b2Smrg      <entry></entry>
180944dda7b2Smrg      <entry spanname="col3_on">
181044dda7b2Smrg        <para>
181144dda7b2Smrg<emphasis remap='I'>Authentication Name</emphasis>:
181244dda7b2SmrgARRAY8
181344dda7b2Smrg        </para>
181444dda7b2Smrg        <para>
181544dda7b2Smrg<emphasis remap='I'>Authentication Data</emphasis>:
181644dda7b2SmrgARRAY8
181744dda7b2Smrg        </para>
181844dda7b2Smrg      </entry>
181944dda7b2Smrg    </row>
182044dda7b2Smrg
182144dda7b2Smrg    <row rowsep="0">
182244dda7b2Smrg      <entry></entry>
182344dda7b2Smrg      <entry></entry>
182444dda7b2Smrg      <entry></entry>
182544dda7b2Smrg      <entry spanname="col4_on">
182644dda7b2SmrgIs the data sent back to the display to authenticate the manager.  If the
182744dda7b2SmrgAuthentication Data is not the value expected by the display, it
182844dda7b2Smrgshould terminate the protocol at this point and display an error to the user.
182944dda7b2Smrg      </entry>
183044dda7b2Smrg    </row>
183144dda7b2Smrg
183244dda7b2Smrg    <row rowsep="0">
183344dda7b2Smrg      <entry></entry>
183444dda7b2Smrg      <entry spanname="col2_on">
183544dda7b2SmrgSemantics:
183644dda7b2Smrg      </entry>
183744dda7b2Smrg    </row>
183844dda7b2Smrg
183944dda7b2Smrg    <row rowsep="0">
184044dda7b2Smrg      <entry></entry>
184144dda7b2Smrg      <entry></entry>
184244dda7b2Smrg      <entry spanname="col3_on">
184344dda7b2SmrgA
184444dda7b2Smrg<function>Decline</function>
184544dda7b2Smrgpacket is sent by a manager in response to a
184644dda7b2Smrg<function>Request</function>
184744dda7b2Smrgpacket if the manager is unwilling to establish a connection for the
184844dda7b2Smrgdisplay.
184944dda7b2SmrgThis is allowed even if the manager had responded
185044dda7b2Smrg<function>Willing</function>
185144dda7b2Smrgto a previous query.
185244dda7b2Smrg      </entry>
185344dda7b2Smrg    </row>
185444dda7b2Smrg
185544dda7b2Smrg    <row rowsep="0">
185644dda7b2Smrg      <entry></entry>
185744dda7b2Smrg      <entry spanname="col2_on">
185844dda7b2SmrgProblems/Solutions:
185944dda7b2Smrg      </entry>
186044dda7b2Smrg    </row>
186144dda7b2Smrg
186244dda7b2Smrg    <row rowsep="0">
186344dda7b2Smrg      <entry></entry>
186444dda7b2Smrg      <entry></entry>
186544dda7b2Smrg      <entry spanname="col3_on">
186644dda7b2SmrgSame as for
186744dda7b2Smrg<function>Accept .</function>
186844dda7b2Smrg      </entry>
186944dda7b2Smrg    </row>
187044dda7b2Smrg
187144dda7b2Smrg    <row rowsep="0">
187244dda7b2Smrg      <entry></entry>
187344dda7b2Smrg      <entry spanname="col2_on">
187444dda7b2SmrgTimeout/Retransmission policy:
187544dda7b2Smrg      </entry>
187644dda7b2Smrg    </row>
187744dda7b2Smrg
187844dda7b2Smrg    <row rowsep="0">
187944dda7b2Smrg      <entry></entry>
188044dda7b2Smrg      <entry></entry>
188144dda7b2Smrg      <entry spanname="col3_on">
188244dda7b2SmrgLike all packets sent from a manager to a display, this packet should never
188344dda7b2Smrgbe retransmitted.
188444dda7b2Smrg      </entry>
188544dda7b2Smrg    </row>
188644dda7b2Smrg
188744dda7b2Smrg    <row rowsep="0">
188844dda7b2Smrg      <entry spanname="col1_on">
188944dda7b2Smrg<function>Manage</function>
189044dda7b2Smrg      </entry>
189144dda7b2Smrg    </row>
189244dda7b2Smrg
189344dda7b2Smrg    <row rowsep="0">
189444dda7b2Smrg      <entry></entry>
189544dda7b2Smrg      <entry spanname="col2_on">
189644dda7b2Smrg        <para>
189744dda7b2SmrgDisplay -&gt; Manager
189844dda7b2Smrg        </para>
189944dda7b2Smrg        <para>
190044dda7b2SmrgAdditional Fields:
190144dda7b2Smrg        </para>
190244dda7b2Smrg      </entry>
190344dda7b2Smrg    </row>
190444dda7b2Smrg
190544dda7b2Smrg    <row rowsep="0">
190644dda7b2Smrg      <entry></entry>
190744dda7b2Smrg      <entry></entry>
190844dda7b2Smrg      <entry spanname="col3_on">
190944dda7b2Smrg<emphasis remap='I'>Session ID</emphasis>: CARD32
191044dda7b2Smrg      </entry>
191144dda7b2Smrg    </row>
191244dda7b2Smrg
191344dda7b2Smrg    <row rowsep="0">
191444dda7b2Smrg      <entry></entry>
191544dda7b2Smrg      <entry></entry>
191644dda7b2Smrg      <entry></entry>
191744dda7b2Smrg      <entry spanname="col4_on">
191844dda7b2SmrgShould contain the nonzero session ID returned in the
191944dda7b2Smrg<function>Accept</function>
192044dda7b2Smrgpacket.
192144dda7b2Smrg      </entry>
192244dda7b2Smrg    </row>
192344dda7b2Smrg
192444dda7b2Smrg    <row rowsep="0">
192544dda7b2Smrg      <entry></entry>
192644dda7b2Smrg      <entry></entry>
192744dda7b2Smrg      <entry spanname="col3_on">
192844dda7b2Smrg<emphasis remap='I'>Display Number</emphasis>: CARD16
192944dda7b2Smrg      </entry>
193044dda7b2Smrg    </row>
193144dda7b2Smrg
193244dda7b2Smrg    <row rowsep="0">
193344dda7b2Smrg      <entry></entry>
193444dda7b2Smrg      <entry></entry>
193544dda7b2Smrg      <entry></entry>
193644dda7b2Smrg      <entry spanname="col4_on">
193744dda7b2SmrgMust match the value sent in the previous
193844dda7b2Smrg<function>Request</function>
193944dda7b2Smrgpacket.
194044dda7b2Smrg      </entry>
194144dda7b2Smrg    </row>
194244dda7b2Smrg
194344dda7b2Smrg    <row rowsep="0">
194444dda7b2Smrg      <entry></entry>
194544dda7b2Smrg      <entry></entry>
194644dda7b2Smrg      <entry spanname="col3_on">
194744dda7b2Smrg<emphasis remap='I'>Display Class</emphasis>: ARRAY8
194844dda7b2Smrg      </entry>
194944dda7b2Smrg    </row>
195044dda7b2Smrg
195144dda7b2Smrg    <row rowsep="0">
195244dda7b2Smrg      <entry></entry>
195344dda7b2Smrg      <entry></entry>
195444dda7b2Smrg      <entry></entry>
195544dda7b2Smrg      <entry spanname="col4_on">
195644dda7b2SmrgSpecifies the class of the display.
195744dda7b2SmrgSee the Display Class Format section,
195844dda7b2Smrgwhich discusses the format of this field.
195944dda7b2Smrg      </entry>
196044dda7b2Smrg    </row>
196144dda7b2Smrg
196244dda7b2Smrg
196344dda7b2Smrg    <row rowsep="0">
196444dda7b2Smrg      <entry></entry>
196544dda7b2Smrg      <entry spanname="col2_on">
196644dda7b2SmrgSemantics:
196744dda7b2Smrg      </entry>
196844dda7b2Smrg    </row>
196944dda7b2Smrg
197044dda7b2Smrg    <row rowsep="0">
197144dda7b2Smrg      <entry></entry>
197244dda7b2Smrg      <entry></entry>
197344dda7b2Smrg      <entry spanname="col3_on">
197444dda7b2SmrgA
197544dda7b2Smrg<function>Manage</function>
197644dda7b2Smrgpacket is sent by a display to ask the manager to begin a
197744dda7b2Smrgsession on the display.  If the Session ID is correct the manager
197844dda7b2Smrgshould open a connection; otherwise, it should respond with a
197944dda7b2Smrg<function>Refuse</function>
198044dda7b2Smrgor
198144dda7b2Smrg<function>Failed</function>
198244dda7b2Smrgpacket, unless the Session ID matches a currently
198344dda7b2Smrgrunning session or a session that has not yet successfully opened the
198444dda7b2Smrgdisplay but has not given up the attempt.  In this latter case, the
198544dda7b2Smrg<function>Manage</function>
198644dda7b2Smrgpacket should be ignored.
198744dda7b2SmrgThis will work as stream connections give positive success indication
198844dda7b2Smrgto both halves of the stream, and positive failure indication
198944dda7b2Smrgto the connection initiator (which will eventually generate a
199044dda7b2Smrg<function>Failed</function>
199144dda7b2Smrgpacket).
199244dda7b2Smrg      </entry>
199344dda7b2Smrg    </row>
199444dda7b2Smrg
199544dda7b2Smrg    <row rowsep="0">
199644dda7b2Smrg      <entry></entry>
199744dda7b2Smrg      <entry spanname="col2_on">
199844dda7b2SmrgValid Responses:
199944dda7b2Smrg      </entry>
200044dda7b2Smrg    </row>
200144dda7b2Smrg
200244dda7b2Smrg    <row rowsep="0">
200344dda7b2Smrg      <entry></entry>
200444dda7b2Smrg      <entry></entry>
200544dda7b2Smrg      <entry spanname="col3_on">
200644dda7b2SmrgX connection with correct auth info,
200744dda7b2Smrg<function>Refuse ,</function>
200844dda7b2Smrg<function>Failed .</function>
200944dda7b2Smrg      </entry>
201044dda7b2Smrg    </row>
201144dda7b2Smrg
201244dda7b2Smrg    <row rowsep="0">
201344dda7b2Smrg      <entry></entry>
201444dda7b2Smrg      <entry spanname="col2_on">
201544dda7b2SmrgProblems/Solutions:
201644dda7b2Smrg      </entry>
201744dda7b2Smrg    </row>
201844dda7b2Smrg
201944dda7b2Smrg    <row rowsep="0">
202044dda7b2Smrg      <entry></entry>
202144dda7b2Smrg      <entry></entry>
202244dda7b2Smrg      <entry spanname="col3_on">
202344dda7b2SmrgProblem:
202444dda7b2Smrg      </entry>
202544dda7b2Smrg    </row>
202644dda7b2Smrg
202744dda7b2Smrg    <row rowsep="0">
202844dda7b2Smrg      <entry></entry>
202944dda7b2Smrg      <entry></entry>
203044dda7b2Smrg      <entry></entry>
203144dda7b2Smrg      <entry spanname="col4_on">
203244dda7b2Smrg<function>Manage</function>
203344dda7b2Smrgnot received by manager.
203444dda7b2Smrg      </entry>
203544dda7b2Smrg    </row>
203644dda7b2Smrg
203744dda7b2Smrg    <row rowsep="0">
203844dda7b2Smrg      <entry></entry>
203944dda7b2Smrg      <entry></entry>
204044dda7b2Smrg      <entry></entry>
204144dda7b2Smrg      <entry spanname="col4_on">
204244dda7b2SmrgIndication:
204344dda7b2Smrg      </entry>
204444dda7b2Smrg    </row>
204544dda7b2Smrg
204644dda7b2Smrg    <row rowsep="0">
204744dda7b2Smrg      <entry></entry>
204844dda7b2Smrg      <entry></entry>
204944dda7b2Smrg      <entry></entry>
205044dda7b2Smrg      <entry></entry>
205144dda7b2Smrg      <entry spanname="col5_on">
205244dda7b2SmrgDisplay timeout waiting for response.
205344dda7b2Smrg      </entry>
205444dda7b2Smrg    </row>
205544dda7b2Smrg
205644dda7b2Smrg    <row rowsep="0">
205744dda7b2Smrg      <entry></entry>
205844dda7b2Smrg      <entry></entry>
205944dda7b2Smrg      <entry></entry>
206044dda7b2Smrg      <entry spanname="col4_on">
206144dda7b2SmrgSolution:
206244dda7b2Smrg      </entry>
206344dda7b2Smrg    </row>
206444dda7b2Smrg
206544dda7b2Smrg    <row rowsep="0">
206644dda7b2Smrg      <entry></entry>
206744dda7b2Smrg      <entry></entry>
206844dda7b2Smrg      <entry></entry>
206944dda7b2Smrg      <entry></entry>
207044dda7b2Smrg      <entry spanname="col5_on">
207144dda7b2SmrgDisplay resends
207244dda7b2Smrg<function>Manage</function>
207344dda7b2Smrgmessage.
207444dda7b2Smrg      </entry>
207544dda7b2Smrg    </row>
207644dda7b2Smrg
207744dda7b2Smrg
207844dda7b2Smrg    <row rowsep="0">
207944dda7b2Smrg      <entry></entry>
208044dda7b2Smrg      <entry></entry>
208144dda7b2Smrg      <entry spanname="col3_on">
208244dda7b2SmrgProblem:
208344dda7b2Smrg      </entry>
208444dda7b2Smrg    </row>
208544dda7b2Smrg
208644dda7b2Smrg    <row rowsep="0">
208744dda7b2Smrg      <entry></entry>
208844dda7b2Smrg      <entry></entry>
208944dda7b2Smrg      <entry></entry>
209044dda7b2Smrg      <entry spanname="col4_on">
209144dda7b2Smrg<function>Manage</function>
209244dda7b2Smrgreceived out of order by manager.
209344dda7b2Smrg      </entry>
209444dda7b2Smrg    </row>
209544dda7b2Smrg
209644dda7b2Smrg    <row rowsep="0">
209744dda7b2Smrg      <entry></entry>
209844dda7b2Smrg      <entry></entry>
209944dda7b2Smrg      <entry></entry>
210044dda7b2Smrg      <entry spanname="col4_on">
210144dda7b2SmrgIndication:
210244dda7b2Smrg      </entry>
210344dda7b2Smrg    </row>
210444dda7b2Smrg
210544dda7b2Smrg    <row rowsep="0">
210644dda7b2Smrg      <entry></entry>
210744dda7b2Smrg      <entry></entry>
210844dda7b2Smrg      <entry></entry>
210944dda7b2Smrg      <entry></entry>
211044dda7b2Smrg      <entry spanname="col5_on">
211144dda7b2SmrgSession already in progress with matching Session ID.
211244dda7b2Smrg      </entry>
211344dda7b2Smrg    </row>
211444dda7b2Smrg
211544dda7b2Smrg    <row rowsep="0">
211644dda7b2Smrg      <entry></entry>
211744dda7b2Smrg      <entry></entry>
211844dda7b2Smrg      <entry></entry>
211944dda7b2Smrg      <entry spanname="col4_on">
212044dda7b2SmrgSolution:
212144dda7b2Smrg      </entry>
212244dda7b2Smrg    </row>
212344dda7b2Smrg
212444dda7b2Smrg    <row rowsep="0">
212544dda7b2Smrg      <entry></entry>
212644dda7b2Smrg      <entry></entry>
212744dda7b2Smrg      <entry></entry>
212844dda7b2Smrg      <entry></entry>
212944dda7b2Smrg      <entry spanname="col5_on">
213044dda7b2Smrg<function>Manage</function>
213144dda7b2Smrgpacket ignored.
213244dda7b2Smrg      </entry>
213344dda7b2Smrg    </row>
213444dda7b2Smrg
213544dda7b2Smrg    <row rowsep="0">
213644dda7b2Smrg      <entry></entry>
213744dda7b2Smrg      <entry></entry>
213844dda7b2Smrg      <entry></entry>
213944dda7b2Smrg      <entry spanname="col4_on">
214044dda7b2SmrgIndication:
214144dda7b2Smrg      </entry>
214244dda7b2Smrg    </row>
214344dda7b2Smrg
214444dda7b2Smrg    <row rowsep="0">
214544dda7b2Smrg      <entry></entry>
214644dda7b2Smrg      <entry></entry>
214744dda7b2Smrg      <entry></entry>
214844dda7b2Smrg      <entry></entry>
214944dda7b2Smrg      <entry spanname="col5_on">
215044dda7b2SmrgSession ID does not match next Session ID.
215144dda7b2Smrg      </entry>
215244dda7b2Smrg    </row>
215344dda7b2Smrg
215444dda7b2Smrg    <row rowsep="0">
215544dda7b2Smrg      <entry></entry>
215644dda7b2Smrg      <entry></entry>
215744dda7b2Smrg      <entry></entry>
215844dda7b2Smrg      <entry spanname="col4_on">
215944dda7b2SmrgSolution:
216044dda7b2Smrg      </entry>
216144dda7b2Smrg    </row>
216244dda7b2Smrg
216344dda7b2Smrg    <row rowsep="0">
216444dda7b2Smrg      <entry></entry>
216544dda7b2Smrg      <entry></entry>
216644dda7b2Smrg      <entry></entry>
216744dda7b2Smrg      <entry></entry>
216844dda7b2Smrg      <entry spanname="col5_on">
216944dda7b2Smrg<function>Refuse</function>
217044dda7b2Smrgmessage is sent.
217144dda7b2Smrg      </entry>
217244dda7b2Smrg    </row>
217344dda7b2Smrg
217444dda7b2Smrg
217544dda7b2Smrg    <row rowsep="0">
217644dda7b2Smrg      <entry></entry>
217744dda7b2Smrg      <entry></entry>
217844dda7b2Smrg      <entry spanname="col3_on">
217944dda7b2SmrgProblem:
218044dda7b2Smrg      </entry>
218144dda7b2Smrg    </row>
218244dda7b2Smrg
218344dda7b2Smrg    <row rowsep="0">
218444dda7b2Smrg      <entry></entry>
218544dda7b2Smrg      <entry></entry>
218644dda7b2Smrg      <entry></entry>
218744dda7b2Smrg      <entry spanname="col4_on">
218844dda7b2SmrgDisplay cannot be opened on selected stream.
218944dda7b2Smrg      </entry>
219044dda7b2Smrg    </row>
219144dda7b2Smrg
219244dda7b2Smrg    <row rowsep="0">
219344dda7b2Smrg      <entry></entry>
219444dda7b2Smrg      <entry></entry>
219544dda7b2Smrg      <entry></entry>
219644dda7b2Smrg      <entry spanname="col4_on">
219744dda7b2SmrgIndication:
219844dda7b2Smrg      </entry>
219944dda7b2Smrg    </row>
220044dda7b2Smrg
220144dda7b2Smrg    <row rowsep="0">
220244dda7b2Smrg      <entry></entry>
220344dda7b2Smrg      <entry></entry>
220444dda7b2Smrg      <entry></entry>
220544dda7b2Smrg      <entry></entry>
220644dda7b2Smrg      <entry spanname="col5_on">
220744dda7b2SmrgDisplay connection setup fails.
220844dda7b2Smrg      </entry>
220944dda7b2Smrg    </row>
221044dda7b2Smrg
221144dda7b2Smrg    <row rowsep="0">
221244dda7b2Smrg      <entry></entry>
221344dda7b2Smrg      <entry></entry>
221444dda7b2Smrg      <entry></entry>
221544dda7b2Smrg      <entry spanname="col4_on">
221644dda7b2SmrgSolution:
221744dda7b2Smrg      </entry>
221844dda7b2Smrg    </row>
221944dda7b2Smrg
222044dda7b2Smrg    <row rowsep="0">
222144dda7b2Smrg      <entry></entry>
222244dda7b2Smrg      <entry></entry>
222344dda7b2Smrg      <entry></entry>
222444dda7b2Smrg      <entry></entry>
222544dda7b2Smrg      <entry spanname="col5_on">
222644dda7b2Smrg<function>Failed</function>
222744dda7b2Smrgmessage is sent including a human readable reason.
222844dda7b2Smrg      </entry>
222944dda7b2Smrg    </row>
223044dda7b2Smrg
223144dda7b2Smrg    <row rowsep="0">
223244dda7b2Smrg      <entry></entry>
223344dda7b2Smrg      <entry></entry>
223444dda7b2Smrg      <entry spanname="col3_on">
223544dda7b2SmrgProblem:
223644dda7b2Smrg      </entry>
223744dda7b2Smrg    </row>
223844dda7b2Smrg
223944dda7b2Smrg    <row rowsep="0">
224044dda7b2Smrg      <entry></entry>
224144dda7b2Smrg      <entry></entry>
224244dda7b2Smrg      <entry></entry>
224344dda7b2Smrg      <entry spanname="col4_on">
224444dda7b2SmrgDisplay open does not succeed before a second manage packet is received
224544dda7b2Smrgbecause of a timeout occuring in the display.
224644dda7b2Smrg      </entry>
224744dda7b2Smrg    </row>
224844dda7b2Smrg
224944dda7b2Smrg    <row rowsep="0">
225044dda7b2Smrg      <entry></entry>
225144dda7b2Smrg      <entry></entry>
225244dda7b2Smrg      <entry></entry>
225344dda7b2Smrg      <entry spanname="col4_on">
225444dda7b2SmrgIndication:
225544dda7b2Smrg      </entry>
225644dda7b2Smrg    </row>
225744dda7b2Smrg
225844dda7b2Smrg    <row rowsep="0">
225944dda7b2Smrg      <entry></entry>
226044dda7b2Smrg      <entry></entry>
226144dda7b2Smrg      <entry></entry>
226244dda7b2Smrg      <entry></entry>
226344dda7b2Smrg      <entry spanname="col5_on">
226444dda7b2Smrg<function>Manage</function>
226544dda7b2Smrgpacket received with Session ID matching the session
226644dda7b2Smrgattempting to connect to the display.
226744dda7b2Smrg      </entry>
226844dda7b2Smrg    </row>
226944dda7b2Smrg
227044dda7b2Smrg    <row rowsep="0">
227144dda7b2Smrg      <entry></entry>
227244dda7b2Smrg      <entry></entry>
227344dda7b2Smrg      <entry></entry>
227444dda7b2Smrg      <entry spanname="col4_on">
227544dda7b2SmrgSolution:
227644dda7b2Smrg      </entry>
227744dda7b2Smrg    </row>
227844dda7b2Smrg
227944dda7b2Smrg    <row rowsep="0">
228044dda7b2Smrg      <entry></entry>
228144dda7b2Smrg      <entry></entry>
228244dda7b2Smrg      <entry></entry>
228344dda7b2Smrg      <entry></entry>
228444dda7b2Smrg      <entry spanname="col5_on">
228544dda7b2Smrg<function>Manage</function>
228644dda7b2Smrgpacket is ignored.  As the stream connection will either
228744dda7b2Smrgsucceed, which will result in an active session, or the stream will
228844dda7b2Smrgeventually give up hope of connecting and send a
228944dda7b2Smrg<function>Failed</function>
229044dda7b2Smrgpacket; no response to this
229144dda7b2Smrg<function>Manage</function>
229244dda7b2Smrgpacket is necessary.
229344dda7b2Smrg      </entry>
229444dda7b2Smrg    </row>
229544dda7b2Smrg
229644dda7b2Smrg    <row rowsep="0">
229744dda7b2Smrg      <entry></entry>
229844dda7b2Smrg      <entry spanname="col2_on">
229944dda7b2SmrgTimeout/Retransmission policy:
230044dda7b2Smrg      </entry>
230144dda7b2Smrg    </row>
230244dda7b2Smrg
230344dda7b2Smrg    <row rowsep="0">
230444dda7b2Smrg      <entry></entry>
230544dda7b2Smrg      <entry></entry>
230644dda7b2Smrg      <entry spanname="col3_on">
230744dda7b2SmrgTimeout after 2 seconds, exponential backoff to 32 seconds.  After no more
230844dda7b2Smrgthan 126 seconds, give up and report an error to the user.
230944dda7b2Smrg      </entry>
231044dda7b2Smrg    </row>
231144dda7b2Smrg
231244dda7b2Smrg    <row rowsep="0">
231344dda7b2Smrg      <entry spanname="col1_on">
231444dda7b2Smrg<function>Refuse</function>
231544dda7b2Smrg      </entry>
231644dda7b2Smrg    </row>
231744dda7b2Smrg
231844dda7b2Smrg    <row rowsep="0">
231944dda7b2Smrg      <entry></entry>
232044dda7b2Smrg      <entry spanname="col2_on">
232144dda7b2Smrg        <para>
232244dda7b2SmrgManager -&gt; Display
232344dda7b2Smrg        </para>
232444dda7b2Smrg        <para>
232544dda7b2SmrgAdditional Fields:
232644dda7b2Smrg        </para>
232744dda7b2Smrg      </entry>
232844dda7b2Smrg    </row>
232944dda7b2Smrg
233044dda7b2Smrg    <row rowsep="0">
233144dda7b2Smrg      <entry></entry>
233244dda7b2Smrg      <entry></entry>
233344dda7b2Smrg      <entry spanname="col3_on">
233444dda7b2Smrg<emphasis remap='I'>Session ID</emphasis>: CARD32
233544dda7b2Smrg      </entry>
233644dda7b2Smrg    </row>
233744dda7b2Smrg
233844dda7b2Smrg    <row rowsep="0">
233944dda7b2Smrg      <entry></entry>
234044dda7b2Smrg      <entry></entry>
234144dda7b2Smrg      <entry></entry>
234244dda7b2Smrg      <entry spanname="col4_on">
234344dda7b2SmrgShould be set to the Session ID received in the
234444dda7b2Smrg<function>Manage</function>
234544dda7b2Smrgpacket.
234644dda7b2Smrg      </entry>
234744dda7b2Smrg    </row>
234844dda7b2Smrg
234944dda7b2Smrg
235044dda7b2Smrg    <row rowsep="0">
235144dda7b2Smrg      <entry></entry>
235244dda7b2Smrg      <entry spanname="col2_on">
235344dda7b2SmrgSemantics:
235444dda7b2Smrg      </entry>
235544dda7b2Smrg    </row>
235644dda7b2Smrg
235744dda7b2Smrg    <row rowsep="0">
235844dda7b2Smrg      <entry></entry>
235944dda7b2Smrg      <entry></entry>
236044dda7b2Smrg      <entry spanname="col3_on">
236144dda7b2SmrgA
236244dda7b2Smrg<function>Refuse</function>
236344dda7b2Smrgpacket is sent by a manager when the Session ID received in the
236444dda7b2Smrg<function>Manage</function>
236544dda7b2Smrgpacket does not match the current Session ID.
236644dda7b2SmrgThe display should assume that it received an old
236744dda7b2Smrg<function>Accept</function>
236844dda7b2Smrgpacket and should resend its
236944dda7b2Smrg<function>Request</function>
237044dda7b2Smrgpacket.
237144dda7b2Smrg      </entry>
237244dda7b2Smrg    </row>
237344dda7b2Smrg
237444dda7b2Smrg    <row rowsep="0">
237544dda7b2Smrg      <entry></entry>
237644dda7b2Smrg      <entry spanname="col2_on">
237744dda7b2SmrgProblems/Solutions:
237844dda7b2Smrg      </entry>
237944dda7b2Smrg    </row>
238044dda7b2Smrg
238144dda7b2Smrg    <row rowsep="0">
238244dda7b2Smrg      <entry></entry>
238344dda7b2Smrg      <entry></entry>
238444dda7b2Smrg      <entry spanname="col3_on">
238544dda7b2SmrgProblem:
238644dda7b2Smrg      </entry>
238744dda7b2Smrg    </row>
238844dda7b2Smrg
238944dda7b2Smrg    <row rowsep="0">
239044dda7b2Smrg      <entry></entry>
239144dda7b2Smrg      <entry></entry>
239244dda7b2Smrg      <entry></entry>
239344dda7b2Smrg      <entry spanname="col4_on">
239444dda7b2SmrgError message is lost.
239544dda7b2Smrg      </entry>
239644dda7b2Smrg    </row>
239744dda7b2Smrg
239844dda7b2Smrg    <row rowsep="0">
239944dda7b2Smrg      <entry></entry>
240044dda7b2Smrg      <entry></entry>
240144dda7b2Smrg      <entry></entry>
240244dda7b2Smrg      <entry spanname="col4_on">
240344dda7b2SmrgIndication:
240444dda7b2Smrg      </entry>
240544dda7b2Smrg    </row>
240644dda7b2Smrg
240744dda7b2Smrg    <row rowsep="0">
240844dda7b2Smrg      <entry></entry>
240944dda7b2Smrg      <entry></entry>
241044dda7b2Smrg      <entry></entry>
241144dda7b2Smrg      <entry></entry>
241244dda7b2Smrg      <entry spanname="col5_on">
241344dda7b2SmrgDisplay times out waiting for
241444dda7b2Smrgnew connection,
241544dda7b2Smrg<function>Refuse</function>
241644dda7b2Smrgor
241744dda7b2Smrg<function>Failed .</function>
241844dda7b2Smrg      </entry>
241944dda7b2Smrg    </row>
242044dda7b2Smrg
242144dda7b2Smrg    <row rowsep="0">
242244dda7b2Smrg      <entry></entry>
242344dda7b2Smrg      <entry></entry>
242444dda7b2Smrg      <entry></entry>
242544dda7b2Smrg      <entry spanname="col4_on">
242644dda7b2SmrgSolution:
242744dda7b2Smrg      </entry>
242844dda7b2Smrg    </row>
242944dda7b2Smrg
243044dda7b2Smrg    <row rowsep="0">
243144dda7b2Smrg      <entry></entry>
243244dda7b2Smrg      <entry></entry>
243344dda7b2Smrg      <entry></entry>
243444dda7b2Smrg      <entry></entry>
243544dda7b2Smrg      <entry spanname="col5_on">
243644dda7b2SmrgDisplay resends
243744dda7b2Smrg<function>Manage</function>
243844dda7b2Smrgmessage.
243944dda7b2Smrg      </entry>
244044dda7b2Smrg    </row>
244144dda7b2Smrg
244244dda7b2Smrg
244344dda7b2Smrg
244444dda7b2Smrg    <row rowsep="0">
244544dda7b2Smrg      <entry></entry>
244644dda7b2Smrg      <entry spanname="col2_on">
244744dda7b2SmrgTimeout/Retransmission policy:
244844dda7b2Smrg      </entry>
244944dda7b2Smrg    </row>
245044dda7b2Smrg
245144dda7b2Smrg    <row rowsep="0">
245244dda7b2Smrg      <entry></entry>
245344dda7b2Smrg      <entry></entry>
245444dda7b2Smrg      <entry spanname="col3_on">
245544dda7b2SmrgLike all packets sent from a manager to a display, this packet should never be
245644dda7b2Smrgretransmitted.
245744dda7b2Smrg      </entry>
245844dda7b2Smrg    </row>
245944dda7b2Smrg
246044dda7b2Smrg    <row rowsep="0">
246144dda7b2Smrg      <entry spanname="col1_on">
246244dda7b2Smrg<function>Failed</function>
246344dda7b2Smrg      </entry>
246444dda7b2Smrg    </row>
246544dda7b2Smrg
246644dda7b2Smrg    <row rowsep="0">
246744dda7b2Smrg      <entry></entry>
246844dda7b2Smrg      <entry spanname="col2_on">
246944dda7b2Smrg        <para>
247044dda7b2SmrgManager -&gt; Display
247144dda7b2Smrg        </para>
247244dda7b2Smrg        <para>
247344dda7b2SmrgAdditional Fields:
247444dda7b2Smrg        </para>
247544dda7b2Smrg      </entry>
247644dda7b2Smrg    </row>
247744dda7b2Smrg
247844dda7b2Smrg    <row rowsep="0">
247944dda7b2Smrg      <entry></entry>
248044dda7b2Smrg      <entry></entry>
248144dda7b2Smrg      <entry spanname="col3_on">
248244dda7b2Smrg<emphasis remap='I'>Session ID</emphasis>: CARD32
248344dda7b2Smrg      </entry>
248444dda7b2Smrg    </row>
248544dda7b2Smrg
248644dda7b2Smrg    <row rowsep="0">
248744dda7b2Smrg      <entry></entry>
248844dda7b2Smrg      <entry></entry>
248944dda7b2Smrg      <entry></entry>
249044dda7b2Smrg      <entry spanname="col4_on">
249144dda7b2SmrgShould be set to the Session ID received in the
249244dda7b2Smrg<function>Manage</function>
249344dda7b2Smrgpacket.
249444dda7b2Smrg      </entry>
249544dda7b2Smrg    </row>
249644dda7b2Smrg
249744dda7b2Smrg    <row rowsep="0">
249844dda7b2Smrg      <entry></entry>
249944dda7b2Smrg      <entry></entry>
250044dda7b2Smrg      <entry spanname="col3_on">
250144dda7b2Smrg<emphasis remap='I'>Status</emphasis>: ARRAY8
250244dda7b2Smrg      </entry>
250344dda7b2Smrg    </row>
250444dda7b2Smrg
250544dda7b2Smrg    <row rowsep="0">
250644dda7b2Smrg      <entry></entry>
250744dda7b2Smrg      <entry></entry>
250844dda7b2Smrg      <entry></entry>
250944dda7b2Smrg      <entry spanname="col4_on">
251044dda7b2SmrgIs a human readable string indicating the reason for failure.
251144dda7b2Smrg      </entry>
251244dda7b2Smrg    </row>
251344dda7b2Smrg
251444dda7b2Smrg
251544dda7b2Smrg    <row rowsep="0">
251644dda7b2Smrg      <entry></entry>
251744dda7b2Smrg      <entry spanname="col2_on">
251844dda7b2SmrgSemantics:
251944dda7b2Smrg      </entry>
252044dda7b2Smrg    </row>
252144dda7b2Smrg
252244dda7b2Smrg    <row rowsep="0">
252344dda7b2Smrg      <entry></entry>
252444dda7b2Smrg      <entry></entry>
252544dda7b2Smrg      <entry spanname="col3_on">
252644dda7b2SmrgA
252744dda7b2Smrg<function>Failed</function>
252844dda7b2Smrgpacket is sent by a manager when it has problems establishing
252944dda7b2Smrgthe initial X connection in response to the
253044dda7b2Smrg<function>Manage</function>
253144dda7b2Smrgpacket.
253244dda7b2Smrg      </entry>
253344dda7b2Smrg    </row>
253444dda7b2Smrg
253544dda7b2Smrg    <row rowsep="0">
253644dda7b2Smrg      <entry></entry>
253744dda7b2Smrg      <entry spanname="col2_on">
253844dda7b2SmrgProblems/Solutions
253944dda7b2Smrg      </entry>
254044dda7b2Smrg    </row>
254144dda7b2Smrg
254244dda7b2Smrg    <row rowsep="0">
254344dda7b2Smrg      <entry></entry>
254444dda7b2Smrg      <entry></entry>
254544dda7b2Smrg      <entry spanname="col3_on">
254644dda7b2SmrgSame as for
254744dda7b2Smrg<function>Refuse .</function>
254844dda7b2Smrg      </entry>
254944dda7b2Smrg    </row>
255044dda7b2Smrg
255144dda7b2Smrg    <row rowsep="0">
255244dda7b2Smrg      <entry spanname="col1_on">
255344dda7b2Smrg<function>KeepAlive</function>
255444dda7b2Smrg      </entry>
255544dda7b2Smrg    </row>
255644dda7b2Smrg
255744dda7b2Smrg    <row rowsep="0">
255844dda7b2Smrg      <entry></entry>
255944dda7b2Smrg      <entry spanname="col2_on">
256044dda7b2Smrg        <para>
256144dda7b2SmrgDisplay -&gt; Manager
256244dda7b2Smrg        </para>
256344dda7b2Smrg        <para>
256444dda7b2SmrgAdditional Fields:
256544dda7b2Smrg        </para>
256644dda7b2Smrg      </entry>
256744dda7b2Smrg    </row>
256844dda7b2Smrg
256944dda7b2Smrg    <row rowsep="0">
257044dda7b2Smrg      <entry></entry>
257144dda7b2Smrg      <entry></entry>
257244dda7b2Smrg      <entry spanname="col3_on">
257344dda7b2Smrg<emphasis remap='I'>Display Number</emphasis>: CARD16
257444dda7b2Smrg      </entry>
257544dda7b2Smrg    </row>
257644dda7b2Smrg
257744dda7b2Smrg    <row rowsep="0">
257844dda7b2Smrg      <entry></entry>
257944dda7b2Smrg      <entry></entry>
258044dda7b2Smrg      <entry></entry>
258144dda7b2Smrg      <entry spanname="col4_on">
258244dda7b2SmrgSet to the display index for the display host.
258344dda7b2Smrg      </entry>
258444dda7b2Smrg    </row>
258544dda7b2Smrg
258644dda7b2Smrg    <row rowsep="0">
258744dda7b2Smrg      <entry></entry>
258844dda7b2Smrg      <entry></entry>
258944dda7b2Smrg      <entry spanname="col3_on">
259044dda7b2Smrg<emphasis remap='I'>Session ID</emphasis>: CARD32
259144dda7b2Smrg      </entry>
259244dda7b2Smrg    </row>
259344dda7b2Smrg
259444dda7b2Smrg    <row rowsep="0">
259544dda7b2Smrg      <entry></entry>
259644dda7b2Smrg      <entry></entry>
259744dda7b2Smrg      <entry></entry>
259844dda7b2Smrg      <entry spanname="col4_on">
259944dda7b2SmrgShould be set to the Session ID received in the
260044dda7b2Smrg<function>Manage</function>
260144dda7b2Smrgpacket during the negotiation for the current session.
260244dda7b2Smrg      </entry>
260344dda7b2Smrg    </row>
260444dda7b2Smrg
260544dda7b2Smrg    <row rowsep="0">
260644dda7b2Smrg      <entry></entry>
260744dda7b2Smrg      <entry spanname="col2_on">
260844dda7b2SmrgSematics:
260944dda7b2Smrg      </entry>
261044dda7b2Smrg    </row>
261144dda7b2Smrg
261244dda7b2Smrg    <row rowsep="0">
261344dda7b2Smrg      <entry></entry>
261444dda7b2Smrg      <entry></entry>
261544dda7b2Smrg      <entry spanname="col3_on">
261644dda7b2Smrg        <para>
261744dda7b2SmrgA
261844dda7b2Smrg<function>KeepAlive</function>
261944dda7b2Smrgpacket can be sent at any time during the session by a
262044dda7b2Smrgdisplay to discover if the manager is running.
262144dda7b2SmrgThe manager should respond with
262244dda7b2Smrg<function>Alive</function>
262344dda7b2Smrgwhenever it receives this type of packet.
262444dda7b2Smrg        </para>
262544dda7b2Smrg        <para>
262644dda7b2SmrgThis allows the display to discover when the manager host
262744dda7b2Smrgis no longer running.
262844dda7b2SmrgA display is not required to send
262944dda7b2Smrg<function>KeepAlive</function>
263044dda7b2Smrgpackets and, upon lack of receipt of
263144dda7b2Smrg<function>Alive</function>
263244dda7b2Smrgpackets, is not required to perform any specific action.
263344dda7b2Smrg        </para>
263444dda7b2Smrg        <para>
263544dda7b2SmrgThe expected use of this packet is to terminate an active session when the
263644dda7b2Smrgmanager host or network link fails.  The display should keep track of the
263744dda7b2Smrgtime since any packet has been received from the manager host and use
263844dda7b2Smrg<function>KeepAlive</function>
263944dda7b2Smrgpackets when a substantial time has elapsed since the
264044dda7b2Smrgmost recent packet.
264144dda7b2Smrg        </para>
264244dda7b2Smrg      </entry>
264344dda7b2Smrg    </row>
264444dda7b2Smrg
264544dda7b2Smrg    <row rowsep="0">
264644dda7b2Smrg      <entry></entry>
264744dda7b2Smrg      <entry spanname="col2_on">
264844dda7b2SmrgValid Responses:
264944dda7b2Smrg      </entry>
265044dda7b2Smrg    </row>
265144dda7b2Smrg
265244dda7b2Smrg    <row rowsep="0">
265344dda7b2Smrg      <entry></entry>
265444dda7b2Smrg      <entry></entry>
265544dda7b2Smrg      <entry spanname="col3_on">
265644dda7b2Smrg<function>Alive</function>
265744dda7b2Smrg      </entry>
265844dda7b2Smrg    </row>
265944dda7b2Smrg
266044dda7b2Smrg    <row rowsep="0">
266144dda7b2Smrg      <entry></entry>
266244dda7b2Smrg      <entry spanname="col2_on">
266344dda7b2SmrgProblems/Solutions:
266444dda7b2Smrg      </entry>
266544dda7b2Smrg    </row>
266644dda7b2Smrg
266744dda7b2Smrg    <row rowsep="0">
266844dda7b2Smrg      <entry></entry>
266944dda7b2Smrg      <entry></entry>
267044dda7b2Smrg      <entry spanname="col3_on">
267144dda7b2SmrgProblem:
267244dda7b2Smrg      </entry>
267344dda7b2Smrg    </row>
267444dda7b2Smrg
267544dda7b2Smrg    <row rowsep="0">
267644dda7b2Smrg      <entry></entry>
267744dda7b2Smrg      <entry></entry>
267844dda7b2Smrg      <entry></entry>
267944dda7b2Smrg      <entry spanname="col4_on">
268044dda7b2SmrgManager does not receive the packet or display does not receive the response.
268144dda7b2Smrg      </entry>
268244dda7b2Smrg    </row>
268344dda7b2Smrg
268444dda7b2Smrg
268544dda7b2Smrg    <row rowsep="0">
268644dda7b2Smrg      <entry></entry>
268744dda7b2Smrg      <entry></entry>
268844dda7b2Smrg      <entry></entry>
268944dda7b2Smrg      <entry spanname="col4_on">
269044dda7b2SmrgIndication:
269144dda7b2Smrg      </entry>
269244dda7b2Smrg    </row>
269344dda7b2Smrg
269444dda7b2Smrg    <row rowsep="0">
269544dda7b2Smrg      <entry></entry>
269644dda7b2Smrg      <entry></entry>
269744dda7b2Smrg      <entry></entry>
269844dda7b2Smrg      <entry></entry>
269944dda7b2Smrg      <entry spanname="col5_on">
270044dda7b2SmrgNo
270144dda7b2Smrg<function>Alive</function>
270244dda7b2Smrgpacket is returned.
270344dda7b2Smrg      </entry>
270444dda7b2Smrg    </row>
270544dda7b2Smrg
270644dda7b2Smrg    <row rowsep="0">
270744dda7b2Smrg      <entry></entry>
270844dda7b2Smrg      <entry></entry>
270944dda7b2Smrg      <entry></entry>
271044dda7b2Smrg      <entry spanname="col4_on">
271144dda7b2SmrgSolution:
271244dda7b2Smrg      </entry>
271344dda7b2Smrg    </row>
271444dda7b2Smrg
271544dda7b2Smrg    <row rowsep="0">
271644dda7b2Smrg      <entry></entry>
271744dda7b2Smrg      <entry></entry>
271844dda7b2Smrg      <entry></entry>
271944dda7b2Smrg      <entry></entry>
272044dda7b2Smrg      <entry spanname="col5_on">
272144dda7b2SmrgRetransmit the packet with an exponential backoff; start at 2 seconds and
272244dda7b2Smrgassume the host is not up after no less than 30 seconds.
272344dda7b2Smrg      </entry>
272444dda7b2Smrg    </row>
272544dda7b2Smrg
272644dda7b2Smrg    <row rowsep="0">
272744dda7b2Smrg      <entry spanname="col1_on">
272844dda7b2Smrg<function>Alive</function>
272944dda7b2Smrg      </entry>
273044dda7b2Smrg    </row>
273144dda7b2Smrg
273244dda7b2Smrg    <row rowsep="0">
273344dda7b2Smrg      <entry></entry>
273444dda7b2Smrg      <entry spanname="col2_on">
273544dda7b2Smrg        <para>
273644dda7b2SmrgManager -&gt; Display
273744dda7b2Smrg        </para>
273844dda7b2Smrg        <para>
273944dda7b2SmrgAdditional Fields:
274044dda7b2Smrg        </para>
274144dda7b2Smrg      </entry>
274244dda7b2Smrg    </row>
274344dda7b2Smrg
274444dda7b2Smrg    <row rowsep="0">
274544dda7b2Smrg      <entry></entry>
274644dda7b2Smrg      <entry></entry>
274744dda7b2Smrg      <entry spanname="col3_on">
274844dda7b2Smrg<emphasis remap='I'>Session Running</emphasis>: CARD8
274944dda7b2Smrg      </entry>
275044dda7b2Smrg    </row>
275144dda7b2Smrg
275244dda7b2Smrg    <row rowsep="0">
275344dda7b2Smrg      <entry></entry>
275444dda7b2Smrg      <entry></entry>
275544dda7b2Smrg      <entry></entry>
275644dda7b2Smrg      <entry spanname="col4_on">
275744dda7b2SmrgIndicates that the session identified by Session ID is
275844dda7b2Smrgcurrently active.  The value is zero if no session is active
275944dda7b2Smrgor one if a session
276044dda7b2Smrgis active.
276144dda7b2Smrg      </entry>
276244dda7b2Smrg    </row>
276344dda7b2Smrg
276444dda7b2Smrg    <row rowsep="0">
276544dda7b2Smrg      <entry></entry>
276644dda7b2Smrg      <entry></entry>
276744dda7b2Smrg      <entry spanname="col3_on">
276844dda7b2Smrg<emphasis remap='I'>Session ID</emphasis>: CARD32
276944dda7b2Smrg      </entry>
277044dda7b2Smrg    </row>
277144dda7b2Smrg
277244dda7b2Smrg    <row rowsep="0">
277344dda7b2Smrg      <entry></entry>
277444dda7b2Smrg      <entry></entry>
277544dda7b2Smrg      <entry></entry>
277644dda7b2Smrg      <entry spanname="col4_on">
277744dda7b2SmrgSpecifies the ID of the currently running session; if any.
277844dda7b2SmrgWhen no session is active this field should be zero.
277944dda7b2Smrg      </entry>
278044dda7b2Smrg    </row>
278144dda7b2Smrg
278244dda7b2Smrg
278344dda7b2Smrg    <row rowsep="0">
278444dda7b2Smrg      <entry></entry>
278544dda7b2Smrg      <entry spanname="col2_on">
278644dda7b2SmrgSemantics:
278744dda7b2Smrg      </entry>
278844dda7b2Smrg    </row>
278944dda7b2Smrg
279044dda7b2Smrg    <row rowsep="0">
279144dda7b2Smrg      <entry></entry>
279244dda7b2Smrg      <entry></entry>
279344dda7b2Smrg      <entry spanname="col3_on">
279444dda7b2SmrgAn
279544dda7b2Smrg<function>Alive</function>
279644dda7b2Smrgpacket is sent in response to a
279744dda7b2Smrg<function>KeepAlive</function>
279844dda7b2Smrgrequest.
279944dda7b2SmrgIf a session is currently active on the display, the manager includes the
280044dda7b2SmrgSession ID in the packet.  The display can use this information to
280144dda7b2Smrgdetermine the status of the manager.
280244dda7b2Smrg      </entry>
280344dda7b2Smrg    </row>
280444dda7b2Smrg  </tbody>
280544dda7b2Smrg  </tgroup>
280644dda7b2Smrg</informaltable>
280744dda7b2Smrg
280844dda7b2Smrg</sect1>
280944dda7b2Smrg
281044dda7b2Smrg<sect1 id="Session_Termination">
281144dda7b2Smrg<title>Session Termination</title>
281244dda7b2Smrg<para>
281344dda7b2SmrgWhen the session is over, the initial connection with the display (the one
281444dda7b2Smrgthat acknowledges the
281544dda7b2Smrg<function>Manage</function>
281644dda7b2Smrgpacket) will be closed by the manager.
281744dda7b2SmrgIf only a single session was active on the display,
281844dda7b2Smrgall other connections should be closed by the display
281944dda7b2Smrgand the display should be reset.  If multiple sessions
282044dda7b2Smrgare active simultaneously and the display can identify which connections
282144dda7b2Smrgbelong to the terminated sesssion, those connections should be closed.
282244dda7b2SmrgOtherwise, all connections should be closed and the display reset only when
282344dda7b2Smrgall sessions have been terminated (that is, all initial connections closed).
282444dda7b2Smrg</para>
282544dda7b2Smrg
282644dda7b2Smrg<para>
282744dda7b2SmrgThe session may also be terminated at any time by the display if the
282844dda7b2Smrgmanaging host no longer responds to
282944dda7b2Smrg<function>KeepAlive</function>
283044dda7b2Smrgpackets.
283144dda7b2SmrgThe exact time-outs for sending
283244dda7b2Smrg<function>KeepAlive</function>
283344dda7b2Smrgpackets is not specified in this protocol as the trade off
283444dda7b2Smrgshould not be fixed between loading an otherwise idle system with spurious
283544dda7b2Smrg<function>KeepAlive</function>
283644dda7b2Smrgpackets and not noticing that the manager host is down for a long time.
283744dda7b2Smrg</para>
283844dda7b2Smrg</sect1>
283944dda7b2Smrg
284044dda7b2Smrg<sect1 id="State_Diagrams">
284144dda7b2Smrg<title>State Diagrams</title>
284244dda7b2Smrg<!-- .XS -->
284344dda7b2Smrg<!-- (SN State Diagrams -->
284444dda7b2Smrg<!-- .XE -->
284544dda7b2Smrg<para>
284644dda7b2Smrg<!-- .LP -->
284744dda7b2SmrgThe following state diagrams are designed to cover all actions of both
284844dda7b2Smrgthe display and the manager.  Any packet that is received out-of-sequence
284944dda7b2Smrgwill be ignored.
285044dda7b2Smrg</para>
285144dda7b2Smrg<para>
285244dda7b2Smrg<!-- .LP -->
285344dda7b2SmrgDisplay:
285444dda7b2Smrg</para>
285544dda7b2Smrg
285644dda7b2Smrg<variablelist>
285744dda7b2Smrg  <varlistentry>
285844dda7b2Smrg    <term><emphasis remap='I'>start</emphasis>:</term>
285944dda7b2Smrg    <listitem>
286044dda7b2Smrg      <para>
286144dda7b2SmrgUser-requested connect to one host -&gt; <emphasis remap='I'>query</emphasis>
286244dda7b2Smrg      </para>
286344dda7b2Smrg      <para>
286444dda7b2SmrgUser-requested connect to some host -&gt; <emphasis remap='I'>broadcast</emphasis>
286544dda7b2Smrg      </para>
286644dda7b2Smrg      <para>
286744dda7b2SmrgUser-requested connect to site host-list -&gt; <emphasis remap='I'>indirect</emphasis>
286844dda7b2Smrg      </para>
286944dda7b2Smrg    </listitem>
287044dda7b2Smrg  </varlistentry>
287144dda7b2Smrg  <varlistentry>
287244dda7b2Smrg    <term><emphasis remap='I'>query</emphasis>:</term>
287344dda7b2Smrg    <listitem>
287444dda7b2Smrg      <para>
287544dda7b2SmrgSend <function>Query</function> packet
287644dda7b2Smrg-&gt; <emphasis remap='I'>collect-query</emphasis>
287744dda7b2Smrg      </para>
287844dda7b2Smrg    </listitem>
287944dda7b2Smrg  </varlistentry>
288044dda7b2Smrg  <varlistentry>
288144dda7b2Smrg    <term><emphasis remap='I'>collect-query</emphasis>:</term>
288244dda7b2Smrg    <listitem>
288344dda7b2Smrg      <para>
288444dda7b2SmrgReceive <function>Willing</function> -&gt;
288544dda7b2Smrg<emphasis remap='I'>start-connection</emphasis>
288644dda7b2Smrg      </para>
288744dda7b2Smrg      <para>
288844dda7b2SmrgReceive <function>Unwilling</function> -&gt;
288944dda7b2Smrg<emphasis remap='I'>stop-connection</emphasis>
289044dda7b2Smrg      </para>
289144dda7b2Smrg      <para>
289244dda7b2SmrgTimeout -&gt; <emphasis remap='I'>query</emphasis>
289344dda7b2Smrg      </para>
289444dda7b2Smrg    </listitem>
289544dda7b2Smrg  </varlistentry>
289644dda7b2Smrg
289744dda7b2Smrg  <varlistentry>
289844dda7b2Smrg    <term><emphasis remap='I'>broadcast</emphasis>:</term>
289944dda7b2Smrg    <listitem>
290044dda7b2Smrg      <para>
290144dda7b2SmrgSend <function>BroadcastQuery</function> packet
290244dda7b2Smrg      </para>
290344dda7b2Smrg      <para>
290444dda7b2Smrg-&gt; <emphasis remap='I'>collect-broadcast-query</emphasis>
290544dda7b2Smrg      </para>
290644dda7b2Smrg    </listitem>
290744dda7b2Smrg  </varlistentry>
290844dda7b2Smrg  <varlistentry>
290944dda7b2Smrg    <term><emphasis remap='I'>collect-broadcast-query</emphasis>:</term>
291044dda7b2Smrg    <listitem>
291144dda7b2Smrg      <para>
291244dda7b2SmrgReceive <function>Willing</function> -&gt;
291344dda7b2Smrg<emphasis remap='I'>update-broadcast-willing</emphasis>
291444dda7b2Smrg      </para>
291544dda7b2Smrg      <para>
291644dda7b2SmrgUser-requested connect to one host -&gt;
291744dda7b2Smrg<emphasis remap='I'>start-connection</emphasis>
291844dda7b2Smrg      </para>
291944dda7b2Smrg      <para>
292044dda7b2SmrgTimeout -&gt; <emphasis remap='I'>broadcast</emphasis>
292144dda7b2Smrg      </para>
292244dda7b2Smrg    </listitem>
292344dda7b2Smrg  </varlistentry>
292444dda7b2Smrg  <varlistentry>
292544dda7b2Smrg    <term><emphasis remap='I'>update-broadcast-willing</emphasis>:</term>
292644dda7b2Smrg    <listitem>
292744dda7b2Smrg      <para>
292844dda7b2SmrgAdd new host to the host list presented to the user
292944dda7b2Smrg      </para>
293044dda7b2Smrg      <para>
293144dda7b2Smrg-&gt; <emphasis remap='I'>collect-broadcast-query</emphasis>
293244dda7b2Smrg      </para>
293344dda7b2Smrg    </listitem>
293444dda7b2Smrg  </varlistentry>
293544dda7b2Smrg  <varlistentry>
293644dda7b2Smrg    <term><emphasis remap='I'>indirect</emphasis>:</term>
293744dda7b2Smrg    <listitem>
293844dda7b2Smrg      <para>
293944dda7b2SmrgSend <function>IndirectQuery</function> packet
294044dda7b2Smrg      </para>
294144dda7b2Smrg      <para>
294244dda7b2Smrg-&gt; <emphasis remap='I'>collect-indirect-query</emphasis>
294344dda7b2Smrg      </para>
294444dda7b2Smrg    </listitem>
294544dda7b2Smrg  </varlistentry>
294644dda7b2Smrg  <varlistentry>
294744dda7b2Smrg    <term><emphasis remap='I'>collect-indirect-query</emphasis>:</term>
294844dda7b2Smrg    <listitem>
294944dda7b2Smrg      <para>
295044dda7b2SmrgReceive <function>Willing</function> -&gt;
295144dda7b2Smrg<emphasis remap='I'>update-indirect-willing</emphasis>
295244dda7b2Smrg      </para>
295344dda7b2Smrg      <para>
295444dda7b2SmrgUser-requested connect to one host -&gt;
295544dda7b2Smrg<emphasis remap='I'>start-connection</emphasis>
295644dda7b2Smrg      </para>
295744dda7b2Smrg      <para>
295844dda7b2SmrgTimeout -&gt; <emphasis remap='I'>indirect</emphasis>
295944dda7b2Smrg      </para>
296044dda7b2Smrg    </listitem>
296144dda7b2Smrg  </varlistentry>
296244dda7b2Smrg  <varlistentry>
296344dda7b2Smrg    <term><emphasis remap='I'>update-indirect-willing</emphasis>:</term>
296444dda7b2Smrg    <listitem>
296544dda7b2Smrg      <para>
296644dda7b2SmrgAdd new host to the host list presented to the user
296744dda7b2Smrg      </para>
296844dda7b2Smrg      <para>
296944dda7b2Smrg-&gt; <emphasis remap='I'>collect-indirect-query</emphasis>
297044dda7b2Smrg      </para>
297144dda7b2Smrg    </listitem>
297244dda7b2Smrg  </varlistentry>
297344dda7b2Smrg
297444dda7b2Smrg  <varlistentry>
297544dda7b2Smrg    <term><emphasis remap='I'>start-connection</emphasis>:</term>
297644dda7b2Smrg    <listitem>
297744dda7b2Smrg      <para>
297844dda7b2SmrgSend <function>Request</function> packet
297944dda7b2Smrg      </para>
298044dda7b2Smrg      <para>
298144dda7b2Smrg-&gt; <emphasis remap='I'>await-request-response</emphasis>
298244dda7b2Smrg      </para>
298344dda7b2Smrg    </listitem>
298444dda7b2Smrg  </varlistentry>
298544dda7b2Smrg  <varlistentry>
298644dda7b2Smrg    <term><emphasis remap='I'>await-request-response</emphasis>:</term>
298744dda7b2Smrg    <listitem>
298844dda7b2Smrg      <para>
298944dda7b2SmrgReceive <function>Accept</function> -&gt;
299044dda7b2Smrg<emphasis remap='I'>manage</emphasis>
299144dda7b2Smrg      </para>
299244dda7b2Smrg      <para>
299344dda7b2SmrgReceive <function>Decline</function> -&gt;
299444dda7b2Smrg<emphasis remap='I'>stop-connection</emphasis>
299544dda7b2Smrg      </para>
299644dda7b2Smrg      <para>
299744dda7b2SmrgTimeout -&gt; <emphasis remap='I'>start-connection</emphasis>
299844dda7b2Smrg      </para>
299944dda7b2Smrg    </listitem>
300044dda7b2Smrg  </varlistentry>
300144dda7b2Smrg  <varlistentry>
300244dda7b2Smrg    <term><emphasis remap='I'>manage</emphasis>:</term>
300344dda7b2Smrg    <listitem>
300444dda7b2Smrg      <para>
300544dda7b2SmrgSave Session ID
300644dda7b2Smrg      </para>
300744dda7b2Smrg      <para>
300844dda7b2SmrgSend <function>Manage</function> packet with Session ID
300944dda7b2Smrg      </para>
301044dda7b2Smrg      <para>
301144dda7b2Smrg-&gt; <emphasis remap='I'>await-manage-response</emphasis>
301244dda7b2Smrg      </para>
301344dda7b2Smrg    </listitem>
301444dda7b2Smrg  </varlistentry>
301544dda7b2Smrg  <varlistentry>
301644dda7b2Smrg    <term><emphasis remap='I'>await-manage-response</emphasis>:</term>
301744dda7b2Smrg    <listitem>
301844dda7b2Smrg      <para>
301944dda7b2SmrgReceive <function>XOpenDisplay :</function> -&gt;
302044dda7b2Smrg<emphasis remap='I'>run-session</emphasis>
302144dda7b2Smrg      </para>
302244dda7b2Smrg      <para>
302344dda7b2SmrgReceive <function>Refuse</function> with matching Session ID
302444dda7b2Smrg-&gt; <emphasis remap='I'>start-connection</emphasis>
302544dda7b2Smrg      </para>
302644dda7b2Smrg      <para>
302744dda7b2SmrgReceive <function>Failed</function> with matching Session ID
302844dda7b2Smrg-&gt; <emphasis remap='I'>stop-connection</emphasis>
302944dda7b2Smrg      </para>
303044dda7b2Smrg      <para>
303144dda7b2SmrgTimeout -&gt; <emphasis remap='I'>manage</emphasis>
303244dda7b2Smrg      </para>
303344dda7b2Smrg    </listitem>
303444dda7b2Smrg  </varlistentry>
303544dda7b2Smrg  <varlistentry>
303644dda7b2Smrg    <term><emphasis remap='I'>stop-connection</emphasis>:</term>
303744dda7b2Smrg    <listitem>
303844dda7b2Smrg      <para>
303944dda7b2SmrgDisplay cause of termination to user
304044dda7b2Smrg      </para>
304144dda7b2Smrg      <para>
304244dda7b2Smrg-&gt; <emphasis remap='I'>start</emphasis>
304344dda7b2Smrg      </para>
304444dda7b2Smrg    </listitem>
304544dda7b2Smrg  </varlistentry>
304644dda7b2Smrg  <varlistentry>
304744dda7b2Smrg    <term><emphasis remap='I'>run-session</emphasis>:</term>
304844dda7b2Smrg    <listitem>
304944dda7b2Smrg      <para>
305044dda7b2SmrgDecide to send <function>KeepAlive</function> packet -&gt;
305144dda7b2Smrg<emphasis remap='I'>keep-alive</emphasis>
305244dda7b2Smrg      </para>
305344dda7b2Smrg      <para>
305444dda7b2Smrgwait close of first display connection
305544dda7b2Smrg      </para>
305644dda7b2Smrg      <para>
305744dda7b2Smrg-&gt; <emphasis remap='I'>reset-display</emphasis>
305844dda7b2Smrg      </para>
305944dda7b2Smrg    </listitem>
306044dda7b2Smrg  </varlistentry>
306144dda7b2Smrg  <varlistentry>
306244dda7b2Smrg    <term><emphasis remap='I'>keep-alive</emphasis>:</term>
306344dda7b2Smrg    <listitem>
306444dda7b2Smrg      <para>
306544dda7b2SmrgSend <function>KeepAlive</function> packet with current Session ID
306644dda7b2Smrg      </para>
306744dda7b2Smrg      <para>
306844dda7b2Smrg-&gt; <emphasis remap='I'>await-alive</emphasis>
306944dda7b2Smrg      </para>
307044dda7b2Smrg    </listitem>
307144dda7b2Smrg  </varlistentry>
307244dda7b2Smrg  <varlistentry>
307344dda7b2Smrg    <term><emphasis remap='I'>await-alive</emphasis>:</term>
307444dda7b2Smrg    <listitem>
307544dda7b2Smrg      <para>
307644dda7b2SmrgReceive <function>Alive</function> with matching Session ID -&gt;
307744dda7b2Smrg<emphasis remap='I'>run-session</emphasis>
307844dda7b2Smrg      </para>
307944dda7b2Smrg      <para>
308044dda7b2SmrgReceive <function>Alive</function> with nonmatching Session ID
308144dda7b2Smrgor FALSE Session Running -&gt; <emphasis remap='I'>reset-display</emphasis>
308244dda7b2Smrg      </para>
308344dda7b2Smrg      <para>
308444dda7b2SmrgFinal timeout without receiving <function>Alive</function>
308544dda7b2Smrgpacket -&gt; <emphasis remap='I'>reset-display</emphasis>
308644dda7b2Smrg      </para>
308744dda7b2Smrg      <para>
308844dda7b2SmrgTimeout -&gt; <emphasis remap='I'>keep-alive</emphasis>
308944dda7b2Smrg      </para>
309044dda7b2Smrg    </listitem>
309144dda7b2Smrg  </varlistentry>
309244dda7b2Smrg  <varlistentry>
309344dda7b2Smrg    <term><emphasis remap='I'>reset-display</emphasis>:</term>
309444dda7b2Smrg    <listitem>
309544dda7b2Smrg      <para>
309644dda7b2Smrg(if possible) -&gt; close all display connections associated with this session
309744dda7b2Smrg      </para>
309844dda7b2Smrg      <para>
309944dda7b2SmrgLast session -&gt; close all display connections
310044dda7b2Smrg      </para>
310144dda7b2Smrg      <para>
310244dda7b2Smrg-&gt; <emphasis remap='I'>start</emphasis>
310344dda7b2Smrg      </para>
310444dda7b2Smrg    </listitem>
310544dda7b2Smrg  </varlistentry>
310644dda7b2Smrg</variablelist>
310744dda7b2Smrg
310844dda7b2Smrg
310944dda7b2Smrg<para>
311044dda7b2SmrgManager:
311144dda7b2Smrg</para>
311244dda7b2Smrg
311344dda7b2Smrg<variablelist>
311444dda7b2Smrg  <varlistentry>
311544dda7b2Smrg    <term><emphasis remap='I'>idle</emphasis>:</term>
311644dda7b2Smrg    <listitem>
311744dda7b2Smrg      <para>
311844dda7b2SmrgReceive <function>Query</function> -&gt;
311944dda7b2Smrg<emphasis remap='I'>query-respond</emphasis>
312044dda7b2Smrg      </para>
312144dda7b2Smrg      <para>
312244dda7b2SmrgReceive
312344dda7b2Smrg<function>BroadcastQuery</function>
312444dda7b2Smrg-&gt; <emphasis remap='I'>broadcast-respond</emphasis>
312544dda7b2Smrg      </para>
312644dda7b2Smrg      <para>
312744dda7b2SmrgReceive
312844dda7b2Smrg<function>IndirectQuery</function>
312944dda7b2Smrg-&gt; <emphasis remap='I'>indirect-respond</emphasis>
313044dda7b2Smrg      </para>
313144dda7b2Smrg      <para>
313244dda7b2SmrgReceive
313344dda7b2Smrg<function>ForwardQuery</function>
313444dda7b2Smrg-&gt; <emphasis remap='I'>forward-respond</emphasis>
313544dda7b2SmrgReceive
313644dda7b2Smrg      </para>
313744dda7b2Smrg      <para>
313844dda7b2Smrg<function>Request</function>
313944dda7b2Smrg-&gt; <emphasis remap='I'>request-respond</emphasis>
314044dda7b2Smrg      </para>
314144dda7b2Smrg      <para>
314244dda7b2SmrgReceive
314344dda7b2Smrg<function>Manage</function>
314444dda7b2Smrg-&gt; <emphasis remap='I'>manage</emphasis>
314544dda7b2Smrg      </para>
314644dda7b2Smrg      <para>
314744dda7b2SmrgAn active session terminates
314844dda7b2Smrg-&gt; <emphasis remap='I'>finish-session</emphasis>
314944dda7b2Smrg      </para>
315044dda7b2Smrg      <para>
315144dda7b2SmrgReceive <function>KeepAlive</function>
315244dda7b2Smrg-&gt; <emphasis remap='I'>send-alive</emphasis>
315344dda7b2Smrg      </para>
315444dda7b2Smrg      <para>
315544dda7b2Smrg-&gt; <emphasis remap='I'>idle</emphasis>
315644dda7b2Smrg      </para>
315744dda7b2Smrg    </listitem>
315844dda7b2Smrg  </varlistentry>
315944dda7b2Smrg  <varlistentry>
316044dda7b2Smrg    <term><emphasis remap='I'>query-respond</emphasis>:</term>
316144dda7b2Smrg    <listitem>
316244dda7b2Smrg      <para>
316344dda7b2SmrgIf willing to manage -&gt; <emphasis remap='I'>send-willing</emphasis>
316444dda7b2Smrg      </para>
316544dda7b2Smrg      <para>
316644dda7b2Smrg-&gt; <emphasis remap='I'>send-unwilling</emphasis>
316744dda7b2Smrg      </para>
316844dda7b2Smrg    </listitem>
316944dda7b2Smrg  </varlistentry>
317044dda7b2Smrg  <varlistentry>
317144dda7b2Smrg    <term><emphasis remap='I'>broadcast-respond</emphasis>:</term>
317244dda7b2Smrg    <listitem>
317344dda7b2Smrg      <para>
317444dda7b2SmrgIf willing to manage -&gt; <emphasis remap='I'>send-willing</emphasis>
317544dda7b2Smrg      </para>
317644dda7b2Smrg      <para>
317744dda7b2Smrg-&gt; <emphasis remap='I'>idle</emphasis>
317844dda7b2Smrg      </para>
317944dda7b2Smrg    </listitem>
318044dda7b2Smrg  </varlistentry>
318144dda7b2Smrg  <varlistentry>
318244dda7b2Smrg    <term><emphasis remap='I'>indirect-respond</emphasis>:</term>
318344dda7b2Smrg    <listitem>
318444dda7b2Smrg      <para>
318544dda7b2SmrgSend <function>ForwardQuery</function>
318644dda7b2Smrgpackets to all managers on redirect list
318744dda7b2Smrg      </para>
318844dda7b2Smrg      <para>
318944dda7b2SmrgIf willing to manage -&gt; <emphasis remap='I'>send-willing</emphasis>
319044dda7b2Smrg      </para>
319144dda7b2Smrg      <para>
319244dda7b2Smrg-&gt; <emphasis remap='I'>idle</emphasis>
319344dda7b2Smrg      </para>
319444dda7b2Smrg    </listitem>
319544dda7b2Smrg  </varlistentry>
319644dda7b2Smrg  <varlistentry>
319744dda7b2Smrg    <term><emphasis remap='I'>forward-respond</emphasis>:</term>
319844dda7b2Smrg    <listitem>
319944dda7b2Smrg      <para>
320044dda7b2SmrgDecode destination address, if willing to manage -&gt;
320144dda7b2Smrg<emphasis remap='I'>send-willing</emphasis>
320244dda7b2Smrg      </para>
320344dda7b2Smrg      <para>
320444dda7b2Smrg-&gt; <emphasis remap='I'>idle</emphasis>
320544dda7b2Smrg      </para>
320644dda7b2Smrg    </listitem>
320744dda7b2Smrg  </varlistentry>
320844dda7b2Smrg  <varlistentry>
320944dda7b2Smrg    <term><emphasis remap='I'>send-willing</emphasis>:</term>
321044dda7b2Smrg    <listitem>
321144dda7b2Smrg      <para>
321244dda7b2SmrgSend <function>Willing</function> packet
321344dda7b2Smrg      </para>
321444dda7b2Smrg      <para>
321544dda7b2Smrg-&gt; <emphasis remap='I'>idle</emphasis>
321644dda7b2Smrg      </para>
321744dda7b2Smrg    </listitem>
321844dda7b2Smrg  </varlistentry>
321944dda7b2Smrg  <varlistentry>
322044dda7b2Smrg    <term><emphasis remap='I'>send-unwilling</emphasis>:</term>
322144dda7b2Smrg    <listitem>
322244dda7b2Smrg      <para>
322344dda7b2SmrgSend <function>Unwilling</function> packet
322444dda7b2Smrg-&gt; <emphasis remap='I'>idle</emphasis>
322544dda7b2Smrg      </para>
322644dda7b2Smrg    </listitem>
322744dda7b2Smrg  </varlistentry>
322844dda7b2Smrg  <varlistentry>
322944dda7b2Smrg    <term><emphasis remap='I'>request-respond</emphasis>:</term>
323044dda7b2Smrg    <listitem>
323144dda7b2Smrg      <para>
323244dda7b2SmrgIf manager is willing to allow a session on display
323344dda7b2Smrg-&gt; <emphasis remap='I'>accept-session</emphasis>
323444dda7b2Smrg      </para>
323544dda7b2Smrg      <para>
323644dda7b2Smrg-&gt; <emphasis remap='I'>decline-session</emphasis>
323744dda7b2Smrg      </para>
323844dda7b2Smrg    </listitem>
323944dda7b2Smrg  </varlistentry>
324044dda7b2Smrg  <varlistentry>
324144dda7b2Smrg    <term><emphasis remap='I'>accept-session</emphasis>:</term>
324244dda7b2Smrg    <listitem>
324344dda7b2Smrg      <para>
324444dda7b2SmrgGenerate Session ID and save Session ID, display address, and
324544dda7b2Smrgdisplay number somewhere
324644dda7b2Smrg      </para>
324744dda7b2Smrg      <para>
324844dda7b2SmrgSend <function>Accept</function> packet
324944dda7b2Smrg      </para>
325044dda7b2Smrg      <para>
325144dda7b2Smrg-&gt; <emphasis remap='I'>idle</emphasis>
325244dda7b2Smrg      </para>
325344dda7b2Smrg    </listitem>
325444dda7b2Smrg  </varlistentry>
325544dda7b2Smrg  <varlistentry>
325644dda7b2Smrg    <term><emphasis remap='I'>decline-session</emphasis>:</term>
325744dda7b2Smrg    <listitem>
325844dda7b2Smrg      <para>
325944dda7b2SmrgSend <function>Decline</function> packet
326044dda7b2Smrg      </para>
326144dda7b2Smrg      <para>
326244dda7b2Smrg-&gt; <emphasis remap='I'>idle</emphasis>
326344dda7b2Smrg      </para>
326444dda7b2Smrg    </listitem>
326544dda7b2Smrg  </varlistentry>
326644dda7b2Smrg  <varlistentry>
326744dda7b2Smrg    <term><emphasis remap='I'>manage</emphasis>:</term>
326844dda7b2Smrg    <listitem>
326944dda7b2Smrg      <para>
327044dda7b2SmrgIf Session ID matches saved Session ID -&gt;
327144dda7b2Smrg<emphasis remap='I'>run-session</emphasis>
327244dda7b2Smrg      </para>
327344dda7b2Smrg      <para>
327444dda7b2SmrgIf Session ID matches Session ID of session in process of
327544dda7b2Smrgstarting up, or currently active session -&gt;
327644dda7b2Smrg<emphasis remap='I'>idle</emphasis>
327744dda7b2Smrg      </para>
327844dda7b2Smrg      <para>
327944dda7b2Smrg-&gt; <emphasis remap='I'>refuse</emphasis>
328044dda7b2Smrg      </para>
328144dda7b2Smrg    </listitem>
328244dda7b2Smrg  </varlistentry>
328344dda7b2Smrg  <varlistentry>
328444dda7b2Smrg    <term><emphasis remap='I'>refuse</emphasis>:</term>
328544dda7b2Smrg    <listitem>
328644dda7b2Smrg      <para>
328744dda7b2SmrgSend <function>Refuse</function> packet
328844dda7b2Smrg      </para>
328944dda7b2Smrg      <para>
329044dda7b2Smrg-&gt; <emphasis remap='I'>idle</emphasis>
329144dda7b2Smrg      </para>
329244dda7b2Smrg    </listitem>
329344dda7b2Smrg  </varlistentry>
329444dda7b2Smrg  <varlistentry>
329544dda7b2Smrg    <term><emphasis remap='I'>run-session</emphasis>:</term>
329644dda7b2Smrg    <listitem>
329744dda7b2Smrg      <para>
329844dda7b2SmrgTerminate any session in progress
329944dda7b2Smrg      </para>
330044dda7b2Smrg      <para>
330144dda7b2Smrg<function>XOpenDisplay</function>
330244dda7b2Smrg      </para>
330344dda7b2Smrg      <para>
330444dda7b2SmrgOpen display succeeds -&gt;
330544dda7b2Smrg<emphasis remap='I'>start-session</emphasis>
330644dda7b2Smrg      </para>
330744dda7b2Smrg      <para>
330844dda7b2Smrg-&gt; <emphasis remap='I'>failed</emphasis>
330944dda7b2Smrg      </para>
331044dda7b2Smrg    </listitem>
331144dda7b2Smrg  </varlistentry>
331244dda7b2Smrg  <varlistentry>
331344dda7b2Smrg    <term><emphasis remap='I'>failed</emphasis>:</term>
331444dda7b2Smrg    <listitem>
331544dda7b2Smrg      <para>
331644dda7b2SmrgSend <function>Failed</function> packet
331744dda7b2Smrg      </para>
331844dda7b2Smrg      <para>
331944dda7b2Smrg-&gt; <emphasis remap='I'>idle</emphasis>
332044dda7b2Smrg      </para>
332144dda7b2Smrg    </listitem>
332244dda7b2Smrg  </varlistentry>
332344dda7b2Smrg  <varlistentry>
332444dda7b2Smrg    <term><emphasis remap='I'>start-session</emphasis>:</term>
332544dda7b2Smrg    <listitem>
332644dda7b2Smrg      <para>
332744dda7b2SmrgStart a new session
332844dda7b2Smrg      </para>
332944dda7b2Smrg      <para>
333044dda7b2Smrg-&gt; <emphasis remap='I'>idle</emphasis>
333144dda7b2Smrg      </para>
333244dda7b2Smrg    </listitem>
333344dda7b2Smrg  </varlistentry>
333444dda7b2Smrg  <varlistentry>
333544dda7b2Smrg    <term><emphasis remap='I'>finish-session</emphasis>:</term>
333644dda7b2Smrg    <listitem>
333744dda7b2Smrg      <para>
333844dda7b2Smrg<function>XCloseDisplay</function>
333944dda7b2Smrg      </para>
334044dda7b2Smrg      <para>
334144dda7b2Smrg-&gt; <emphasis remap='I'>idle</emphasis>
334244dda7b2Smrg      </para>
334344dda7b2Smrg    </listitem>
334444dda7b2Smrg  </varlistentry>
334544dda7b2Smrg  <varlistentry>
334644dda7b2Smrg    <term><emphasis remap='I'>send-alive</emphasis>:</term>
334744dda7b2Smrg    <listitem>
334844dda7b2Smrg      <para>
334944dda7b2SmrgSend <function>Alive</function> packet containing current status
335044dda7b2Smrg      </para>
335144dda7b2Smrg      <para>
335244dda7b2Smrg-&gt; <emphasis remap='I'>idle</emphasis>
335344dda7b2Smrg      </para>
335444dda7b2Smrg    </listitem>
335544dda7b2Smrg  </varlistentry>
335644dda7b2Smrg</variablelist>
335744dda7b2Smrg
335844dda7b2Smrg</sect1>
335944dda7b2Smrg
336044dda7b2Smrg<sect1 id="Protocol_Encoding">
336144dda7b2Smrg<title>Protocol Encoding</title>
336244dda7b2Smrg<para>
336344dda7b2SmrgWhen XDMCP is implemented on top of the Internet User Datagram Protocol (UDP),
336444dda7b2Smrgport number 177 is to be used. When using UDP over IPv4, Broadcast Query
336544dda7b2Smrgpackets are sent via UDP broadcast.  When using UDP over IPv6, Broadcast Query
336644dda7b2Smrgpackets are sent via multicast, either to an address in the IANA registered
336744dda7b2SmrgXDMCP multicast address range of
336844dda7b2SmrgFF0<emphasis remap='I'>X</emphasis>:0:0:0:0:0:0:12B
336944dda7b2Smrg(where the <emphasis remap='I'>X</emphasis> is replaced by a valid scope id)
337044dda7b2Smrgor to a locally assigned
337144dda7b2Smrgmulticast address. The version number in all packets will be 1.
337244dda7b2SmrgPacket opcodes are 16-bit integers.
337344dda7b2Smrg</para>
337444dda7b2Smrg
337544dda7b2Smrg<informaltable frame="none">
337644dda7b2Smrg  <tgroup cols='2' align='left'>
337744dda7b2Smrg  <colspec colname='c1' colsep="0"/>
337844dda7b2Smrg  <colspec colname='c2' colsep="0"/>
337944dda7b2Smrg  <thead>
338044dda7b2Smrg    <row>
338144dda7b2Smrg      <entry>Packet Name</entry>
338244dda7b2Smrg      <entry>Encoding</entry>
338344dda7b2Smrg    </row>
338444dda7b2Smrg  </thead>
338544dda7b2Smrg  <tbody>
338644dda7b2Smrg    <row rowsep="0">
338744dda7b2Smrg      <entry>BroadcastQuery</entry>
338844dda7b2Smrg      <entry>1</entry>
338944dda7b2Smrg    </row>
339044dda7b2Smrg    <row rowsep="0">
339144dda7b2Smrg      <entry>Query</entry>
339244dda7b2Smrg      <entry>2</entry>
339344dda7b2Smrg    </row>
339444dda7b2Smrg    <row rowsep="0">
339544dda7b2Smrg      <entry>IndirectQuery</entry>
339644dda7b2Smrg      <entry>3</entry>
339744dda7b2Smrg    </row>
339844dda7b2Smrg    <row rowsep="0">
339944dda7b2Smrg      <entry>ForwardQuery</entry>
340044dda7b2Smrg      <entry>4</entry>
340144dda7b2Smrg    </row>
340244dda7b2Smrg    <row rowsep="0">
340344dda7b2Smrg      <entry>Willing</entry>
340444dda7b2Smrg      <entry>5</entry>
340544dda7b2Smrg    </row>
340644dda7b2Smrg    <row rowsep="0">
340744dda7b2Smrg      <entry>Unwilling</entry>
340844dda7b2Smrg      <entry>6</entry>
340944dda7b2Smrg    </row>
341044dda7b2Smrg    <row rowsep="0">
341144dda7b2Smrg      <entry>Request</entry>
341244dda7b2Smrg      <entry>7</entry>
341344dda7b2Smrg    </row>
341444dda7b2Smrg    <row rowsep="0">
341544dda7b2Smrg      <entry>Accept</entry>
341644dda7b2Smrg      <entry>8</entry>
341744dda7b2Smrg    </row>
341844dda7b2Smrg    <row rowsep="0">
341944dda7b2Smrg      <entry>Decline</entry>
342044dda7b2Smrg      <entry>9</entry>
342144dda7b2Smrg    </row>
342244dda7b2Smrg    <row rowsep="0">
342344dda7b2Smrg      <entry>Manage</entry>
342444dda7b2Smrg      <entry>10</entry>
342544dda7b2Smrg    </row>
342644dda7b2Smrg    <row rowsep="0">
342744dda7b2Smrg      <entry>Refuse</entry>
342844dda7b2Smrg      <entry>11</entry>
342944dda7b2Smrg    </row>
343044dda7b2Smrg    <row rowsep="0">
343144dda7b2Smrg      <entry>Failed</entry>
343244dda7b2Smrg      <entry>12</entry>
343344dda7b2Smrg    </row>
343444dda7b2Smrg    <row rowsep="0">
343544dda7b2Smrg      <entry>KeepAlive</entry>
343644dda7b2Smrg      <entry>13
343744dda7b2Smrg<footnote><para>
343844dda7b2SmrgA previous version of this document incorrectly reversed the opcodes of
343944dda7b2Smrg<emphasis role="bold">Alive</emphasis> and
344044dda7b2Smrg<emphasis role="bold">KeepAlive</emphasis>.
344144dda7b2Smrg</para></footnote>
344244dda7b2Smrg      </entry>
344344dda7b2Smrg    </row>
344444dda7b2Smrg    <row rowsep="0">
344544dda7b2Smrg      <entry>Alive</entry>
344644dda7b2Smrg      <entry>14
344744dda7b2Smrg<footnote><para>
344844dda7b2SmrgA previous version of this document incorrectly reversed the opcodes of
344944dda7b2Smrg<emphasis role="bold">Alive</emphasis> and
345044dda7b2Smrg<emphasis role="bold">KeepAlive</emphasis>.
345144dda7b2Smrg</para></footnote>
345244dda7b2Smrg      </entry>
345344dda7b2Smrg    </row>
345444dda7b2Smrg  </tbody>
345544dda7b2Smrg  </tgroup>
345644dda7b2Smrg</informaltable>
345744dda7b2Smrg
345844dda7b2Smrg<para>
345944dda7b2SmrgPer packet information follows:
346044dda7b2Smrg</para>
346144dda7b2Smrg
346244dda7b2Smrg<para>
346344dda7b2Smrg<function>Query</function>,
346444dda7b2Smrg<function>BroadcastQuery</function>,
346544dda7b2Smrg<function>IndirectQuery</function>
346644dda7b2Smrg</para>
346744dda7b2Smrg
346844dda7b2Smrg<literallayout class="monospaced">
346944dda7b2Smrg     2     CARD16     version number (always 1)
347044dda7b2Smrg     2     CARD16     opcode (always Query, BroadcastQuery or IndirectQuery)
347144dda7b2Smrg     2     CARD16     length
347244dda7b2Smrg     1     CARD8      number of Authentication Names sent (m)
347344dda7b2Smrg     2     CARD16     length of first Authentication Name (m<emphasis role="subscript">1</emphasis>)
347444dda7b2Smrg     m<emphasis role="subscript">1</emphasis>   CARD8     first Authentication Name
347544dda7b2Smrg     ...          Other Authentication Names
347644dda7b2Smrg</literallayout>
347744dda7b2Smrg
347844dda7b2Smrg<para>
347944dda7b2SmrgNote that these three packets are identical except for the opcode field.
348044dda7b2Smrg</para>
348144dda7b2Smrg
348244dda7b2Smrg<literallayout class="monospaced">
348344dda7b2Smrg<function>ForwardQuery</function>
348444dda7b2Smrg     2     CARD16     version number (always 1)
348544dda7b2Smrg     2     CARD16     opcode (always ForwardQuery)
348644dda7b2Smrg     2     CARD16     length
348744dda7b2Smrg     2     CARD16     length of Client Address (m)
348844dda7b2Smrg     m     CARD8     Client Address
348944dda7b2Smrg     2     CARD16     length of Client Port (n)
349044dda7b2Smrg     n     CARD8     Client Port
349144dda7b2Smrg     1     CARD8     number of Authentication Names sent (o)
349244dda7b2Smrg     2     CARD16     length of first Authentication Name (o<emphasis role="subscript">1</emphasis>)
349344dda7b2Smrg     o<emphasis role="subscript">1</emphasis>     CARD8     first Authentication Name
349444dda7b2Smrg     ...          Other Authentication Names
349544dda7b2Smrg</literallayout>
349644dda7b2Smrg
349744dda7b2Smrg<literallayout class="monospaced">
349844dda7b2Smrg<function>Willing</function>
349944dda7b2Smrg     2     CARD16     version number (always 1)
350044dda7b2Smrg     2     CARD16     opcode (always Willing)
350144dda7b2Smrg     2     CARD16     length (6 + m + n + o)
350244dda7b2Smrg     2     CARD16     Length of Authentication Name (m)
350344dda7b2Smrg     m     CARD8      Authentication Name
350444dda7b2Smrg     2     CARD16     Hostname length (n)
350544dda7b2Smrg     n     CARD8      Hostname
350644dda7b2Smrg     2     CARD16     Status length (o)
350744dda7b2Smrg     o     CARD8      Status
350844dda7b2Smrg</literallayout>
350944dda7b2Smrg
351044dda7b2Smrg<literallayout class="monospaced">
351144dda7b2Smrg<function>Unwilling</function>
351244dda7b2Smrg     2     CARD16     version number (always 1)
351344dda7b2Smrg     2     CARD16     opcode (always Unwilling)
351444dda7b2Smrg     2     CARD16     length (4 + m + n)
351544dda7b2Smrg     2     CARD16     Hostname length (m)
351644dda7b2Smrg     m     CARD8      Hostname
351744dda7b2Smrg     2     CARD16     Status length (n)
351844dda7b2Smrg     n     CARD8      Status
351944dda7b2Smrg</literallayout>
352044dda7b2Smrg
352144dda7b2Smrg<literallayout class="monospaced">
352244dda7b2Smrg<function>Request</function>
352344dda7b2Smrg     2     CARD16     version number (always 1)
352444dda7b2Smrg     2     CARD16     opcode (always Request)
352544dda7b2Smrg     2     CARD16     length
352644dda7b2Smrg     2     CARD16     Display Number
352744dda7b2Smrg     1     CARD8      Count of Connection Types (m)
352844dda7b2Smrg     2xm   CARD16     Connection Types
352944dda7b2Smrg     1     CARD8      Count of Connection Addresses (n)
353044dda7b2Smrg     2     CARD16     Length of first Connection Address (n<emphasis role="subscript">1</emphasis>)
353144dda7b2Smrg     n<emphasis role="subscript">1</emphasis>     CARD8      First Connection Address
353244dda7b2Smrg     ...              Other connection addresses
353344dda7b2Smrg     2     CARD16     Length of Authentication Name (o)
353444dda7b2Smrg     o     CARD8      Authentication Name
353544dda7b2Smrg     2     CARD16     Length of Authentication Data (p)
353644dda7b2Smrg     p     CARD8      Authentication Data
353744dda7b2Smrg     1     CARD8      Count of Authorization Names (q)
353844dda7b2Smrg     2     CARD16     Length of first Authorization Name (q<emphasis role="subscript">1</emphasis>)
353944dda7b2Smrg     q<emphasis role="subscript">1</emphasis>     CARD8      First Authorization Name
354044dda7b2Smrg     ...              Other authorization names
354144dda7b2Smrg     2     CARD16     Length of Manufacturer Display ID (r)
354244dda7b2Smrg     r     CARD8      Manufacturer Display ID
354344dda7b2Smrg</literallayout>
354444dda7b2Smrg
354544dda7b2Smrg<literallayout class="monospaced">
354644dda7b2Smrg<function>Accept</function>
354744dda7b2Smrg     2     CARD16     version number (always 1)
354844dda7b2Smrg     2     CARD16     opcode (always Accept)
354944dda7b2Smrg     2     CARD16     length (12 + n + m + o + p)
355044dda7b2Smrg     4     CARD32     Session ID
355144dda7b2Smrg     2     CARD16     Length of Authentication Name (n)
355244dda7b2Smrg     n     CARD8      Authentication Name
355344dda7b2Smrg     2     CARD16     Length of Authentication Data (m)
355444dda7b2Smrg     m     CARD8      Authentication Data
355544dda7b2Smrg     2     CARD16     Length of Authorization Name (o)
355644dda7b2Smrg     o     CARD8      Authorization Name
355744dda7b2Smrg     2     CARD16     Length of Authorization Data (p)
355844dda7b2Smrg     p     CARD8      Authorization Data
355944dda7b2Smrg</literallayout>
356044dda7b2Smrg
356144dda7b2Smrg<literallayout class="monospaced">
356244dda7b2Smrg<function>Decline</function>
356344dda7b2Smrg     2     CARD16     version number (always 1)
356444dda7b2Smrg     2     CARD16     opcode (always Decline)
356544dda7b2Smrg     2     CARD16     length (6 + m + n + o)
356644dda7b2Smrg     2     CARD16     Length of Status (m)
356744dda7b2Smrg     m     CARD8      Status
356844dda7b2Smrg     2     CARD16     Length of Authentication Name (n)
356944dda7b2Smrg     n     CARD8      Authentication Name
357044dda7b2Smrg     2     CARD16     Length of Authentication Data (o)
357144dda7b2Smrg     o     CARD8      Authentication Data
357244dda7b2Smrg</literallayout>
357344dda7b2Smrg
357444dda7b2Smrg<literallayout class="monospaced">
357544dda7b2Smrg<function>Manage</function>
357644dda7b2Smrg     2     CARD16     version number (always 1)
357744dda7b2Smrg     2     CARD16     opcode (always Manage)
357844dda7b2Smrg     2     CARD16     length (8 + m)
357944dda7b2Smrg     4     CARD32     Session ID
358044dda7b2Smrg     2     CARD16     Display Number
358144dda7b2Smrg     2     CARD16     Length of Display Class (m)
358244dda7b2Smrg     m     CARD8      Display Class
358344dda7b2Smrg</literallayout>
358444dda7b2Smrg
358544dda7b2Smrg<literallayout class="monospaced">
358644dda7b2Smrg<function>Refuse</function>
358744dda7b2Smrg     2     CARD16     version number (always 1)
358844dda7b2Smrg     2     CARD16     opcode (always Refuse)
358944dda7b2Smrg     2     CARD16     length (4)
359044dda7b2Smrg     4     CARD32     Session ID
359144dda7b2Smrg</literallayout>
359244dda7b2Smrg
359344dda7b2Smrg<literallayout class="monospaced">
359444dda7b2Smrg<function>Failed</function>
359544dda7b2Smrg     2     CARD16     version number (always 1)
359644dda7b2Smrg     2     CARD16     opcode (always Failed)
359744dda7b2Smrg     2     CARD16     length (6 + m)
359844dda7b2Smrg     4     CARD32     Session ID
359944dda7b2Smrg     2     CARD16     Length of Status (m)
360044dda7b2Smrg     m     CARD8      Status
360144dda7b2Smrg</literallayout>
360244dda7b2Smrg
360344dda7b2Smrg<literallayout class="monospaced">
360444dda7b2Smrg<function>KeepAlive</function>
360544dda7b2Smrg     2     CARD16     version number (always 1)
360644dda7b2Smrg     2     CARD16     opcode (always KeepAlive)
360744dda7b2Smrg     2     CARD16     length (6)
360844dda7b2Smrg     2     CARD16     Display Number
360944dda7b2Smrg     4     CARD32     Session ID
361044dda7b2Smrg</literallayout>
361144dda7b2Smrg
361244dda7b2Smrg<literallayout class="monospaced">
361344dda7b2Smrg<function>Alive</function>
361444dda7b2Smrg     2     CARD16     version number (always 1)
361544dda7b2Smrg     2     CARD16     opcode (always Alive)
361644dda7b2Smrg     2     CARD16     length (5)
361744dda7b2Smrg     1     CARD8      Session Running (0: not running 1: running)
361844dda7b2Smrg     4     CARD32     Session ID (0: not running)
361944dda7b2Smrg</literallayout>
362044dda7b2Smrg</sect1>
362144dda7b2Smrg
362244dda7b2Smrg<sect1 id="Display_Class_Format">
362344dda7b2Smrg<title>Display Class Format</title>
362444dda7b2Smrg<!-- .XS -->
362544dda7b2Smrg<!-- (SN Display Class Format -->
362644dda7b2Smrg<!-- .XE -->
362744dda7b2Smrg<para>
362844dda7b2SmrgThe Display Class field of the
362944dda7b2Smrg<function>Manage</function>
363044dda7b2Smrgpacket is used by the display manager to collect common sorts of
363144dda7b2Smrgdisplays into manageable groups.  This field is a string encoded of
363244dda7b2SmrgISO-LATIN-1 characters in the following format:
363344dda7b2Smrg</para>
363444dda7b2Smrg
363544dda7b2Smrg<literallayout class="monospaced">
363644dda7b2Smrg<emphasis remap='I'>ManufacturerID</emphasis>-<emphasis remap='I'>ModelNumber</emphasis>
363744dda7b2Smrg</literallayout>
363844dda7b2Smrg
363944dda7b2Smrg<para>
364044dda7b2SmrgBoth elements of this string must exclude characters of the set
364144dda7b2Smrg{ <function>-</function>,
364244dda7b2Smrg<function>.</function>,
364344dda7b2Smrg<function>:</function>,
364444dda7b2Smrg<function>*</function>,
364544dda7b2Smrg<function>?</function>,
364644dda7b2Smrg<emphasis remap='I'>&lt;space&gt;</emphasis> }.
364744dda7b2SmrgThe ManufacturerID is a string that should be registered
364844dda7b2Smrgwith the X Consortium.
364944dda7b2SmrgThe ModelNumber is designed to identify characteristics of the display
365044dda7b2Smrgwithin the manufacturer's product line.
365144dda7b2SmrgThis string should be documented in the users manual for the
365244dda7b2Smrgparticular device and  should probably not be specifiable by the
365344dda7b2Smrgdisplay user to avoid unexpected configuration errors.
365444dda7b2Smrg</para>
365544dda7b2Smrg</sect1>
365644dda7b2Smrg
365744dda7b2Smrg<sect1 id="Manufacturer_Display_ID_Format">
365844dda7b2Smrg<title>Manufacturer Display ID Format</title>
365944dda7b2Smrg<!-- .XS -->
366044dda7b2Smrg<!-- (SN Manufacturer Display ID Format -->
366144dda7b2Smrg<!-- .XE -->
366244dda7b2Smrg<para>
366344dda7b2SmrgTo authenticate the manager, the display and manager will share a private
366444dda7b2Smrgkey.
366544dda7b2SmrgThe manager, then, must be able to discover which key to use for a
366644dda7b2Smrgparticular device.
366744dda7b2SmrgThe Manufacturer Display ID field of the
366844dda7b2Smrg<function>Request</function>
366944dda7b2Smrgpacket is intended for this purpose.  Typically, the manager host will
367044dda7b2Smrgcontain a map between this number and the key.  This field is intended to be
367144dda7b2Smrgunique per display, possibly the ethernet address of the display in the form:
367244dda7b2Smrg</para>
367344dda7b2Smrg
367444dda7b2Smrg<literallayout class="monospaced">
367544dda7b2Smrg-Ethernet-8:0:2b:a:f:d2
367644dda7b2Smrg</literallayout>
367744dda7b2Smrg
367844dda7b2Smrg<para>
367944dda7b2SmrgIt can also be a string of the form:
368044dda7b2Smrg</para>
368144dda7b2Smrg
368244dda7b2Smrg<literallayout class="monospaced">
368344dda7b2Smrg<emphasis remap='I'>ManufacturerID</emphasis>-<emphasis remap='I'>ModelNumber</emphasis>-<emphasis remap='I'>SerialNumber</emphasis>
368444dda7b2Smrg</literallayout>
368544dda7b2Smrg
368644dda7b2Smrg<para>
368744dda7b2SmrgThe ManufacturerID, ModelNumber and SerialNumber are encoded using
368844dda7b2SmrgISO-LATIN-1 characters, excluding {
368944dda7b2Smrg<function>-</function>,
369044dda7b2Smrg<function>.</function>,
369144dda7b2Smrg<function>*</function>,
369244dda7b2Smrg<function>?</function>,
369344dda7b2Smrg<emphasis remap='I'>&lt;space&gt;</emphasis> }
369444dda7b2Smrg</para>
369544dda7b2Smrg
369644dda7b2Smrg<para>
369744dda7b2SmrgWhen the display is shipped to a customer, it should include both the
369844dda7b2SmrgManufacturer Display ID and the private key in the documentation set.
369944dda7b2SmrgThis information should not be modifiable by the display user.
370044dda7b2Smrg</para>
370144dda7b2Smrg
370244dda7b2Smrg</sect1>
370344dda7b2Smrg
370444dda7b2Smrg<sect1 id="Authentication">
370544dda7b2Smrg<title>Authentication</title>
370644dda7b2Smrg<!-- .XS -->
370744dda7b2Smrg<!-- (SN Authentication -->
370844dda7b2Smrg<!-- .XE -->
370944dda7b2Smrg<para>
371044dda7b2SmrgIn an environment where authentication is not needed, XDMCP can disable
371144dda7b2Smrgauthentication by having the display send empty Authentication Name
371244dda7b2Smrgand Authentication Data fields in the
371344dda7b2Smrg<function>Request</function>
371444dda7b2Smrgpacket.
371544dda7b2SmrgIn this case, the manager will not attempt to authenticate itself.
371644dda7b2SmrgOther authentication protocols may be developed, depending on local needs.
371744dda7b2Smrg</para>
371844dda7b2Smrg
371944dda7b2Smrg<para>
372044dda7b2SmrgIn an unsecure environment, the display must be able to verify that the
372144dda7b2Smrgsource of the various packets is a trusted manager.  These packets will
372244dda7b2Smrgcontain authentication information.  As an example of such a system, the
372344dda7b2Smrgfollowing discussion describes the "XDM-AUTHENTICATION-1" authentication
372444dda7b2Smrgsystem.  This system uses a 56-bit shared private key, and 64 bits of
372544dda7b2Smrgauthentication data.  An associated example X authorization protocol
372644dda7b2Smrg"XDM-AUTHORIZATION-1" will also be discussed.  The 56-bit key is represented
372744dda7b2Smrgas a 64-bit number in network order (big endian).  This means that the first
372844dda7b2Smrgoctet in the representation will be zero.  When incrementing a 64-bit value,
372944dda7b2Smrgthe 8 octets of data will be interpreted in network order (big endian).
373044dda7b2SmrgThat is, the last octet will be incremented, subsequent carries propogate
373144dda7b2Smrgtowards the first octet.
373244dda7b2Smrg</para>
373344dda7b2Smrg
373444dda7b2Smrg<para>
373544dda7b2SmrgAssumptions:
373644dda7b2Smrg</para>
373744dda7b2Smrg
373844dda7b2Smrg<orderedlist>
373944dda7b2Smrg  <listitem>
374044dda7b2Smrg    <para>
374144dda7b2SmrgThe display and manager share a private key.  This key could be programmed
374244dda7b2Smrginto the display by the manufacturer and shipped with the unit.  It must not
374344dda7b2Smrgbe available from the display itself, but should allow the value to be
374444dda7b2Smrgmodified in some way.  The system administrator would be responsible for
374544dda7b2Smrgmanaging a database of terminal keys.
374644dda7b2Smrg    </para>
374744dda7b2Smrg  </listitem>
374844dda7b2Smrg  <listitem>
374944dda7b2Smrg    <para>
375044dda7b2SmrgThe display can generate random authentication numbers.
375144dda7b2Smrg    </para>
375244dda7b2Smrg  </listitem>
375344dda7b2Smrg</orderedlist>
375444dda7b2Smrg
375544dda7b2Smrg<para>
375644dda7b2SmrgSome definitions first:
375744dda7b2Smrg</para>
375844dda7b2Smrg
375944dda7b2Smrg<!-- FIXME: -->
376044dda7b2Smrg<!-- double chk math symbols, use mathml to display them? -->
376144dda7b2Smrg<itemizedlist>
376244dda7b2Smrg  <listitem>
376344dda7b2Smrg    <para>
376444dda7b2Smrg{D}= encryption of plain text D by key κ
376544dda7b2Smrg    </para>
376644dda7b2Smrg  </listitem>
376744dda7b2Smrg  <listitem>
376844dda7b2Smrg    <para>
376944dda7b2Smrg{&#x394;}*&#x3BA; = decryption of crypto text &#x394; with key &#x3BA;
377044dda7b2Smrg    </para>
377144dda7b2Smrg  </listitem>
377244dda7b2Smrg  <listitem>
377344dda7b2Smrg    <para>
377444dda7b2Smrg&tau; = private key shared by display and manager
377544dda7b2Smrg    </para>
377644dda7b2Smrg  </listitem>
377744dda7b2Smrg  <listitem>
377844dda7b2Smrg    <para>
377944dda7b2Smrg&rho; = 64 bit random number generated by display
378044dda7b2Smrg    </para>
378144dda7b2Smrg  </listitem>
378244dda7b2Smrg  <listitem>
378344dda7b2Smrg    <para>
378444dda7b2Smrg&alpha; = authentication data in XDMCP packets
378544dda7b2Smrg    </para>
378644dda7b2Smrg  </listitem>
378744dda7b2Smrg  <listitem>
378844dda7b2Smrg    <para>
378944dda7b2Smrg&sigma; = per-session private key, generated by manager
379044dda7b2Smrg    </para>
379144dda7b2Smrg  </listitem>
379244dda7b2Smrg  <listitem>
379344dda7b2Smrg    <para>
379444dda7b2Smrg&beta; = authorization data
379544dda7b2Smrg    </para>
379644dda7b2Smrg  </listitem>
379744dda7b2Smrg</itemizedlist>
379844dda7b2Smrg
379944dda7b2Smrg<para>
380044dda7b2SmrgEncryption will use the Data Encryption Standard (DES, FIPS 46-3); blocks
380144dda7b2Smrgshorter than 64 bits will be zero-filled
380244dda7b2Smrgon the right to 64 bits.  Blocks longer than 64 bits will use block chaining:
380344dda7b2Smrg</para>
380444dda7b2Smrg<para>
380544dda7b2Smrg{D}&#x3BA; = {D1 }&#x3BA; {D2 xor {D1 }&#x3BA; }&#x3BA;
380644dda7b2Smrg</para>
380744dda7b2Smrg
380844dda7b2Smrg<para>
380944dda7b2SmrgThe display generates the first authentication data in the
381044dda7b2Smrg<function>Request</function>
381144dda7b2Smrgpacket:
381244dda7b2Smrg</para>
381344dda7b2Smrg
381444dda7b2Smrg<para>
381544dda7b2Smrg&#945;Request = {&#961;}τ
381644dda7b2Smrg
381744dda7b2Smrg</para>
381844dda7b2Smrg
381944dda7b2Smrg<para>
382044dda7b2SmrgFor the <function>Accept</function>
382144dda7b2Smrgpacket, the manager decrypts the initial message and returns
382244dda7b2SmrgαAccept:
382344dda7b2Smrg
382444dda7b2Smrg</para>
382544dda7b2Smrg
382644dda7b2Smrg<para>
382744dda7b2Smrg&rho; = {&alpha; Request } *&tau;
382844dda7b2Smrg</para>
382944dda7b2Smrg
383044dda7b2Smrg<para>
383144dda7b2Smrg&alpha; Accept = { &rho; + 1}&tau;
383244dda7b2Smrg</para>
383344dda7b2Smrg
383444dda7b2Smrg<para>
383544dda7b2SmrgThe <function>Accept</function>
383644dda7b2Smrgpacket also contains the authorization intended for use by
383744dda7b2Smrgthe X server.  A description of authorization type "XDM-AUTHORIZATION-1"
383844dda7b2Smrgfollows.
383944dda7b2Smrg</para>
384044dda7b2Smrg
384144dda7b2Smrg<para>
384244dda7b2SmrgThe <function>Accept</function>
384344dda7b2Smrgpacket contains the authorization name
384444dda7b2Smrg"XDM-AUTHORIZATION-1".  The authorization data is the string:
384544dda7b2Smrg</para>
384644dda7b2Smrg<para>
384744dda7b2Smrgβ Accept = {σ}τ
384844dda7b2Smrg</para>
384944dda7b2Smrg
385044dda7b2Smrg<para>
385144dda7b2SmrgTo create authorization information for connection setup with the X server
385244dda7b2Smrgusing the XDM-AUTHORIZATION-1 authorization protocol, the client computes the
385344dda7b2Smrgfollowing:
385444dda7b2Smrg</para>
385544dda7b2Smrg<para>
385644dda7b2SmrgN mark = "X client identifier"
385744dda7b2Smrg</para>
385844dda7b2Smrg<para>
385944dda7b2SmrgT lineup = "Current time in seconds on client host (32 bits)"
386044dda7b2Smrg</para>
386144dda7b2Smrg<para>
386244dda7b2Smrgβ = {ρNT}σ
386344dda7b2Smrg</para>
386444dda7b2Smrg
386544dda7b2Smrg<para>
386644dda7b2SmrgFor TCP connections @N@ is 48 bits long and contains the 32-bit IPv4 address of
386744dda7b2Smrgthe client host followed by the 16-bit port number of the client socket.
386844dda7b2SmrgFormats for other connections must be registered.
386944dda7b2SmrgThe resulting value, β, is 192 bits of authorization data that is sent
387044dda7b2Smrgin the connection setup to the server.  The server receives the packet,
387144dda7b2Smrgdecrypts the contents.  To accept the connection, the following must hold:
387244dda7b2Smrg</para>
387344dda7b2Smrg
387444dda7b2Smrg<itemizedlist>
387544dda7b2Smrg  <listitem>
387644dda7b2Smrg    <para>
387744dda7b2Smrgρ must match the value generated for the most recent XDMCP negotiation.
387844dda7b2Smrg    </para>
387944dda7b2Smrg  </listitem>
388044dda7b2Smrg  <listitem>
388144dda7b2Smrg    <para>
388244dda7b2SmrgT must be within 1200 seconds of the internally stored time.  If no time
388344dda7b2Smrgbeen received before, the current time is set to @T@.
388444dda7b2Smrg    </para>
388544dda7b2Smrg  </listitem>
388644dda7b2Smrg  <listitem>
388744dda7b2Smrg    <para>
388844dda7b2SmrgNo packet containing the same pair (N, T) can have been received
388944dda7b2Smrgin the last 1200 seconds (20 minutes).
389044dda7b2Smrg    </para>
389144dda7b2Smrg  </listitem>
389244dda7b2Smrg</itemizedlist>
389344dda7b2Smrg</sect1>
389444dda7b2Smrg</chapter>
389544dda7b2Smrg</book>
3896