Skip to content

Releases: snabbco/snabb

Snabb Switch 2015.09 "Nutmeg"

04 Sep 11:27
Compare
Choose a tag to compare

This release adds support for the Intel 82599 T3 and Intel X540 chips and Intel “PMU” CPU profiling. Also new is the --busy option for snabbnfv traffic, which makes it run with minimum latency. Nutmeg also includes bug minor fixes and improvements and upgrades to LuaJit v2.0.4-330-g5feb63a.

Major Changes

  • #569 #598 Added Intel 82599 T3 and Intel X540 support
  • #597 Added “Performance Monitoring Unit” counter support
  • #591 Added -b/--busy option to snabbnfv traffic to force running in busy loop

Minor Changes

  • #594 deps/luajit: Switch to SnabbCo/Luajit:snabb branch and upgrade to LuaJit v2.0.4-330-g5feb63a
  • #602 Fix bug in lib.protocol.ipv4 header initialization
  • #599 Add tests for TCP abd IPv4 checksum methods of lib.protocol

Contributors

Diego Pino Garcia (3):

  • 2e51ce6: Add 82559 T3 to the list of supported cards
  • 6c0a07a: Add a 2 seconds pause before running some tests in intel_app selftest
  • 5722ae8: Add TCP and IPv4 checksum calculation tests

Luke Gorrie (20):

  • b944ae3: intel_app: Added comment about Intel T3 NIC sleep
  • 1a9619b: lib.pci: Added Solarflare NIC model name
  • f65aae6: snabbnfv traffic: Added -b/--busy option
  • 6ed0a79: deps/luajit: Switch to own snabb branch
  • ac27099: deps/luajit: Update to release v2015.08-snabb
  • 582e069: branches.md: Remove obsolete lukego/nfv branch
  • 9d734d8: generate-pmu.sh: CPU perf event code generator
  • 91a516f: lib.pmu_cpu: Module generated by generate-pmu.sh
  • 2fcd543: dasm_x86: Added RDPMC instruction
  • b7a2e9b: pmu_x86.dasl: Added PMU asm support code
  • a2da1e3: lib.pmu: New module. Documented interface NYI
  • 453df8e: lib.pmu: Full API implementation
  • bb8ca5a: lib.pmu: Added measure() and improved API
  • acbf993: deps/luajit: Switch to 5feb63a4
  • 6eb1710: src/Makefile: fix luajit expected version
  • fc59f26: lib.pmu: Use floats to avoid truncation in ratios
  • a11bd90: pmu_x86: Disable debug (disasm dump)
  • 88b027e: lib.pmu: Treat event names as Lua patterns
  • 9d9336e: lib.pmu: Fix - make event list optional
  • a1d21ce: lib.pci: Support Intel X540 with intel_app

Tim LaBerge (1):

  • 97352cf: Fix ipv4 header initialization.

Snabb Switch 2015.08 "Mango"

04 Aug 11:48
Compare
Choose a tag to compare

This release adds a firehose program that lets you excute C callback functions on live traffic and replaces the C-based dynasm assembler with its Lua-based counterpart. It also introduces the top and gc programs which let you monitor running Snabb Switch instances and clean up stale runtime files respectively. To support top, new core modules core.shm and core.counter were introduced which let you expose arbitrary shared-memory regions from your apps and programs in a organized but flexible way. Mango also fixes many bugs, extends the documentation with a detailed Snabb NFV "Getting Started" guide and upgrades the Pflua dependency.

Major Changes

  • #542 Upgraded pflua to 5e2c56b
  • #563 Added snsh -p option to run a different program
  • #557 Added firehose program (execute C callback functions directly
    on live traffic)
  • #575 dynasm: Switch from C-based assembler to Lua-based assembler
  • #568 #556 #558 #582 #586 Added top program that acts as a realtime
    monitor for running Snabb Switch instances

Minor Changes

  • #548 Fix performance regression in packetblaster
  • #573 Optimize murmur hash library
  • #547 Include DPDK/packetblaster based performance test in CI
  • #580 Fix checksum related performance regression
  • #581 Fix big in IPv4 peude-header construction
  • #576 #562 #549 #551 #552 #545 #585 Minor bug fixes and clean ups
  • #577 New Snabb NFV "Getting Started" guide, documentation fixes and
    additions

Contributors

Alexander Gall (3):

  • 449e75d: Speed up Murmur hash functions
  • 2cd63ca: Fix typos in hash base class
  • fe1d59c: Fix bug in IPv4 pseudo-header construction

Luke Gorrie (27):

  • 207df7d: deps/pflua: Upgrade to latest master (5e2c56b)
  • 7bc538f: engine: Add engine.busyloop option
  • 52d2b3e: packetblaster: s/app/engine/
  • 55e6dd7: packetblaster: Fix to avoid starvation
  • 2ca43e8: src/README: Update example app network diagram
  • 8db4e9f: core.memory: Remove dma_min_addr and dma_max_addr
  • 928703b: Makefile: Remove unused targets
  • 4c3b8a5: Makefile: Fetch git submodules serially
  • 63064ee: build: Fix generation of programs.inc
  • 8ecc0c0: ipv6:pton: Fix error on invalid address
  • 3100960: Add new program 'firehose'
  • 8d30613: vhost.h, vhost_user.h: Use more explicit types
  • 99f501e: Add 'snsh -p' argument to run a different program
  • 1b85163: core.counter: Add double-buffering
  • f69b42c: core.counter: Rename publish() to commit()
  • 4bc6784: core.counter: Fixes for double-buffering extension
  • 2534e5f: core.counter: Update selftest for double-buffering
  • ca6d988: firehose: Document -r/--ring-size argument
  • 0f53630: Import Cosmin Apreutesei's Lua-based dynasm.
  • e346e37: dynasm: Switch from C-based asm to Lua-based asm
  • 26f91a2: Makefile: Fix "clean" target to remove deps/*.vsn
  • 6a4062d: lib.checksum: Add (failing) unit test for TCP csum
  • a225750: arch/{sse2,avx2}: Fix checksum type declarations
  • 750559d: checksum: Remove unused fn tcp_pseudo_checksum()
  • 84b497a: checksum: pseudo_header_initial() host byte order
  • 13177af: lib.checksum: Fix broken selftest_ipv4_tcp()
  • fd4749c: src/Makefile: Add 'make submods'

Marcel Wiget (8):

  • b39e57e: initial draft
  • b20657e: fixed some typos and formatting
  • 3827a2d: Fixed typos and formatting
  • c512bef: updated reference to documentation
  • 4b1a82a: editorial and markup fixes
  • d698ac8: fixed wording
  • 2355de2: Describe how-to bind 10GbE port back to host OS
  • d7343d6: Update authorized_keys

Max Rottenkolber (29):

  • aee2cf0: [test_env] Don't specifically select tmux window.
  • eccddca: [test_env] Add packetblaster and qemu_dpdk wrappers.
  • 9663aec: [test_env] Added snabbnfv_bench function.
  • 5bd5a25: [snabbnfv] Added packetblaster_bench.sh script.
  • 3044faa: [cperf] Added loadgen-snabb-nic-guest benchmark.
  • 1da904f: Document bridge apps.
  • 7063865: Revert "Merge branch 'restore-snabbtop' into next"
  • b2cc0fa: [core.counter] Move struct counter to core/counter.h.
  • a3ffff3: [core.counter] Allow passing of readonly option to core.shm.
  • 9977f24: [core.counter] Make the value parameter to add default to 1.
  • 490eae6: [core.app] Initialize reportedfreebits and reportedfreebytes.
  • 874e48b: [core] Port core.app/core.packet/core.link to use core.counter.
  • 1c9c26a: [RateLimiter] Fix selftest.
  • b351682: [RawSocket] Fix selftest.
  • 6d66741: [Intel82599] Fix selftest.
  • 099d0cf: [PcapFilter] Fix selftest.
  • b38d609: Added gc program.
  • 8d0c256: Added top program.
  • 7144c05: [snabbmark] Fix snabbmark.
  • f43eb8b: [snabbnfv traffic] Fix benchmark mode.
  • a237863: Fix error in bridge app documentation.
  • d472f63: Break long lines in snabbnfv/doc/getting-started.md.
  • f97c72c: Edit typos, capitalization, style, grammar, ... in snabbnfv/doc/getting-started.md
  • 7aea5c6: Fix typos in src/doc/getting-started.md.
  • 08b9e4f: [core.counter] Fix bug in counter.delete where it failed to mark public/private record as deleted.
  • 0df7f4a: [core.shm] Create root directory with mode "rwxrwxrwt".
  • 026441c: [top] Fix bug in link counter deallocation.
  • 2989465: [core.counter] Only unlink counters in delete when they were opened for writing.
  • 0be2443: [snabbnfv traffic] Fix bug where in benchmark mode, engine.breaths was attempted to be accessed directly.

Snabb Switch v2015.07.1 "Lime" update 1

07 Jul 09:54
Compare
Choose a tag to compare

Branches merged:

  • 1ab4652 Merge branch 'fixes' into master
  • 88f4306 Merge PR #545 (create /var/run/snabb) into fixes
  • 1eefbe8 Merge updated PR #541 (app report fix) into fixes
  • 659cb5c Merge PR #541 (app report fixes) into fixes
  • 92007fc Merge PR #540 (vhost_user report fix) into fixes

Changes included:

$ git shortlog --no-merges v2015.07..v2015.07.1
Max Rottenkolber (5):
      [core.app packetblaster] Remove `engine.report_each_app'     (superseded by `engine.report_apps'.
      [core.app] Fix #537 (Catch errors during app reports and print     warning instead of fatal exit.)
      [snabbnfv traffic] Fix #538 (default settings should not print     app and link reports).
      [vhost_user] Do not crash when `report()' is called while unconnected.
      [core.app] Fixup: Wrongfully called `app.report' without     supplying app object.

Nikolay Nikolaev (1):
      Ensure /var/run/snabb exists

Snabb Switch 2015.07 "Lime"

02 Jul 12:00
Compare
Choose a tag to compare

This release introduces core modules to support IPC between multiple Snabb Switch instances, adds a rate limited logging facility to the core library and replaces the previously used integration testing framework with a simpler alternative. Lime also fixes bugs in code and documentation and upgrades its LuaJIT and Pflua dependencies.

Major Changes

  • #513 Added core.shm and core.counter for Snabb Switch IPC
  • 8335386 Added a rate limited logging facility (logger_new) to core.lib
  • #525 Replaced bench_env with test_env

Minor Changes

  • #520 Upgraded LuaJIT and Pflua dependencies
  • #530 #526 Added a benchmark and basic selftest for snabb packetblaster
  • #531 Fix a race condition in NFV selftest
  • #493 #500 #510 #524 #526 Various bug fixes
  • #534 #515 Minor documentation fixes and coding style fixes

Contributors

Alexander Gall (2):

  • 8335386: Add a simple rate-limited logging facility
  • efc1344: Improved logger

Javier Guerra (1):

Luke Gorrie (20):

  • ab563cc: Makefile: Fix dependency error that broke 'make -j'
  • 7e468a0: luajit: upgrade feb 2015 (04dc64b) to may 2015 (5de95ed)
  • 1c9090a: pflua: Upgrade from 13b194e (May 6) to 2752395 (May 26)
  • 0b09ea2: core.shm: shared memory alternative to ffi.new()
  • e219930: core.shm: Redesigned and reworked
  • 8d455f3: core.shm: Fixed file descriptor leak
  • 9f5f1ad: Revert "Merge PR #507 (pflua upgrade) into next"
  • 1ab03b4: core.shm: Extended names - "//foo", "/foo", and "foo"
  • d684e31: Revert "Revert "Merge PR #472 into next""
  • fdbadc4: core.shm: Fix and cleanup for object name expansion
  • 2b376f1: core.counter: Simple counter built on core.shm
  • ffb4cf1: core.shm: Fix bug in resolve()
  • c99b36a: core.shm: Add alias() and children()
  • 20b6aa9: Upgrade LuaJIT to fe56522 (June 13)
  • e52c77a: src/Makefile: Fix expected luajit version
  • e7c8d6d: Revert "Revert "Merge PR #507 (pflua upgrade) into next""
  • 0900bb7: Remove scripts/bench_env
  • 9c8b102: intel10g: Fix RX DMA corruption in SF mode
  • 095bd91: packetblaster: Fixed broken intel.loadgen app
  • 299cdfe: packetblaster: Added simple selftest.sh

Max Rottenkolber (27):

  • 99b7bec: Added lib.ipc.fs: A central Snabb Switch filesystem layout for runtime resources.
  • caf80c6: [core.app top] Update core.app and snabb top to use lib.ipc.fs.
  • bb0331f: [top] Do not retry top:attach.
  • 35059c8: [top] Improve usage information.
  • cc07235: Added gc program to cleanup stale runtime files.
  • 5b45313: [bench_env] Run `snabb gc' on exit.
  • 1bdce8b: Added experimental test_env.
  • 0d89dd0: Port snabbnfv/selftest.sh to test_env.
  • d8c2a27: [snabbnfv] Fix bugs in selftest.sh error handling.
  • 7bf8b03: [test_env] Provide mac and ip functions.
  • c0b3941: [snabbnfv] Update selftest fuzz mode for test_env.
  • e49066a: [test_env] use wget(1) to fetch assets from Snabb Lab.
  • e699ed5: [test_env] Update documentation.
  • fad41c3: [test_env] Use gzipped disk image.
  • 95515ea: Move apps/README.* to apps/basic/.
  • b1964c8: Fixup references in program/snabbnfv/README.*
  • f6c50f8: [snabbnfv] Make selftest.sh return SKIPPED_CODE when parameters are missing.
  • 269d4a8: Fix ill-formatted src/apps/README.*
  • 06a5cab: [snabbnfv] Fixup typos in last commit.
  • 632e0ef: [test_env] Lower case script local variables (qemu_mq).
  • 11a0658: Move test_env to program/snabbnfv/test_env.
  • 1e9b37a: [test_env] Use tmux(1) instead of shell background jobs.
  • 935e34d: [test_env] Create explicitly named tmux windows.
  • 1d37914: [test_env] Accept both PCI addresses and NUMA node indexes.
  • 49e9210: [packetblaster] Add --duration option.
  • 0213478: [cperf] Added scripts/cperf/benchmarks/packetblaster-64.
  • bc39050: [nfvconfig] Have selftest retry the ND check a few times to avoid fail due to a race.

Snabb Switch 2015.06 "Kiwi"

01 Jun 10:37
Compare
Choose a tag to compare

This release improves the Intel 82599 driver, the Snabb NFV framework and our generic checksum implementation. Kiwi also fixes bugs, adds and improves documentation and introduces a new formalized Git workflow to help scale Snabb Switch development.

Major Changes

  • #475 #477 Added support for 64-bit RC registers to Intel 82599 driver
  • #485 #497 Established new Git workflow
  • #494 Changed lib.checksum API

Minor Changes

Contributions

Alexander Gall (10):

  • dd709ee: Pass config for 82599 driver down to intel10g module
  • 27c1091: Support configurable MTU in Intel82599 driver
  • 628ee50: Implement most of SNMP ifTable and ifXTable for intel10g
  • 323a22a: Fix regression introduced with 27c1091
  • eae22eb: Disable discard of giant frames on TX in intel10g
  • c52ad03: 64-bit enhancments for RC registers
  • 479868e: Add support for HC counters in ifMIB
  • 2deca0b: Modify checksum API
  • 5cc2c1f: Apply new IP checksum API
  • 55f323f: Fix type casts for commit 5cc2c1f

Edward Hope-Morley (1):

  • 7d3313a: Fix neutron2snabb parser db schema

Luke Gorrie (27):

  • 1f1bf01: neutron_sync_master: Remove Neutron QoS from default tables
  • 9617846: Moved SIMD code into arch/avx2.c and arch/sse2.c
  • cd1ffc1: Upgrade pflua for a bug fix
  • 0b422a7: Fix problem where engine.now() could return false
  • 870ed37: Rewrote top-level README.md
  • c4a7885: core: Use the array part of app.input and app.output tables
  • cfbebe5: memory: Force the kernel to enable working HugeTLB allocation
  • dec0a64: core.memory: Fix selftest() broken by previous commit
  • cb5db6c: main: Improve command-line handling and usage string
  • d8ab0b7: README: Add "Get involved" section + minor edits
  • 1a6c4e5: README: Update Getting Started link to be in tree
  • a4c983e: Improve handling of program list (for snabb --help)
  • 0a126b5: register.lua: Remove jit.off() voodoo
  • 638c3e0: Added doc/branches.md: List of active development branches
  • 625e961: neutron2snabb: Fix for security group -> pflua translation
  • 5ccb235: neutron2snabb: Added automatic database schema detection
  • 4892f3e: neutron2snabb: Fix selftest for security group translation
  • 3028b34: snabbnfv traffic: Check PCI device exists and is supported
  • 7a9573b: neutron_sync_agent.sh: Fix to use qualified paths
  • 6d828eb: neutron_sync_master: Include *.sql table definitions
  • e528b62: Document git workflow with new 'next' and 'fixes' branches
  • 106d545: neutron2snabb: Fix schema selftest to find database files
  • cbe9307: git-workflow.md: Edited and expanded
  • f1536d6: snabb: Detect errors during startup
  • 053bf6c: core.startup: Use exit status 1 for unhandled exceptions
  • eaa408d: Makefile: Avoid nonportable 'basename -a'
  • 554de84: Revert "Merge PR #472 into next"

Max Rottenkolber (21):

  • 89b462a: Move apps/sprayer' toprogram/example' and convert scripts to programs.
  • eb0d275: Flattened the `program/example/*' programs.
  • 072a5ee: [program/example-*] Remove boilerplate.
  • 4b63119: [getting-started] Simplify examples and describe them in detail in `src/doc/getting-started.md'.
  • 163e5d2: [program/example*] Don't use dashes in names.
  • d7d612d: Import "Documentation Guide" from Wiki.
  • dc47f0c: [documentation guide] Mention different target audiences for documentation.
  • 3ded11b: [neutron-sync-master] Only amend commit when SQL dump actually changes.
  • c71117f: [neutron-sync-*] Don't print command outputs and print timestamped log messages instead.
  • d1878ce: [neutron-sync-agent] Don't try to generate configurations if repository coild not be successfully cloned.
  • 6f0aa5a: [neutron-sync-agent] Add TMP_DIR and SYNC_PORT options.
  • ae8b95c: [neutron-sync-agent] Do not treat "$TMP_DIR/*" as file in `$TMP_DIR' is empty.
  • 0ecaef5: [neutron-sync-agent] Only try updating confs when `git diff' return 1 as opposed to failing with other error codes (>1).
  • def450b: [neutron2snabb] Recover selftest.sh (should have really been in 7e9477b)
  • 5895894: [neutron-sync-*] Do not hide output of neutron2snabb and mysqldump.
  • 87ecfb4: [neutron_sync_master] Update default tables in Lua wrapper.
  • 6707e55: [neutron-sync-master] Remove the '-t' that prevents the table info from being stored in *.sql. Add '--skip-dump-date' so that these files don't include a timestamp that makes it look like something changes between runs.
  • 343f66e: [neutron-sync-agent] Less verbose git clone' andgit fetch'.
  • 77d33c7: [snabbnfv] Import documentation from snabb-nfv Wiki.
  • 2bed92c: [snabbnfv] Deleted outdated src/program/snabbnfv/doc/neutron-configuration.md.

Stevan Markovic (1):

  • c87a36b: Add sm101 to authorized_keys.

Snabb NFV v2015.05.nfv1

19 May 14:30
Compare
Choose a tag to compare

This is an update release based on v2015.05 and containing changes from the nfv branch that increase the robustness of Snabb NFV.

Snabb Switch 2015.05 "Jojoba"

05 May 18:22
Compare
Choose a tag to compare

This release replaces the PacketFilter app with the new PcapFilter app which is based on pflua. Jojoba also brings improvements in our vhost-user and stateful packet filtering implementations along with some minor additions and bug fixes.

Major Changes

  • #444 Replaced PacketFilter app with PcapFilter based on pflua

Minor Changes

  • #440 Hardened vhost-user implementation
  • #445 Added attach method to lib.ipc.shmem
  • #449 Fixed bug related to usage of clock_gettime(2)
  • #452 snabbnfv traffic: Add -D/--debug-report-interval parameter to display periodic debug information
  • #453 Made stateful packet filtering more DoS resilent
  • #454 #457 #458 Minor bug fixes and documentation updates

Snabb Switch 2015.04 "Itapalm"

01 Apr 12:41
Compare
Choose a tag to compare

This release introduces a new network interface device driver for Solarflare NICs of the SFN7xxx series. Itapalm also brings improvements in packet check sum offloading by exploiting SIMD features of modern processors as well a many small bug fixes and improvements to the Snabb Switch core and NFV components.

Major Changes

  • #409 #404 Added Solarflare NIC device driver
  • #411 #414 Added SIMD based check sum calculation
  • #403 Implemented Stateful/Stateless Packet Filtering a per Neutron API

Minor Changes

Snabb Switch 2015.03.1 "Huckleberry"

02 Mar 15:51
Compare
Choose a tag to compare

This release introduces an immensely progressive transition from "zero copy" to embracing copying (of packets) as a reaction to increasing cache bandwidths in modern CPUs. Huckleberry also brings a "busybox-style" CLI, a shared memory IPC mechanism, stateful packet filtering to Snabb NFV and many smaller but equally essential bug fixes and improvements.

Major Changes

  • #364 #365 #374 "Straightline" redesign: Packets are now copied instead of being passed around (zero-copy) in order to make use of increasing cache bandwidths in modern CPUs. dramatically simplifying a lot of core code paths
  • #363 Added support for building standalone SnabbSwitch applications and restructured build to produce a "busybox style" binary
  • #348 Added IPC facility based on file-backed shared memory
  • #344 #375 Added stateful packet filtering

Minor Changes

  • #356 Added fuzzer for NFV configurations
  • #369 Use ljsyscall to replace tedious C code
  • #343 neutron-sync-agent and neutron-sync-master use constant space
  • #360 #367 #373 Improved apps.intel initializtion sequence
  • #342 Change configurations on-the-fly while running NFV selftest
  • #341 Add support for jit.dump and jit.profile to a file
  • #359 Improved snabb binary portability
  • #379 #377 Improved NFV selftest
  • #382 Improved and documented the lib.hardware modules
  • #381 Initialize DMA memory more deliberately
  • #380 #384 Minor cleanups and fixes

Obsolete! Superseded by v2015.03.1

03 Mar 14:53
Compare
Choose a tag to compare

This tag was created prematurely, please refer to v2015.03.1 instead.

Sorry for the inconvenience.