Skip to content

This library provides capabilities for random network frames in the Go programming language. It aims to create an extensible, easy-to-use, easy-to-expand library that's still relatively fast.

License

lagarciag/gorandpacket

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gorandpacket

-- import "github.com/lagarciag/gorandpacket"

Package gorandpacket is a go library for randomly generating ethernet packets It's main purpose is for testing networking software/hardware

Usage

type RandPacketT

type RandPacketT struct {
	MACLen int
	Seed   int64
	Rand   *rand.Rand
}

Struct RandPacket holds the gorandpacket object

func NewGorandPacket

func NewGorandPacket() RandPacketT

NewGorandPacket Factory method for gorandpacket

func (*RandPacketT) RandByte

func (r *RandPacketT) RandByte() byte

RandByte Generate a random byte

func (*RandPacketT) RandEthernetLayer

func (r *RandPacketT) RandEthernetLayer() *layers.Ethernet

RandEthernetLayer generates a random Ethernet layer

func (*RandPacketT) RandEthernetPacket

func (r *RandPacketT) RandEthernetPacket() gopacket.SerializeBuffer

RandEthernetPacket generates a random ethernet packet. For now it only generates IPv4/TCP packets TODO: Generate more types/protocols

func (*RandPacketT) RandIPTCPLayer

func (r *RandPacketT) RandIPTCPLayer() *layers.TCP

RandIPv4TCPLayer generates a random TCP layer

func (*RandPacketT) RandIPUDPLayer

func (r *RandPacketT) RandIPUDPLayer() *layers.UDP

RandIPUDP generates a random UDP layer

func (*RandPacketT) RandIPv4Addr

func (r *RandPacketT) RandIPv4Addr() net.IP

RandIPv4Addr generates a random IPv4 address

func (*RandPacketT) RandIPv4Layer

func (r *RandPacketT) RandIPv4Layer() *layers.IPv4

RandIPv4Layer generates a random IPv4 layer

func (*RandPacketT) RandIPv6Addr

func (r *RandPacketT) RandIPv6Addr() net.IP

RandIPv6Addr Generate a random IPv6 address

func (*RandPacketT) RandInt

func (r *RandPacketT) RandInt(n int) int

RandInt generates a random int

func (*RandPacketT) RandInt16

func (r *RandPacketT) RandInt16() uint16

RandInt16 generates random uint16

func (*RandPacketT) RandInt32

func (r *RandPacketT) RandInt32() uint32

RandInt32 generates random uint32

func (*RandPacketT) RandL3Layer

func (r *RandPacketT) RandL3Layer(l3type layers.IPProtocol) gopacket.SerializableLayer

RandL3Layer generates a random L3 layer: currently supports TCP & UDP only.

func (*RandPacketT) RandMACAddr

func (r *RandPacketT) RandMACAddr() net.HardwareAddr

RandMACAddr Generate a random MAC address

func (*RandPacketT) RandPayload

func (r *RandPacketT) RandPayload() []byte

RandPayload generates a Random Payload

func (*RandPacketT) SetSeed

func (r *RandPacketT) SetSeed(s int64)

SetSeed Set a seed from an external source

About

This library provides capabilities for random network frames in the Go programming language. It aims to create an extensible, easy-to-use, easy-to-expand library that's still relatively fast.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages