Messages in this thread | | | From | Eric Dumazet <> | Date | Wed, 29 Nov 2023 19:09:15 +0100 | Subject | Re: [PATCH v4 6/7] net/tcp: Store SNEs + SEQs on ao_info |
| |
On Wed, Nov 29, 2023 at 5:57 PM Dmitry Safonov <dima@arista.com> wrote: > > RFC 5925 (6.2): > > TCP-AO emulates a 64-bit sequence number space by inferring when to > > increment the high-order 32-bit portion (the SNE) based on > > transitions in the low-order portion (the TCP sequence number). > > snd_sne and rcv_sne are the upper 4 bytes of extended SEQ number. > Unfortunately, reading two 4-bytes pointers can't be performed > atomically (without synchronization). > > In order to avoid locks on TCP fastpath, let's just double-account for > SEQ changes: snd_una/rcv_nxt will be lower 4 bytes of snd_sne/rcv_sne. >
This will not work on 32bit kernels ?
Unless ao->snd_sne and ao->rcv_sneare only read/written under the socket lock (and in this case no READ_ONCE()/WRITE_ONCE() should be necessary)
| |