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 netsniff-ng+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.