netstack

module
v0.6.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 21, 2024 License: Apache-2.0, MIT

README

Netstack

An extract of the netstack, userspace TCP/IP stack, from the gVisor project.

By default gVisor doesn't play nice with Go modules.

Directories

Path Synopsis
pkg
atomicbitops
Package atomicbitops provides extensions to the sync/atomic package.
Package atomicbitops provides extensions to the sync/atomic package.
bits
Package bits includes all bit related types and operations.
Package bits includes all bit related types and operations.
buffer
Package buffer provides the implementation of a non-contiguous buffer that is reference counted, pooled, and copy-on-write.
Package buffer provides the implementation of a non-contiguous buffer that is reference counted, pooled, and copy-on-write.
cleanup
Package cleanup provides utilities to clean "stuff" on defers.
Package cleanup provides utilities to clean "stuff" on defers.
compressio
Package compressio provides parallel compression and decompression, as well as optional SHA-256 hashing.
Package compressio provides parallel compression and decompression, as well as optional SHA-256 hashing.
context
Package context defines an internal context type.
Package context defines an internal context type.
cpuid
Package cpuid provides basic functionality for creating and adjusting CPU feature sets.
Package cpuid provides basic functionality for creating and adjusting CPU feature sets.
eventfd
Package eventfd wraps Linux's eventfd(2) syscall.
Package eventfd wraps Linux's eventfd(2) syscall.
gohacks
Package gohacks contains utilities for subverting the Go compiler.
Package gohacks contains utilities for subverting the Go compiler.
goid
Package goid provides the Get function.
Package goid provides the Get function.
linewriter
Package linewriter provides an io.Writer which calls an emitter on each line.
Package linewriter provides an io.Writer which calls an emitter on each line.
log
Package log implements a library for logging.
Package log implements a library for logging.
memutil
Package memutil provides utilities for working with shared memory files.
Package memutil provides utilities for working with shared memory files.
rand
Package rand implements a cryptographically secure pseudorandom number generator.
Package rand implements a cryptographically secure pseudorandom number generator.
refs
Package refs defines an interface for reference counted objects.
Package refs defines an interface for reference counted objects.
sleep
Package sleep allows goroutines to efficiently sleep on multiple sources of notifications (wakers).
Package sleep allows goroutines to efficiently sleep on multiple sources of notifications (wakers).
state
Package state provides functionality related to saving and loading object graphs.
Package state provides functionality related to saving and loading object graphs.
state/pretty
Package pretty is a pretty-printer for state streams.
Package pretty is a pretty-printer for state streams.
state/statefile
Package statefile defines the state file data stream.
Package statefile defines the state file data stream.
state/wire
Package wire contains a few basic types that can be composed to serialize graph information for the state package.
Package wire contains a few basic types that can be composed to serialize graph information for the state package.
sync
Package sync provides synchronization primitives.
Package sync provides synchronization primitives.
sync/locking
Package locking implements lock primitives with the correctness validator.
Package locking implements lock primitives with the correctness validator.
tcpip
Package tcpip provides the interfaces and related types that users of the tcpip stack will use in order to create endpoints used to send and receive data over the network stack.
Package tcpip provides the interfaces and related types that users of the tcpip stack will use in order to create endpoints used to send and receive data over the network stack.
tcpip/adapters/gonet
Package gonet provides a Go net package compatible wrapper for a tcpip stack.
Package gonet provides a Go net package compatible wrapper for a tcpip stack.
tcpip/checksum
Package checksum provides the implementation of the encoding and decoding of network protocol headers.
Package checksum provides the implementation of the encoding and decoding of network protocol headers.
tcpip/faketime
Package faketime provides a fake clock that implements tcpip.Clock interface.
Package faketime provides a fake clock that implements tcpip.Clock interface.
tcpip/hash/jenkins
Package jenkins implements Jenkins's one_at_a_time, non-cryptographic hash functions created by by Bob Jenkins.
Package jenkins implements Jenkins's one_at_a_time, non-cryptographic hash functions created by by Bob Jenkins.
tcpip/header
Package header provides the implementation of the encoding and decoding of network protocol headers.
Package header provides the implementation of the encoding and decoding of network protocol headers.
tcpip/header/parse
Package parse provides utilities to parse packets.
Package parse provides utilities to parse packets.
tcpip/internal/tcp
Package tcp contains internal type definitions that are not expected to be used by anyone else outside pkg/tcpip.
Package tcp contains internal type definitions that are not expected to be used by anyone else outside pkg/tcpip.
tcpip/link/channel
Package channel provides the implementation of channel-based data-link layer endpoints.
Package channel provides the implementation of channel-based data-link layer endpoints.
tcpip/link/ethernet
Package ethernet provides an implementation of an ethernet link endpoint that wraps an inner link endpoint.
Package ethernet provides an implementation of an ethernet link endpoint that wraps an inner link endpoint.
tcpip/link/fdbased
Package fdbased provides the implementation of data-link layer endpoints backed by boundary-preserving file descriptors (e.g., TUN devices, seqpacket/datagram sockets).
Package fdbased provides the implementation of data-link layer endpoints backed by boundary-preserving file descriptors (e.g., TUN devices, seqpacket/datagram sockets).
tcpip/link/loopback
Package loopback provides the implementation of loopback data-link layer endpoints.
Package loopback provides the implementation of loopback data-link layer endpoints.
tcpip/link/muxed
Package muxed provides a muxed link endpoints.
Package muxed provides a muxed link endpoints.
tcpip/link/nested
Package nested provides helpers to implement the pattern of nested stack.LinkEndpoints.
Package nested provides helpers to implement the pattern of nested stack.LinkEndpoints.
tcpip/link/packetsocket
Package packetsocket provides a link endpoint that enables delivery of incoming and outgoing packets to any interested packet sockets.
Package packetsocket provides a link endpoint that enables delivery of incoming and outgoing packets to any interested packet sockets.
tcpip/link/pipe
Package pipe provides the implementation of pipe-like data-link layer endpoints.
Package pipe provides the implementation of pipe-like data-link layer endpoints.
tcpip/link/qdisc/fifo
Package fifo provides the implementation of FIFO queuing discipline that queues all outbound packets and asynchronously dispatches them to the lower link endpoint in the order that they were queued.
Package fifo provides the implementation of FIFO queuing discipline that queues all outbound packets and asynchronously dispatches them to the lower link endpoint in the order that they were queued.
tcpip/link/rawfile
Package rawfile contains utilities for using the netstack with raw host files on Linux hosts.
Package rawfile contains utilities for using the netstack with raw host files on Linux hosts.
tcpip/link/sharedmem
Package sharedmem provides the implementation of data-link layer endpoints backed by shared memory.
Package sharedmem provides the implementation of data-link layer endpoints backed by shared memory.
tcpip/link/sharedmem/pipe
Package pipe implements a shared memory ring buffer on which a single reader and a single writer can operate (read/write) concurrently.
Package pipe implements a shared memory ring buffer on which a single reader and a single writer can operate (read/write) concurrently.
tcpip/link/sharedmem/queue
Package queue provides the implementation of transmit and receive queues based on shared memory ring buffers.
Package queue provides the implementation of transmit and receive queues based on shared memory ring buffers.
tcpip/link/sniffer
Package sniffer provides the implementation of data-link layer endpoints that wrap another endpoint and logs inbound and outbound packets.
Package sniffer provides the implementation of data-link layer endpoints that wrap another endpoint and logs inbound and outbound packets.
tcpip/link/stopfd
Package stopfd provides an type that can be used to signal the stop of a dispatcher.
Package stopfd provides an type that can be used to signal the stop of a dispatcher.
tcpip/link/waitable
Package waitable provides the implementation of data-link layer endpoints that wrap other endpoints, and can wait for inflight calls to WritePacket or DeliverNetworkPacket to finish (and new ones to be prevented).
Package waitable provides the implementation of data-link layer endpoints that wrap other endpoints, and can wait for inflight calls to WritePacket or DeliverNetworkPacket to finish (and new ones to be prevented).
tcpip/link/xdp
Package xdp provides link layer endpoints backed by AF_XDP sockets.
Package xdp provides link layer endpoints backed by AF_XDP sockets.
tcpip/network/arp
Package arp implements the ARP network protocol.
Package arp implements the ARP network protocol.
tcpip/network/hash
Package hash contains utility functions for hashing.
Package hash contains utility functions for hashing.
tcpip/network/internal/fragmentation
Package fragmentation contains the implementation of IP fragmentation.
Package fragmentation contains the implementation of IP fragmentation.
tcpip/network/internal/ip
Package ip holds IPv4/IPv6 common utilities.
Package ip holds IPv4/IPv6 common utilities.
tcpip/network/internal/multicast
Package multicast contains utilities for supporting multicast routing.
Package multicast contains utilities for supporting multicast routing.
tcpip/network/ipv4
Package ipv4 contains the implementation of the ipv4 network protocol.
Package ipv4 contains the implementation of the ipv4 network protocol.
tcpip/network/ipv6
Package ipv6 contains the implementation of the ipv6 network protocol.
Package ipv6 contains the implementation of the ipv6 network protocol.
tcpip/ports
Package ports provides PortManager that manages allocating, reserving and releasing ports.
Package ports provides PortManager that manages allocating, reserving and releasing ports.
tcpip/seqnum
Package seqnum defines the types and methods for TCP sequence numbers such that they fit in 32-bit words and work properly when overflows occur.
Package seqnum defines the types and methods for TCP sequence numbers such that they fit in 32-bit words and work properly when overflows occur.
tcpip/stack
Package stack provides the glue between networking protocols and the consumers of the networking stack.
Package stack provides the glue between networking protocols and the consumers of the networking stack.
tcpip/stack/gro
Package gro implements generic receive offload.
Package gro implements generic receive offload.
tcpip/transport
Package transport supports transport protocols.
Package transport supports transport protocols.
tcpip/transport/icmp
Package icmp contains the implementation of the ICMP and IPv6-ICMP transport protocols for use in ping.
Package icmp contains the implementation of the ICMP and IPv6-ICMP transport protocols for use in ping.
tcpip/transport/internal/network
Package network provides facilities to support tcpip.Endpoints that operate at the network layer or above.
Package network provides facilities to support tcpip.Endpoints that operate at the network layer or above.
tcpip/transport/internal/noop
Package noop contains an endpoint that implements all tcpip.Endpoint functions as noops.
Package noop contains an endpoint that implements all tcpip.Endpoint functions as noops.
tcpip/transport/packet
Package packet provides the implementation of packet sockets (see packet(7)).
Package packet provides the implementation of packet sockets (see packet(7)).
tcpip/transport/raw
Package raw provides the implementation of raw sockets (see raw(7)).
Package raw provides the implementation of raw sockets (see raw(7)).
tcpip/transport/tcp
Package tcp contains the implementation of the TCP transport protocol.
Package tcp contains the implementation of the TCP transport protocol.
tcpip/transport/tcpconntrack
Package tcpconntrack implements a TCP connection tracking object.
Package tcpconntrack implements a TCP connection tracking object.
tcpip/transport/udp
Package udp contains the implementation of the UDP transport protocol.
Package udp contains the implementation of the UDP transport protocol.
waiter
Package waiter provides the implementation of a wait queue, where waiters can be enqueued to be notified when an event of interest happens.
Package waiter provides the implementation of a wait queue, where waiters can be enqueued to be notified when an event of interest happens.
xdp
Package xdp provides tools for working with AF_XDP sockets.
Package xdp provides tools for working with AF_XDP sockets.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL