Re: [PATCH -next v2 1/2] syncookies: remove ecn_ok validation when decoding option timestamp
From: Eric Dumazet <hidden>
Date: 2014-10-31 15:47:42
From: Eric Dumazet <hidden>
Date: 2014-10-31 15:47:42
On Fri, 2014-10-31 at 15:15 +0100, Florian Westphal wrote:
So if you have a per route ecn setting, and syncookies are used, and tcp_ecn sysctl is 0:
This part I do not understand. Why should tcp_ecn be 0 here, and not 2 (default value) ?
1. we receive syn with ecn on and timestamps 2. we send cookie synack, with timestamp and ecn (route allowed it), the lower bits of the timestamp have a "magic" bit set that allows us to infer that ecn was negotiated successfully. 3. we drop the ack from the client, since timestamp decoding sees "ecn is on according to timestamp, but the tcp_ecn sysctl is off". So to fix this, step 3 either has to check the dst setting in addition to the global sysctl, or to rely on the timestamp alone that ecn was requested by the original client and allowed by our host at the time synack timestamp was generated/sent. I hope that explains the reason behind patch #1 up.