RFC 658
Telnet output linefeed disposition
RFC 658: TELNET OUTPUT LINEFEED DISPOSITION π
Author: D. Crocker (UCLA-NMC) π Number: RFC 658, NIC 31161 πΈ Date: Oct. 25, 1974 π
Online file: [ISI]<DCROCKER>NAOLFD.TXT π¦ Category/status: the header doesn't say π€·ββοΈ Obsoletes/Updates: the header doesn't list any π
1. Command name and code β¨
okay so the option is called NAOLFD and its code is 16 π₯
NAOLFD 16
(Negotiate About Output Linefeed Disposition)
2. Command meanings π
bestie, we're talking about a simplex connection here, the kind described in the NAOL and NAOP Telnet Options π§ so each command below is one direction of the convo, and the sender and receiver each have their own lane π£οΈ
IAC DO NAOLFD
the data sender requests or agrees to negotiate about output linefeed disposition with the data receiver π if they agree and there are no further subnegotiations, the data receiver is assumed to be handling output linefeed considerations π
IAC DON'T NAOLFD
the data sender refuses to negotiate about output linefeed disposition with the data receiver, or demands a return to the unnegotiated default mode π ββοΈ that's a hard no, babe π
IAC WILL NAOLFD
the data receiver requests or agrees to negotiate about output linefeed disposition with the sender π if agreement is reached and there are no further subnegotiations, the data receiver alone is assumed to be handling output linefeed considerations π
IAC WON'T NAOLFD
the data receiver refuses to negotiate about output linefeed disposition, or demands a return to the unnegotiated default mode π€ same energy as the DON'T, just from the other side π«Ά
IAC SB NAOLFD DS <8-bit value> IAC SE
the data sender uses the 8-bit value to say which party should handle output linefeeds and what their disposition should be π― the code for DS is 1 β¨
IAC SB NAOLFD DR <8-bit value> IAC SE
the data receiver uses the 8-bit value to say which party should handle output linefeeds and what their disposition should be π the code for DR is 0 π§
3. Default πΈ
so, the default is DON'T NAOLFD / WON'T NAOLFD (DON'T NAOLFD/WON'T NAOLFD) π if nobody's negotiating about who's handling output linefeed considerations, neither party is required nor prohibited from handling linefeeds π¦ BUT it's appropriate for at least the data receiver to handle them, even if it's kinda primitive π
4. Motivation for the Option π§
the whole reason this option exists is explained in section 4 of the NAOL and NAOLFD Telnet option descriptions π go check those out, they're the lore π
5. Description of the Option π
the data sender and the data receiver both use the 8-bit value along with the DS and DR SB commands, and it goes like this:
8-bit value Meaning
0 Command sender suggests that he alone will handle
linefeeds, for the connection.
1 to 250 Command sender suggests that the other party alone
should handle linefeeds, but suggests that a delay
of the indicated value be used. The value is the
number of character-times to wait or number of
NULs to insert in the data stream before sending
the next data character. (See qualifications, below.)
251 Not allowed, in order to be compatible with
related Telnet options.
252 Command sender suggests that the other party alone
handle linefeeds, but suggests that they be discarded.
253 Command sender suggests that the other party alone
should handle linefeeds, but suggests that
linefeeds be simulated.
254 Command sender suggests that the other party alone
should handle output linefeeds but suggests
waiting for a character to be transmitted (on the
other simplex connection) before sending more
data. (See qualifications, below.) Note that, due
to the assynchrony of the two simplex connections,
phase problems can occur with this option.
255 Command sender suggests that the other party alone
should handle output linefeeds and suggests
nothing about how it should be done.
now the guiding rules, which are the real main-character moments π
- if neither the data receiver nor the data sender wants to handle output linefeeds, the data receiver must do it π
- if both the data receiver and the data sender want to handle output linefeed disposition, the data sender gets to do it π
the reasoning for rule 1 is that if neither wants the job, the default in the NAOLFD option wins π§Έ and for rule 2, the sender is presumed to have special knowledge about the data, so they get the spotlight, while still taking into account whatever suggestions the receiver makes π«Ά
simulation means swapping the linefeed character for a new-line (see below) plus enough blanks to move the print head (or line pointer) back to the same sideways position it had right before the linefeed showed up β¨ to avoid infinite recursion π, simulation is only allowed for linefeed characters that are not immediately preceded by carriage-returns (aka part of a Telnet new-line combination) π it's assumed that simulation will be needed for printers that don't have a separate linefeed, like the IBM 2741 π¨οΈ in that case, end-of-line character padding can be specified through NAOCRD π any padding (0 < <8-bit-value> < 251) of linefeed characters is to be done for ALL linefeed characters π₯
NOTE: delays, which are controlled by the data sender, have to be NUL characters inserted right after the character π¨ that's necessary because network transmissions are asynchronous π§ also, because of the Telnet end-of-line convention, you might need to add carriage-return padding or a delay after the linefeed (see the NAOCRD Telnet option) π like with all option negotiations: neither party should suggest a state that's already in effect, except to refuse to negotiate π ββοΈ changes should be acknowledged π«Ά and once something's been refused, the option shouldn't be resuggested until "something changes" (e.g., another process starts) β¨ at any time, either party can disable further negotiation by sending the appropriate WON'T NAOLFD or DON'T NAOLFD command π¦
π¦ where this page comes from
- ietf: rfc658 1974-10
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms