summaryrefslogtreecommitdiffstats
path: root/extras
diff options
context:
space:
mode:
authorDave Barach <dave@barachs.net>2019-09-04 12:09:32 -0400
committerDave Barach <openvpp@barachs.net>2019-09-07 01:26:58 +0000
commitc4abafd83df38051765352785b146277734701f4 (patch)
tree12633dc1337661d1c4d408df2d1bca67e1d940bc /extras
parentb736e75d5bb2d132fb00c35b6aabaa52e5f624ad (diff)
ip: fix udp/tcp checksum corner cases
When checksumming chained buffers with odd lengths: insert a NULL byte, or the calculation fails. Type: fix Signed-off-by: Dave Barach <dave@barachs.net> Signed-off-by: John Lo <loj@cisco.com> Change-Id: I380f7c42897bdb28c8c29aa1c4cdaaa849cc9ecc
Diffstat (limited to 'extras')
-rw-r--r--extras/oddbuf/setup.oddbuf276
1 files changed, 276 insertions, 0 deletions
diff --git a/extras/oddbuf/setup.oddbuf b/extras/oddbuf/setup.oddbuf
new file mode 100644
index 00000000000..d59db566d11
--- /dev/null
+++ b/extras/oddbuf/setup.oddbuf
@@ -0,0 +1,276 @@
+set term pag off
+loop create
+set int state loop0 up
+oddbuf enable loop0
+
+packet-generator new {
+ name oddbuf
+ limit 1
+ size 300-300
+ interface loop0
+ node ethernet-input
+ data { IP4: 1.2.3 -> 4.5.6
+ UDP: 11.22.33.44 -> 11.22.34.44
+ UDP: 1234 -> 2345
+ incrementing 286
+ }
+}
+pcap dispatch trace on max 10000 buffer-trace pg-input 1000
+
+oddbuf configure n_to_copy 2 offset 1 first_offset 5
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 2 offset 1 first_offset 5
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 2 offset 2 first_offset 5
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 2 offset 3 first_offset 5
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 2 offset 4 first_offset 5
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 2 offset 5 first_offset 5
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 2 offset 6 first_offset 5
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 2 offset 7 first_offset 5
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 3 offset 0 first_offset 5
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 3 offset 1 first_offset 5
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 3 offset 2 first_offset 5
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 3 offset 3 first_offset 5
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 3 offset 4 first_offset 5
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 3 offset 5 first_offset 5
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 3 offset 6 first_offset 5
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 3 offset 7 first_offset 5
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 4 offset 0 first_offset 5
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 4 offset 1 first_offset 5
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 4 offset 2 first_offset 5
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 4 offset 3 first_offset 5
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 4 offset 4 first_offset 5
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 4 offset 5 first_offset 5
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 4 offset 6 first_offset 5
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 4 offset 7 first_offset 5
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 5 offset 0 first_offset 5
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 5 offset 1 first_offset 5
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 5 offset 2 first_offset 5
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 5 offset 3 first_offset 5
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 5 offset 4 first_offset 5
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 5 offset 5 first_offset 5
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 5 offset 6 first_offset 5
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 5 offset 7 first_offset 5
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 2 offset 1 first_offset 0
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 2 offset 1 first_offset 0
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 2 offset 2 first_offset 0
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 2 offset 3 first_offset 0
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 2 offset 4 first_offset 0
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 2 offset 5 first_offset 0
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 2 offset 6 first_offset 0
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 2 offset 7 first_offset 0
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 3 offset 0 first_offset 0
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 3 offset 1 first_offset 0
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 3 offset 2 first_offset 0
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 3 offset 3 first_offset 0
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 3 offset 4 first_offset 0
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 3 offset 5 first_offset 0
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 3 offset 6 first_offset 0
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 3 offset 7 first_offset 0
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 4 offset 0 first_offset 0
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 4 offset 1 first_offset 0
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 4 offset 2 first_offset 0
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 4 offset 3 first_offset 0
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 4 offset 4 first_offset 0
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 4 offset 5 first_offset 0
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 4 offset 6 first_offset 0
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 4 offset 7 first_offset 0
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 5 offset 0 first_offset 0
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 5 offset 1 first_offset 0
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 5 offset 2 first_offset 0
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 5 offset 3 first_offset 0
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 5 offset 4 first_offset 0
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 5 offset 5 first_offset 0
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 5 offset 6 first_offset 0
+pa en oddbuf
+suspend
+
+oddbuf configure n_to_copy 5 offset 7 first_offset 0
+pa en oddbuf
+suspend
+
+pcap dispatch trace off