Releases: snabbco/snabb
Snabb 2016.06 “Watermelon”
This release merges the “Lisper” program into upstream, and along with that comes ESP packet encryption support. Also included is a feature to periodically flush the JIT compiler based on load, and a handful of new utility apps. Watermelon also comes with lots of various bug fixes and improvements.
Major Changes
- #768 Merged “Lisper” program into upstream
- #909 #929 Introduced feature that when enabled, reacts to load by flushing the JIT
- #820 #844 #845 #900 Added support for ESP packet encryption
Minor Changes
- #925 Intel82599: default per-queue statistics register
- #898 Added
Truncate
andSample
basic apps - #870 Added
bits
andbytes
methods tolib.hardware.register
- #869 Added
apps.test.delayed_start
- #923 #914 #906 Various fixes and enhancements
Contributors
Andy Wingo (3):
- 2b8b453: Intel VF interfaces default to statistics counter 0.
- 2550c50: Fetch VF ingress packet drops from correct queue
- 9803baf: Remove unneccessary line.
Cosmin Apreutesei (138):
- 6688336: cosmin's public key
- 4c1e8a5: lisper (init)
- a7c1932: unix socket app
- 654cc55: make snabb exe prefer to load modules from filesystem to built-in ones
- 5f2fb79: unimportant
- 1c57cda: unimportant
- 1361079: unimportant
- a1b4229: lisper doc: overview
- fe9604a: LISPER: spec doc update
- aafcaa2: UnixSocket: packet mode & doc
- d6c91dc: TAP device I/O app
- 6830b97: luajit install dir after make
- 0ce2201: unimportant
- 288d933: UnixSocket diagram
- c6d3f1d: tabs -> spaces (sorry)
- 48b2b77: README.inc == README (not sure yet why we have two identical README files)
- ea7d665: parse FIB lines and update the FIB table
- 76043e7: mock-up LISP controller program (sends the same FIB every second)
- f6e22d4: app for splitting/merging packets on line boundary, useful for implementing ASCII line-based protocols
- d1d975e: unimportant
- 508f931: development environment scripts and helper programs using network namespaces (WIP: l2tp.lua doesn't work anymore with namespaces, it was working with containers)
- 13c2453: README with howto
- a9be132: filtering extraneous packets (in retrospect, we should have opened a RAW IP socket not an RAW ETH socket)
- 54e4803: more robust killing; fixed macs of router interfaces
- 4d75bca: corrected dest. macs to that of the gateway
- e47c404: shortcut commands to get a shell into the network namespaces
- 9f74d16: unimportant
- e127a83: fix: l2tp cookie is 8 bytes
- d716f82: dev-env: tunnel to lisper instead of p2p
- 6dbc4fc: prefixed namespace-entering shells with ns*
- 761320d: lisper data plane app(WIP)
- a0ba437: lisp: reconnect on disconnect and ignore SIGPIPE
- 6e61aad: convenience wrappers
- 85b3af9: lisp made silent
- dfee5a8: getting there (not very robust right now)...
- 98a7c89: added link.peek()
- 96cad15: added app3 to the mix
- c2e1795: lisp.lua now sends the contents of lisp.fib file
- a58b0a2: daemons now take start|stop|run arg
- 766da75: l2tp.lua: indent with spaces
- b4b6d8f: dev-env doc
- 1369bab: unimportant
- 8f30c36: use l2tp_dmac not l2tp_smac when looking up the FIB; assert on IP and MAC args
- ab9d763: unimportant
- 8f90777: unimportant
- 694a341: unimportant
- 7b75aba: bugfix for incredible silliness
- f98cc4d: restart command for all scripts
- 9ef9a35: unimportant
- 5b180e0: check packet length before parsing
- 0f0718d: suppress print unless DEBUG defined (make it a bit faster)
- a3231df: typo
- c5f7ed7: suppress print (make it a bit faster)
- 62392c8: forgot to remove app3 namespace
- ebf46ab: updated fib format
- 689136d: fixed FIB parser for new format:
<mac>/48 rloc <ip6> <p> <w>, <ip6> <p> <w>, ...
- 1e96ea7: pcap-based perf. test (WIP)
- 170ca7e: Intel10G option for local interface
- 10d7510: net-bringup made executable
- bd4987f: --local-pci renamed --network-device, --network-device renamed --network-interface
- ccc3033: +x on self-executable .lua files
- 9bb52e5: using /usr/bin/env for NixOS compat
- 7c6bc7e: WIP
- b633643: unimportant
- 0575789: lisp <-> lisper interface spec
- 4793d00: nd_light doesn't mess with its arg table
- 722c9e2: unimportant
- 1e153e2: l2tp demo working again
- 8599a82: test env. with 2 lispers and 3 l2tp nodes on one side and 2 l2tp nodes on the other side, all on the same iid
- a0c8f59: added 2 local ethernets to dev-env, one on node4 near lisper4 (ip 10.0.0.3) and one on node8 near lisper8 (ip 10.0.0.7)
- 155747c: unimportant
- 1143799: added 2 more eth nodes on each lisper and eth-lisper-eth test
- 2e6e391: unimportant
- 5da3add: unimportant
- e085d7e: tabs->spaces
- 9fb47ac: intel10g dev-env (wip)
- db0445b: removed 802.1Q support for raw sockets; added support for Intel10G
- 7d71e6e: unimportant
- 3f7caeb: easier setup procedure for intel10g mode
- 9134003: docs (first draft)
- 7f81106: unimportant
- 831285d: unimportant
- 1f185c7: unimportant
- fd2286c: unimportant
- e8e6d2d: removed luajit dependency from dev-env
- 23a301c: luajit update with upstream LuaJIT/LuaJIT:v2.1
- b6dc83d: DynASM update from upstream capr/LuaJIT:v2.1-dynasm-luamode
- 4786a6d: fixed symlinks (oops)
- 4505936: dev-env: node04 and node08 can have internet via bridging the internet-providing interface on the host
- 848005d: loading dasm linker from within the snabb exe
- ba8d15f: dev-env-docker (WIP)
- a27a36b: forgot .conf files
- f26f91a: next_hop optional
- 120ed22: updated ips
- 4f57aa7: more changes
- 999a3c0: typo
- 4ff326d: removed e13
- d206022: removed e17
- b8a3353: typo
- ded4136: typo
- 6855b07: setvbuff off
- fa81069: ...
- af51333: ...
- c3963e4: bug in debug
- c53db91: punt MAC addr format fix
- 6446449: various fixes
- f86b221: DASM_CHECKS defined in source
- 9e2e5b6: gen pcacp
- 9d3fe59: fixed mac format for punt intf.
- d24a647: fixed iid in lisper04.conf
- ecf5a7b: LISP_PERFTEST changes
- 1cac499: brain-typo
- 3550e8b: unimportant
- a348987: unimportant
- 119da25: unimportant
- 2b3edb8: unimportant
- 10bc534: ignore invalid rlocs
- 380eeec: changed punt format to send both smac and dmac
- 93c514a: removed debug message
- 15b9431: tonumber on iid from fib
- ce512a7: hashing by smac..dmac to avoid repeated punting (new requirements from dino)
- f713d8e: arp_timeout on punting
- 3526c35: unimportant
- 2f2c5d9: revert inadvertent changes made to upstream
- a04d224: removed symlink to packetblaster which confuses CI
- d4d742a: added testnode 04 back to make dev-env functional again
- f890ca0: fix for bug that took me 4h to find :( --- background: never use S.close(f), always use f:close() because S.close(f) doesn't do ffi.gc(f, nil) to prevent double-close by gc
- 87a6dec: error on transmit failures; use sock:close() instead of S.close() to prevent double-frees
- 29e071b: error on transmit failures
- d870d65: use sock:close() instead of S.close() to prevent double-frees
- 36f4c0a: IPSec ESP encryption
- c9628a5: dev-env update for testing the encryption
- a54feeb: small bugfixes and rx/tx stats while running
- cc0f867: added mention to lisper branch in branches.md
- 801c62d: replace tunctl with ip tuntap
- a80d2d1: encryption disabled for now
- d5dab1f: tabs->spaces; documented the need to copy the args
- c265ec8: Revert changes to core.main.
Diego Pino (7):
- 22b4a8f: Monitor ingress packet drops and jit flush if threshold exceeded
- c694fe7: Call not() and require jit module
- 0ae9eae: Make 'with_restart' not local
- 4207165: Revert "Make 'with_restart' not local"
- cc94fb7: Move ingress drop monitor code after definition of with_restart
- 7eb78ca: Set image format as raw
- 1c161c7: Add ingress_drop_monitor timer
Diego Pino Garcia (2):
- 6cac870: Wrap 'ingress_packet_drops' call within 'with_restart'
- 7b768ce: Make ingress drop monitor a timer and enable it only in lwAFTR
Domen Kožar (1):
- e78b8b2: test_env.sh: set initrd and be able to append kernel params
Jessica Tallon (1):
- fb493bd: Fix malformed error typo in lib.protocol.ipv4
Luke Gorrie (11):
- 246f326: apps/ipsec/README.md: Draft spec for IPsec apps (NYI)
- 733c1a9: unimportant
- 891246a: VLAN support on dev-env (not yet working)
- 23d1fdf: ipv4 links in dev-env
- f2bf581: apps/ipsec/README.md: Draft spec for IPsec apps (NYI)
- b17ff94: perf test environment with eth-eth pcap
- 648dede: unix sockets and SIGPERF fix; LISP_PERFTEST env. var
- ad055a8: loadgen reports RX too
- a07ab72: print PUNTs and LEARNs always
- 86300cf: perf test with l2tp random packets
- 7ac4d6f: esp: Add aesni_encrypt_single_block() asm entry point
Max Rottenkolber (50):
- e855537: apps/ipsec: Implement ESP (RFC 4303) apps.
- fcb0b61: apps/ipsec: Add and link with Intel's AES-NI/AES-GCM routines (RFC 4106).
- 969b53c: apps.ipsec.aes_128_gcm: Verify ICV in decrypt.
- 6651f01: Update “apps/ipsec/README.md” to match implementation.
- 348d031: apps/ipsec: Implement ESP (RFC 4303) apps.
- 5d42a31: apps/ipsec: Add and link with Intel's AES-NI/AES-GCM routines (RFC 4106).
- d2fb0d2: apps.ipsec.aes_128_gcm: Verify ICV in decrypt.
- a856bd5: Update “apps/ipsec/README.md” to match implementation.
- 985c469: Convert IPsec ESP apps to library (lib.ipsec.esp).
- e1abe8e: lib.ipsec.esp:encapsulate: document clobbering effect.
- 7d6585b: ipsec.esp: SPI is a required parameter
- 824a665: Fix several bugs in lib.ipsec.esp: - transmit truncated 32bit sequence number (don't implement anti-replay on receiver side for now) - transmit 64bit IV in front of ciphertext (use 64bit sequence number for IV value) - implement minimal padding (ciphertext aligned to 4 byte boundary)
- a638baa: lib.ipsec.aes_128_gcm: Fix bug in `encrypt' where ICV was written to the wrong place.
- 3199fed: lib.ipsec.aes_128_gcm: Test using a couple test vectors.
- 47620a6: lib.ipsec.aes_128_gcm: Add encrypt and decrypt micro benchmarks to selftest.
- f283daf: lib.protocol.esp: Make `esp_v6_[en|de]crypt' public.
- 490ccc2: lib.ipsec.esp: Do not throw errors when header parsing fails but instead return nil.
- e418f7d: Add `snabbmark esp '.
- 70230f5: lib.ipsec.esp: Reuse datagram objects.
- 061525e: sn...
Snabb 2016.05 “Voavanga”
This release merges big features developed around the lwAFTR application by Igalia, and comes with a seemingly small but important change in the direction of a stable ABI: the packet free-list is now an FFI object. Also, SnabbNFV has been updated to work with the OpenStack Liberty release. Voavanga also comes with lots of various bug fixes, improvements and documentation additions.
Major Changes
- #771 Implemented
core.packet
free-list using FFI cdata objects to provide ABI - #775 Update SnabbNFV to be compatible with OpenStack Liberty
- #863 Added VLAN (un-)tagging apps
- #847 Added packetblaster lwaftr
Minor Changes
- #876 Add Nix expressions to build Snabb
- #861 Introduced
Match
app for testing purposes - #884
core.packet
: enable overflow check when allocating packets - #889 Fix race conditions in
core.memory
andcore.shm
- #893 Counters created by
core.counters
are now allowed to be opened for reading multiple times - #890 Increase capacity of
core.packet
free-list - #882 Intel10G: increase number of transmit/receive descriptors
- #883 packetblaster: use default number of transmit/receive descriptors
- #827 Added extensive document about performance tuning
- #822 Added documentation on Snabb core data structures
- #764 Removed
lib.bloom_filter
- #838 Added a community code of conduct
- #846 Added trademark policy for “Snabb”
- #858 #857 #867 #866 #875 #868 #874 #903 Minor fixes and documentation changes
Contributors
Domen Kožar (6):
- d68c784: Modify OpenStack table parsing to comply with Liberty release
- 45708c3: test_env.sh: prefer $SNABB_TEST_FIXTURES over ~/.test_env
- a357165: Add Nix expressions to build Snabb project
- 8982625: release.nix: respect bash env, provide fallback values
- 6cce8f4: release.nix: whitespace
- e5f4183: Import snabblab docs from the wiki into the manual
Katerina Barone-Adesi (6):
- 92d53a5: Initial stub on performance tuning
- e72ec69: Renamed performance tuning file, as per review request
- 390bfa2: Swapped in lstopo.png, replacing lstopo.pdf
- dbe9a9a: Initial stub on performance tuning
- aa1aac9: Renamed performance tuning file, as per review request
- e1ff0a3: Swapped in lstopo.png, replacing lstopo.pdf
Kristian Larsson (7):
- e37fd84: Add VLAN related apps
- 4ab4a92: Spelling fix
- efdcc2f: Clean up variable names
- ca86c94: Use lib.htons and friends
- bb8d373: Remove conf arg
- ab5d592: Use standard VLAN module
- 3ba5f4d: Remove VLAN module from lwAFTR
Luke Gorrie (15):
- 6d46eca: doc/porting.md: Added notes about porting Snabb Switch
- 4f5174c: core.main: Warn unless running on Linux/x64
- aba5bbe: doc/porting.md: Rewritten to be less wishy-washy
- 4f54fa0: core/main.lua: Running on non-Linux/x64 is now an error
- 52d5dd8: lib.bloom_filter: Removed as dead code
- 8eb18b1: doc/core-data-structures.md: Describe packet/link/app
- e33929f: doc/core-data-structures.md: Filename fix
- 32e1cd8: doc/code-of-conduct.md: Add a community code of conduct
- 39956e7: doc/trademark: Added tracemark policy
- 382827d: intel10g: Set num_descriptors = 2048 (was 512)
- d616abf: packetblaster: Use default number of Intel rx/tx descriptors
- 1ff037c: core/packet.lua: Enable overflow check when allocating packets
- b04ff7c: core.packet: Extend max packets from 100K to 1M
- 2053759: core.memory: Removed redundant sysctl() call
- 7fddfe8: intel10g: num_descriptors = 1024 (was: 2048)
Marcel Wiget (26):
- 911acb1: braindump on performance parameters
- 171b5fc: added info on mlock=on
- ab7194c: initial import of packetblaster lwaftr
- df8c732: remove ``` from text
- 8a5b147: fixes/enhancements based on pull feedback from @dpino
- c24498a: fix argument pcap file for packetblaster replay
- 8c51629: update README with --vlan tag option
- 2a9333e: fix vlan support via vmdq
- aeb6641: use -4 and -6 short form for --v4only and --v6only
- b994c84: remove TODO (resolved with previous commit on -4/-6)
- 6b0a9ca: move redundant report() and is_device_suitable() to packetblaster.lua
- bed6d79: add simple packetblaster lwaftr selftest
- 0c6b34b: move shared config_loadgen() into packetblaster.lua
- dea1ea9: fix typo
- 2aa88f4: Add option --pcap to write to pcap file
- 453884b: share run_loadgen() by replay and synth
- f074d6c: native vlan support without vmdq
- 7cbd06e: add selftest for lwaftr pcap generation
- 5a0f793: fix lwaftr pcap generation with count > 1
- 9a970be: add lwaftr pcap file to compare with in selftest
- 0aea730: added lwaftr pcap selftest for vlan
- 1db7b1d: add --tap option and add selftest for it
- 90ced15: Add support for raw interfaces and VhostUser for lwaftr
- 294fc3b: braindump on performance parameters
- afc0bfb: added info on mlock=on
- 1c023ec: fix indentation
Max Rottenkolber (14):
- 1b84d20: apps.testsink: Move to apps.test.
- 85233d6: basic_apps: Document Source configuration and packet contents.
- 2715120: apps.test.match: Rename testsink to Match, remove harness function.
- 30e2ea2: apps.test.synth: Use Match in selftest.
- 56dfb05: apps.keyed_ipv6_tunnel: Use Match in selftest.
- 2ee238d: apps.socket.raw: Use Match in selftest.
- f076907: apps.test.synth: Set correct Ethernet type.
- 3719753: apps.test: document Synth.
- 29a6767: apps.test.match: Add `modest' option.
- b1a4f04: apps.tap: Use Match in selftest.
- 10969b1: apps.tap: do not use `sudo' in selftest.sh.
- 009bb7e: snabb_bot: Use PR base as moving target instead of CURRENT.
- 3f5c889: apps.vlan: canonicalize documentation.
- 34bf3e6: src/Makefile: Fix for target obj/doc/snabb.pdf.
Nicola 'tekNico' Larosa (2):
Pete Bristow (6):
- 8021119: match pci addresses with hex a-f in it
- 314c308: use CC env var for gcc command if available
- 9f9775d: lua supports %x to match a hex digit
- cbe97a4: fix a couple of race conditions triggered when starting many snabb processes
- 519311b: the sysctl system call is deprecated, http://man7.org/linux/man-pages/man2/sysctl.2.html
- 96e8bf6: Add test sink a basic pcap replay testing framework
R. Matthew Emerson (4):
- 7ea1bc3: Implement freelist with FFI cdata object instead of Lua table
- 499a579: Don't require the freelist module in modules that don't use it.
- 47b9b37: Remove freelist.lua. Inline its functionality into packet.lua.
- 28593e6: Use uint64_t for nfree and max in freelist structure.
ReadmeCritic (1):
- df502dc: Update README URLs based on HTTP redirects
Snabb 2016.04.1 “Uvilla” (update)
This bug fix release amends #887 which fixes problems in the documentation build chain as well as some terminology in the main README.
Snabb 2016.04 “Uvilla”
This release brings huge technical as well as organizational advancements. Igalia's “4-over-6 AFTR” application was merged into the upstream tree, and with it come some nifty general purpose features such as a core library for profiling latencies of Snabb applications. By the way, we no longer say “Snabb Switch”; from now on the project is known simply as “Snabb”. During this release cycle we have set up many new subsystem and maintenance branches, and established a great network of maintainers to help scale Snabb development efforts. Uvilla also comes with plenty of minor bug fixes and many notable documentation improvements.
Major Changes
- #802 Merged Igalia's lightweight 4-over-6 AFTR application
- #795 Added
core.histogram
for measuring latencies, and use it to profile latency of breathe loop - #852 Change project name from “Snabb Switch” to simply “Snabb”
Minor Changes
- #794 Changed
core.shm
API to allow for more fine-grained control - #781 Added
packet.shiftright
- #818 Added
doc/in-a-nutshell.md
: Snabb in a Nutshell guide - #829 Create all documentation build artifacts on-demand
- #805 #806 #834 #856 Introduced SnabbDoc: documentation CI service
- #787 #791 #799 #819 #830 #833 Minor bug fixes and documentation improvements
- #800 #803 #810 #811 #826 #828 Added many new subsystem and maintenance branches
Contributors
Andy Wingo (13):
- 5306f25: Add packet.shiftright
- 9fe397e: Replace shm.map with separate create() and open()
- 42e9286: shm.open does not truncate file
- 7c6255f: Fix spelling of "hierarchical".
- b027b02: Fix permissions when opening writable shm files
- aff2b83: Measure latency of app.breathe()
- 9e79a1f: Express histogram:summarize, :report in terms of :iterate
- f9abfd5: Move histogram:summarize to snabb top
- 1fe832c: Updated histogram documentation.
- 89b0c5b: Rename histogram.count to histogram.total.
- 05b87f7: Adapt to feedback regarding iterate() return vals
- 396a132: More named constants, fewer magical numbers.
- 5c337d0: Add lwaftr branch.
Cosmin Apreutesei (1):
- d194467: added mention to lisper branch in branches.md
Diego Pino Garcia (3):
- e483d6b: Return from VirtioNet:pull if link is nil
- da65030: Print out error message in case PCAP could open file
- b22e287: Add configurable parameter 'overwrite'
Domen Kožar (2):
Katerina Barone-Adesi (2):
Luke Gorrie (24):
- aa579dc: snabbswitch.c: Compile error on non-64bit platforms
- 329315e: core/snabbswitch.c: Require 64-bit word size at compile time
- 854af02: branches.md: Added mellanox and multiproc branches
- ebe29f5: branches.md: Fix URL for mellanox and multiproc
- 11cc9e4: branches.md: Add kbara-next
- 95ac5b5: branches.md: Remove duplicate entry for kbara-next
- bfaa718: doc/in-a-nutshell.md: High-level overview
- 16ab7fb: branches.md: Add branch pdf-manual
- c7b776b: branches.md: Fix url for pdf-manual
- 7f62f8f: Documentation: Remove build artifacts from repo
- 073d5d4: Makefile, genbook.sh: Output processed markdown in obj/
- 86734c8: src/Makefile: Build manual in obj/doc/
- 35a2422: .gitignore: Add .images directories
- 3507e16: doc/template.latex: Updated to suit recent pandoc
- 64ee8af: scripts/process-markdown: New takes output file arg
- 19ffe84: scripts/process-markdown: Fix usage of readlink
- 06c27c6: branches.md: 'documentation' replaces 'documentation-fixups'
- a599210: Everywhere: Shorten "Snabb Switch" to "Snabb"
- 15f3eff: Removed src/scripts/sysv
- fbbe1dc: src/Makefile: Drop symlink snabbswitch->snabb
- bee3627: src/Makefile: Rename documentation snabbswitch.* to snabb.*
- 82f73f4: neutron_sync_agent.sh: s/snabbswitch/snabb/ in default dirs
- d654230: lwaftr: Shorten "snabbswitch" to "snabb"
- 5254016: Replace 'snabbswitch' with 'snabb'
Marcel Wiget (1):
- 203badc: increase timeout for link_up to 1 second (from 250ms)
Max Rottenkolber (14):
- 6da7093: documentation-guide: Update according to #743.
- 96a2931: documentation-guide: Add general style guide.
- 3b9233c: documentation-guide: Be concise in “General Considerations” primer.
- 3734760: Add minimal CONTRIBUTING.md.
- 940c741: CONTRIBUTING.md: explain motivation for wip/sketch PRs.
- e5b0d07: CONTRIBUTING.md: Remove paragraph on cross referencing. Rationale: people are smart and will figure.
- 2815ba4: CONTRIBUTING.md: Do not implicitly encourage copyright notices.
- 192fbf7: doc/style.css: Put ToC into a left column.
- ea89065: Add scripts/snabb_doc.sh.
- a4b9275: snabb_doc: fetch PR head.
- 0ea56fd: Add ipsec branch.
- 5e350a9: scripts/snabb_doc.sh: Update for #829.
- 22d653f: snabb_doc: Add proper parentheses.
- 5534b88: [snabb_doc] Fix for #855.
yu-kasuya (1):
- 0a6bca8: FIX snabbnfv getting-started.md
Snabb Switch 2016.03 “Tamarillo”
This release introduces a fast generic hash table for use with “cdata” objects. Tamarillo also extends program name parsing for “busybox”-style executables and adds recognition for the Intel X520 2-port adapter. Also included are various minor bug fixes and improvements.
Major Changes
- #722 Added
lib.ctable
module providing a fast hash table forcdata
objects - #742 Extended program name parsing to allow shipping nicely named executables
Minor Changes
- #737 Use
/usr/bin/env
in shebangs - #731 Recognize new Intel X520 2-port adapter as compatible with
Intel10G
app - #707 Optimized JIT trace behavior in tail calls
- #700 Use stricter types for memory page pointers
- #747 #743 #762 #763 Various bug fixes and documentation improvements
Contributors
Adrián Pérez de Castro (1):
- 5f45d3a: Pass only interface name to syscall.util.if_nametoindex()
Andy Wingo (13):
- 9a1294c: Don't count tail calls towards loop unroll limit.
- bf2d58a: Add lib.ctable module.
- 9666348: Makefile can process any .md.src to an .md, not just README.md
- bea68b1: Better equality procedures for 2-byte/6-byte keys; more standard hash functions
- fe70ccf: Add documentation for lib.ctable.
- 586f0b7: Add wingo-next to branches.md.
- 27b82d5: Fix typo.
- c587728: Fix another typo.
- bc2fda2: Revert "Makefile can process any .md.src to an .md, not just README.md"
- 5b9400a: Move ctable documentation to src/lib/README.md, fix nits
- 8f535be: Map `snabb-lwaftr' argv[0] to programs.lwaftr
- 08c31ef: lib.equal can compare cdata
- 08e3a0c: Add "dist" target to makefile
Kacper Wysocki (1):
- 080fba5: page pointers portable to 32bit platforms
Luke Gorrie (12):
- 1f83b5c: Globally use '#!/usr/bin/env ' hashbang line
- 071aaf7: src/README.md: Simplify core.memory API
- 7bf8b3e: virtio/net_device.lua: Remove unused code
- 9afeb74: Rename all README.md.src files to README.src.md
- 70f207f: Clearly mark all Apache 2.0 licensed code as such
- adddf0b: snabbnfv: Shrink pcap files to reduce repo size
- 3c07928: README: Remove deprecation of memory.huge_page_size
- a0bc118: src/README.md: Fixed to match README.src.md
- 23347b3: lib/README.md: Renamed to lib/README.ctable.md
- 41d24e8: lib/README.pmu.md: New README file
- 7e63b78: lib/README.checksum.md: New file
- a490d68: doc/genbook.sh: Updated paths to lib/ README files
Marcel Wiget (1):
- 61fa43f: Adding detection of Intel X520 2-port 10GE card
Snabb Switch 2016.02 “Starfruit”
This release introduces a new app that implements “virtio-net” and an extension to packetblaster which enables it to send synthesized packets of arbitrary sizes. Starfruit also brings further improvements to our Intel 1G driver and synchronizes Snabb Switch's LuaJIT and DynASM dependencies with upstream, adding support for new CPU instructions when using DynASM. As usual, the release also brings a handful of minor bug fixes and enhancements.
Major Changes
- #681 Added
VirtioNet
app, an implementation of the virtio-net driver part of the virtio specification - #727 Added functionality to packetblaster that lets send synthesized packet sequences (instead of packets read from a PCAP file)
Minor Changes
- #683 Further improvements to our Intel 1G driver (i350, i210)
- #724 Synchronized lib/luajit and DynASM-Luamode with LuaJIT/LuaJIT:v2.1 (this adds support for using a range of new instructions via DynASM)
- #726 #717 #694 #697 #633 #699 Various bug fixes and documentation improvements
Contributors
Cosmin Apreutesei (3):
- 20329bf: DynASM update from upstream capr/LuaJIT:v2.1-dynasm-luamode
- 1b5dca0: loading dasm linker from within the snabb exe
- 65e9e3c: DASM_CHECKS defined in source
Felix Geißler (15):
- ceb8696: Added apps.test.synth.Synth app.
- aa5d13f: Fixed 'load_string' in core.lib.
- 3cf1f47: Fixed the usage of lib.load_string in selftest of program.snabbnfv.neutron2snabb.neutron2snabb.
- c603530: Added selftest to apps.test.synth.
- 3ee37c1: Added the possibility to synthetisize packets in packetblaster by using apps.test.synth.
- c9ce1a7: Split packetblaster in two parts: replay (replay a PCAP-file) and synth (synthetisize packets).
- 81c7f6a: Added a check for SIZE and DURATION to check if the args are numbers.
- 5eede86: packetblaster: Removed -p option.
- d0ad471: apps.test.synth: Added support for sequences of packet sizes. packetblaster: Modified the -S parameter to get multiple packet sizes separated by commas. Updated documentation.
- 2c0da6e: packetblaster: Fixed a bug where packetblaster read the first argument as filename.
- c0a1fe3: bench: Added packetblaster-synth-64.
- 3bca427: packetblaster: Modified selftest to test both replay and synth mode.
- 6d1e48b: Cleanup packetblaster test and benchmark scripts.
- 0fdf885: packetblaster: fixed selftest
- 2858fd0: packetblaster: Fixed long command line arguments.
Kacper Wysocki (1):
- 56f3464: make PREFIX work like expected, and use DESTDIR for that
Luke Gorrie (3):
- 30a9b34: core.engine: Enable selftest() method
- edd74ab: README.md: Fix and update packetblaster example
- 9a31a6f: engine: Detect bad return value from app start() method
Max Rottenkolber (4):
- 598092b: [core.app] Fix rreporting when `use_restart = true'.
- ca99c76: Add `max-next' to branches.md.
- 054bf34: basic.basic_apps.Source: Fix misleading documentation.
- 003dfd1: Squashed 'lib/luajit/' changes from 55c3b29..2f6b296
Nikolay Nikolaev (12):
- 7c99720: checksum: functions to fill the partial checksum
- 394783a: packet: add a metatable to the packet ctype
- ae618e8: lib: dynamic ctype definition functions
- a2ac869: virtio: rename virtq to virtq_device
- c428eea: net_device: allow disabling of MRG_RXBUF option
- cfa7169: VirtioNet: introduce the user-space virtio-net driver
- e7eaf46: Fixes for pull request remarks
- 4b07c3a: packet: revert metatable and dump method
- 6786d4d: checksum: use ipsum and fix styling issue
- 7e1a7f4: packet: revert
physical
function - 6387869: Style fixes: indentation and comments
- ac4e765: relocate fstruct and friends in lib.virtio
Rolf Sommerhalder (61):
- 1f13eb1: comment stuff in attic to prevent make
- de4ffe7: port print_status() from intel82573.lua
- eb458ae: add print_stats
- b894ca8: Receiver Enable was missing
- 0481435: Force EEE Auto-negotiation
- 9f90b2d: move rxenable
- 3a4fb84: rename vars from l to li, lo
- 0a75675: rewrite receiver without rxnext
- f384ddc: add some debug output
- 13d7faf: correct RDLEN, TDLEN in Bytes
- 778c028: show model instead of hex device IDs (which 'lspci -nn' shows as well)
- e1039d9: add parameter checking
- afe72b5: add README.* from lukego's intel1g branch
- 355604f: add README.* from lukego's intel1g branch
- 8aad217: add more checks
- 3f9ef89: revert intel10g driver name which breaks CI
- bcdc170: init receiver
- 0a7c331: some cleanup and comments
- 93a5779: more stats output for Rx debugging
- 4c8bf1e: fix RXDCTL.ENABLE bit position
- 591d6e3: increase rx buffer to 10kB, use SRRCTL instead of RCTL
- 40b5246: remove dead code which emulates NIC HW receiver
- 805f691: manage receive packet buffers
- 83ce59e: selftest() kind of working for first time
- 8f8122b: add counters
- 07c3b70: add and check sequence numbers in packet.data
- 1dfce9b: add PCI IDs for i210, i350 from 'lspci -nn'
- 5af9cea: add i210, loopback
- bd2d196: add initPHY()
- f81ebc5: transmitter to test PHY/MAC
- eccf0fd: skeletton for program
- 51a514d: Intel1g Tx to test MAC/PHY
- eea0a98: working with Sink instead of intel1g
- f840249: debug
- 8c67d41: wrap up
- 3b4884a: testing program & app, derived from example_sprayer
- 376ce60: working program txintel1g skeletton
- 38c0a60: capitalize Intel1g table (module) to differentiate from path/file
- e0624e8: cleanup debug code
- 85bce67: try PHY loopback to test read/writePHY()
- dd0fd30: working PHY loopback
- 9487b06: fix readPHY() OpCode, PHY Status output
- 1a2b0e8: save progress
- e76b5d8: working MAC & PHY with debug mess (WIP)
- 46b4ac2: selftest() supports two loopback modes now
- 9526e05: some cleanup, before re-structuring
- dc09daa: some re-structuring
- c342a09: more re-structuring
- 8f9f151: add PHY ID for i350
- fc8f5c5: more cleanup
- afa99d5: sync from dev branch intel1g_rs_i210
- bf074d8: snabbmark work between two intel1g ports
- db5badf: add Intel1g:report()
- 620f02e: instrument with addtl counters, from solarflare.lua
- c0f256a: add packet loss calc
- 01e3204: add stats from source, sink
- 9a2a954: add summary stats
- b2253f6: pull() drops rx frames when there is no link to a sink
- f19c5c1: fix documentation, e.g. make README.md from .src
- a1228b4: back out debug code, see #683
- 37d6996: really back out all debug code, see #683
Snabb Switch 2016.01 “Rambutan”
This release introduces a new app for integrating Linux “Tap” devices and a driver for Intel 1G network chips. Rambutan also features a reimplementation of the RawSocket
app using ljsyscall and makes Snabb Switch build with Musl libc. As usual, the release also brings a handful of minor bug fixes and enhancements.
Major Changes
- #675 Added a
Tap
app for integrating with Linux “Tap” devices. - #683 Added a driver for Intel 1G hardware (i350, i210)
Minor Changes
- #655 Reimplementation of
RawSocket
app using ljsyscall instead of C FFI calls - #682 Make Snabb Switch build with Musl libc
- #659 #678 #679 Various bug fixes and enhancements
Contributors
Antonio Fischetti (1):
- bffaccd: Fix to adapt to the latest NIC driver changes
Diego Pino Garcia (8):
- 782e9b3: Add pointer to int casting of T->mcode in setintfield call
- 70c05c7: Remove apps/socket/io.{c,h}
- f975447: Remove lib/raw/raw.{c,h}
- d153be8: Implement RawSocket using ljsyscall
- bbff56a: Merge RawSocketDev into RawSocket
- e522ee7: Avoid memory leak on error in RawSocket:receive
- 8ebd725: Use packet API to access data and length
- b4d6f08: Raise exception on error
Justin Cormack (1):
- e09f698: Portability fixes to build on Musl libc as well as glibc
Luke Gorrie (1):
Max Rottenkolber (4):
- 83868b8: core.shm: Assert return value of `mkdir(2)' when creating shm root.
- d32aef5: lib.hardware.pci: Make device_info throw error when device by pciaddress does not exist.
- e880a1b: packetblaster: Bail out when no suitable PCI devices were selected.
- 3a60141: snabbnfv traffic: Warn when configuration does not exist.
Pete Bristow (4):
- a0096d3: first approximation tap app
- db55852: Switch apps/tap from using lib/macaddress to lib/protocol/ethernet Add a selftest for apps/tap and supporting pcap Export TEST_SKIPPED from Makefile so it can be used in selftest.sh
- ce8eaee: changes to protocol/ethernet.lua arent needed for tap, so revert them
- df6cb66: free packet before erroring to avoid resource leak if the app is restarted
Rolf Sommerhalder (6):
Snabb Switch 2015.12 “Quince”
With this release brings bug fixes and minor enhancements to Snabb Switch and its continuous integration infrastructure.
Changes
- #667 SnabbBot now tests pull request heads merged with master
- #669 Add support for specifying short/canonical PCI address
- #654 #668 #664 #652 #672 Various bug fixes and enhancements
Contributors
Andy Wingo (1):
- 4dad68d: Fix bugs in PMU code
Diego Pino Garcia (2):
Luke Gorrie (3):
- 27c1e6d: lib.pci: Support short/canonical ("01:00.0") addresses
- 735a90c: packetblaster: Match command line with qualified PCI addresses
- ec8be10: lib/hardware/README.md: Document pci.canonical() and pci.qualified()
Max Rottenkolber (5):
- 681129b: SnabbBot: Compare PR merged with CURRENT to CURRENT instead of head to base. CURRENT defaults to master.
- 7a07f3d: SnabbBot: Document system requirements.
- feeca91: nd_light: Fix use after free bug in neighbor solicitation.
- 0fdafdb: nd_light: Fix missing negation in previous commit.
- 8a88beb: Add 128, 512, 1500 and 9000 byte packet test dumps.
Snabb Switch 2015.11 “Papaya”
With this release comes an overhaul of Snabb Switch's protocol library, a faster implementation of the Learning Bridge App and a revised CI tool chain. Papaya also introduces many small enhancements and upgrades DynASM to version 1.4.
Major Changes
- #637 Overhaul of
lib.protocol
improving the efficiency of several datagram operations - #638 Faster implementation of the Learning Bridge App
- #626 Overhaul of Snabb Switch's CI (SnabbBot), now supporting multiple instances and running tests within Docker containers
Minor Changes
- #636 Improvements to
lib.lua
including widespread adoption of rate limited logging facility - #640 “Program names” facility extended to allow for hyphens and automatic shortening
- #649 Upgrade to DynASM 1.4 adding AVX2 instructions
- #646 Minor documentation improvements
Contributors
Alexander Gall (17):
- 339a80a: New implementation of the learning bridge app
- d372624: Untabify core/lib.lua
- fadf244: Cache bit in core.lib
- 4665cdf: Use pure Lua endian conversion throughout
- 6a2d0f1: Rate-limit discard messages in logger
- 787d8d2: Include lib.logger default and auto-throttle settings in the API
- c67235b: Use logger in intel10g and nd_light apps
- 5c116c8: lib.protocol overhaul
- ea3b2cf: Add delayed commit semantics to lib.protocol.datagram
- 14d900f: Add instance recycling to class.lua
- d3d200f: Obsolete datagram:reuse() by instance recycling
- 18c4436: Initialize token buckets with the maximum number of tokens
- 644a250: Add selftest for nd_light
- 6ef703d: Add day of the week to the standard logger time stamp
- 211ea6b: Fix token_bucket:rate() code and description to match the intended behaviour
- 4b4b8ad: Handle the case when no config table is supplied
- dfe59aa: Remove eq32(), explicitely require the BitOp module
Cosmin Apreutesei (1):
- 49fe13c: DynASM 1.4 upgrade/merge
Diego Pino Garcia (6):
- 250e8bc: Allow hyphens in program name
- cbfd314: Usage should return exit with status code 0 if help requested
- 59249e7: Refine regexp
- fde42c1: Change logic of infering program name
- 8a0fa48: Reintroduced funtion 'exit' as it is used by snabbmark
- 137f386: Fix typo
Max Rottenkolber (26):
- 8eff509: Normalize environment variables used in test suite.
- 131890c: Introduce core.lib.getenv, a version of getenv that returns nil if the value of a requested environment variable is the empy string. Use core.lib.getenv where required.
- 2384a59: Replace scripts/cperf with `make benchmarks'.
- f19ef3c: Add timeout to bench/snabbnfv-loadgen-dpdk.
- 85ee1fa: Define SKIPPED_CODE in snabbnfv/packetblaster_bench.sh
- 4bc7df9: test_env: Use assets built by snabbswitch-docker, move pcap dumps to program/snabbnfv/test_fixtures.
- b3501fd: Add scripts/dock.sh.
- 29857ed: Simplify SnabbBot: Have it use
make benchmakrs' and
scripts/dock.sh'. - 2e2874e: Fix bug in SnabbBot's post_status.
- 832d55f: Use /usr/bin/env in dock.sh
- 52b68c8: Renamed incorrectly named src/doc/documentation-guide.mk2 to src/doc/documentation-guide.md.
- 543a50b: scripts/dock.sh: Use `--rm' to delete container after run and inject DOCKERFLAGS into docker invocation.
- 49c1334: Use SAMPLESIZE environment variable in scripts/bench.sh and compute standard deviation. Show standard deviation in SnabbBot performance regression check and default to SAMPLESIZE=5.
- 0e4f7a0: Fix bug in scripts/bench.sh, rename SAMPLESIZE to SNABB_PERF_SAMPLESIZE and add it to scripts/dock.sh.
- c03ac4d: Fixup to previous commit.
- a2f7080: Use standard POSIX(?) awk syntax in src/scripts/bench.sh
- 69c98c4: Use /usr/bin/env in SnabbBot.
- e93cdd5: SnabbBot be explicit about when `dock_make test_ci' exit code !=0.
- b197e3f: SnabbBot: Fix SD formatting and build within container.
- bc756b0: SnabbBot: Include PCI hardware information in report.
- 98f0b6e: Benchmarks: Don't attempt to run intel specific benchmarks with non-intel hardware.
- 5b99acd: apps.solarflare: Document OpenOnload dependency.
- cf06995: SnabbBot: Do not ERROR when a benchmark fails for both BASE and HEAD.
- c62c0d4: test_env: Use QEMU environment variable and default to qemu in PATH.
- 016b1ed: test_env: Update README.
- e77c092: Update doc/testing.md
Snabb Switch 2015.10 “Olive”
This release adds a build to target to produce compressed Snabb Switch binaries, promiscuous support for Snabb NFV and a new trace-oriented profiler. Olive also introduces a handful of important performance improvements, new debugging facilities and fixes various bugs.
Major Changes
- #610 Added targets to build compressed binaries (using UPX)
- #604 Added promiscuous mode to Snabb NFV
- #623 Added traceprof: a new trace-oriented profiler for LuaJIT
Minor Changes
- #612 #628 Performance optimizations in Intel10G driver
- #617 #639 Use Git subtree instead of Git submodule for dependencies
- #619 #620 #621 Enhanced Snabb Switch profiling capabilities
- #614 #632 Enhancements to
lib.pmu
- #629 snsh: Added '-q' to break program to REPL via keyboard
- #630 Documentation fixes
Contributors
Marcel Wiget (1):
- 0a3e398: Allow snabbnfv to pass all traffic on an Ethernet port to a single virtual machine
Alexander Gall (1):
- 2e67903: Avoid ctype diversity for registers in intel10g
Luke Gorrie (26):
- 3291eb3: Makefile: Shrink 'snabb' from 2MB to 0.6MB with UPX
- ee0ebbe: pmu_x86: Fix bug where machine code gets GC'd
- 52806ea: pmu: Minor improvements to reporting interface
- 0a3e398: Merge PR #604 (snabbnfv promisc mode) into next
- f0f5f9b: lib.pmu: Fixed bug that required affinity to CPU core 0
- 3139933: deps: Removed all submodules
- 532f9f4: Squashed 'lib/luajit/' content from commit 55c3b29
- 77c63c9: Squashed 'lib/pflua/' content from commit cc651ae
- ec17feb: Squashed 'lib/ljsyscall/' content from commit d78235c
- 401932e: Updated build scripts for subtree-based libararies
- d78d7a9: READMEs: '--recursive' no longer needed for git-clone
- 065979c: jit.p: Add support for profiling at trace granularity
- 53aedce: jit.p: Add CPU performance counters as profiler source
- a212176: jit.p: Enhance 'v' mode of profiler
- ef49da4: jit.util.traceinfo(): Include mcode, mcloop, szmcode
- d467236: lib.traceprof: New profiler (alternative to jit.p)
- 51ddd8e: snsh: Add '-jtprof' to enable traceprof profiling
- 0ba096c: lib.traceprof: Include inter-trace linkage
- ddabbd6: intel10g: Enable TX prefetch for 14.8 Mpps
- c29f053: intel10g: Fix error in tx prefetch enable for VF mode
- dd53917: snsh: Added '-q' to break program to REPL via keyboard
- 8e7c32c: src/README.md: Document engine.configure() multiple calls
- 63d3158: lib.pmu.writemsr(): Improve error message
- f87990e: snsh: Changed --sigquit-repl (-q) to --sigquit=repl (-qrepl)
- 1192957: lib/ljsyscall: Remove dangling git submodules
- 5451d6d: lib/pflua: Remove dangling git submodule