Releases: snabbco/snabb
Snabb Switch 2015.09 "Nutmeg"
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 LuaJitv2.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"
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 toadd
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
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"
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
andcore.counter
for Snabb Switch IPC - 8335386 Added a rate limited logging facility (
logger_new
) tocore.lib
- #525 Replaced
bench_env
withtest_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):
Javier Guerra (1):
- d6dd62c: remove mixed tabs/space
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"
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
- #502 Better error handling during startup
- #469 Automatically set
kernel.shmmax
andvm.nr_hugepages
to Snabb Switch's requirements - #467 Make app links accessible by index
- #464 #470 #473 #474 #479 #511 Documentation improvements
- #463 Fix bug where
engine.now
could return false - #460 Improve SIMD code portability
- #459 #486 #487 #488 #489 #490 #491 #492 #499 #501 Bug fixes and improvements for Snabb NFV
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' to
program/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' and
git 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
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"
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
Minor Changes
- #440 Hardened vhost-user implementation
- #445 Added
attach
method tolib.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"
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
- #433 Measure throughput in "frees per second" and perform dynamic idling
- #430 Added keyed IPv6 tunnel to the
lib.protocol
framework - #427 Rudimentary support for ifTable MIB in Intel10G driver
- #412 Added a new mtu=1500/iperf based benchmark
- #407 PacketFilter: Allow ARP packets through for IP rules
- #396 #400 #399 #397 #398 #392 #413 #423 #415 #417 #416 #418 #420 #419 #421 #422 #423 #428 #429 #431 #426 #437 #434 #435 Various bug fixes, minor improvements and performance improvements
Snabb Switch 2015.03.1 "Huckleberry"
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
andneutron-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
This tag was created prematurely, please refer to v2015.03.1 instead.
Sorry for the inconvenience.