annotate docs/extension-packet.txt @ 7:2e382e1a173e

Add PACKET extension Added a PACKET extension based on Brett Gordon's initial spec but with a couple of additions.
author William Astle <lost@l-w.ca>
date Sat, 11 Jun 2016 12:26:39 -0600
parents
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