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

Reply via email to