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