Skip to content

Snabb 2017.07 “Dandelion”

Compare
Choose a tag to compare
@eugeneia eugeneia released this 19 Jul 15:29
· 3663 commits to master since this release

This release adds an optimized implementation of SipHash (a fast cryptographic hash function) to Snabb. Dandelion also comes with many goodies such as a command line option to identify the exact version of Snabb executables, as well as improves stack traces for snsh, the interactive Snabb shell. As usual, this release also includes many minor bug fixes, and performance as well as usability improvements.

Changes

  • #1146 Added snabb --version command-line argument
  • #1151 core.shm now creates shared memory objects world-readable
  • #1153 Avoid select() in apps.socket.unix to improve performance
  • #1155 #1166 #1168 lib.ctable now uses SipHash
  • #1159 Improved stack traces for errors in snsh scripts
  • #1171 Fixed a bug in lib.randomseed where it failed to produce a random value when called without a seed
  • #1124 #1161 #1163 #1164 Minor bug fixes and improvements

Contributors

Andy Wingo (39):

  • 701bbc1: Add core.version module and --version command-line argument
  • fdf662d: Take default version from ".version" file
  • 6cf8633: Fix core.version generation for clean builds
  • 34a94bd: Avoid rebuilding snabb when nothing changes
  • cbb5331: Allow "snabbmark hash" to test different key sizes
  • 97d40c9: Add siphash implementation
  • 429a3b0: Allow customization of number of siphash rounds
  • e50ad4c: Allow specialization of SipHash to fixed-size inputs
  • 2f7983d: Add SipHash1,2 to snabbmark
  • f1b7053: Refactor siphash implementation
  • 1e3ea13: Add SSE and AVX2 parallelism to SipHash
  • da86b3d: Fixups to make AVX2 work also
  • e914c77: fix up generic assembler output, except for avx2
  • fda842d: Use vzeroupper before leaving AVX2
  • 0caaa4b: Add generic X86-64 backend to SipHash assembler
  • 24fca9f: Remove hand-coded SipHash and simplify snabbmark
  • d722f3c: Fix AVX2 result extraction.
  • 18dbf26: siphash: Fall back to SSE if AVX2 unavailable
  • 296073c: siphash: Take a table of options instead of many positional args
  • bf60d21: siphash: Add a function that can hash an immediate
  • 56c0b94: Switch ctable over to SipHash1,2
  • 76cbc59: Integrate multi-hash with ctable lookup streamer
  • d1ab616: Bump binary version for ctable hash change
  • 44bf39b: Fix lwAFTR test to isolate changes between sub-tests
  • 9fdcb99: Fix compilation error with GCC 7.1.0
  • 2fc932b: siphash: Fix load permutation for avx2 u32/u16/u8 loads
  • e9fd2f3: Reassembly tables use default hash function
  • 566d17e: ctable: Automatically detect need for scalar hash
  • 9fa3c24: ctable: Use random key for hash function
  • c6a51cf: Add missing file
  • 45a9b23: Update tarball version number to v2017.07
  • 3cd665c: ctable: reseed hash function on resize
  • 1316a73: ctable: Update documentation.
  • 969b263: Add lib.random_bytes
  • da58b3d: Fix failure message for lwaftr quickcheck
  • a564721: Add new lib.randomseed API
  • f05efe1: Static hash seeds when SNABB_RANDOM_SEED set
  • 23dde76: Add lib.execv; propagate env vars to children
  • 413a108: Fix case in which lib.randomseed didn't do its job

Diego Pino Garcia (3):

  • 83e7efe: Replace AVX2 instruction for AVX equivalent code
  • 1303bdc: Emit AVX2 or AVX instructions depending on architecture
  • 1b29830: Revert "Emit AVX2 or AVX instructions depending on architecture"

Luke Gorrie (5):

  • 08a3a60: src/Makefile: Add dependency on libluajit.a
  • 9708bfc: core.shm: Make shm objects world-readable
  • 9bc78f0: apps.socket.unix: Rewrote pull/push to avoid select()
  • c6d3a07: README.md: Mention SNABB_SHM_ROOT and SNABB_SHM_KEEP
  • 961fc43: core.shm: /var/run/snabb is owner writable, world readable

Max Rottenkolber (1):

  • 1243b24: snabbmark esp: prevent GC from being invoked by making local vars local

ikdc (2):

  • c6accde: Defer error-handling to main program runner.
  • 38df78d: Use StackTracePlus for tracebacks.