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