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