Documentation
¶
Index ¶
- Constants
- func FillEtherHdr(pkt *packet.Packet, l2 *EtherConfig)
- func FillICMPHdr(pkt *packet.Packet, l4 *ICMPConfig, rnd *rand.Rand)
- func FillIPv4Hdr(pkt *packet.Packet, l3 *IPv4Config)
- func FillIPv6Hdr(pkt *packet.Packet, l3 *IPv6Config)
- func FillTCPHdr(pkt *packet.Packet, l4 *TCPConfig, rnd *rand.Rand)
- func FillUDPHdr(pkt *packet.Packet, l4 *UDPConfig)
- func Generate(pkt *packet.Packet, context flow.UserContext)
- func GetContext(mixConfig GeneratorConfig) (*genParameters, error)
- func GetGenerator() *generator
- func SwapBytesUint64(x uint64) uint64
- type ARPConfig
- type AddrIPv6Range
- type AddrRange
- type DataType
- type EtherConfig
- type GeneratorConfig
- type ICMPConfig
- type IPv4Config
- type IPv6Config
- type MixConfig
- type PDistEntry
- type PacketConfig
- type RandBytes
- type RawBytes
- type Sequence
- type SequenceType
- type TCPConfig
- type UDPConfig
- type VlanTagConfig
Constants ¶
const ( NULL = iota ETHERHDR IPv4HDR IPv6HDR TCPHDR UDPHDR ICMPHDR ARPHDR DATA PDISTDATA RANDDATA RAWDATA NONE )
Variables ¶
This section is empty.
Functions ¶
func FillEtherHdr ¶ added in v0.8.1
func FillEtherHdr(pkt *packet.Packet, l2 *EtherConfig)
func FillICMPHdr ¶ added in v0.8.1
func FillICMPHdr(pkt *packet.Packet, l4 *ICMPConfig, rnd *rand.Rand)
func FillIPv4Hdr ¶ added in v0.8.1
func FillIPv4Hdr(pkt *packet.Packet, l3 *IPv4Config)
func FillIPv6Hdr ¶ added in v0.8.1
func FillIPv6Hdr(pkt *packet.Packet, l3 *IPv6Config)
func FillTCPHdr ¶ added in v0.8.1
func FillUDPHdr ¶ added in v0.8.1
func Generate ¶
func Generate(pkt *packet.Packet, context flow.UserContext)
Generate is a main generatior func
func GetContext ¶
func GetContext(mixConfig GeneratorConfig) (*genParameters, error)
GetContext gets generator context according to config
func GetGenerator ¶
func GetGenerator() *generator
GetGenerator returns generator struct pointer generator is single and created only once
func SwapBytesUint64 ¶ added in v0.8.0
SwapBytesUint32 swaps uint32 in Little Endian and Big Endian
Types ¶
type ARPConfig ¶
type ARPConfig struct {
Operation uint16
Gratuitous bool
SHA AddrRange
SPA AddrRange
THA AddrRange
TPA AddrRange
}
ARPConfig configures arp header.
type AddrIPv6Range ¶ added in v0.8.0
AddrRange describes range of addresses.
type EtherConfig ¶
type EtherConfig struct {
DAddr AddrRange
SAddr AddrRange
VLAN *VlanTagConfig
DType DataType
IPv4 IPv4Config
IPv6 IPv6Config
ARP ARPConfig
Bytes RawBytes
}
EtherConfig configures ether header.
type GeneratorConfig ¶ added in v0.8.1
type GeneratorConfig []MixConfig
func ParseConfig ¶
func ParseConfig(in map[string]interface{}) (config GeneratorConfig, err error)
ParseConfig parses json config and returns GeneratorConfig.
func ParseConfigFile ¶ added in v0.8.1
func ParseConfigFile(f *os.File) (config GeneratorConfig, err error)
ParseConfigFile parses json config file and returns GeneratorConfig.
func ParseGeneratorConfig ¶ added in v0.8.1
func ParseGeneratorConfig(in map[string]interface{}) (config GeneratorConfig, err error)
func ReadConfig ¶
func ReadConfig(fileName string) (GeneratorConfig, error)
ReadConfig function reads and parses config file.
func (*GeneratorConfig) UnmarshalJSON ¶ added in v0.8.1
func (mca *GeneratorConfig) UnmarshalJSON(data []byte) error
UnmarshalJSON implements Unmarshaller interface for GeneratorConfig.
type ICMPConfig ¶
type ICMPConfig struct {
Type uint8
Code uint8
Identifier uint16
Seq Sequence
DType DataType
Bytes RawBytes
}
ICMPConfig configures tcp header.
type IPv4Config ¶ added in v0.8.0
type IPv4Config struct {
SAddr AddrRange // source address
DAddr AddrRange // destination address
DType DataType
TCP TCPConfig
UDP UDPConfig
ICMP ICMPConfig
Bytes RawBytes
}
IPv4Config configures ip header.
func (*IPv4Config) UnmarshalJSON ¶ added in v0.8.1
func (ipv4 *IPv4Config) UnmarshalJSON(data []byte) error
type IPv6Config ¶ added in v0.8.0
type IPv6Config struct {
SAddr AddrIPv6Range // source address
DAddr AddrIPv6Range // destination address
DType DataType
TCP TCPConfig
UDP UDPConfig
ICMP ICMPConfig
Bytes RawBytes
}
IPv6Config configures ip header.
func (*IPv6Config) UnmarshalJSON ¶ added in v0.8.1
func (ipv6 *IPv6Config) UnmarshalJSON(data []byte) error
type MixConfig ¶
type MixConfig struct {
Config PacketConfig
Quantity uint32
}
MixConfig contains PacketConfigs with quantity.
type PDistEntry ¶
PDistEntry gives data with associated probability of being chosen.
type PacketConfig ¶
type PacketConfig struct {
DType DataType
Ether EtherConfig
}
PacketConfig configures packet
type RandBytes ¶
RandBytes gives a payload of random bytes, of a given size. Optionally it is possible to specify a deviation.
type RawBytes ¶ added in v0.8.0
type RawBytes struct {
Data string
Rand RandBytes
Dist []PDistEntry
DType DataType
}
Raw represents raw data
type Sequence ¶
type Sequence struct {
Type SequenceType
Current uint32
}
Sequence contains type and next sequence value.
type SequenceType ¶
type SequenceType uint
SequenceType used in enum below.
const ( RANDOM SequenceType = iota INCREASING )
Types of Sequence.
type TCPConfig ¶
type TCPConfig struct {
SPort AddrRange
DPort AddrRange
Seq Sequence
Flags types.TCPFlags
DType DataType
Bytes RawBytes
}
TCPConfig configures tcp header.