gvisor/pkg/tcpip/header
Kevin Krakauer 32b823fcdb netstack: parse incoming packet headers up-front
Netstack has traditionally parsed headers on-demand as a packet moves up the
stack. This is conceptually simple and convenient, but incompatible with
iptables, where headers can be inspected and mangled before even a routing
decision is made.

This changes header parsing to happen early in the incoming packet path, as soon
as the NIC gets the packet from a link endpoint. Even if an invalid packet is
found (e.g. a TCP header of insufficient length), the packet is passed up the
stack for proper stats bookkeeping.

PiperOrigin-RevId: 315179302
2020-06-07 13:38:43 -07:00
..
BUILD Return detailed errors when iterating NDP options 2020-04-16 17:27:19 -07:00
arp.go Update canonical repository. 2019-06-13 16:50:15 -07:00
checksum.go Update ChecksumVVWithoffset to use unrolled version. 2020-01-27 13:05:26 -08:00
checksum_test.go Replace calculateChecksum w/ the unrolled version. 2020-01-27 05:34:34 -08:00
eth.go Extract multicast IP to Ethernet address mapping 2020-01-31 13:25:48 -08:00
eth_test.go Fix all printf formatting errors. 2020-04-08 10:14:34 -07:00
gue.go Change copyright notice to "The gVisor Authors" 2019-04-29 14:26:23 -07:00
icmpv4.go Internal change. 2020-04-28 18:50:44 -07:00
icmpv6.go Include the NDP Source Link Layer option when sending DAD messages 2020-01-28 13:52:04 -08:00
interfaces.go Update canonical repository. 2019-06-13 16:50:15 -07:00
ipv4.go netstack: parse incoming packet headers up-front 2020-06-07 13:38:43 -07:00
ipv6.go Support IPv6 Privacy Extensions for SLAAC 2020-04-28 16:02:44 -07:00
ipv6_extension_headers.go netstack: parse incoming packet headers up-front 2020-06-07 13:38:43 -07:00
ipv6_extension_headers_test.go Require that IPv6 headers be in the first fragment 2020-04-07 13:37:10 -07:00
ipv6_fragment.go Update canonical repository. 2019-06-13 16:50:15 -07:00
ipv6_test.go Use link-local source address for link-local multicast 2020-02-25 15:16:16 -08:00
ipversion_test.go Update canonical repository. 2019-06-13 16:50:15 -07:00
ndp_neighbor_advert.go Add a type to represent the NDP Router Advertisement message. 2019-10-22 14:41:51 -07:00
ndp_neighbor_solicit.go Add a type to represent the NDP Router Advertisement message. 2019-10-22 14:41:51 -07:00
ndp_options.go Support NDP DNS Search List option 2020-04-17 13:56:19 -07:00
ndp_router_advert.go Add a type to represent the NDP Router Advertisement message. 2019-10-22 14:41:51 -07:00
ndp_router_solicit.go Solicit IPv6 routers when a NIC becomes enabled as a host 2020-01-15 17:10:48 -08:00
ndp_test.go Support NDP DNS Search List option 2020-04-17 13:56:19 -07:00
ndpoptionidentifier_string.go Return detailed errors when iterating NDP options 2020-04-16 17:27:19 -07:00
tcp.go Test that we have PAWS mechanism 2020-05-20 17:53:35 -07:00
tcp_test.go Update canonical repository. 2019-06-13 16:50:15 -07:00
udp.go Test receiving multicast packets over UDP 2020-03-31 19:53:11 -07:00