source: PinConnection/rfc2217.htm

Last change on this file was 408, checked in by chronos, 12 years ago
  • Added: PinConnection package now have partialy implemented TCommTelnet class for handling telnet commands.
File size: 44.3 KB
Line 
1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head profile="http://dublincore.org/documents/2008/08/04/dc-html/">
3 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
4 <meta name="robots" content="index,follow">
5 <meta name="creator" content="rfcmarkup version 1.101">
6 <link rel="schema.DC" href="http://purl.org/dc/elements/1.1/">
7<meta name="DC.Identifier" content="urn:ietf:rfc:2217">
8<meta name="DC.Description.Abstract" content="This memo proposes a protocol to allow greater use of modems attached\nto a network for outbound dialing purposes. This memo defines an\nExperimental Protocol for the Internet community.">
9<meta name="DC.Creator" content="G. Clark">
10<meta name="DC.Date.Issued" content="October, 1997">
11<meta name="DC.Title" content="Telnet Com Port Control Option">
12
13 <link rel="icon" href="http://tools.ietf.org/images/rfc.png" type="image/png">
14 <link rel="shortcut icon" href="http://tools.ietf.org/images/rfc.png" type="image/png">
15 <title>RFC 2217 - Telnet Com Port Control Option</title>
16
17
18 <style type="text/css">
19 body {
20 margin: 0px 8px;
21 font-size: 1em;
22 }
23 h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
24 font-weight: bold;
25 line-height: 0pt;
26 display: inline;
27 white-space: pre;
28 font-family: monospace;
29 font-size: 1em;
30 font-weight: bold;
31 }
32 pre {
33 font-size: 1em;
34 margin-top: 0px;
35 margin-bottom: 0px;
36 }
37 .pre {
38 white-space: pre;
39 font-family: monospace;
40 }
41 .header{
42 font-weight: bold;
43 }
44 .newpage {
45 page-break-before: always;
46 }
47 .invisible {
48 text-decoration: none;
49 color: white;
50 }
51 a.selflink {
52 color: black;
53 text-decoration: none;
54 }
55 @media print {
56 body {
57 font-family: monospace;
58 font-size: 10.5pt;
59 }
60 h1, h2, h3, h4, h5, h6 {
61 font-size: 1em;
62 }
63
64 a:link, a:visited {
65 color: inherit;
66 text-decoration: none;
67 }
68 .noprint {
69 display: none;
70 }
71 }
72 @media screen {
73 .grey, .grey a:link, .grey a:visited {
74 color: #777;
75 }
76 .docinfo {
77 background-color: #EEE;
78 }
79 .top {
80 border-top: 7px solid #EEE;
81 }
82 .bgwhite { background-color: white; }
83 .bgred { background-color: #F44; }
84 .bggrey { background-color: #666; }
85 .bgbrown { background-color: #840; }
86 .bgorange { background-color: #FA0; }
87 .bgyellow { background-color: #EE0; }
88 .bgmagenta{ background-color: #F4F; }
89 .bgblue { background-color: #66F; }
90 .bgcyan { background-color: #4DD; }
91 .bggreen { background-color: #4F4; }
92
93 .legend { font-size: 90%; }
94 .cplate { font-size: 70%; border: solid grey 1px; }
95 }
96 </style>
97 <!--[if IE]>
98 <style>
99 body {
100 font-size: 13px;
101 margin: 10px 10px;
102 }
103 </style>
104 <![endif]-->
105
106 <script type="text/javascript"><!--
107 function addHeaderTags() {
108 var spans = document.getElementsByTagName("span");
109 for (var i=0; i < spans.length; i++) {
110 var elem = spans[i];
111 if (elem) {
112 var level = elem.getAttribute("class");
113 if (level == "h1" || level == "h2" || level == "h3" || level == "h4" || level == "h5" || level == "h6") {
114 elem.innerHTML = "<"+level+">"+elem.innerHTML+"</"+level+">";
115 }
116 }
117 }
118 }
119 var legend_html = "Colour legend:<br /> <table> <tr><td>Unknown:</td> <td><span class='cplate bgwhite'>&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr> <tr><td>Draft:</td> <td><span class='cplate bgred'>&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr> <tr><td>Informational:</td> <td><span class='cplate bgorange'>&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr> <tr><td>Experimental:</td> <td><span class='cplate bgyellow'>&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr> <tr><td>Best Common Practice:</td><td><span class='cplate bgmagenta'>&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr> <tr><td>Proposed Standard:</td><td><span class='cplate bgblue'>&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr> <tr><td>Draft Standard:</td> <td><span class='cplate bgcyan'>&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr> <tr><td>Standard:</td> <td><span class='cplate bggreen'>&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr> <tr><td>Historic:</td> <td><span class='cplate bggrey'>&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr> <tr><td>Obsolete:</td> <td><span class='cplate bgbrown'>&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr> </table>";
120 function showElem(id) {
121 var elem = document.getElementById(id);
122 elem.innerHTML = eval(id+"_html");
123 elem.style.visibility='visible';
124 }
125 function hideElem(id) {
126 var elem = document.getElementById(id);
127 elem.style.visibility='hidden';
128 elem.innerHTML = "";
129 }
130 // -->
131 </script>
132</head>
133<body onload="addHeaderTags()">
134 <div style="height: 13px;">
135 <div onmouseover="this.style.cursor='pointer';" onclick="showElem('legend');" onmouseout="hideElem('legend')" style="height: 6px; position: absolute;" class="pre noprint docinfo bgyellow" title="Click for colour legend."> </div>
136 <div id="legend" class="docinfo noprint pre legend" style="position:absolute; top: 4px; left: 4ex; visibility:hidden; background-color: white; padding: 4px 9px 5px 7px; border: solid #345 1px; " onmouseover="showElem('legend');" onmouseout="hideElem('legend');">
137 </div>
138 </div>
139<span class="pre noprint docinfo top">[<a href="http://tools.ietf.org/html/" title="Document search and retrieval page">Docs</a>] [<a href="http://tools.ietf.org/rfc/rfc2217.txt" title="Plaintext version of this document">txt</a>|<a href="http://tools.ietf.org/pdf/rfc2217" title="PDF version of this document">pdf</a>] [<a href="http://tools.ietf.org/html/draft-clark-telnet-control" title="draft-clark-telnet-control">draft-clark-telne...</a>] [<a href="http://tools.ietf.org/rfcdiff?difftype=--hwdiff&amp;url2=rfc2217" title="Inline diff (wdiff)">Diff1</a>] [<a href="http://tools.ietf.org/rfcdiff?url2=rfc2217" title="Side-by-side diff">Diff2</a>] </span><br>
140<span class="pre noprint docinfo"> </span><br>
141<span class="pre noprint docinfo"> EXPERIMENTAL</span><br>
142<span class="pre noprint docinfo"> </span><br>
143<pre>Network Working Group G. Clark
144Request for Comments: 2217 Cisco Systems, Inc.
145Category: Experimental October 1997
146
147
148 <span class="h1"><h1>Telnet Com Port Control Option</h1></span>
149
150
151Status of this Memo
152
153 This memo defines an Experimental Protocol for the Internet
154 community. This memo does not specify an Internet standard of any
155 kind. Discussion and suggestions for improvement are requested.
156 Distribution of this memo is unlimited.
157
158Introduction
159
160 This memo proposes a protocol to allow greater use of modems attached
161 to a network for outbound dialing purposes.
162
163Table of Contents
164 1. Negotiation of the Com Port
165 Control Option Protocol .................. <a href="#page-5">5</a>
166 <a href="#section-2">2</a>. Com Port Configuration Commands .................. <a href="#page-6">6</a>
167 Version
168 Baud Rate
169 Data Bit Size
170 Parity
171 Stop Bit size
172 <a href="#section-3">3</a>. Special Com Port Control Commands ................. <a href="#page-8">8</a>
173 XON/XOFF Flow Control
174 HARDWARE Flow Control
175 BREAK Signal
176 DTR Signal
177 RTS Signal
178 <a href="#section-4">4</a>. Notification of Com Port and .................. <a href="#page-12">12</a>
179 Modem Line Changes
180 <a href="#section-5">5</a>. Flow Control .................. <a href="#page-13">13</a>
181 <a href="#section-6">6</a>. Security Considerations .................. <a href="#page-13">13</a>
182 <a href="#section-7">7</a>. Author's Address .................. <a href="#page-14">14</a>
183 <a href="#section-8">8</a>. Reference Section .................. <a href="#page-14">14</a>
184
185Discussion
186
187 The Telnet protocol defines an interactive, character-oriented
188 communications session. It was originally designed to establish a
189 session between a client and a remote login service running on a host
190 [<a href="#ref-5" title=" Volume III. Prentice Hall">5</a>].
191
192
193
194<span class="grey">Clark Experimental [Page 1]</span>
195</pre><!--NewPage--><pre class="newpage"><a name="page-2" id="page-2" href="#page-2" class="invisible"> </a>
196<span class="grey"><a href="http://tools.ietf.org/html/rfc2217">RFC 2217</a> Telnet Com Port Control Option October 1997</span>
197
198
199 Many new business functions require a person to connect to remote
200 services to retrieve or deposit information. By in large, these
201 remote services are accessed via an async dial up connection. This
202 new class of functions include:
203
204 - dial up connections to the Internet
205 - connecting to bulletin boards
206 - connecting to internal and external databases
207 - sending and receiving faxes.
208
209 The general nature of this new class of function requires an
210 interactive, character-oriented communications session via an async
211 modem. This is typically known as outbound modem dialing.
212
213 To help defer the cost of installing and maintaining additional phone
214 lines which may be used very little per person, many equipment
215 manufacturers have added the ability to establish a Telnet session
216 directly to the outbound ports on many of the most popular access
217 servers and routers, here after referred to as access servers.
218
219 However, the current Telnet protocol definitions are not sufficient
220 to fully support this new use. There are three new areas of
221 functionality which need to be added to the Telnet protocol to
222 successfully support the needs of outbound modem dialing. These are:
223
224 - The ability for the client to send com port configuration
225 information to the access server which is connected to the
226 outbound modem. This is needed to ensure the data being
227 transmitted and received by the modem is formatted correctly
228 at the byte level.
229
230 - The ability for the access server to inform the client of any
231 modem line or signal changes such as RLSD changes (carrier
232 detect). This information is vital, since many client software
233 packages use this information to determine if a session with the
234 remote service has been established. RLSD changes are also
235 used for signaling in Class I faxing [<a href="#ref-6">6</a>].
236
237 - The ability to manage flow control between the client and
238 the access server which does not interfere with the flow
239 control mechanisms used by the session between the client and
240 the remote service. Unfortunately <a href="http://tools.ietf.org/html/rfc1372">RFC 1372</a> "Telnet Remote
241 Flow Control Option" [<a href="#ref-2" title="&quot;Telnet Remote Flow Control Option&quot;">2</a>] can not be used for this purpose
242 because it relies on sending XON/XOFF style characters which
243 maybe transmitted or received as a normal course of the
244 client / remote service session.
245
246
247
248
249
250<span class="grey">Clark Experimental [Page 2]</span>
251</pre><!--NewPage--><pre class="newpage"><a name="page-3" id="page-3" href="#page-3" class="invisible"> </a>
252<span class="grey"><a href="http://tools.ietf.org/html/rfc2217">RFC 2217</a> Telnet Com Port Control Option October 1997</span>
253
254
255 Though this discussion has focused on outbound modem dialing as the
256 primary use of this protocol, the protocol can also be used for any
257 serial device attached to an access server. Such devices could be:
258
259 - serial printers
260 - plotters
261 - monitoring devices such as pipe line monitors or medical
262 monitors
263 - general office equipment such as photo-copiers and cash
264 registers
265
266Definition of Terms
267
268 Access Server - Any network device which accepts Telnet sessions
269 and passes the data received to a com port, and
270 passes data received from the com port to the client
271 via the Telnet session.
272
273 Baud Rate - For the purposes of this document, baud rate will
274 mean the communications of data in bits per second.
275
276 Client - Any network device which initiates a Telnet session
277 to an access server.
278
279 Outbound - Transmission of data from the modem attached to the
280 access server to a remote service.
281
282 Inbound - Transmission of data from the remote service to the
283 modem attached to the access server.
284
285 Remove Service - Any service which accepts dial-up connections,
286 including fax machines.
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306<span class="grey">Clark Experimental [Page 3]</span>
307</pre><!--NewPage--><pre class="newpage"><a name="page-4" id="page-4" href="#page-4" class="invisible"> </a>
308<span class="grey"><a href="http://tools.ietf.org/html/rfc2217">RFC 2217</a> Telnet Com Port Control Option October 1997</span>
309
310
311Illustration
312
313 =====================
314 | |
315 | CLIENT |\
316 | | \ &lt; ---- Local Area /
317 ===================== \ Enterprise Network
318 \
319 \
320 =============================
321 | Telnet Interface |
322 | | |
323 | | |
324 | ACCESS SERVER | |
325 | | |
326 | | |
327 | Com Port Interface |
328 =============================
329 |
330 |
331 ==================
332 | |
333 | MODEM |
334 | |
335 ==================
336 |
337 Access to Remote Service |
338 most commonly Public Switched -----&gt;|
339 Network |
340 |
341 |
342 ======================
343 Could be Internet Service | |
344 Provider, Bulletin Board | |
345 or FAX machine | REMOTE SERVICE |
346 | |
347 | |
348 ======================
349
350
351 Command Names and Codes:
352 COM-PORT-OPTION 44
353
354
355
356
357
358
359
360
361
362<span class="grey">Clark Experimental [Page 4]</span>
363</pre><!--NewPage--><pre class="newpage"><a name="page-5" id="page-5" href="#page-5" class="invisible"> </a>
364<span class="grey"><a href="http://tools.ietf.org/html/rfc2217">RFC 2217</a> Telnet Com Port Control Option October 1997</span>
365
366
367 Client to Access Server Access Server to Client
368 SIGNATURE text text
369 SET-BAUDRATE 1 101
370 SET-DATASIZE 2 102
371 SET-PARITY 3 103
372 SET-STOPSIZE 4 104
373 SET-CONTROL 5 105
374 NOTIFY-LINESTATE 6 106
375 NOTIFY-MODEMSTATE 7 107
376 FLOWCONTROL-SUSPEND 8 108
377 FLOWCONTROL-RESUME 9 109
378 SET-LINESTATE-MASK 10 110
379 SET-MODEMSTATE-MASK 11 111
380 PURGE-DATA 12 112
381
382 Discussion: As initially proposed, com port configuration
383 commands are only sent from the client to the access
384 server. There is no current vision that the access
385 server would initiate the use of a com port configuration
386 command, only the notify commands. However, to allow for
387 access server initiated com port configurations different
388 command values have been established.
389
390<span class="h2"><h2><a class="selflink" name="section-1" href="#section-1">1</a>. Negotiation of the Com Port Control Option Protocol</h2></span>
391
392 The negotiation of the com port control option protocol uses the
393 standard Telnet negotiation protocol mechanism:
394
395 IAC WILL COM-PORT-OPTION
396 The sender of this command is willing to send com port
397 control option commands.
398 IAC WONT COM-PORT-OPTION
399 The sender of this command refuses to send com port
400 control option commands.
401 IAC DO COM-PORT-OPTION
402 The sender of this command is willing to accept com port
403 control option commands.
404 IAC DONT COM-PORT-OPTION
405 The sender of this command refuses to accept com port control
406 options commands.
407
408 Typically a client will use WILL and WONT, while an access server
409 will use DO and DONT.
410
411
412
413
414
415
416
417
418<span class="grey">Clark Experimental [Page 5]</span>
419</pre><!--NewPage--><pre class="newpage"><a name="page-6" id="page-6" href="#page-6" class="invisible"> </a>
420<span class="grey"><a href="http://tools.ietf.org/html/rfc2217">RFC 2217</a> Telnet Com Port Control Option October 1997</span>
421
422
423<span class="h2"><h2><a class="selflink" name="section-2" href="#section-2">2</a>. Com Port Configuration Commands</h2></span>
424
425 Once DO and WILL have been negotiated, the client may send any of the
426 following commands. The client can send these commands at any time
427 and multiple times throughout the Telnet session. Each command
428 transmitted from the client to the access server must be acknowledged
429 once the command has been processed by the access server. This
430 confirmation informs the client of the value set at the access server
431 after the processing of the command. This acknowledgment is not used
432 to acknowledge the receipt of the command, which is handled at the
433 TCP protocol layer. Its purpose is to inform the client of the value
434 in use, which may be different than the value requested in the
435 client's command. For example, the client may request a baud rate
436 higher than the access service can provide. If an acknowledgment is
437 not received by the client within a reasonable time (such as twice
438 the delay acknowledgment timer), the client may wish to resend the
439 command or terminate the session.
440
441 Though the commands may be sent from the client to the access server
442 in any sequence, there are sequences which may result in invalid
443 configurations for the com port (for example: EVEN parity is only
444 valid if the data size is set to less than 8 bits). Thus it is
445 recommended that commands be issued in the following sequence:
446
447 1. SET-BAUDRATE
448 2. SET-DATASIZE
449 3. SET-PARITY
450 4. SET-STOPSIZE
451
452 IAC SB COM-PORT-OPTION SIGNATURE &lt;text&gt; IAC SE
453 This command may be sent by either the client or the access
454 server to exchange signature information. If the command is
455 sent without &lt;text&gt; it is a request from the sender to receive
456 the signature text of the receiver. The text may be a
457 combination of any characters. There is no structure to the
458 &lt;text&gt; field. It may contain manufacturer information, version
459 number information, or any other information desired. If an
460 IAC character appears in the text it must be translated to
461 IAC-IAC to avoid conflict with the IAC which terminates
462 the command.
463
464 IAC SB COM-PORT-OPTION SET-BAUD &lt;value(4)&gt; IAC SE
465 This command is sent by the client to the access server to set
466 the baud rate of the com port. The value is four octets (4 bytes).
467 The value is represented in network standard format. The value
468 is the baud rate being requested. A special case is the value 0.
469 If the value is zero the client is requesting the current baud
470 rate of the com port on the access server.
471
472
473
474<span class="grey">Clark Experimental [Page 6]</span>
475</pre><!--NewPage--><pre class="newpage"><a name="page-7" id="page-7" href="#page-7" class="invisible"> </a>
476<span class="grey"><a href="http://tools.ietf.org/html/rfc2217">RFC 2217</a> Telnet Com Port Control Option October 1997</span>
477
478
479 Discussion: Though baud rates used today form a very sparse space,
480 and the initial version of the option used an index
481 based baud rate table, after much discussion with a
482 number of groups it has been determined that the
483 actual baud rate should be used. There are two main
484 reasons. 1) It limits the number of updates to the
485 option as faster baud rates come into use,
486 2) It provides the greatest amount of flexibility
487 in the selection of the baud rates.
488
489 IAC SB COM-PORT-OPTION SET-DATASIZE &lt;value&gt; IAC SE
490 This command is sent by the client to the access server to set
491 the data bit size. The command can also be sent to query the
492 current data bit size. The value is one octet (byte). The value
493 is an index into the following value table:
494
495 Value Data Bit Size
496 0 Request Current Data Bit Size
497 1 Available for Future Use
498 2 Available for Future Use
499 3 Available for Future Use
500 4 Available for Future Use
501 5 5
502 6 6
503 7 7
504 8 8
505 9-127 Available for Future Use
506
507 Discussion: There are only eight possible values for the data bit
508 size, only four have ever been used historically and
509 only two are commonly used today. The use of the
510 command-value format is recommended to preserve
511 consistency with other commands. It also reduces the
512 number of commands defined in the protocol, and
513 allows for future expansion.
514
515 IAC SB COM-PORT-OPTION SET-PARITY &lt;value&gt; IAC SE
516 This command is sent by the client to the access server to set
517 the parity. The command can also be sent to query the current
518 parity. The value is one octet (byte). The value is an index into
519 the following value table:
520
521 Value Parity [<a href="#ref-1" title=" Second Edition. Indianapolis: SAMS Publishing">1</a>]
522 0 Request Current Data Size
523 1 NONE
524 2 ODD
525 3 EVEN
526 4 MARK
527
528
529
530<span class="grey">Clark Experimental [Page 7]</span>
531</pre><!--NewPage--><pre class="newpage"><a name="page-8" id="page-8" href="#page-8" class="invisible"> </a>
532<span class="grey"><a href="http://tools.ietf.org/html/rfc2217">RFC 2217</a> Telnet Com Port Control Option October 1997</span>
533
534
535 5 SPACE
536 6-127 Available for Future Use
537
538 Discussion: There are only five possible values for parity
539 commonly used today. The use of the command-value
540 format is recommended to preserve consistency with
541 other commands.
542
543 IAC SB COM-PORT-OPTION SET-STOPSIZE &lt;value&gt; IAC SE
544 This command is sent by the client to the access server to set
545 the number of stop bits. The command can also be sent to query
546 the current stop bit size. The value is one octet (byte). The
547 value is an index into the following value table:
548
549 Value Stop Bit Size
550 0 Request Current Data Size
551 1 1
552 2 2
553 3 1.5
554 4-127 Available for Future Use
555
556 Discussion: Stop bit 1.5 is supported by most com port hardware
557 only if data size is set to 5 bits. It is not
558 commonly used.
559
560<span class="h2"><h2><a class="selflink" name="section-3" href="#section-3">3</a>. Special Com Port Control Commands</h2></span>
561
562 The client can send this command to the access server at any time
563 and multiple times throughout the Telnet session. Each command
564 transmitted from the client to the access server is acknowledged
565 with a confirmation of the command and the actual value set. The
566 client should expect a response within a reasonable time (such as
567 twice the delay acknowledgment timer). The client may wish to
568 resend any command which is not acknowledged or terminate the
569 session.
570
571 IAC SB COM-PORT-OPTION SET-CONTROL &lt;value&gt; IAC SE
572 This command is sent by the client to the access server to set
573 special com port options. The command can also be sent to query
574 the current option value. The value is one octet (byte). The
575 value is an index into the following value table:
576
577 Value Control Commands
578 0 Request Com Port Flow Control Setting
579 (outbound/both)
580 1 Use No Flow Control (outbound/both)
581 2 Use XON/XOFF Flow Control (outbound/both)
582 3 Use HARDWARE Flow Control (outbound/both)
583
584
585
586<span class="grey">Clark Experimental [Page 8]</span>
587</pre><!--NewPage--><pre class="newpage"><a name="page-9" id="page-9" href="#page-9" class="invisible"> </a>
588<span class="grey"><a href="http://tools.ietf.org/html/rfc2217">RFC 2217</a> Telnet Com Port Control Option October 1997</span>
589
590
591 4 Request BREAK State
592 5 Set BREAK State ON
593 6 Set BREAK State OFF
594 7 Request DTR Signal State
595 8 Set DTR Signal State ON
596 9 Set DTR Signal State OFF
597 10 Request RTS Signal State
598 11 Set RTS Signal State ON
599 12 Set RTS Signal State OFF
600 13 Request Com Port Flow Control Setting (inbound)
601 14 Use No Flow Control (inbound)
602 15 Use XON/XOFF Flow Control (inbound)
603 16 Use HARDWARE Flow Control (inbound)
604 17 Use DCD Flow Control (outbound/both)
605 18 Use DTR Flow Control (inbound)
606 19 Use DSR Flow Control (outbound/both)
607 20-127 Available for Future Use
608
609 Discussion: Flow control options were divided into inbound and
610 outbound to take full advantage of existing
611 programming interfaces and access server
612 capabilities.
613
614 Discussion: The outbound values should set flow control for both
615 outbound and inbound. If inbound is to be, or can
616 be, set separately it should be done after the
617 setting of the outbound value.
618
619 Discussion: If the access server is not able to set inbound flow
620 control differently from the outbound flow control,
621 it should ignore the inbound flow control commands
622 and set the flow control option based on the outbound
623 flow control commands only.
624
625 IAC SB COM-PORT-OPTION SET-LINESTATE-MASK &lt;value&gt; IAC SE
626 This command is sent by the client to the access server to set a
627 bit mask for the sending of the NOTIFY-LINESTATE option (see
628 <a href="#section-4">section 4</a>). When the LINESTATE changes on the access server, the
629 access server will "AND" the new LINESTATE with the LINESTATE-
630 MASK. If the result is not zero, the access server will send the
631 result of the "AND" as the value in a NOTIFY-LINESTATE com port
632 option. If more than one bit satisfies the LINESTATE-MASK, only
633 one NOTIFY-LINESTATE, with all the satisfying bits, will be sent
634 to the client. The SET-LINESTATE-MASK may be any combination of
635 bits as listed below. These are the same bit values used in the
636 NOTIFY-LINESTATE option. The SET-LINESTATE-MASK values are based
637 on the most popular UART (com port control chip) in use [<a href="#ref-1" title=" Second Edition. Indianapolis: SAMS Publishing">1</a>].
638
639
640
641
642<span class="grey">Clark Experimental [Page 9]</span>
643</pre><!--NewPage--><pre class="newpage"><a name="page-10" id="page-10" href="#page-10" class="invisible"> </a>
644<span class="grey"><a href="http://tools.ietf.org/html/rfc2217">RFC 2217</a> Telnet Com Port Control Option October 1997</span>
645
646
647 Bit Position Value Meaning
648 7 128 Time-out Error
649 6 64 Transfer Shift Register Empty
650 5 32 Transfer Holding Register Empty
651 4 16 Break-detect Error
652 3 8 Framing Error
653 2 4 Parity Error
654 1 2 Overrun Error
655 0 1 Data Ready
656
657 Discussion: The SET-LINESTATE-MASK value of 0 will prevent the
658 access server from sending NOTIFY-LINESTATE options
659 to the client.
660
661 Discussion: The SET-LINESTATE-MASK value of 255 will allow the
662 access server to send a NOTIFY-LINESTATE option to
663 the client each time the LINESTATE changes on the
664 access server.
665
666 Discussion: The initial LINESTATE-MASK at the access server is 0.
667
668 Discussion: The client does not have to send a new
669 SET-LINESTATE-MASK after receiving a NOTIFY-
670 LINESTATE. The LINESTATE-MASK on the access server
671 is retained until set by the client or reset at the
672 start of a new Telnet session.
673
674 IAC SB COM-PORT-OPTION SET-MODEMSTATE-MASK &lt;value&gt; IAC SE
675 This command is sent by the client to the access server to set a
676 bit mask for the sending of the NOTIFY-MODEMSTATE option (see
677 <a href="#section-4">section 4</a>). When the MODEMSTATE changes on the access server,
678 the access server will "AND" the new MODEMSTATE with the
679 MODEMSTATE-MASK. If the result is not zero, the access server
680 will send the result of the "AND" as the value in a NOTIFY-
681 MODEMSTATE com port option. If more than one bit satisfies the
682 MODEMSTATE-MASK, only one NOTIFY-MODEMSTATE, with all the
683 satisfying bits, will be sent to the client. The SET-
684 MODEMSTATE-MASK may be any combination of bits as listed below.
685 These are the same bit values used in the NOTIFY-MODEMSTATE
686 option. The SET-MODEMSTATE-MASK values are based on the most
687 popular UART (com port control chip) in use [<a href="#ref-1" title=" Second Edition. Indianapolis: SAMS Publishing">1</a>].
688
689
690
691
692
693
694
695
696
697
698<span class="grey">Clark Experimental [Page 10]</span>
699</pre><!--NewPage--><pre class="newpage"><a name="page-11" id="page-11" href="#page-11" class="invisible"> </a>
700<span class="grey"><a href="http://tools.ietf.org/html/rfc2217">RFC 2217</a> Telnet Com Port Control Option October 1997</span>
701
702
703 Bit Position Value Meaning
704 7 128 Receive Line Signal Detect
705 (also known as Carrier Detect)
706 6 64 Ring Indicator
707 5 32 Data-Set-Ready Signal State
708 4 16 Clear-To-Send Signal State
709 3 8 Delta Receive Line Signal Detect
710 2 4 Trailing-edge Ring Detector
711 1 2 Delta Data-Set-Ready
712 0 1 Delta Clear-To-Send
713
714 Discussion: The SET-MODEMSTATE-MASK value of 0 will prevent the
715 access server from sending NOTIFY-MODEMSTATE options
716 to the client.
717
718 Discussion: The SET-MODEMSTATE-MASK value of 255 will allow the
719 access server to send a NOTIFY-MODEMSTATE option to
720 the client each time the MODEMSTATE changes on the
721 access server.
722
723 Discussion: The initial MODEMSTATE-MASK at the access server
724 is 255.
725
726 Discussion: The client does not have to send a new
727 SET-MODEMSTATE-MASK after receiving a NOTIFY-
728 MODEMSTATE. The MODEMSTATE-MASK on the access server
729 is retained until set by the client or reset at the
730 start of a new Telnet session.
731
732 IAC SB COM-PORT-OPTION PURGE-DATA &lt;value&gt; IAC SE
733 This command is sent by the client to the access server to
734 instruct the access server to immediately clear all data from the
735 buffer or buffers referenced by the value. The value is one
736 octet (byte). The value is an index into the following value
737 table:
738
739 Value Purge Data Buffer
740 0 Available for Future Use
741 1 Purge access server receive data buffer
742 2 Purge access server transmit data buffer
743 3 Purge both the access server receive data
744 buffer and the access server transmit data
745 buffer
746 4-127 Available for Future Use
747
748
749
750
751
752
753
754<span class="grey">Clark Experimental [Page 11]</span>
755</pre><!--NewPage--><pre class="newpage"><a name="page-12" id="page-12" href="#page-12" class="invisible"> </a>
756<span class="grey"><a href="http://tools.ietf.org/html/rfc2217">RFC 2217</a> Telnet Com Port Control Option October 1997</span>
757
758
759<span class="h2"><h2><a class="selflink" name="section-4" href="#section-4">4</a>. Notification of Com port and Modem Line Changes</h2></span>
760
761 The access server can send these commands to the client any time
762 and multiple times throughout the Telnet session. The access
763 server should send the appropriate command to the client as soon
764 as the com port or modem line changes occurs. The client does
765 not issue a response to these commands.
766
767 IAC SB COM-PORT-OPTION NOTIFY-LINESTATE &lt;value&gt; IAC SE
768 The value is one octet (byte). The value is a bit level
769 composition made up from the value table below. Multiple bit
770 values may be set in a single transmission. The values are based
771 on the most popular UART (com port control chip) in use [<a href="#ref-1" title=" Second Edition. Indianapolis: SAMS Publishing">1</a>].
772
773 Bit Position Value Meaning
774 7 128 Time-out Error
775 6 64 Transfer Shift Register Empty
776 5 32 Transfer Holding Register Empty
777 4 16 Break-detect Error
778 3 8 Framing Error
779 2 4 Parity Error
780 1 2 Overrun Error
781 0 1 Data Ready
782
783
784 Discussion: The LINESTATE is the line state of the UART on
785 the access server.
786
787 IAC SB COM-PORT-OPTION NOTIFY-MODEMSTATE &lt;value&gt; IAC SE
788 The value is one octet (byte). The value is a bit level
789 composition made up from the value table below. Multiple bit
790 values may be set in a single transmission. The values are based
791 on the most popular UART (com port control chip) in use [<a href="#ref-1" title=" Second Edition. Indianapolis: SAMS Publishing">1</a>].
792
793 Bit Position Value Meaning
794 7 128 Receive Line Signal Detect
795 (also known as Carrier Detect)
796 6 64 Ring Indicator
797 5 32 Data-Set-Ready Signal State
798 4 16 Clear-To-Send Signal State
799 3 8 Delta Receive Line Signal Detect
800 2 4 Trailing-edge Ring Detector
801 1 2 Delta Data-Set-Ready
802 0 1 Delta Clear-To-Send
803
804
805
806
807
808
809
810<span class="grey">Clark Experimental [Page 12]</span>
811</pre><!--NewPage--><pre class="newpage"><a name="page-13" id="page-13" href="#page-13" class="invisible"> </a>
812<span class="grey"><a href="http://tools.ietf.org/html/rfc2217">RFC 2217</a> Telnet Com Port Control Option October 1997</span>
813
814
815<span class="h2"><h2><a class="selflink" name="section-5" href="#section-5">5</a>. Flow Control</h2></span>
816
817 The client and/or access server can send these commands any time and
818 multiple times throughout the Telnet session.
819
820 IAC SB COM-PORT-OPTION FLOWCONTROL-SUSPEND IAC SE
821 The sender of this command is requesting that the receiver
822 suspend transmission of both data and commands until the
823 FLOWCONTROL-RESUME is transmitted by the sender.
824
825 IAC SB COM-PORT-OPTION FLOWCONTROL-RESUME IAC SE
826 The sender of this command is requesting that the receiver resume
827 transmission of both data and commands.
828
829 Discussion: Established Telnet sessions are initially in a
830 resume state between the client and the access server
831 and the access server and the client. There is no
832 need to send the resume command during session
833 initialization.
834
835 Discussion: Multiple concurrent suspend commands may be sent.
836 Secondary suspend commands can be ignored.
837 Transmission will resume with the sending of a single
838 resume command.
839
840 Discussion: The flow control option is designed to handle client
841 to access server flow control for the Telnet session.
842 This option has been added in deference to <a href="http://tools.ietf.org/html/rfc1372">RFC 1372</a>:
843 Telnet Remote Flow Control Option [<a href="#ref-2" title="&quot;Telnet Remote Flow Control Option&quot;">2</a>]. <a href="http://tools.ietf.org/html/rfc1372">RFC 1372</a> uses
844 a simple character XON/XOFF technology to implement
845 flow control. This can lead to two problems. First,
846 the flow control characters may be valid data values.
847 Second, the flow control characters may be used for
848 end to end flow control (client application to remote
849 dial up service).
850
851<span class="h2"><h2><a class="selflink" name="section-6" href="#section-6">6</a>. Security Considerations</h2></span>
852
853 There are two security issues to discuss; authentication and
854 resetting resources.
855
856 Authentication can follow either the Kerberos authentication protocol
857 established in <a href="http://tools.ietf.org/html/rfc1411">RFC 1411</a> [<a href="#ref-3" title="&quot;Telnet Authentication: Kerberos Version 4&quot;">3</a>] or the SPX authentication protocol
858 established in <a href="http://tools.ietf.org/html/rfc1412">RFC 1412</a> [<a href="#ref-4" title="&quot;Telnet Authentication: SPX&quot;">4</a>].
859
860 Once the Telnet session between the client and the access server has
861 been terminated, the access server should ensure the connection to
862 the remote service is disconnected and the com port geometry (baud
863
864
865
866<span class="grey">Clark Experimental [Page 13]</span>
867</pre><!--NewPage--><pre class="newpage"><a name="page-14" id="page-14" href="#page-14" class="invisible"> </a>
868<span class="grey"><a href="http://tools.ietf.org/html/rfc2217">RFC 2217</a> Telnet Com Port Control Option October 1997</span>
869
870
871 rate, data size, stop bits, parity, and flow control) is reset to a
872 factory or administrator defined configuration. This ensures the com
873 port is in a known state and ready to receive the next client
874 session. This will make operations more predicable and avoid
875 problems which might occur from starting a new session with random
876 com port configurations.
877
878<span class="h2"><h2><a class="selflink" name="section-7" href="#section-7">7</a>. Author's Address</h2></span>
879
880 Glen Clark, Software Architect
881 Cisco Systems, Inc.
882 170 West Tasman Drive
883 San Jose, CA 96134
884 USA
885
886 EMail: glenc@cisco.com
887 WEB: www.cisco.com
888
889<span class="h2"><h2><a class="selflink" name="section-8" href="#section-8">8</a>. Reference Section</h2></span>
890
891 [<a name="ref-1" id="ref-1">1</a>] Joe Campbell. C Programmer's Guide to Serial Communications,
892 Second Edition. Indianapolis: SAMS Publishing, 1993. 213-224.
893
894 [<a name="ref-2" id="ref-2">2</a>] Hedrick, C., and D. Borman, "Telnet Remote Flow Control Option",
895 <a href="http://tools.ietf.org/html/rfc1372">RFC 1372</a>, Cray Research, Inc., October 1992.
896
897 [<a name="ref-3" id="ref-3">3</a>] Borman, D., "Telnet Authentication: Kerberos Version 4",
898 <a href="http://tools.ietf.org/html/rfc1411">RFC 1411</a>, Cray Research, Inc., January 1993.
899
900 [<a name="ref-4" id="ref-4">4</a>] Alagappan, K., "Telnet Authentication: SPX",
901 <a href="http://tools.ietf.org/html/rfc1412">RFC 1412</a>, Digital Equipment Corporation, January 1993.
902
903 [<a name="ref-5" id="ref-5">5</a>] D. E. Comer and David Stevens. Internetworking with TCP/IP,
904 Volume III. Prentice Hall, 1993.
905
906 [<a name="ref-6" id="ref-6">6</a>] Andrew Margolis. The FAX Modem Sourcebook. John Wiley &amp; Sons.
907 1995.
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922Clark Experimental [Page 14]
923
924</pre><br>
925<span class="noprint"><small><small>Html markup produced by rfcmarkup 1.101, available from
926<a href="http://tools.ietf.org/tools/rfcmarkup/">http://tools.ietf.org/tools/rfcmarkup/</a>
927</small></small></span>
928
929</body></html>
Note: See TracBrowser for help on using the repository browser.