pg: set vnet buffer flags in pg streams 25/26525/3
authorDave Barach <dave@barachs.net>
Wed, 15 Apr 2020 13:34:43 +0000 (09:34 -0400)
committerFlorin Coras <florin.coras@gmail.com>
Wed, 15 Apr 2020 19:19:29 +0000 (19:19 +0000)
commit08eb2bb205f998a75dacd1f3b999ec1a10160b35
treec5d83c0db16472322720ba17c626cb74aae635e6
parent4422753b9f7edf7ff391f97a10c1b8a7dbd7dafb
pg: set vnet buffer flags in pg streams

See .../extras/pg/checksum_offload.pg for a nontrivial example, which
deliberately sets bogus ip and udp checksums in the generated packets,
then fixes the mess with (software emulated) hardware checksum
offload.

Validated via "pcap dispatch trace on max 1000 buffer-trace pg-input 100".
Packets stuffed into loop1-output have the configured bogus ip and udp
checksums. vnet_calc_checksums_inline(...) fixes the checksums, which
are correct when packets visit loop1-tx.

The packet generator is a dumb robot in this regard. If you ask for a
ridiculous flag combination - example: ip4 and ip6 - your mileage may
vary.

Type: feature

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: I6d9e790f373bcd9e445a89113ca8e4c8f9aa9419
extras/pg/checksum_offload.pg [new file with mode: 0644]
extras/pg/ip6_simple.pg [new file with mode: 0644]
src/vnet/interface_format.c
src/vnet/interface_funcs.h
src/vnet/pg/cli.c
src/vnet/pg/input.c
src/vnet/pg/pg.h