Add new trafgen proto generation framework which allows to describe
proto header fields and easy build the proto header by set/get proto
header fields value.
Meanwhile implemented Ethernet, ARP, IPv4 & UDP proto headers generation,
with fixed header size. Each proto has its own syntax rules
to specify header field, but really looks similary:
{ <proto>(<field_1>=<value>,<flag>, <field_2>=<value>) }
Proto statement might be combined with other packet funcs like:
{ ip4(mf, proto=0x1), fill(0xff, 100) }
Each proto generates some default header so it is not possible to fill packet
only with some set of header fields and rest - via fill(..) func.
v2:
1) Reworked to allow specify same header multiple times and in any order.
2) Replaced int's -> uint32_t, uses size_t for len variables.
3) All field setters/getters changed signature so they take
proto_hdr pointer istead of proto id.
4) Used ip4/ipv4 for IPv4 header name.
5) use K_ for all newer added keywords instead of P_, F_.
6) Add UDP header generation backend + syntax.
7) Add description of proto header syntax usage to trafgen.8 .
8) Extended IPv4 version field name to "version".
9) Extended IPv4 length field name to "length".
Vadim Kochan (16):
trafgen: Export set_fill func
trafgen: Add helper to get current packet
trafgen: Add basic proto generation logic
dev: Add func to get device's hw address
trafgen: proto: Add func for set device mac to field
trafgen: l2: Add Ethernet proto header generation
str: Add str2mac helper function
trafgen: parser: Add syntax to generate Ethernet header
trafgen: proto: Add func to fill field with device ipv4 addr
trafgen: l2: Add ARP header generation logic
trafgen: parser: Add syntax to generate ARP header fields
trafgen: l3: Add IPv4 header generation backend
trafgen: parser: Add syntax for IPv4 proto
trafgen: l4: Add UDP header generation logic
trafgen: parser: Add syntax to build UDP header
trafgen: man: Add help for Ethernet, ARP, IPv4, UDP headers
dev.c | 23 ++++
dev.h | 1 +
str.c | 25 ++++
str.h | 1 +
trafgen.8 | 174 ++++++++++++++++++++++++
trafgen.c | 3 +
trafgen/Makefile | 4 +
trafgen_conf.h | 4 +
trafgen_l2.c | 84 ++++++++++++
trafgen_l2.h | 24 ++++
trafgen_l3.c | 82 ++++++++++++
trafgen_l3.h | 26 ++++
trafgen_l4.c | 71 ++++++++++
trafgen_l4.h | 14 ++
trafgen_lexer.l | 49 +++++++
trafgen_parser.y | 180 ++++++++++++++++++++++++-
trafgen_proto.c | 401 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
trafgen_proto.h | 102 ++++++++++++++
18 files changed, 1266 insertions(+), 2 deletions(-)
create mode 100644 trafgen_l2.c
create mode 100644 trafgen_l2.h
create mode 100644 trafgen_l3.c
create mode 100644 trafgen_l3.h
create mode 100644 trafgen_l4.c
create mode 100644 trafgen_l4.h
create mode 100644 trafgen_proto.c
create mode 100644 trafgen_proto.h
--
2.6.3
--
You received this message because you are subscribed to the Google Groups
"netsniff-ng" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.