vmnet

package
v0.5.0 Latest Latest
Warning

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

Go to latest
Published: Feb 9, 2021 License: Apache-2.0 Imports: 9 Imported by: 4

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type DhcpRequest

type DhcpRequest struct {
	MAC net.HardwareAddr
}

DhcpRequest is a simple DHCP request

func NewDhcpRequest

func NewDhcpRequest(MAC net.HardwareAddr) *DhcpRequest

NewDhcpRequest constructs a DHCP request

func (*DhcpRequest) Bytes

func (d *DhcpRequest) Bytes() []byte

Bytes returns the marshalled DHCP request

type Ethernet

type Ethernet struct {
	// contains filtered or unexported fields
}

Ethernet requests the creation of a network connection with a given uuid and optional IP

func NewEthernet

func NewEthernet(uuid uuid.UUID, ip net.IP) *Ethernet

NewEthernet creates an Ethernet frame

func (*Ethernet) Write

func (m *Ethernet) Write(c net.Conn) error

Write marshals an Ethernet message

type EthernetFrame

type EthernetFrame struct {
	Dst  net.HardwareAddr
	Src  net.HardwareAddr
	Type uint16
	Data []byte
}

EthernetFrame is an ethernet frame

func NewEthernetFrame

func NewEthernetFrame(Dst, Src net.HardwareAddr, Type uint16) *EthernetFrame

NewEthernetFrame constructs an Ethernet frame

func ParseEthernetFrame

func ParseEthernetFrame(frame []byte) (*EthernetFrame, error)

ParseEthernetFrame parses the ethernet frame

func (*EthernetFrame) Bytes

func (e *EthernetFrame) Bytes() []byte

Bytes returns the marshalled ethernet frame

func (*EthernetFrame) Write

func (e *EthernetFrame) Write(w io.Writer) error

Write marshals an Ethernet frame

type InitMessage

type InitMessage struct {
	// contains filtered or unexported fields
}

InitMessage is used for the initial version exchange

func (*InitMessage) String

func (m *InitMessage) String() string

String returns a human-readable string.

func (*InitMessage) Write

func (m *InitMessage) Write(c net.Conn) error

Write marshals an init message to a connection

type Ipv4

type Ipv4 struct {
	Dst      net.IP
	Src      net.IP
	Data     []byte
	Checksum uint16
}

Ipv4 is an IPv4 frame

func NewIpv4

func NewIpv4(Dst, Src net.IP) *Ipv4

NewIpv4 constructs a new empty IPv4 packet

func ParseIpv4

func ParseIpv4(packet []byte) (*Ipv4, error)

ParseIpv4 parses an IP packet

func (*Ipv4) Bytes

func (i *Ipv4) Bytes() []byte

Bytes returns the marshalled IPv4 packet

func (*Ipv4) HeaderBytes

func (i *Ipv4) HeaderBytes() []byte

HeaderBytes returns the marshalled form of the IPv4 header

type PcapWriter

type PcapWriter struct {
	// contains filtered or unexported fields
}

PcapWriter writes pcap-formatted packet streams

func NewPcapWriter

func NewPcapWriter(w io.Writer) (*PcapWriter, error)

NewPcapWriter creates a PcapWriter and writes the initial header

func (*PcapWriter) Write

func (p *PcapWriter) Write(packet []byte) error

Write appends a packet with a pcap-format header

type Udpv4

type Udpv4 struct {
	Src      uint16
	Dst      uint16
	Data     []byte
	Checksum uint16
}

Udpv4 is a Udpv4 frame

func NewUdpv4

func NewUdpv4(ipv4 *Ipv4, Dst, Src uint16, Data []byte) *Udpv4

NewUdpv4 constructs a Udpv4 frame

func ParseUdpv4

func ParseUdpv4(packet []byte) (*Udpv4, error)

ParseUdpv4 parses a Udpv4 packet

func (*Udpv4) Bytes

func (u *Udpv4) Bytes() []byte

Bytes returns the marshalled Udpv4 frame

func (*Udpv4) Write

func (u *Udpv4) Write(w io.Writer) error

Write marshalls a Udpv4 frame

type Vif

type Vif struct {
	MTU           uint16
	MaxPacketSize uint16
	ClientMAC     net.HardwareAddr
	IP            net.IP
	// contains filtered or unexported fields
}

Vif represents an Ethernet device

func (*Vif) Read

func (v *Vif) Read() ([]byte, error)

Read reads the next packet from a Vif

func (*Vif) Write

func (v *Vif) Write(packet []byte) error

Write writes a packet to a Vif

type Vmnet

type Vmnet struct {
	// contains filtered or unexported fields
}

Vmnet describes a "vmnet protocol" connection which allows ethernet frames to be sent to and received by vpnkit.

func New

func New(ctx context.Context, path string) (*Vmnet, error)

New constructs an instance of Vmnet.

func (*Vmnet) Close

func (v *Vmnet) Close() error

Close closes the connection.

func (*Vmnet) ConnectVif

func (v *Vmnet) ConnectVif(uuid uuid.UUID) (*Vif, error)

ConnectVif returns a connected network interface with the given uuid.

func (*Vmnet) ConnectVifIP

func (v *Vmnet) ConnectVifIP(uuid uuid.UUID, IP net.IP) (*Vif, error)

ConnectVifIP returns a connected network interface with the given uuid and IP. If the IP is already in use then return an error.

Jump to

Keyboard shortcuts

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