annotate docs/extension-packet.txt @ 9:a11b330771e0

Fix buffer pointer handling when logging received bytes Actually save the read buffer pointer so we can log the actual protocol bytes read in all cases correctly instead of displaying out of bounds memory in the case where the packet arrives in multiple pieces.
author William Astle <lost@l-w.ca>
date Sat, 30 Jul 2016 10:35:14 -0600
parents 2e382e1a173e
children 7231f922b0f2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
1 This document describes an extension to the LWWire protocol which provides
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
2 raw packet data transfer. This extension leaves it up to the protocol server
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
3 to decide how it obtains packets from and sends packets to the wider
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
4 network. It is expected that this will likely be a virtual network interface
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
5 of some kind but that is not strictly required. This extension only
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
6 describes the mechanism for passing packets between the server and the
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
7 client. Essentially, it is a link layer protocol.
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
8
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
9 LWWire Server Operations
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
10 ========================
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
11
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
12 The server side will maintain a transmit queue. This queue will have some
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
13 defined maximum length after which any subsequent packets will be dropped
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
14 until space opens in the queue. The length of the queue will be settable by
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
15 the client up to some server defined maximum size. The maximum size
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
16 supported by the server is left up to the server but it must necessarily be
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
17 at least 1 and probably higher to support any significant data transfer.
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
18
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
19 The server must drop any packets unless this extension is enabled. If the
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
20 extension is disabled after being enabled, any packets in the queue must be
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
21 immediately dropped. The queue must also be cleared upon a protocol reset.
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
22
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
23
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
24 LWWire Protocol Extension
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
25 =========================
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
26
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
27 This extension is called PACKET and is assigned extension number 01. It
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
28 defines the following operations in its extension space.
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
29
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
30 00 PACKET_POLL
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
31
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
32 This requests information about the next packet in the server's queue.
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
33
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
34 Request:
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
35
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
36 Octet Meaning
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
37 ----- -------
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
38 0-2 F3 01 00
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
39
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
40 Response:
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
41
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
42 Octet Meaning
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
43 ----- -------
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
44 0-1 16 bit length
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
45
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
46 If the returned length is zero, then there is no packet queued on the
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
47 server. Subsequent PACKET_POLL calls will return the same result until the
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
48 packet in the queue is either retrieved or dropped.
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
49
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
50
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
51 01 PACKET_RECEIVE
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
52
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
53 This receives the first packet in the queue.
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
54
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
55 Request:
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
56
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
57 Octet Meaning
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
58 ----- -------
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
59 0-2 F3 01 01
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
60
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
61 Response:
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
62
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
63 Octet Meaning
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
64 ----- -------
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
65 0-n packet data
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
66
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
67 This request MUST NOT be issued without first calling PACKET_POLL to
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
68 determine the length of the packet. If it is issued when no packet is
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
69 waiting, the server MUST trigger an unknown operation error state.
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
70
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
71 The client sends no indication that it has received the packet. As soon as
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
72 the server has delivered the packet on the wire, it must remove it from the
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
73 queue. If it detects an error condition during transmission, it MAY choose
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
74 to retain the packet at the head of the queue.
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
75
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
76 The client must issue another PACKET_POLL to learn the length of the next
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
77 packet in the queue, if there is one.
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
78
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
79 02 PACKET_SEND
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
80
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
81 This request allows the client to deliver a packet to the server.
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
82
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
83 Request:
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
84
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
85 Octet Meaning
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
86 ----- -------
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
87 0-2 F3 01 02
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
88 3-4 16 bit length
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
89 5- packet data
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
90
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
91 There is no response from the server. The server is free to drop the packet
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
92 if it cannot handle it, just as any other packet receiver may do. The client
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
93 will receive no indication that this has happened. This is indistinguishable
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
94 from any other cause of packets to be dropped.
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
95
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
96
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
97 03 PACKET_DROP
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
98
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
99 This is a complement to PACKET_RECEIVE. It causes the server to discard the
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
100 packet at the head of its transmit queue.
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
101
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
102 Request:
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
103
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
104 Octet Meaning
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
105 ----- -------
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
106 0-2 F3 01 03
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
107
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
108 There is no response from the server. If the server has no packets in its
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
109 queue, nothing happens.
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
110
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
111 A sequence of PACKET_POLL/PACKET_DROP until PACKET_POLL returns an empty
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
112 queue indication can be used to clear the server queue.
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
113
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
114 This operation allows the client to refuse delivery of a packet that it will
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
115 not be able to handle in a timely manner or which it cannot handle at all
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
116 due to size.
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
117
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
118
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
119 04 PACKET_SETRXMTU
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
120 05 PACKET_SETQUEUELEN
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
121 06 PACKET_SETTXMTU
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
122
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
123 These requests allow for setting parameters for the server queue.
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
124
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
125 Request:
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
126
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
127 Octet Meaning
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
128 ----- -------
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
129 0-2 F3 01 <op>
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
130 3-+x <value>
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
131
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
132 Response:
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
133
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
134 Octet Meaning
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
135 ----- -------
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
136 0-x actual value set
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
137
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
138
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
139 "x" is the size of the value. MTU is a 16 bit value. Queue length is an 8
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
140 bit value.
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
141
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
142 See the Link Parameters section for more detail on the various parameters
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
143 that can be set.
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
144
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
145
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
146 Link Parameters
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
147 ===============
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
148
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
149 Queue length (QUEUELEN)
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
150 -----------------------
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
151
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
152 This is the maximum length of queue of packets waiting to be delivered to
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
153 the client. Setting this too high can lead to overwhelming the client with
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
154 packets it cannot handle. A faster client may choose to increase this value
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
155 while a slower client may choose to decrease it. The client may choose to
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
156 adjust this value based on the work load it currently has, as well.
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
157
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
158 The server must respect any request to set the queue length for any value
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
159 less than it's maximum capable queue length. The minimum limit for the queue
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
160 length is 2, but servers should support a higher queue length if possible.
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
161
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
162
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
163 Receive MTU (RXMTU)
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
164 -------------------
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
165
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
166 This is the maximum packet size the client is willing to accept. While the
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
167 client need not set this, it is beneficial to do so. That way, the server
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
168 side can drop packets that are too big rather than queuing them. In fact, in
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
169 IP (and similar) settings, the sending side can then send a "packet too big"
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
170 indicator which may cause remote transmitters to reduce their packet sizes.
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
171 In particular, TCP benefits from this.
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
172
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
173 By default, the server will send any packets it receives of any size. That
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
174 is, the MTU will be assumed to be compatible with any packets it might
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
175 receive the network. The client can discover what the server's notion of the
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
176 maximum packet size is by querying the RXMTU. It is recommended that the
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
177 default RXMTU on the server be no greater than 1500 (ethernet MTU) and no
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
178 lower than 576, but these values should be chosen based on the protocols
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
179 being transported by the server and client.
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
180
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
181
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
182 Transmit MTU (TXMTU)
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
183 --------------------
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
184
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
185 This is the maximum packet size the server is willing to relay. This will
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
186 default to the same size as the RXMTU setting. However, changing the RXMTU
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
187 will not change the TXMTU setting. The client should query this at startup
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
188 to find out what packets it shouldn't bother sending so it can pass along
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
189 "too big" notifications to its own transmitters.
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
190
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
191 If the server receives from the client a packet larger than the TXMTU
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
192 setting, it should just drop it. Normally, the client will not set this
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
193 value. It can simply use its own notion of MTU to avoid sending packets
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
194 larger than it wants to handle and the server can blithely go on with a
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
195 larger notion. However, if the client does set the value lower, it can be
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
196 useful for the server to discard rogue packet transmissions from the client.
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
197
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
198 The restrictions on this value are the same as for the RXMTU value. The
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
199 server must not reject any reasonable value smaller than its actual limit
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
200 from the client should the client choose to set one. The server need not
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
201 accept a value larger than its actual capability, of course.
2e382e1a173e Add PACKET extension
William Astle <lost@l-w.ca>
parents:
diff changeset
202