gvisor/pkg/tcpip
Bhasker Hariharan fc99a7ebf0 Refactor software GSO code.
Software GSO implementation currently has a complicated code path with
implicit assumptions that all packets to WritePackets carry same Data
and it does this to avoid allocations on the path etc. But this makes it
hard to reuse the WritePackets API.

This change breaks all such assumptions by introducing a new Vectorised
View API ReadToVV which can be used to cleanly split a VV into multiple
independent VVs. Further this change also makes packet buffers linkable
to form an intrusive list. This allows us to get rid of the array of
packet buffers that are passed in the WritePackets API call and replace
it with a list of packet buffers.

While this code does introduce some more allocations in the benchmarks
it doesn't cause any degradation.

Updates #231

PiperOrigin-RevId: 304731742
2020-04-03 18:35:55 -07:00
..
adapters/gonet Mark gonet_test as flaky. 2020-03-12 13:11:48 -07:00
buffer Refactor software GSO code. 2020-04-03 18:35:55 -07:00
checker Specify the source of outgoing NDP RS 2020-03-06 11:33:28 -08:00
hash/jenkins Standardize on tools directory. 2020-01-27 12:21:00 -08:00
header Drop NDP messages with fragment extension header 2020-04-02 18:30:15 -07:00
link Refactor software GSO code. 2020-04-03 18:35:55 -07:00
network Refactor software GSO code. 2020-04-03 18:35:55 -07:00
ports Standardize on tools directory. 2020-01-27 12:21:00 -08:00
sample Standardize on tools directory. 2020-01-27 12:21:00 -08:00
seqnum Standardize on tools directory. 2020-01-27 12:21:00 -08:00
stack Refactor software GSO code. 2020-04-03 18:35:55 -07:00
transport Refactor software GSO code. 2020-04-03 18:35:55 -07:00
BUILD Move tcpip.PacketBuffer and IPTables to stack package. 2020-03-24 09:06:26 -07:00
tcpip.go Support owner matching for iptables. 2020-03-26 12:21:24 -07:00
tcpip_test.go Implement proper local broadcast behavior 2019-10-03 19:31:35 -07:00
time.s Change copyright notice to "The gVisor Authors" 2019-04-29 14:26:23 -07:00
time_unsafe.go Initial network namespace support. 2020-02-20 15:20:40 -08:00
timer.go CancellableTimer to encapsulate the work of safely stopping timers 2020-01-08 17:50:54 -08:00
timer_test.go Put CancellableTimer tests in the tcpip_test package 2020-01-10 14:32:17 -08:00