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 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:
{ ip(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.
Currently there is no runtime invoking of proto fields description but is
planned to
be added in separate series.
Vadim Kochan (13):
trafgen: Export set_fill func
trafgen: Add helper to get current packet
dev: Add func to get device's hw address
trafgen: Add basic proto generation logic
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
dev.c | 23 ++++
dev.h | 1 +
str.c | 25 ++++
str.h | 1 +
trafgen.c | 3 +
trafgen/Makefile | 3 +
trafgen_conf.h | 4 +
trafgen_l2.c | 76 ++++++++++++
trafgen_l2.h | 24 ++++
trafgen_l3.c | 71 +++++++++++
trafgen_l3.h | 26 ++++
trafgen_lexer.l | 45 +++++++
trafgen_parser.y | 151 ++++++++++++++++++++++-
trafgen_proto.c | 360 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
trafgen_proto.h | 88 ++++++++++++++
15 files changed, 899 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_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.