package packetmmap
import "gvisor.dev/gvisor/pkg/sentry/socket/netstack/packetmmap"
Package packetmmap contains the packet mmap implementation for netstack.
See https://docs.kernel.org/networking/packet_mmap.html for a full description of the PACKET_MMAP interface.
Index ¶
- type Endpoint
- func (m *Endpoint) AddMapping(ctx context.Context, ms memmap.MappingSpace, ar hostarch.AddrRange, offset uint64, writable bool) error
- func (m *Endpoint) Close()
- func (m *Endpoint) ConfigureMMap(ctx context.Context, opts *memmap.MMapOpts) error
- func (m *Endpoint) CopyMapping(ctx context.Context, ms memmap.MappingSpace, srcAR, dstAR hostarch.AddrRange, offset uint64, writable bool) error
- func (m *Endpoint) HandlePacket(nicID tcpip.NICID, netProto tcpip.NetworkProtocolNumber, pkt *stack.PacketBuffer) bool
- func (m *Endpoint) Init(ctx context.Context, opts stack.PacketMMapOpts) error
- func (*Endpoint) InvalidateUnsavable(context.Context) error
- func (m *Endpoint) Mapped() bool
- func (m *Endpoint) Readiness(mask waiter.EventMask) waiter.EventMask
- func (m *Endpoint) RemoveMapping(ctx context.Context, ms memmap.MappingSpace, ar hostarch.AddrRange, offset uint64, writable bool)
- func (m *Endpoint) Stats() tcpip.TpacketStats
- func (m *Endpoint) Translate(ctx context.Context, required, optional memmap.MappableRange, at hostarch.AccessType) ([]memmap.Translation, error)
Types ¶
type Endpoint ¶
type Endpoint struct {
// contains filtered or unexported fields
}
Endpoint is a memmap.Mappable implementation for stack.PacketMMapEndpoint. It implements the PACKET_MMAP interface as described in https://docs.kernel.org/networking/packet_mmap.html.
+stateify savable
func (*Endpoint) AddMapping ¶
func (m *Endpoint) AddMapping(ctx context.Context, ms memmap.MappingSpace, ar hostarch.AddrRange, offset uint64, writable bool) error
AddMapping implements memmap.Mappable.AddMapping.
func (*Endpoint) Close ¶
func (m *Endpoint) Close()
Close implements stack.PacketMMapEndpoint.Close.
func (*Endpoint) ConfigureMMap ¶
ConfigureMMap implements vfs.FileDescriptionImpl.ConfigureMMap.
func (*Endpoint) CopyMapping ¶
func (m *Endpoint) CopyMapping(ctx context.Context, ms memmap.MappingSpace, srcAR, dstAR hostarch.AddrRange, offset uint64, writable bool) error
CopyMapping implements memmap.Mappable.CopyMapping.
func (*Endpoint) HandlePacket ¶
func (m *Endpoint) HandlePacket(nicID tcpip.NICID, netProto tcpip.NetworkProtocolNumber, pkt *stack.PacketBuffer) bool
HandlePacket implements stack.PacketMMapEndpoint.HandlePacket.
func (*Endpoint) Init ¶
Init initializes the endpoint. It is called when the endpoint is created during setsockopt(PACKET_(RX|TX)_RING) with the options retrieved from its corresponding packet socket.
func (*Endpoint) InvalidateUnsavable ¶
InvalidateUnsavable implements memmap.Mappable.InvalidateUnsavable.
func (*Endpoint) Mapped ¶
Mapped returns whether the endpoint has been mapped.
func (*Endpoint) Readiness ¶
Readiness implements stack.PacketMmapEndpoint.Readiness.
func (*Endpoint) RemoveMapping ¶
func (m *Endpoint) RemoveMapping(ctx context.Context, ms memmap.MappingSpace, ar hostarch.AddrRange, offset uint64, writable bool)
RemoveMapping implements memmap.Mappable.RemoveMapping.
func (*Endpoint) Stats ¶
func (m *Endpoint) Stats() tcpip.TpacketStats
Stats implements stack.PacketMMapEndpoint.Stats.
func (*Endpoint) Translate ¶
func (m *Endpoint) Translate(ctx context.Context, required, optional memmap.MappableRange, at hostarch.AccessType) ([]memmap.Translation, error)
Translate implements memmap.Mappable.Translate.
Source Files ¶
endpoint.go endpoint_state.go ring_buffer.go
- Version
- v0.0.0-20250605235530-a6711d1e1dc6 (latest)
- Published
- Jun 5, 2025
- Platform
- linux/amd64
- Imports
- 21 packages
- Last checked
- 4 hours ago –
Tools for package owners.