Commit Graph

16 Commits

Author SHA1 Message Date
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
Patricio Whittingslow 02b4e71c2a gofmt: ran gofmt because noticed weird diffs in last commit, seemed OK though 2026-02-28 17:47:11 -03:00
Pat Whittingslow fa5ba918bb Error rewrites (#43)
* pcap: reuse Frame memory

* slog: reduce heap allocations of addresses; also prevent heap alloc of dhcp options in pcap

* dns: heapless improvement; add StackAsync buffer for more heapless operation; start thinking of errors

* errors: begin standardise errors in lneto

* errors: finish standardization of errors

* fix merge issues

* add more lneto errors to rest of package

* format errors.go
2026-02-28 16:18:27 -03:00
Pat Whittingslow 989bb6a0b9 Reduce heap allocs 2 (#46)
* reduce heap allocations in tcp logging; omit use of AppendFloat which allocates a metric sh*tton

* debugheaplog: better heap statistic logging

* heap: use string for pcap.Frame.Protocol

* add potential to eliminate Flags.String heap alloc, remove incorrect HEAP comments

* add StackAsync.DebugErr and httpraw.SetBytes

* many heap alloc reductions and replacement of bytes.Equal with internal.BytesEqual
2026-02-28 15:20:46 -03:00
Pat Whittingslow be949d960c tcp: mss honoring; accept syn with ECE/CWR flags; add RSTQueue type (#41)
* tcp: mss honoring; accept syn with ECE/CWR flags; add RSTQueue type

* tcp: move option logic to own file

* remove prints in pcap

* add MSS send threshold inspired by linux/freebsd/lwip thresh
2026-02-25 12:58:55 -03:00
Patricio Whittingslow 92a245957b keep working on xnet TCP 2025-10-23 21:18:25 -03:00
soypat 6ba727a0ef more effort into understanding why TAP interface is so slow on my linux machine to no avail 2025-06-05 00:47:07 -03:00
soypat 2d71907241 fix TCP flags not being extracted from capture correctly 2025-06-03 00:45:11 -03:00
soypat 6c65764070 add maximum segment size option on TCP connection init 2025-05-30 21:33:12 -03:00
soypat c94337317f document everything 2025-05-13 23:49:13 -03:00
soypat 39d5e4290e add TCPConn type 2025-04-04 19:16:26 -03:00
soypat d04d287ab6 clean up tcp package; add Abort method 2025-02-24 09:25:55 -03:00
soypat d996040d92 add stringer methods 2025-02-20 23:41:27 -03:00
soypat 2e823c0fd5 begin add tcp.Handler tests 2025-02-15 11:15:19 -03:00
soypat bbd74d04d8 rewrite ControlBlock.Open to only open passive connections; now use Send for active connections 2025-02-13 22:56:27 -03:00
soypat 9abf0c11b9 restructure package, rename module/repo 2025-01-07 11:34:35 -03:00