29 Commits

Author SHA1 Message Date
Marvin Drees f87761f777 chore: bump minimum Go version to 1.24 (#85)
Signed-off-by: Marvin Drees <marvin.drees@9elements.com>
2026-04-16 17:21:23 -03:00
Pat Whittingslow 64b2647a5e tcp: retransmit logic rollback (#61)
* tcp: remove retransmit logic entirely; add duplicate ack counting to ControlBlock

* retransmit implemented in nice simple straightforward way

* narrow down retransmission cases

* remove old timing tests

* add ControlBlock retransmit test

* add failing handler test

* reworking payload length semantic meaning in code

* fix establish conn logic

* clean up tests and add TCB dupack generation and test it

* catch pending retransmit satisfy in test

* add fuzz test for control block

* bugfix: be more strict in what is considered dupack

* add IncomingIsDupACK docs

* limit queue of retransmits

* protect retransmit overflow from incorrectly updating nxt
2026-03-26 11:48:02 -03:00
Pat Whittingslow 270b8df043 Implement basic retransmit queue reset method (#52)
* implement basic retransmit queue reset method

* tcp: rto reset on new ack; accept ack after retransmit bugfix
2026-03-05 17:35:16 -03:00
Pat Whittingslow e13bb45854 attempt to fix #22 (#23) 2026-01-19 23:22:54 -03:00
Pat Whittingslow 018f9258ac Add tcp.Listener (#15)
* begin reviewing TCP listener

* begin adding listener tests

* adding TestExchange implementation

* split out legacy and Step tests

* move listener to tcp package

* fix up tcp tests taking very long

* add xnet.TCPPool and work on TCPPool semantics

* xnet: TCPPool only accepts established connections

* xnet: getting to bottom of panic in xnet.Listener

* xnet: improve listener tests

* fix several data races in testing fixtures

* fix more synchronization things in listener test

* finalize tcplistener test
2026-01-03 12:41:57 -03:00
Patricio Whittingslow c6e88b1c3b tcp.Conn:add Flush method and more lock protection 2026-01-01 10:32:13 -03:00
Patricio Whittingslow e3c6d68288 rigurously fix all tests 2025-11-05 20:12:02 -03:00
Patricio Whittingslow f5157e7e4a huge fixes to ring buffer implementations and mostly passing tests 2025-11-05 19:21:30 -03:00
Patricio Whittingslow 5e5f21a2b8 rethinking ring buffer semantics and breaking everything in the process 2025-11-05 02:35:53 -03:00
Patricio Whittingslow 82bd54a6da add faulty appendString method to rtx 2025-11-04 00:52:02 -03:00
Patricio Whittingslow 2b79b6a314 use sentlist in ringTx implementation and back to square 1 2025-11-03 23:51:05 -03:00
soypat 72047b8ae9 add test for sentlist 2025-11-03 19:04:23 -03:00
Patricio Whittingslow 71cf99dcb8 early return on partial packet ack 2025-10-29 18:06:38 -03:00
Patricio Whittingslow 46137bbbec begin adding TxQueue failing multipacket test 2025-10-27 23:21:41 -03:00
soypat 523f609761 now supports partial packet acks 2025-02-16 14:47:02 -03:00
soypat 8a5f6f3f6d tcp:txqueue: rewrite RecvAck logic 2025-02-16 12:42:22 -03:00
soypat 00cdf471f4 rewrite txqueue sequencing logic to use per-packet sequence numbers 2025-02-15 17:02:10 -03:00
soypat 0cb43c47a4 tcpHandler looks rounded off, add to example 2025-02-10 20:26:02 -03:00
soypat 64a7102064 continue adding Handler logic; remove unused TxQueue tests 2025-02-09 23:43:30 -03:00
soypat aa8da93f6b fix tests finally 2025-02-08 16:06:14 -03:00
soypat e452ff0f0a keep fixing ring queue things 2025-02-08 01:33:26 -03:00
soypat 23cd71fcc8 rewrite most of txQueue.String; move around couple things 2025-02-05 01:39:26 -03:00
soypat c53596166c rewrite txqueue fields to use unsent/sent end+off values 2025-02-04 00:35:08 -03:00
soypat 6a30268f83 done for today :) 2025-01-26 19:02:16 -03:00
soypat 0a63cb6b40 keep working on queue buffer 2025-01-25 09:15:50 -03:00
soypat 8191874c49 fix codecov yaml 2025-01-24 22:44:19 -03:00
soypat 83719ffe98 fix tests not passing for RingTx 2025-01-24 21:46:39 -03:00
soypat 51ca0a95b5 rephrase tcp.Value methods; add Ring.FreeLimited; work on TxQueue 2025-01-18 09:30:36 -03:00
soypat 0a75ef4670 txqueue work 2025-01-13 19:36:17 -03:00