gvisor/pkg/tcpip/link
Ting-Yu Wang 47515f4751 Migrate to PacketHeader API for PacketBuffer.
Formerly, when a packet is constructed or parsed, all headers are set by the
client code. This almost always involved prepending to pk.Header buffer or
trimming pk.Data portion. This is known to prone to bugs, due to the complexity
and number of the invariants assumed across netstack to maintain.

In the new PacketHeader API, client will call Push()/Consume() method to
construct/parse an outgoing/incoming packet. All invariants, such as slicing
and trimming, are maintained by the API itself.

NewPacketBuffer() is introduced to create new PacketBuffer. Zero value is no
longer valid.

PacketBuffer now assumes the packet is a concatenation of following portions:
* LinkHeader
* NetworkHeader
* TransportHeader
* Data
Any of them could be empty, or zero-length.

PiperOrigin-RevId: 326507688
2020-08-13 13:08:57 -07:00
..
channel Migrate to PacketHeader API for PacketBuffer. 2020-08-13 13:08:57 -07:00
fdbased Migrate to PacketHeader API for PacketBuffer. 2020-08-13 13:08:57 -07:00
loopback Migrate to PacketHeader API for PacketBuffer. 2020-08-13 13:08:57 -07:00
muxed Migrate to PacketHeader API for PacketBuffer. 2020-08-13 13:08:57 -07:00
nested Migrate to PacketHeader API for PacketBuffer. 2020-08-13 13:08:57 -07:00
packetsocket Support for receiving outbound packets in AF_PACKET. 2020-07-22 15:33:33 -07:00
qdisc/fifo Fix-up issue comment. 2020-08-11 16:49:53 -07:00
rawfile fdbased: Vectorized write for packet; relax writev syscall filter. 2020-07-15 15:05:32 -07:00
sharedmem Migrate to PacketHeader API for PacketBuffer. 2020-08-13 13:08:57 -07:00
sniffer Migrate to PacketHeader API for PacketBuffer. 2020-08-13 13:08:57 -07:00
tun Migrate to PacketHeader API for PacketBuffer. 2020-08-13 13:08:57 -07:00
waitable Migrate to PacketHeader API for PacketBuffer. 2020-08-13 13:08:57 -07:00