[netsniff-ng] Re: [PATCH 00/13] trafgen: Add proto header generation

2016-01-25 Thread Tobias Klauser
On 2016-01-25 at 10:06:04 +0100, Vadim Kochan wrote: > On Mon, Jan 25, 2016 at 09:56:37AM +0100, Tobias Klauser wrote: > > On 2016-01-21 at 00:19:48 +0100, Vadim Kochan wrote: > > > Add new trafgen proto generation framework which allows to describe > > >

[netsniff-ng] [PATCH v2 10/16] trafgen: l2: Add ARP header generation logic

2016-01-25 Thread Vadim Kochan
Add ARP proto header fields generation via src mac, src ip, dst mac, dst ip & operaion. By default Ethernet proto will be initialized, and ARP Announcement request is filled. Signed-off-by: Vadim Kochan --- trafgen_l2.c | 52

[netsniff-ng] [PATCH v2 16/16] trafgen: man: Add help for Ethernet, ARP, IPv4, UDP headers

2016-01-25 Thread Vadim Kochan
Add description (basic syntax, proto header fields) for newer added proto headers: Ethernet, ARP, IPv4, UDP. Signed-off-by: Vadim Kochan --- trafgen.8 | 174 ++ 1 file changed, 174 insertions(+) diff --git

[netsniff-ng] [PATCH v2 08/16] trafgen: parser: Add syntax to generate Ethernet header

2016-01-25 Thread Vadim Kochan
Add syntax for generating Ethernet header fields like: { eth(prot=0x0800, da=11:22:33:44:55:66), fill(0xff, 60) } { eth(prot=0x0800) } { eth() } It is important that proto_init is called before fields will be filled to initialize the specified proto with header fields.

[netsniff-ng] [PATCH v2 09/16] trafgen: proto: Add func to fill field with device ipv4 addr

2016-01-25 Thread Vadim Kochan
Add helper which fill device's ipv4 addr to the specified proto field. It will be used by such protos like ARP, IPv4, etc. Signed-off-by: Vadim Kochan --- trafgen_proto.c | 32 trafgen_proto.h | 3 +++ 2 files changed, 35 insertions(+) diff

[netsniff-ng] [PATCH v2 14/16] trafgen: l4: Add UDP header generation logic

2016-01-25 Thread Vadim Kochan
Add trafgen_l4.c module with implementation of UDP header fields gneration. UDP proto generation logic automaticaly sets by default IPPROTO_UDP to the lower proto if it is IPv4, also cscum is calculated if it is not set by user. Signed-off-by: Vadim Kochan ---

[netsniff-ng] [PATCH v2 02/16] trafgen: Add helper to get current packet

2016-01-25 Thread Vadim Kochan
Add current_packet() helper for getting current used packet and make it public to other modules. It will be used by proto generation logic. Signed-off-by: Vadim Kochan --- trafgen_conf.h | 2 ++ trafgen_parser.y | 5 + 2 files changed, 7 insertions(+) diff --git

[netsniff-ng] [PATCH v2 03/16] trafgen: Add basic proto generation logic

2016-01-25 Thread Vadim Kochan
Add new trafgen_proto.c module with basic proto header fields generation logic. Each proto must implement proto_hdr struct and register it to the global proto list. Proto header consist from set of fields, and each field must be described via proto_field struct by specifying unique id, len,

[netsniff-ng] [PATCH v2 01/16] trafgen: Export set_fill func

2016-01-25 Thread Vadim Kochan
Make public set_fill func to be used by proto generation code. Signed-off-by: Vadim Kochan --- trafgen_conf.h | 2 ++ trafgen_parser.y | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/trafgen_conf.h b/trafgen_conf.h index b171798..887fa3d 100644 ---

[netsniff-ng] [PATCH v2 11/16] trafgen: parser: Add syntax to generate ARP header fields

2016-01-25 Thread Vadim Kochan
Add syntax to generate ARP header fields: { arp(op=req, sip=1.1.1.1, smac=11:22:33:44:55:66) } { arp() } Signed-off-by: Vadim Kochan --- trafgen_lexer.l | 15 +++ trafgen_parser.y | 38 +- 2 files changed, 52

[netsniff-ng] [PATCH v2 15/16] trafgen: parser: Add syntax to build UDP header

2016-01-25 Thread Vadim Kochan
Added trafgen syntax to set UDP header fields: { udp(sport=111, dport=222) } Signed-off-by: Vadim Kochan --- trafgen_lexer.l | 4 trafgen_parser.y | 29 + 2 files changed, 33 insertions(+) diff --git a/trafgen_lexer.l b/trafgen_lexer.l

[netsniff-ng] [PATCH v2 12/16] trafgen: l3: Add IPv4 header generation backend

2016-01-25 Thread Vadim Kochan
Add L3 module for implement L3 layer protos generation. Implemented generating of IPv4 header with all fields except options. By default IPv4 address of output device is used as src ip address. On finish (after packet is specified) - total len & checksum is calculated. Meanwhile Ethernet proto

[netsniff-ng] [PATCH v2 06/16] trafgen: l2: Add Ethernet proto header generation

2016-01-25 Thread Vadim Kochan
Add trafgen_l2.c module for generating L2 related headers. Add Ethernet header generating. By default source MAC address is used from the specified output device. Signed-off-by: Vadim Kochan --- trafgen/Makefile | 1 + trafgen_l2.c | 32

[netsniff-ng] Re: [PATCH 10/13] trafgen: l2: Add ARP header generation logic

2016-01-25 Thread Tobias Klauser
On 2016-01-21 at 00:19:58 +0100, Vadim Kochan wrote: > Add ARP proto header fields generation via src mac, src ip, > dst mac, dst ip & operaion. > > By default Ethernet proto will be initialized, and ARP probe > request is filled. > > Signed-off-by: Vadim Kochan

[netsniff-ng] Re: [PATCH 00/13] trafgen: Add proto header generation

2016-01-25 Thread Vadim Kochan
On Mon, Jan 25, 2016 at 09:56:37AM +0100, Tobias Klauser wrote: > On 2016-01-21 at 00:19:48 +0100, Vadim Kochan wrote: > > Add new trafgen proto generation framework which allows to describe > > proto header fields and easy build the proto header by set/get proto > > header

[netsniff-ng] Re: [PATCH 13/13] trafgen: parser: Add syntax for IPv4 proto

2016-01-25 Thread Tobias Klauser
On 2016-01-21 at 00:20:01 +0100, Vadim Kochan wrote: > Add syntax to specify IPv4 header fields: > > { ip(df, mf, frag=100, prot=0x1, ecn=2, dscp=20) } > > Signed-off-by: Vadim Kochan > --- > trafgen_lexer.l | 15 +++ > trafgen_parser.y |

[netsniff-ng] Re: [PATCH 04/13] trafgen: Add basic proto generation logic

2016-01-25 Thread Vadim Kochan
On Mon, Jan 25, 2016 at 10:15:24AM +0100, Tobias Klauser wrote: > On 2016-01-21 at 00:19:52 +0100, Vadim Kochan wrote: > > Add new trafgen_proto.c module with basic proto > > header fields generation logic. > > > > Each proto must implement proto_gen struct and register it > >