snabb

Snabb: Simple and fast packet networking

APACHE-2.0 License

Stars
2.9K
Committers
87

Bot releases are visible (Hide)

snabb - Snabb 2024.06 “Faye” Latest Release

Published by eugeneia 4 months ago

This small release comes with some bug fixes and minor improvements. Notably, we accidentally introduced a performance regression when upgrading RaptorJIT in the previous release, which is fixed in #1523.

What's Changed

Full Changelog: https://github.com/snabbco/snabb/compare/v2023.10...v2024.06

snabb - Snabb 2023.10 “Enigma”

Published by eugeneia 11 months ago

This release pulls in recent improvements and bug fixes from LuaJIT upstream, refines engine pacing, adds a snabb config shutdown command, and adds support for ConnectX-7 NICs.

What's Changed

Full Changelog: https://github.com/snabbco/snabb/compare/v2023.06...v2023.10

snabb - Snabb 2023.06 “Davion”

Published by eugeneia over 1 year ago

This small summer release contains various improvements for Snabbflow (snabb ipfix) and a bug fix for Snabb lwAFTR.

What's Changed

Full Changelog: https://github.com/snabbco/snabb/compare/v2023.04...v2023.06

snabb - Snabb 2023.04 “Caspar”

Published by eugeneia over 1 year ago

This release finally merges @lukego's timeline: a probabilistic high-frequency event log that is useful to understand and debug runtime latencies. It can be enabled via the environment variable SNABB_TIMELINE_ENABLE. As usual this release also comes with various minor improvements and bug fixes.

What's Changed

Full Changelog: https://github.com/snabbco/snabb/compare/v2022.12...v2023.04

Contributors

Alexander Gall (1):

  • 8e7be8efa: apps.rss.metadata: remove 59 (no-next-header) from list of IPv6 extension headers

Luke Gorrie (10):

  • 3e4c4474e: dasm_x86.lua: Add support for RDTSCP instruction
  • 95872b165: core.timeline: New module for "timeline" logs
  • 930f29417: Makefile: Embed "*.events" timeline specs
  • aa9980a5b: engine: Add engine.events, app.events, link.events
  • 8530942a5: core.link: Add dropped bytes counter
  • 9b252f0e6: engine: Instrument with timeline events
  • 40ceef603: core.timeline: Switch to double-float on disk
  • 563ae7ae3: engine: update timeline level probabilities
  • ffb7379c7: engine: Randomize timeline log level with math
  • 16a6bb21e: engine: Remove timeline packet payload sampling

Max Rottenkolber (51):

  • 1bb4108a3: core.app: remove remains from 16a6bb2 (timeline packet sampling)
  • 0e52b2406: core.timeline: make timeline log available to other core modules
  • e8348451e: core.packet: record packet allocation events to timeline
  • a6def7b56: Revert "core.timeline: make timeline log available to other core modules"
  • 8201d1d79: lib.ptree.worker: reformulate to use engine.main with done func
  • debd26cfe: engine.main: fix memory leak due to latency histogram creation
  • edaad6c82: core.app: set timeline log level at the very end of breathe loop
  • 9c4c804cb: core.packet: reorder group_fl released/reclaimed/unlocked events
  • 004f5bb71: core.timeline: decouple log level from event rate
  • 8e681091a: core.app: initialize timeline log rate to 7 (no logging)
  • 8f0c6bf92: core.timeline: add switch to disable timeline logging
  • 30cafdc7c: core.app: add timeline events for app network configuration
  • e5faba0f1: Fix some wrong assumptions about the event rate
  • 872eaab60: app.events: reduce tick/ticked event rate
  • 025225416: engine.events: fix breath_ticked description
  • 8080451d1: core.app: log breath_ticked only when tick()=true
  • cd43d69f1: engine.events: increase rate of commited_counters
  • 809153146: Revert "app.events: reduce tick/ticked event rate"
  • 3e0fee74c: core.app: fix bug introduced in merge with master
  • cb11a267e: app.events: reduce tick/ticked event rate
  • bfa3aa67b: lib.ptree: fix bugs introduced by merge with master
  • 8c3464687: timeline: cleaup merge
  • 840e1e532: timeline: cleanup
  • db3c5cbcb: engine: add timeline_enabled toggle (on by default)
  • 7b00bcfe2: Revert "engine: add timeline_enabled toggle (on by default)"
  • 9896b4b5b: timeline: disable by default, add lib.scheduling toggle
  • 21e2017a7: timeline: rework group freelist events
  • b7a8af9fe: timeline: remove unused arguments to tick events
  • 068b4d58d: timeline: remove linkstats for push events
  • f41f7a1de: timeline: fixup rework group freelist events
  • bcca06e62: core.sync: add load primitive
  • 45d3ac768: core.group_freelist: fix a deadlock
  • b916131a7: group_freelist: revert panic
  • f8c977c81: group_freelist: add deadlock detection
  • 2fbc94b33: lib.poptrie: fix bug where address bits where interpreted in reverse order
  • 67b3d9c66: lib.poptrie: optimize x86 lookup
  • a382b1d5d: core.timeline: fix selftest
  • 00287bbbe: engine: allow timely timeline initialization
  • a6fe6dc8b: snabb ipfix probe: add --timeline option to CLI
  • 66f0eb3ad: lib.scheduling: add group_freelist_size setting
  • f906776e1: lib.interlink: fix shm printing bug
  • 50cad00ff: ipfix probe: make group freelist and interlink sizes configurable via schema
  • 81a9e1929: timeline: enable via environment variable
  • f805e81f4: Revert "snabb ipfix probe: add --timeline option to CLI"
  • 0916c248f: Revert "engine: allow timely timeline initialization"
  • 559c80dcd: core.sync: load64, cas64
  • f47228ba8: core.group_freelist: use 64 bit sequence
  • b6c130d82: core.group_freelist: ensure finish is atomic
  • e8eb4fdcb: Revert "group_freelist: add deadlock detection"
  • f3905b350: core.group_freelist: cleanup
  • 7472b839b: lib.yang.list: fix bug in remove_obsolete_nodes
snabb - Snabb 2022.12 “Balaclava”

Published by eugeneia almost 2 years ago

This release introduces a new data structure to represent YANG lists, allowing us to expose lists with the attribute ordered-by: user as a configuration interface. Additionally we have made previously hardcoded freelist and interlink buffer sizes configurable at runtime to enable tuning of those buffers to fit application demands. Finally, ipfix probe has been optimized to operate without software RSS when the configuration allows it. As usual this release also comes with various minor improvements and bug fixes.

What's Changed

Full Changelog: https://github.com/snabbco/snabb/compare/v2022.10...v2022.12

Contributors

Max Rottenkolber (100):

  • 4b58a3c50: heap 1
  • 536c929d5: heap 2
  • 9ea357e7d: list 1
  • 1afa4cdb1: heap no overflow, simplify, fix bugs
  • c325cd91d: heap collisions
  • 62d4ae457: remove, iterator
  • e451f5e3a: enable LUA52COMPAT
  • 00a61691a: fix bugs
  • 0f8580e2b: ListMeta
  • 2075954a8: add_or_update
  • 2313cc039: fix heap _ref bug
  • 559faf3e5: refactor
  • b3692f589: refactor
  • b60b9181e: ip bench
  • 9c6a29e6e: refactor
  • a6492c05c: funny
  • d8e53fe2a: ListMeta fixes
  • cc7b972c7: Make keys/members specs extendable
  • 89a67ac22: todo: deterministic struct field order
  • ddabaa3bd: lib.yang.list: support optional members
  • 64331e4af: lib.yang.list: sort fields in build_type
  • 62696b76c: lib.yang.list: more builtin types
  • 95a9d311e: lib.yang.list: add lvalue type (for arbitrary Lua values)
  • abc0f72d7: lib.yang.list: add ipv4/ipv6-address types
  • 147557f18: lib.yang.list: single key meta, object() getter
  • 8e1da161e: lib.yang.list: load/save
  • e36d84e48: lib.yang.list: object() functions a is-list? predicate
  • 4c90e38ae: lib.yang.list: add from_table constructor
  • 4eca2e71d: core.shm: pass through extra sizeof args in map
  • f948fa6bf: lib.interlink: make queue size configurable
  • f1577c9ba: core.shm: allow mapping of partial objects
  • c7bb16466: core.group_freelist: configurable group freelist size
  • 7b6ee588f: core.packet: configurable freelist size
  • 1ac0362bb: core.packet: fix freelist shm display bugs
  • 07dc2420c: lib.interlink: revert from typeof to cdef for struct interlink
  • 9400c624a: lib.scheduling: add max_packets parameter
  • 690bd3ebb: lib.yang: integrate list into data
  • 5d20d5ae4: lib.yang.list: clean up lvalues, load, save
  • d728c3249: lib.yang: integrate list into binary
  • 86a8a32bf: lib.yang.list: fix bug wrt lvalues/optional
  • 96ce23500: lib.yang.binary: test list lvalues and fix bug
  • dbc6f5e02: lib.yang.list: add optional lvalue test case
  • c5609e9b9: lib.yang.data: cleanup
  • d5e508a37: lib.yang: update README
  • 1db643005: lib.yang.path_data: wip
  • a66ee30e9: lib.yang.path_data: wip
  • de2acbc19: lib.yang.path: cleanup
  • c3423ec5f: libya.ng.path_data: wip
  • 63dde84cd: lib.yang.path: fix bugs
  • d267f225c: lib.yang.list: add identityref and leafref types
  • 275da2ae0: lib.yang.path_data: wip
  • 97a58999c: lib.yang.path: add unparse_path
  • ee4af97df: lib.yang.path_data: wip passing
  • adb40ef0d: lib.yang.path_data: fix bugs, extend tests
  • e8c9725ed: lib.yang.list: integrate state, ptree support
  • 6ff9f33d6: lib.yang.list: add struct support
  • ab96b5d8d: list lwaftr wip
  • 00ba1213f: lib.lua.StackTracePlus: pull upstream
  • 5eebd6fb9: core.main: re-enable StackTracePlus
  • 4bf08f84f: lib.yang: factor out lib.yang.ctype
  • bb9eca2da: lib.yang.list: use lib.yang.ctype
  • bc571d3ad: apps.lwaftr.binding_table: fixup
  • f3c8e18fd: lib.yang.binary: serialize struct ts for list
  • 8c8c25c5d: program.lwaftr.tests.probased.genyang: integrate
  • a3c0e399f: core.main: fallback to debug.traceback when STP fails
  • 27a5ec918: integrate lwaftr wip fixup
  • 990ab593a: lib.yang.list: fix empty iterator bug
  • 3cd57c262: lib.yang.state: fixup
  • c76441272: lib.yang.path/path_data: handle rpc schema
  • 231381d9a: lib.yang: only ever handle list objects for list productions
  • 34c432464: lib.yang.path_data: add grammar_for_schema_by_name
  • 4fc54c25f: integrate lwaftr wip
  • 7ae62e70b: lib.yang.list: use ctype if available
  • 11452752e: integrate lwaftr fix bugs
  • 264bd6af0: lib.equal: do not compare tables with metatables
  • ad5c3a55f: lwaftr integrate fix bugs
  • c2261f2b9: lib.yang.data: test ordered-by
  • 38589997e: lib.yang.list: fix ordering bugs
  • 308e56c9c: lib.yang.path_data: fix setter and remover bugs
  • b04a2613f: lib.yang.list: fix bug in field_order
  • 04c79b649: lib.yang.data: avoid redundantly optional list members
  • 0059c0b06: lib.yang.state: muffle warnings
  • 4e5633280: lwaftr: remove legacy schema and migrations
  • b0ea121c6: lwaftr: supply mandatory padding value in native_binding_table_from_ietf
  • 5bd308783: Integrate snabbflow
  • 1896a2c4d: snabb ipfix: remove class order leaf
  • 78f1a1180: lib.yang.binary: support serializing leafrefs
  • 68cd6c458: snabb-snabbflow-v1.yang: use leafrefs where sensible
  • 1553134fb: lib.ptree: fix a bug where bogus PID was logged
  • 5923add8e: ipfix probe: cleanup code, optimize operation without software rss
  • 48a174768: program.ipfix.tests.test: tweak tolerance
  • 004b6b89f: lib.yang.binary: bumb version
  • 052d8c256: lib.interlink: fix queue size race condition
  • 37628fcf8: core.shm: test parameterized types
  • acf5d8032: apps.lwaftr.binding_table: keep ctable defaults originally used in lib.yang.data
  • 84d59cd92: lib.interlink: move size to same cache line as state
  • 0183beb0a: lib.interlink: keep local copies of mask
  • 3b3c3de27: core.group_freelist: keep local copies of mask
  • 176b12624: lib.interlink: edits
  • 58be8ee03: core.group_freelist: edits
snabb - Snabb 2022.10 “Alpina”

Published by eugeneia about 2 years ago

This release introduces a YANG schema for the multi-core scalable IPFIX probe developed by @alexandergall at SWITCH, “Snabbflow”. Additionally we have written a tutorial for getting up and running with Snabb lwAFTR. As usual this release also comes with various minor improvements and bug fixes.

What's Changed

Full Changelog: https://github.com/snabbco/snabb/compare/v2022.07...v2022.10

Contributors

Alexander Gall (3):

  • 101911ac8: interlink: fix shmem names in receiver/transmitter shutdown
  • 56cdc1deb: Adapt ipfix stats program to work with probe_ptree
  • 89a218f03: map_pci_memory(): set file path, increase timeout

Max Rottenkolber (97):

  • a03d3c5b5: lib.yang: support empty leaf-lists
  • 0ffd14c26: lib.yang: fix bug where native number keys caused parsing to c(l)tables
  • c501f784c: lib.yang: fix bug where value_ctype was used in native_key tables
  • 2f86ddf72: Revert "lib.yang: fix bug where value_ctype was used in native_key tables"
  • 402ecdf37: lib.ptree.action_codec: support toplevel app classes and nil app args
  • bbbea9575: program.ipfix.lib: factor pure configure functions
  • 507173f07: sketch: ipfix probe_ptree
  • ea636f46e: apps.tap: continuously scan MAC and add overwrite_src_mac option
  • 8a5d3e27b: apps.tap: add forwarding option
  • 11bbb495f: program.ipfix: use Tap app features for setting exporter src MAC and sysctls
  • c6ab421fe: App apps.snmp.iftable
  • e3f4d77a4: program.ipfix: use apps.snmp to setup ifmibs
  • 4bbd11eb8: lib.yang.data: do not derive bogus ctype for leaf-lists
  • 247761ae5: lib.cpuset: fix assertion in add, add contains/remove/list methods
  • d42c38f56: lib.ptree: scan for 'pciaddress' field in acquire_cpu_for_worker
  • 6cf6e2f90: program.ipfix.probe_ptree: pin to cpus specified in config
  • 8d04cd2a4: ipfix probe_ptree: update example config
  • 069264f10: ipfix probe_ptree: start with name
  • c814c43dc: lib.ptree: add rudimentary worker-restarting facility
  • f3fd7e78e: ipfix probe_ptree: use lib.ptree worker restarts
  • a757a8e68: ipfix probe_ptree: log_level=INFO, rename schema variable
  • 0996502b9: lib.ptree: manage worker restarts per worker configued via worker_opts
  • 97bba2361: ipfix probe_ptree: only restart dedicated exporter processes
  • 2d61cfb7c: apps.tap: overwrite_dst_mac not overwrite_src_mac
  • d585c2f77: ljsyscall: fix bug in S.sysctl where we wrote at position ~= 0
  • ab14ac35b: ipfix probe_ptree: canonicalize singular list names in schema/config
  • 88312f576: ipfoc probe_ptree: more schema cleanup
  • 42a58eee6: ipfix: probe_ptree: [wip] schema documentation
  • 3a1055ec2: core.app: setvmprofile in tick
  • aec36e681: ipfix probe_ptree: remove use-maps from schema
  • 5490392e4: ipfix probe_ptree: remove instance weight leaf from schema
  • 2fe881b44: ipfix probe_ptree: add scan-protection/enable leaf
  • 66358123b: ipfix probe_tree: raise exporter MTU default to 1500
  • 816906847: ipfix probe_tree: remove add-packet-metadata option
  • 9a5d18eff: ipfix probe_tree: more schema documentation
  • c3ce6089f: ipfix probe_tree: allow maximum ConnectX recvq_size in schema
  • 3630cf759: core.lib: equal: check object identity early
  • 4571335f4: apps.ipfix: allow full reconfig while keeping flow sets intact
  • 749ce284c: ipfix probe_ptree: support configs without software RSS classes
  • 7d7b0ed08: apps.ipfix: fix bugs in counter initialization
  • cfc509567: lwaftr: fix bug in migrate_device_on_config
  • 192a0a3c8: lwaftr: tutorial wip
  • b1d7eb9ee: lwaftr: tutorial wip 2
  • 285f3f3be: lwaftr: tutorial wip3
  • b969b9d3a: lwaftr tutorial: flowchart
  • a3a8029f0: lwaftr tutorial: edit lwaftr-veth-env.sh
  • c76a58f00: lib.ptree.inotify: turn warnings into debug messages behind flag
  • 8e94ad81a: lwaftr tutorial: supporting programs
  • a5523ead3: lib.ptree: support scalar value app configs in action_codec
  • ff74f68f3: ipfix probe_ptree: test wip
  • 4fea4ea0e: Revert "ipfix probe_ptree: test wip"
  • ebc741344: ipfix probe_ptree: add state counters
  • 3e5ac19b9: wip
  • a416c424b: wip
  • b23fe45a8: apps.ipfix: assert templates shm doesn’t already exist
  • 413cf1913: wip
  • 680a28b03: wip get.state
  • b26d0152d: lib.ptree: add acquire_cpu worker option
  • ef3a002a2: ipfix probe_ptree: do not acquire cpu core for mellanox control worker
  • 6eb81db76: lib.scheduling/lib.ptree.worker: make jit.opt configurable
  • 00112e1dd: ipfix probe_ptree: run workers with custom jit options and engine.busywait=false
  • de3a22548: ipfix probe_ptree: key rss groups / instances in snabbflow-state with id instead of pid
  • 02dcd3365: ipfix probe_ptree: device queue stats for rss groups
  • acf52dd44: ipfix probe_ptree: fix bug introduced in de3a2254
  • 1fd8e51c8: apps.connectx: fix stop() bugs
  • f34646764: ipfix probe_ptree: normalize device, app, and input link names
  • 29dfa8354: ipfix probe_ptree: guard against duplicate devices
  • 5187a9e79: ipfix probe_ptree: hide debug prints
  • 89581cffc: apps.mellanox.connectx: fix bug in IO:stop()
  • 83b9f1e9f: apps.mellanox: use default enable_counters setting
  • e2890f41a: apps.mellanox: add test case for rxdrop and per-queue rxdrop counters
  • c0a49637c: core.app: fix a bug related to getting app zone name
  • 00d233738: ipfix probe_ptree: warn on missing traffic class, throw error on missing exporter
  • 61b67a309: Replace ipfix probe with probe_tree, remove probe_rss
  • 22db66a33: ipfix probe: add common scheduling CLI opts
  • e930e4e74: ipfix probe: enable VMProfile by default
  • 722801020: apps.mellanox: make sync interval configurable, add :report()
  • 5feed3d10: packetblaster: support connectx, increase send desciptors in loadgen mode
  • bfa68ba1b: program.config: do not exit on error in call_leader
  • da4839741: Add program/ipfix/tests/bench.snabb
  • 81bd38978: apps.basic: fix bug in Truncate
  • 1ef5bee60: packetblaster ipfix: generate flows from pcap on multiple cpu cores
  • 2aae05b87: ipfix probe: update bench.snabb to use packetblaster ipfix
  • f2870ac5d: program/ipfix/tests: check in truncate_pcap script
  • d64e23c7e: ipfix probe: add --rss-goups option to bench.snabb
  • 97e9369e2: program.ipfix.lib: remove dead code
  • c508b40a0: ipfix probe: add test.snabb
  • 7c5ee4e86: ipfix probe: update collector-test.sh
  • a8c2f246c: ipfix probe: remove generate_packets.py
  • cdf1c3b11: ipfix probe: cleanup tests
  • 86e14ed20: ipfix probe: update README.md
  • 609716db0: lwaftr tutorial: fix typos, reference schema instead of source
  • 70785bed4: lwaftr tutorial: remove TODOs
  • 5a4d0b138: apps.ipfix: fix bug in selftest
  • 18d2631f4: snabb config listen: fix bug introduced in bfa68ba1bd4ccf7afe973ed21cafac9a0dcb72b5
  • 5fe89b5ba: apps.lwaftr: do not flush lookups early
  • 4706127a2: lib.ctable/lib.hash.siphash: optimize traces
snabb - Snabb 2022.07 “Parmigiano”

Published by eugeneia over 2 years ago

This release upstreams the multi-core scalable IPFIX probe developed by @alexandergall at SWITCH, “Snabbflow”. Additionally, we have extended the core.app interface to support the new tick and per-link push methods. Other notable changes include improved inter-process link scaling, and a new benchmark for our Connect-X driver to be used in CI. As usual this release also comes with various minor improvements and bug fixes.

What's Changed

Full Changelog: https://github.com/snabbco/snabb/compare/v2022.01.1...v2022.07

Contributors

Alexander Gall (105):

  • 0f5068d13: lj_trace.c: unpatch blacklisted bytecodes when flushing traces
  • 5df67e816: lj_trace.c: Add penalty to trace abort message
  • b19d44231: intel_mp: fix range of array registers for i210
  • 51214ead7: intel_mp: add sanity checks for the number of rx/tx descriptors
  • d4a98716f: intel_mp: add queue enable counters, fix rxdrop counter
  • fe709ed26: lib.protocol.ipv4: avoid allocation for pseudo-header
  • d15cbff0a: socket.raw: don't use select()
  • 54780c240: ctable: fix power-of-2 issue
  • 300261449: Add optional callback to the CTable:resize() method
  • 0cda3d1d9: lib: disable tail-call optimization for endian conversions
  • 62d0e7221: Avoid factor-of-2 headroom in ctable
  • 4c15c4e7e: Check bound of values in lib/lpm/lpm4_248.lua
  • d4f8914c5: lib.lpm4_248: implement search in pure Lua
  • 30b1e6f24: Flush JIT traces after ctable resize
  • d59aaff93: Export flow before resetting fields
  • 5ec2a6480: Properly count records for IPFIX and NetFlow v9
  • f4e93cd92: Send full-sized export packets
  • 556bc58b4: Get flow octet counter from IP header
  • 246655c36: Add tcpControlBits to flow sets, factorize transport processing
  • 132f5b9ff: Allow multiple files as input for make_ipfix_element_map()
  • e2587ae5b: Delegate exporting packets to FlowSets
  • f40c1b104: Add counters
  • 605dac068: Add sub-program to print stats for running ipfix processes
  • a25d3538c: Add take_all() method to token bucket
  • e0d93bcbb: Make table scan time configurable
  • 30b7c4f4e: Support VLAN-tagged traffic, IPv6 extension headers
  • b36e45bb0: Support PEN, strings and octetArray in templates
  • d72d42d2a: Add optional state variables to flow cache value
  • 46263a730: Add optional template-specific stats counters
  • 57b71a036: Refactor template definitions
  • 045f48ec3: Add templates for HTTP
  • 2575d94c8: Add templates for DNS
  • 9e6d48b54: Add options to ipfix probe program, support routed tap interface
  • 463022d40: Add extended template
  • 7f6c24189: Switch to packet-metadata module from RSS
  • 24a5063e9: Allow multiple IPFIX instances in the same process
  • 817857756: Add probe_rss ipfix sub-program
  • 84b486a1d: Disable map logging in extended template by default
  • 7a9e3c82d: Add SNMP Interface MIB for PCI devices
  • 5b9e56e04: program.ipfix: redesign RSS framework
  • a15f4f380: program.ipfix: support hardware RSS in probe
  • 2c05b4c9d: program.ipfix: fix stats sub-program for redesign
  • 95ff0ca9b: program.ipfix: integrate mellanox driver
  • 5151c964d: program.ipfix: include PCI stats from control app
  • 560e5b1a9: program.ipfix: increase receive buffers for mellanox driver
  • a9e9f7fc5: program.ipfix: adapt to interlink semantics of v2018.06
  • 28cca9375: apps.ipfix: tune log messages
  • 84cbf0df8: apps.ipfix: fix selftests
  • a2097f3a5: core.app: skip array indices when traversing input links
  • 395a4f8bb: core.app: assert that links are connected only once
  • 2c7929ce9: core.app: support link-specific push methods
  • 565d7e6bc: apps.basic: apply link push methods to basic apps
  • ea076d87e: VlanMux: optimize tag pop/push
  • bc36ddbcf: VlanMux: apply specialized push methods
  • 1cfadb3f7: core.app: only call push() if the link is not empty
  • 5fb9816d8: Add housekeeping() method to apps
  • 233c8947c: Adapt to new versions of logger and token bucket
  • be1f65c5b: apps.vhost: suppress -Wstringop-truncation
  • 33eefac7b: lib.hardware.pci: add new device to supported Mellanox cards
  • b65564342: apps.ipfix, apps.rss: adapt to specialized push link semantics
  • 40373dfb7: program.iptix.probe_rss: add JIT configuration for RSS workers
  • 14e32eb70: apps.rss: mitigate unbiased branches in metadata handling
  • c1136703c: apps.rss: explicitely unroll the loop over packet queues
  • 744d6d521: apps.rss.rss: Preserve order in classes_active, fix explicite loop unrolling
  • 36476110b: program.ipfix.probe_rss: make receive queue size configurable for mellanox
  • 72f5482ea: program.ipfix.stats: use global counters when per-queue stats are not available
  • c24d55ceb: lib.interlink: increase queue size to allow bursts for ipfix
  • b2797901c: Make be1f65c5b1 conditional for GCC >= 8
  • 9bfdaae27: program.ipfix: add IF MIB for routed tap interfaces
  • 670c41117: apps.rss.rss: use specialized function to copy addresses for hashing
  • 54409f845: core.packet: increase maximum number of allocated packets
  • a1780b34f: Fix transitions in CXQ state machine
  • 90c576250: map_pci_memory: wait for kernel driver to release the device
  • 87c1a0e9b: apps.mellanox.connectx4: unbind device in IO:new()
  • 08f25ca51: apps.intel_mp.intel_mp: fix device unbinding for Intel driver
  • b47b38d42: apps.intel_mp.intel_mp: remove disable bus master cleanup
  • 8f1a48025: apps.ipfix.ipfix: move record expiration to housekeeping
  • da76c64d3: apps.mellanox.connectx4: fix mcast counters
  • 5f05daba4: lib.hardware.pci.map_pci_memory: only wait if first call failed
  • 15ef82b43: program.ipfix.probe_rss: use pools to assign collector address and port
  • afbe2bd09: apps.rss.rss: Add VLAN match capability
  • 6d5bafa2b: program.ipfix: increase logging rate
  • eb659ba9d: program.ipfix.probe_rss: add observation domain to log output
  • 58ce70ee1: program.ipfix: disable date in log messages by default, fix READMEs
  • 432f38a50: Add scan-protection feature
  • 541c0d8fd: interlink: fix shmem names in receiver/transmitter shutdown
  • b9c499e45: program.ipfix.probe_rss: restart dead workers
  • 429fa2144: program.ipfix: make maximum load-factors of hash tables configurable
  • 276a26d73: ipfix: restrict flow-rate tracker to signature flows
  • aafd550c0: program.ipfix.probe_rss: scale scan-protection rates with number of processes
  • 3620245ef: program.ipfix.probe_rss: add CPU pool and NUMA binding
  • bc9211fa7: Untabify
  • 5a47fdee5: program.ipfix.probe_rss: make CPU-pinning configurable
  • 1f082b84b: program.ipfix.probe_rss: increase logging rate limit for master process
  • 4af53457d: program.ipfix: rename ConnectX4 -> ConnectX
  • 4296bfaac: Don't export empty flows
  • fc407c203: Use proper flow start time after active timeout
  • caa11e1c6: lib.ctable: fix hugepages allocation size
  • 64a62f238: apps.mellanox: Make RX/TX flow control configurable, default to off/off
  • 4c1571fcd: apps.mellanox: Add per-queue drop stats
  • 69a15b93d: apps.mellanox: Use lib.parse in ConnectX:new() and IO:new()
  • 3a5b5aec0: apps.mellanox: Use consumer counter in cxq to simplify ownership handling
  • be7a343d4: connectx.lua: Add basic event handling
  • 7c269fa37: map_pci_memory: wait for kernel driver to release the device
  • 1c7497cb1: lib.hardware.pci.map_pci_memory: only wait if first call failed

Andy Wingo (2):

  • 907ce8194: Use binary search for all lookups
  • b457b6ec8: Add a type cache, in case that's important

Luke Gorrie (5):

  • b29666f8e: lj_trace.c: Clear penalty slot after successful trace
  • b4060ef46: lj_jit.h: Increase HOTCOUNT_MAX and expand HotPenalty.val
  • 0a907647c: fixup! lj_jit.h: Increase HOTCOUNT_MAX and expand HotPenalty.val
  • c685d8b0d: lj_trace.c: Reset hotcount table after flush
  • 544394018: lj_record.c: Relax heuristic for root trace meeting JIT loop

Max Rottenkolber (76):

  • bd5d4eca8: wip
  • 2f6b983c6: wip 2
  • e301b53f0: mellanox benchmark numa
  • aaea69bf0: add Source software benchmark to rule it out as a bottleneck
  • 763457332: measure rx at sink
  • 7f967e4d6: apps.mellanox: packetblaster
  • 9adad5263: mellanox benchmark: use packetblaster
  • 350aea922: apps.mellanox.connectx: cleanup and optimization
  • 3d86febc6: mellanox benchmark: use stats counters instead of querying HCA
  • ae5121bd6: mellanox benchmark: cleanup output
  • b1cf848bd: mellanox benchmarks example scripts
  • 87207cf98: apps.connectx: remove dead code from packetblaster
  • 0ab555fff: mellanox benchmark: add --opt option to supply driver config options
  • 312b740da: mellanox benchmark: add forwarding mode
  • 28f249a81: mellanox benchmark: add --nmacs, --nvlans paremetrs, remove source-sofftest
  • 4fa1d01cc: mellanox benchmark: fix up previous commit
  • 6c69c04dc: mellanox benchmark: add sink mode, sink halts
  • 7195667a8: mellanox benchmark: IMIX source
  • f799af237: apps.interlink: add instrumented latency benchmark
  • fbc13abec: core.packet: factor packet reclaimation from group_fl into reclaim_step
  • a9c84369b: apps.interlink: better instrumentation
  • 3b32a2ff4: core.packet: lock-free group freelist
  • e1a70b084: core.group_freelist: cache head_add/tail_remove, document
  • c0ab1b195: core.packet: better group freelist design
  • cdec562e8: apps.interlink: fix bugs in wait_test.snabb
  • d01df5898: core.group_freelist: add missing load barrier
  • 99e2a6ce2: core.group_freelist: shrink queue
  • 2ec3a89fc: apps.interlink: fremove obsolete line wait_test.snabb
  • cab614de5: apps.interlink: sort cores in wait_test.snabb
  • 328ba098e: apps.mellanox.connectx_test: make sure links are up in basic_match
  • 3cd72c244: apps.mellanox: packetblaster
  • 60ce041c4: apps.mellanox: cleanup and optimization
  • 66ab5b1b5: apps.mellanox: remove dead code from packetblaster
  • 67850d13f: Mellanox benchmark: let source linger for when TX > RX
  • ee2a70338: apps.connectx: hide event prints behind debug_info flag
  • 84cb61c7b: core.packet: ensure freelist has enough space for group fl rebalancing
  • 616e6e259: core.group_freelist: enlarge group_freelist to hold up to 2 million packets
  • 7086845fb: default.nix: remove obsolete brute-force shebang patching (breaks with newer nix)
  • c45ae8600: lib/luajit: add build artifacts to gitignore
  • a06db22aa: core.app: remove use_restart facilities
  • 840d07bec: core.app: make breathe_pull/push_order local
  • ec7e08047: core.app: add tick() app method support
  • add9e77b6: snabbmark: add micro-benchmark for tick() methods
  • e372868d7: core.app: link() 3.0
  • 0ee20907e: snabbmark: add microbenchmark for push_link methods
  • b05b08da8: src/README.md: document core.app 3.0 features
  • e9e977fe1: core.app: refactor tick() throttle
  • bc970a0b7: apps.test.match: fix selftest
  • 2895647e0: apps.lwaftr.V4V6: fix selftest (test_join)
  • c676980f8: apps.pcap.tap: fix selftest
  • 26bcea8f3: apps.rate_limiter: fix selftest
  • b6ea72733: apps.packet_filter: fix selftest
  • 30f85467a: core.app: fix bug in compute_breathe_order...
  • df9e77fe0: snabbvmx: fix lwaftr_app_check test setup
  • ed5c94794: core.app: copy app class push_link to fresh table in instance
  • 6dd5418d3: lib.hardware.pci: cleanup previous commits
  • b9f512596: src/README.md: formatting
  • addfc10f6: apps.ipfix: fix selftest
  • 1021d2c56: lib.ctable: replace MAX_MAX_DISPLACEMENT with configurable max_displacement_limit
  • fc3e37720: Revert some changes from 0c4205b5 because they break tested behavior
  • d6a641c30: lib.protocol.ipv4: add ipv4:pton_cidr
  • c23857c36: lib.protocol.ipv4/6: remove bogus methods
  • 1e948114b: apps.ipfix: use lib.poptrie
  • 45d1b07bb: apps.ipfix: fix previous poptrie usage for 32-bit ASNs
  • 657c8848f: lib.protocol: add ipv6:pton_cidr(), fix documentation of ipv4:pton_cidr()
  • c154ab199: apps.ipfix: support IPv6 prefix to AS mapping
  • 2447d1755: lib.poptrie: support 32-bit leaves
  • c89289d13: apps.ipfix: fix up previous commits
  • 9ad014b6c: lib.protocol: add dot1q header
  • a06412487: apps.ipfix: exercise extended templates in selftest
  • 04227d707: program.ipfix: pfx_to_as is now split into pfx4/6_to_as
  • 798495b07: lwaftr: softbench
  • 3d8ddccc0: lib.numa: do NUMA migrations only for >1 node systems
  • cf73e1e01: apps.mellanox: make per-queue counter creation configurable
  • d67f63dd9: lwaftr: updated ConnectX config defaults
  • 056d43472: ljsyscall: fix bug in S.sysctl where we wrote at position ~= 0
snabb - Snabb 2022.01.1 “Octarina”

Published by eugeneia over 2 years ago

Fix up .version for Octarina release.

See Snabb 2022.01 “Octarina”

snabb - Snabb 2022.01 “Octarina”

Published by eugeneia over 2 years ago

This release contains the a new driver for Mellanox Connect-X series NICs, an improved Intel AVF driver with support for RSS, and an experimental XDP driver. As usual this release also brings many smaller improvements and bug fixes.

What's Changed

Full Changelog: https://github.com/snabbco/snabb/compare/v2019.11...v2022.01

Contributors

Alexander Gall (24):

  • 48f608084: Cherry-picked apps.melanox from lukego/debug100g
  • 44740000e: Uncommited changes from lukego
  • 580cf9b00: connectx4.lua: minor changes
  • 10ceea423: connectx4.lua: fix alignment of HCA command queue
  • 1b9cf2b79: connectx4.lua: fix RSS
  • 83326715e: Register ConnectX5 device in lib.hardware.pci
  • 263919ade: connectx4.lua: identify driver for device_info
  • d57c67abc: connectx4.lua: add statistics counters
  • 22af8471f: connectx4.lua: use async commands to read stats counters
  • a94924561: connectx4.lua: use a factory to create HCAs
  • b4d9252d6: connectx4.lua: fix bug with async commands when debug_hexdump is enabled
  • e2eecff04: connectx4.lua: fix page sizes in CREATE_{C,R}Q
  • 76c0c80a7: apps.vhost: suppress -Wstringop-truncation
  • 56884a7d7: apps.mellanox.connectx4: add MT28800 as supported device
  • a0e85852a: apps.mellanox.connectx4: add per-queue drop counters for ConnectX5
  • fc37be48e: apps.mellanox.connectx4: unbind device in IO:new()
  • adc7d3d69: apps.mellanox.connectx4: fix mcast counters
  • 221974839: Fix transitions in CXQ state machine
  • 6cdcb40c4: apps.mellanox: free CXQ during process shutdown
  • c579524f8: apps.mellanox: use correct WQE stride in RX queues
  • 556e42779: mellanox: complete renaming ConnectX4 -> ConnectX
  • a348899c2: lib.ctable: fix hugepages allocation size
  • a86c61e17: connectex.lua: extend RSS hashing to non-TCP/UDP IP packets
  • 5f10b3b7a: connectx.lua: convert tabs to spaces

Andy Wingo (5):

  • 9a787b544: Fix snabb top interface view for multiple queues
  • 7a0c6c80c: Disable vmprofile on lwAFTR by default
  • 648c67a5c: Add 2019.06.02 changelog entry
  • 6524dec90: fix typo
  • 828fa4f4f: lwAFTR version 2019.06.02

Cosmin Apreutesei (6):

  • 45d0696b6: stub module and readme
  • 8720a606a: pci init
  • cd3a103ed: vendor/dev id
  • dfbd705c0: firmware revision register
  • 34929f1b0: print firmware revision maj and min
  • fe8065ff1: init procedure until QUERY_HCA_CAP

Luke Gorrie (24):

  • a6973da68: lib.hardware.pci: Add reset_device()
  • ccdf38e2f: mellanox: Added text/hexdump trace of Linux driver
  • 276f4fa96: connectx4: Progress on initialization routine
  • 6a426bde8: connectx4: Translate virtual to physical on demand
  • f349c4197: core.memory: Add 'align' argument to dma_alloc()
  • 8c55f664b: connectx4: Request alignment on memory.dma_alloc()
  • 2c1a92ded: connectx4: Add multi-mailbox command support
  • 6abbd96a7: connectx4: Successful QUERY_HCA_CAP query
  • 92ec4104b: connectx4: Command mailbox chaining fixes
  • 13e65509e: connectx4: Set debug = false
  • cd8e30eab: connectx4: Remove stray print statements
  • a285999e4: connectx4: Move checkstatus() into post()
  • 4575dc738: connectx4: Device initialization fixes
  • 8c0be9da4: connectx4: Comment on ommitted SET_DRIVER_VERSION
  • f196ac72c: connectx4: Added CREATE_EQ (event queue) command
  • c1cee02a6: connectx4: Added initial VPORT commands
  • 51d4d45c5: connectx4: Give 'lock' argument to map_pci_memory
  • 7659eb61f: connectx4: Clean driver initialization
  • 21d0dc36d: connectx4: Refactored for multiprocess operation
  • f08da3c33: connectx4: IO app now has only 1xSQ and 1xRQ
  • ffe4a22be: connectx4: Add 'mtu' paramter (default 9500)
  • 06c43f034: connectx4: Cleaner (simplistic) selftest method
  • e367b6b69: connectx4: Fix recv completion queue wrap-around
  • 42c2196a6: mellanox: Rename ConnectX4 -> ConnectX (because it works with 5+ too)

Max Rottenkolber (150):

  • 77e548cab: Squashed 'lib/ljsyscall/' changes from d78235c50..e587f8c55
  • 09b29d986: ljsyscall: add some XDP constants
  • 3f8201071: ljsyscall: fix a bug in getsockopt when querying for structs
  • 1e176cb1c: ljsyscall: lookup strflags in linux bpf(2) wrappers
  • 573a29b05: ljsyscall: add BPF_MAP type XSKMAP
  • 63f0cfeb2: apps.test.synth: add packets option
  • f53552561: apps.test.synth: emit all given packets
  • 61745637f: core.packet: expose constants for packet alignment and headroom
  • 984d4a41c: apps.xdp: driver for AF_XDP sockets
  • e056fa1ca: Remove src/xdp.snabb (accidentally checked in xdp proof of concept)
  • ee4e42d23: core.packet: expose free_internal
  • b67729262: apps.xdp: fix free stats accounting, cleanup fill/completion mngmnt
  • 1b3593f47: apps.xdp: add duplex test case, fix random_v4_packets
  • 22d754c14: apps.xdp: cleanup bpf_ld_imm64/LD_MAP_FD construction
  • 4e318568e: apps.xdp: generate more descriptive errors on bind(2) failure
  • e53f314b0: apps.xdp: fixup comment about engine breath stimulation
  • d225e75b5: apps.xdp: make num_chunks configurable in snabb_enable_xdp(opt)
  • d44fb1d56: apps.xdp: do not leak packets in XDP:stop()
  • f8cb80c8c: apps.xdp: munmap(2) rings in XDP:stop() (do not leak rings mappings)
  • e06c82fab: apps.intel_avf: use new PCI acccess API (fix integration breakage)
  • 7722f0d8b: apps.intel_avf: free resources on shutdown (fix leak)
  • 6c330ecf5: lj_syscall: add BPF_OBJ_* syscall wrappers, extend bpf_attr union
  • ea955a8bc: apps.xdp: allow sharing interfaces between Snabb processes
  • 01f11e970: pflua: do not cdef struct bpf_ins (collides with ljsyscall)
  • ae35674a1: core.app: add clearvmprofiles() function
  • 1124b80f7: lib.timers.ingress_drop_monitor: clear vmprofiles on flush
  • 8f2a2161d: lib.timers.ingress_drop_monitor: reset last_value on drop-free period
  • 63968f69c: raptorjit: clear all hotcounts every second
  • dfadac832: raptorjit: amend prev. commit, also clear trace exit hotcounts
  • b7c50cbba: raptorjit: amend prev. commit, do not clear SNAPCOUNT_DONE
  • bd84224c2: apps.xdp: expose driver reference
  • 1a9eba523: lib.scheduling: add enable_xdp option
  • 18cc3658f: apps.xdp: kick tx queue if not empty
  • 19072b494: lib.yang.data: reorder translated members before printing
  • ae4f734fe: snabb config: use consistency checker in command parsing
  • 05b495ea6: lib.yang.path_data: expand choices in consistency checker
  • e96ae1a71: lib.yang.data: rework 19072b494 (remove order parameter) add tests
  • 95d3a741e: lib.yang: remove leftover debug print
  • 3fdf926db: pflua: fix typo bug in native codegen (xor/or emission)
  • 07acce271: pflua: make regalloc architecture independent
  • cd4d77381: apps.xdp.bpf: add basic disassembler, endiannes opcodes
  • 48ff71cd9: apps.xdp.pf_ebpf_codegen: add eBPF backend for pflua
  • c158ac824: apps.xdp: add filter option (offload non-matching packets to kernel)
  • 6b5851a4c: lib.numa: gracefully handle failure to read CPU performance governor
  • 16c99eda8: lib.ptree: cleanup obsolete aggregated stats
  • 0068df612: arch/checksum: fix bug in carry propagation
  • 3461a095d: apps.xdp: only run rxtx_match selftest if SNABB_XDP_NQUEUES=1
  • 00cac3632: apps.xdp: debug stop()
  • 8d4ee134b: apps.xdp: mark stop() NYI / not supported
  • 2bcc644bb: lwaftr --xdp sketch
  • dca300464: snabb-softwire-v2: add default for leaf error-rate-limiting/packets
  • 8c2000b74: apps/ipv4,6/reassemble,fragment: handle padded packets
  • 561b52a44: lwaftr/setup: fix interfaces for bump-in-the-wire Interfaces used in bump-in-the-wire configurations were swapped, possibly during a prior refactor. Undo this.
  • 1cdc6352d: snabb-softwire-v2.yang: documentation edits
  • 6bcce09e3: lib.numa: gracefully handle failure to read CPU performance governor
  • 191581a88: apps.lwaftr.ndp: send NS via solicited node multicast
  • 4817ae822: lwaftr: support vlans in XDP mode
  • 004587b50: lwaftr: automate linux interface setup for XDP
  • bce8579eb: snabb-softwire-v2: allow more than two queues
  • 909dca7a1: lib.protocol.ethernet: add ptoi used by connectx driver
  • 6bca98b8c: apps.mellanox.connectx: fixup lib.hardware.pci usage
  • 832ea9dfa: apps.mellanox.connectx_test: traceprof is now part of RaptorJIT
  • d58ce744c: apps.mellanox.connectx_test: get PCI addresses from environment
  • 6036de6f7: lib.protocol.etherenet: do endian conversion in ptoi
  • bf84158a3: apps.connectx: selftest fixups
  • fc7dfd291: apps.mellanox.connectx: support RSS + MAC/VLAN
  • 55ea547d0: Revert "apps.mellanox.connectx: support RSS + MAC/VLAN"
  • 680355e2b: apps.mellanox.connext: fix data segment address translation in sq:transmit
  • 740b63c9d: Revert "Revert "apps.mellanox.connectx: support RSS + MAC/VLAN""
  • 22d2619d9: apps.mellanox.connectx_test: test MACVLAN+RSS
  • 4b0487d15: apps.mellanox.connectx: invert MAC/VLAN hierarchy in macvlan_rqlist
  • 704126c38: apps.mellanox.connectx: switch multicast packets when using MAC+VLAN
  • 6d18bea2b: apps.mellanox.connectx_test: exercise L3-only RSS
  • d4a108358: lwaftr: keep full config in worker setup
  • 907fb7748: lwaftr: add mellanox.connectx driver support
  • 4c84dd0ee: apps.intel_avf: add multiqueue/rss support
  • 8c151eab1: lwaftr: add support for intel_avf driver
  • e3dd48ff4: apps.intel_avf: add VLAN filter/stripping/insertion support
  • dbc4f3430: lwaftr/lwutil/setup: refactor, add num_queues, is_lowest_queue
  • 448d626aa: lib.hardware.pci: add Intel X710 device info
  • d54e29d1f: lwaftr: support auto-config of AVF-compatble NICs
  • 80557cfe8: intel_avf: move bits() constructor out of fast-path
  • be7dc0840: program.lwaftr.setup: remove bogus stale require
  • 263c4e2f8: lwaftr.setup: fix error reporting in cmd util
  • 6df64ca89: core.lib: fix error detection in writefile
  • 720235f05: lwaftr.setup: print more useful error message... when unable to write sriov_numvfs
  • fa553a6e8: apps.intel_avf: move device stats to pci/
  • 85428eab2: snabb top: handle devices that do not specify speed
  • 89c48fc67: lib.ptree: start manager before setting initial configuration
  • 4379d1ccd: snabb-softwire-v2.yang: fix descriptions of device leaves
  • 98e97b407: Revert "snabb-softwire-v2.yang: fix descriptions of device leaves"
  • 75a3373ee: Revert "lwaftr: keep full config in worker setup"
  • bff9d0fab: lib.numa: gracefully handle unset PATH in assert_irqbalanced_disabled
  • b97ccc25c: Revert "snabb-softwire-v2: allow more than two queues"
  • 21013be89: Revert "snabb-softwire-v2.yang: documentation edits"
  • f903e0f84: Revert "snabb-softwire-v2: add default for leaf"
  • 0288de4ac: lib.yang.data: parse defaults of nested leaves
  • eea42d2b6: lib.numa: do not migrate pages from preferred node
  • 1588452ed: lib.protocol.ethernet: fix truncation bug in ptoi
  • a6734ae53: lwaftr: qualify shared_next_mac_key with vlan
  • c1c4854d1: core.packet: fix account_free physical capacity formula
  • 8c44e614d: apps.intel_avf: fix IRQ setup for additional queues
  • 18fc9f5bf: lwaftr: fix bugs introduced in 75a3373e
  • 3c669a905: lwaftr: create snabb-softwire-v3
  • faeb6ffaa: snabb-softwire-v3: fix mistakes in leaf descr.
  • 2dddff659: snabb-softwire-v3: Add default value for error-rate-limiting/packets
  • eff1a9ae4: snabb-softwire-v3: allow more than two queues
  • 1f8ee8172: snabb-softwire-v3: external-interface/device -> external-device
  • d75f07930: lwaftr: use snabb-softwire-v3 schema
  • e06c198aa: apps.ipv4.arp: add request/reply counters
  • e3b400ac1: apps.lwaftr.ndp: add NS/NA counters
  • 6f5e90577: apps.ipv{4,6}.echo: add echo I/O counters
  • bd914c121: lwaftr/snabb-softwire-v3: state additions and fixes
  • 37cfb3625: apps.intel_avf: add option to add additional macs
  • 2bfba7132: apps.intel_avf: update README.md
  • b112c94ea: lwaftr: configure internal-interface multicast MAC address for intel_avf
  • d3a30c6bf: lib.protocol.ethernet: remove ptoi apps.connectx: use lib.macaddress instead of ptoi
  • ee37d77d0: apps.intel_avf: add multiqueue/rss support
  • 451aeecf6: apps.intel_avf: add VLAN filter/stripping/insertion support
  • ce533cf73: lib.hardware.pci: add Intel X710 device info
  • 3a39748b6: intel_avf: move bits() constructor out of fast-path
  • b2ac1c3a9: apps.intel_avf: move device stats to pci/
  • 7566bcf3c: snabb top: handle devices that do not specify speed
  • dae106165: apps.intel_avf: fix IRQ setup for additional queues
  • 5ccf47982: apps.intel_avf: add option to add additional macs
  • d22af4f19: apps.intel_avf: update README.md
  • dc4042651: apps.test.synth: add packets option
  • 355051b03: intel_avf: truncate CRC from received packets
  • d3fd3e722: intel_avf: more robust HENA configuration
  • 991acd98e: intel_avf: fix tests, separate RSS tests, add VLAN, multicast tests
  • 6845091b2: intel_avf: add explicit VLAN test case
  • 9c83c2561: intel_avf: fix rx/tx packet lengths
  • c1220bed5: apps.mellanox: add ConnectX 6 type
  • 5b68b01f3: apps.mellanox.connectx_test: add multicast and checks
  • cc59d6456: apps.mellanox.connectx: implement stop()
  • ad4c941cf: apps.mellanox.connectx_test: exercise stop()...
  • d36174e00: apps.mellanox.connectx_test: add match test
  • bf1322e74: apps.mellanox: add README
  • 22f950cd9: lib.hardware.pci: add mellanox MT2892 Family [ConnectX-6 Dx] model
  • ffb0ba950: apps.xdp: only run rxtx_match selftest if SNABB_XDP_NQUEUES=1
  • 1a5f7c47f: apps.xdp: mark stop() NYI / not supported
  • 7b0d35bce: lwAFTR 2022.01.13
  • 1531f37d9: apps.ipv4.arp: fix selftest
  • 3f3c40cf0: lwaftr: update end-to-end test data
  • 247ef95c1: core.packet: revert globalization of newly exported variables and functions
  • 5f045e7d6: core.app: setvmprofile unconditionally
  • 52048a93a: Fixup previous commit: remove unused profile option in lib.ptree.worker
  • 862af2cf7: Fix regression in config-migrations
  • 992a84511: lwaftr migrate-configuration: support snabb-softwire-v2, fix bugs
  • 6bd9e7aa6: snabbnfv: do not load ingress_drop_monitor
snabb - Snabb 2019.11 “Efraasia”

Published by eugeneia almost 5 years ago

Lots of new gadgets in this release: a Snabb driver for Intel AVF based Virtual Functions (virtualized NICs) such as provided by Intel X710 and XL710 based NICs, a new optimized Poptrie implementation for all your longest-prefix-match needs (lib.poptrie), VMDq support for Intel i350 based NICs, support for 256-bit AES keys in lib.ipsec, and much broader support for YANG language features in lib.yang. As usual, this release includes numerous additional small improvements, optimizations and bug fixes.

Changes

  • #1314 #1381 #1382 #1438 Additions , optimizations and bug fixes for lib.ipsec. New: support for AES 256 (256-bit keys).
  • #1443 Fixed a bug in statistics collection in apps.intel_mp (Intel 52899 driver)
  • #1442 Fixed a bug where belated opening of auditlog would fail due to initial JIT activity (open it earlier)
  • #1397 Added a fast, generic Poptrie implementation (lib.poptrie)
  • #1390 Fixed a bug that prevented shared packets from being released to the group when a process is stopped
  • #1416 Added support for YANG enumeration types to lib.yang
  • #1357 Various bug fixes and improvements to snabb loadtest
  • #1431 Fixed a bug in core.memory that caused SIGSEGV handling to fail to recent RedHat Linux distributions
  • #1427 Fixed a crash in snabb ipfix probe when the duration flag was not provided
  • #1423 lib.hash.siphash: improved compatibility with reference implementation
  • #1421 core.app: simplified loop structure of engine to help the JIT find better traces
  • #1353 Added VMDq support for Intel i350 based NICs to apps.intel_mp, and fixed some statistics collection bugs for i350/i210 based NICs
  • #1376 lib.yang: changed implementation to use native Lua number keys for parsed YANG data where possible
  • #1435 lib.yang: added support for unique, min/max, and choice keywords
  • #1436 apps.intel_mp: make sure PCI device is unbound from Linux driver before mapping its memory into the Snabb process (previous behavior caused crashes with recent Linux kernels, see issue #1286)
  • https://github.com/igalia/snabb/pull/1231 lib.fibers.timer: fixed a bug in timer event promotion
  • https://github.com/Igalia/snabb/pull/1224 lib.yang: added support for if-feature expressions
  • #1448 Merged lwaftr release v2019.06.01 into Snabb
  • #1444 apps.intel_mp: added support for Tx->Rx MAC Loopback mode, and fixed related bugs
  • #1446 Added apps.intel_avf, a driver for Intel AVF capable NIC virtual functions (Intel X710, XL710, ...)
  • #1445 #1433 #1427 Various minor bug fixes and improvements
  • #1432 Bug fixes and improvements to SnabbBot, our CI robot

Contributors

Alexander Gall (4):

  • 5724ff25d: lib.yang.schema: implement semantics for enumeration type
  • 4989b99f5: lib.yang.data: add test-case for enumeration type
  • 8c616b0cb: core.app: use implict pull/push loops in breathe()
  • edc07fca7: lib.hash.siphash: add option to comply to reference implementation

Andy Wingo (28):

  • a805f9241: Re-enable NUMA memory binding on newer kernels
  • 3809be24b: Detect version mismatch when loading compiled YANG configurations
  • 69764b582: Remove bogus lwaftr benchmarking file
  • 7f2a1d25b: Fix PCI affinity check for --preferred NUMA binding
  • a27d8b3a3: Add more system performance diagnostics
  • ecd443c76: Detect irqbalance presence and suggest remedy
  • 9f7177bc9: Fix uninstall advice for irqbalance
  • e1af4f9d6: Improve snabb lwaftr run --help
  • a004e9a43: Fixup to snabb lwaftr run --help
  • fbf585ef5: Refactor packetblaster lwaftr to re-use vlan, arp, ndp, v4v6
  • 7886344a2: Separate B4 and internet lwaftr load generation apps
  • 14c725520: Allow different IPv4 MAC addresses and VLAN tags; fix bugs
  • b63f1969e: Fix whitespace
  • 1b74cf9ce: Fix source IPv6 from B4, and better interleaving of streams
  • e7a60d3f0: Fix frame sizes. Update test files for fresh checksums. Allow for ordering differences between v4 and v6 packets. Stop in a more robust way.
  • 94d123a27: Fix inc_ipv4
  • f1050ec10: Start ingress drop monitor in grace period
  • bd822d9c0: Bump snabb-softwire-v2 revision dateD
  • 516306afc: Add v2018.09.03 changelog
  • acd54d905: Update version to v2018.09.03
  • b4c907319: Fix promotion of lib.fibers.timer events from outer to inner wheel
  • 0e9e5d918: Make memory monitor a timer instead of an app
  • cc4acb5a0: Revert "lib.ptree: do not aggregate (ignore) counters that are symlinks"
  • 79075f595: Snabb lwAFTR 2019.06.01
  • 157723831: Fix markdown syntax
  • be0656089: Add link to upstream release notes
  • a283e7b13: Add link to YANG module
  • c2015ea0b: Fix release benchmarks to always specify CPU

Asumu Takikawa (1):

  • 8e8ad6447: ipfix: fix done state checking in ipfix probe

Luke Gorrie (1):

  • 70dd8799b: README.md: Update Slack invite link

Max Rottenkolber (160):

  • 25a8d95c3: snabb_bot: delete $tmpdir on startup
  • 971627f04: snabb_bot: configure git user name and email
  • 29e230361: snabb_bot: add timeout to cushion broken test cases
  • 6d1594aee: snabb_bot: print SNABB_PCI_INTEL1G{0,1} / snabb_doc: set git user/email
  • 44f6ab049: snabb_doc: fixup git user/email config
  • 59b1b82bc: apps.ipsec: add tunnel mode esp app
  • 17e8c6cc3: snabbmark esp: add rudimentary PMU analysis
  • 461f195a2: lib.ipsec.aes_128_gcm: add rudimentary PMU profiling to selftest
  • 9d14b98ed: snabbmark esp: fix bug where packets of wrong size were constructed
  • 7f75dc101: snabbmark esp: minor changes
  • bb72e66bd: lib.ipsec: add missing licensing headers
  • 53ae8bdf6: lib.ipsec.esp: correct bogus note about IP fragment handling
  • 531170a77: lib.ipsec.esp: avoid lib.protocol.* on the fast-path
  • 43d498a26: lib.ipsec.esp: use full 16 (instead of 12) byte ICV
  • 66a0dbb70: lib.ipsec.esp: keep lib.protocol.esp*
  • 65f0a75e1: snabb_bot: fix bug that compared benchmark results with wrong target
  • f49720af5: snabb_bot: make checkout/merge more robust
  • 2814b7b9b: intel_mp: fix broken per queue stat accumulation
  • 9c4e3ee60: intel_mp: VMDq support for i350
  • 33c091209: apps/intel_mp: RQDPC is actually an RC register on the i350
  • 283d6a828: loadtest find-limit: fix some edge cases and bugs
  • 90c3be721: snabb_bot: fix bug in benchmark regression testing
  • 32586f3e8: lib.yang.data: represent some number-keyed lists as Lua tables
  • 8269afeb4: lib.yang.binary: support number-keyed Lua tables in ad-hoc grammars
  • 07821cf88: lib.yang.path_data: s/string_key/native_key
  • 796c177a6: lib.ipsec.esp: optimize padding by specializing for power of two
  • 5b86f9409: lib.ipsec.esp: fix a packet leak in :resync()
  • 2bd39aee5: intel_mp: fix 1G blast selftest via use of RateLimitedRepeater
  • 9ea857e97: intel_mp: port more vmdq tests to 1G cards.
  • afc971b71: intel_mp: revert queuing -> queueing spelling change from 9c4e3ee603
  • 691b5a1c6: lib.yang.data: return single value from normalize_id
  • 1bff54323: lib.yang.path_data: add unique restriction consistency checker
  • 5d00ae90e: lib.yang.path_data: run consistency_checker in parser_for_grammar
  • c7a655e11: lib.ptree: run consistency checker on initial_configuration
  • 1c9642e16: core.packet: release packets to group freelist on shutdown
  • ac45e3ff6: lib.interlink: fix an off-by-one bug in the tostring method
  • 553378201: core.packet: do not append .freelist in freelist_create/open)
  • 78cf3c32f: main.shutdown: unlink supervisor shm root
  • ace9b3264: Revert "main.shutdown: unlink supervisor shm root"
  • c6b32f41b: core.packet: require explicit initialization of packets freelist
  • 482c3a510: Work-in-progress implementation of Poptrie
  • 3234b1fef: Add basic documentation for lib.poptrie
  • 9343b36ab: lib.poptrie: fix building empty RIB and repeated calls to build()
  • 4e48a25f6: lib.poptrie: refactor :build() into smaller methods...
  • 77cd0a737: lib.poptrie: implement direct pointing
  • b5fcbfb3c: lib.poptrie: do not print zero value leaves in fib_info
  • 92bc6c637: lib.poptrie: optimize build(), cover direct pointing in PMU analysis
  • 3fcc794be: lib.poptrie: make s (bits used for direct pointing) configurable
  • db1320f08: snabb_bot.sh: do not attempt to initialize submodules
  • 703eb9a49: intel_mp: work around flaky mirror test on i350
  • ab7719731: lib.yang.data: make table_native_key a bit easier to follow
  • 17871d460: lib.yang.binary: minor coding style change
  • d29763d1f: intel_mp: fix a bug in VMDq BAM (bcast accept) handling for the i350
  • 6be165ea3: intel_mp: add VMDq broadcast tests
  • 69b6ca1e0: intel_mp: fix selftest from the future
  • 7b52cf894: lib.yang.data: fix bug that prevented top-level choices being parsed
  • 0893b1653: lib.yang.data: fix bug when parsing list members of choice cases
  • 5eb385785: lib.yang.data: correctly parse choice case short form.
  • 6ff14eff5: lib.poptrie_lookup: incorporate peter’s suggestions
  • bed7ec21d: lib.poptrie_lookup: comment formatting
  • ab0cfaf83: lib.poptrie: extend to support lookup32/lookup128
  • 4e7168096: lib.poptrie_lookup: fix bug where offset was not set correctly
  • 6211b05fb: lib.poptrie_lookup: optimize lookup128, prefer 32-bit operations
  • 4f8ed1f1e: dasm_x86: import ADX/BMU/FMA3 instruction support from LuaJIT:v2.1
  • 7283f7104: lib.poptrie_lookup: use BMI2 instructions when available
  • 5ca45780a: lib.poptrie: avoid cache thrashing in micro benchmark
  • 55f778873: lib.ptree.support: fix bug related to native table keys
  • 355b03359: lib.poptrie: fix out of bounds read in add
  • 4c88093fc: lib.poptrie: avoid slow down incurred by ASM routines as upvalues
  • ff13dd2d4: !fixup previous commit
  • 2b613adba: lib.poptrie: reformulate extract
  • e22dcd8d5: lib.poptrie: add test scaffolding for testing different configs
  • 4e9379bb4: lib.poptrie: update a comment
  • 7f92167d8: lib.poptrie: cache generated ASM code
  • 8419101f0: lib.poptrie: expose micro-benchmark parameters via env vars
  • 6a684a96c: lib.poptrie: fix up to previous commit
  • 125facdf1: lib.poptrie: update README
  • 1baf303bb: lib.yang.path_data: fix bug where key_ctype was preferred over native_key
  • 3f16ef739: snabb_doc.sh: support multiple tags pointing at the same commit.
  • 7a7110ee5: core/memory.c: fix mmap usage in SIGSEGV handler (see issue #1429)
  • f95e33b73: scripts/dock.sh: do not expose unset environment variables
  • 6d888d0d1: snabb_bot.sh: run as many tests as possible, don't abort on failure
  • 718f8ebb8: lib.yang: implement min-elements and max-elements restrictions
  • 1d20f3cbd: apps.intel_mp: fix race condition in test_10g_counters.sh
  • 71ef55f96: lib.yang.path_data: handle key_ctype in consistency check visitors
  • ab7e5cd00: lib.yang.data: fix influxdb_printer_from_grammar to use native_key
  • c9adc44b7: lwaftr: iterate over native keyed tables with pairs
  • 64fa68b94: lib.ptree.support.snabb-softwire-v2: translate native tables correctly
  • e80cf0014: lib.yang.path_data: properly handle ctables in consistency checker
  • 0bfa3d494: lib.hardware.pci: separate PCI resource opening from memory mapping
  • 94c5630ca: lib.hardware.pci: reformulate shutdown for shared PCI resources
  • 817c8d7a4: core.lib: accept whitespace and error on missing bytes in hexundump
  • 6110b285a: apps.keyed_ipv6_tunnel: fix hexundump usage
  • 59c767e84: lib.ipsec.aes_128_gcm: use new hexundump capabilities
  • 7304f4b8c: lib.ipsec.aes_*: add support for AES256
  • 93ffd0443: lib.ipsec.aes_*: reorganize, expose AES256-GCM to lib.ipsec.esp
  • 4add8425f: lib.ipsec.aes_gcm: document usage
  • fec6c57cc: lib.ipsec.aes_gcm_avx: support large AAD, extract AAD hashing
  • 51a1389a3: lib.ipsec.aes_gcm_avx: some edits and clarifications in comments
  • b4f12f0fc: apps.ipsec: extend Linux interop test to cover AES256
  • 06e7ac789: Fixup merge conflicts/gaps between 68817961b and cf8a711f8
  • f2d5b0ee4: lwaftr: instance.queue is now a native table (iterate using pairs)
  • dd9a69aca: intel_avf: tweak tests for single port operation
  • 707aee56d: lib.rrd: fix a bug due to implicit casting
  • 05be3a029: lwaftr/apps: add memory_info.MemoryLog app to log mem in use to RRD
  • 7d56e5174: lwaftr: configure MemoryLog app for lwaftr instances
  • 286a31fe7: lwaftr: replace MemoryLog w/ MemoryCounter (ptree man. gen. rrd)
  • 848ed4ac3: lib.gauge: add SHM object type for gauge values
  • 77b14006f: apps.lwaftr.memory_info: use lib.gauge to expose a gauge SHM object
  • 4c22c414f: lib.pree: support aggregating and RRD generation for SHM gauges
  • 3dec0d397: core.main: open auditlog during initialization
  • 983094ab9: Add new ietf-softwire-br, ietf-softwire-common schemas
  • b019947a7: Add discontinuity-time to snabb-softwire-v2's softwire-state
  • a39495e0a: lwaftr: updates for draft-ietf-softwire-yang-16
  • d3a641dd4: ietf-softwire-br: temp. patch around unsupported if-feature bool exp
  • b188164c6: program.lwaftr.tests.propbased.genyang: fix a bug wrt empty structs
  • 2e51c8609: lib.ptree.support.snabb-softwrite-v2: add test cases, fix bugs
  • d6b6ea0d6: lwaftr: map ietf instance name to (singleton) lwaftr name
  • 5a297207c: lib.ptree: pass current config to translator.get_state
  • d3d1f04ac: lwaftr/tests/test_env.py: add opt. expected ret. code arg to run_cmd
  • 80ac63853: lwaftr: add more test cases, bug fixes for support.snabb-softwire-v2
  • 7a17eba90: snabb-softwire-v2.yang: declare softwire/b4-ipv6 unique
  • 189c48295: src/Makefile: s/-/_/g in TESTMODS to allow selftests...
  • 7f00119cf: lib.ptree.support.snabb-softwire-v2: remove left over debug prints
  • fc0877e0c: lib.ptree.support.snabb-softwire-v2: fix error reporting bugs
  • 59d5f3867: Revert "ietf-softwire-br: temp. patch around unsupported if-feature bool exp"
  • f8da9c71c: lib.maxpc: add match.string
  • caf686dc9: lib.yang.schema: implement parsing of YANG 1.1 if-feature expressions
  • c3df85ae8: lib.yang.schema: remove debug tracing (see previous commit)
  • 2a73e9eb6: Add `snabb rrdcat' tool to summarize RRD archives
  • 7b9fb520e: intel_mp: count total packets dropped in rxdrop counter
  • cb17d4369: intel_mp: include sum of all queue drop counters in rxdrop
  • 433f716ce: snabb rrdcat: plot error lines only when bounds are known
  • 815ac5987: intel_mp: implement mac_loopback option for 82599 chips
  • 8879ff05b: intel_mp: Enable VM TX loopback in VMDq mode
  • cd528a6b4: intel_mp: fix ineffective null pointer test in 82599 transmit loop
  • 555e4c8d5: lib.ctable: avoid GC in lookup streamer
  • ac65ee045: BTLookupQueue: avoid cdata allocation by get_lookup
  • daf7bdbfd: lib.binary_search: cache and reuse generated variants
  • f7d0f8c8e: lwaftr.rangemap: cache and reuse entry types to avoid leak of ctypes
  • 616067ee6: lib.multi_copy: cache and reuse generated variants to avoid leaks
  • 83a8fd046: lib.hash.siphash: cache and reuse generated variants to avoid leaks
  • c17080993: lib.ctable: remove redundant memoization of binary_search.gen
  • 06f83961e: lib.yang, lib.ptree: cleanup temporary SHM files after use
  • 0f695d9c7: timers.ingress_drop_monitor: use app:get_rxstats() (was app:rxdrop())
  • 0c93c4187: lib.ptree: do not aggregate (ignore) counters that are symlinks
  • 20c303c0b: Make previous commit (0c93c4187) robust against races.
  • 775fd288d: Revert "snabb-softwire-v2.yang: declare softwire/b4-ipv6 unique"
  • 791a8a97e: snabb-softwire-v2: warn on duplicate b4-ipv6 when transl. to ietf
  • b3916a2ca: support.snabb-softwire-v2: make sure instances share no state
  • 6ec7fa217: apps.test.synth: fix some bugs in 4a04933 (add random_payload option)
  • 88d2a56ab: intel_avf: execute test via selftest.sh
  • f8949837d: intel_avf: minor cleanup
  • d1bd9fdef: intel_avf: extend, and further document reset delay
  • fece51f0d: intel_avf: fix truncation of outbound packets
  • 3d47c0f54: intel_avf: integrate with lib.hardware.pci device_info
  • 7f463052a: intel_avf: async stats synchronization
  • 2bd2e4e57: intel_avf: alias SHM direction to canoical pci/ location
  • ac979981a: intel_avf: ensure RSS HENA caps are disabled
  • e231faa9c: intel_avf: add rxdrop()/txdrop() methods (used by loadtest)

Pete Bristow (9):

  • 31c8d7877: Initial import of intel_avf driver
  • 4a0493364: expand synth to generate random payloads and include a packet id, add apps.test.npackets an app that only sends n packets from input to output
  • e9ee3b92b: add a back2back test to intel_avf
  • bde5725e1: Expand intel_avf/tests/back2back to test mbox_sr_stats and deliver 100million packets
  • cc9fd9a50: Fix the issues in intel_avf discovered with the previous test.
  • ee2c68800: roll back to mbox_sr and remove unexplained / untested sleep
  • 19b616497: add more tests and make sure they pass, add stop() support to app
  • f752f6dc6: FACTPS was missing a type parameter
  • e50404a2f: only allocate mbox queues if required
snabb - Snabb 2019.06 “Deltadromeus”

Published by eugeneia over 5 years ago

This long awaited release is the first Snabb to ship with RaptorJIT and runtime support for the Studio diagnostics environment. The Snabb top monitoring tool is replaced bya more interactive rewrite, and its basic SHM object listing functionality is spun out to the new snabb shm utility. In addition to bug fixes and optimizations, this release also includes improvements to lib.yang and our IPv6 fragmentation apps as well as support for current versions of nDPI.

Changes

  • #1316 Integrate RaptorJIT with Snabb
  • #1401 Merged lwAFTR release v2018.09.02
  • #1386 Add snabb shm: simple tool to print information about Snabb SHM objects
  • #1384 apps.ipv6.reassemble: add expiration of incomplete reassembly buffers
  • #1383 Add path MTU discovery to IPv6 fragmenter (apps.ipv6.fragment)
  • #1275 lib.checksum: optimize IP checksum computation using DynASM
  • #1368 Support nDPI 2.X in ljndpi
  • #1380 Fix a bug in apps.vhost.vhost_user with regard to NUL-termination
  • #1385 Move logger in core.lib to lib.logger
  • #1392 VlanMux: optimize tag pop/push (apps.vlan)
  • #1394 #1395 #1396 Ctype diversity related optimizations

Contributors

Alexander Gall (22):

  • 796597d4c: lj_trace.c: unpatch blacklisted bytecodes when flushing traces
  • 2ad681783: ipv6.reassembly: avoid packet cloning
  • 0463915d5: ipv6.reassembly: expire stale reassembly buffers
  • ffd584c36: ipv6.reassembly: reduce scope of local variables in handle_fragment()
  • 66a757522: Add PMTUD to apps.ipv6.fragment
  • a9a4b7296: ipv6.fragment: improve performance, reduce garbage
  • 7f0703ada: ipv6.reassembly: perform reassembly in separate loop
  • dd9bb127e: Refactor the logger facility
  • 2bbaa390f: lib.tsc: cache calibration of rdtsc
  • 477b4c534: VlanMux: optimize tag pop/push
  • 8f7678224: intel_mp: fix ctype diversity for txdesc_t
  • cff919c5a: packet: cast pointer arg in from_pointer()
  • f89645823: datagram: canonicalize pointers in packet append() and prepend() calls
  • d06314cbd: lwaftr.ctable_wrapper: add cleanup function to random eviction
  • a44d8e1f3: apps.ipv6.fragment: canonicalize pointers, simplify ICMP matching
  • 4e2869082: apps.ipv6.reassemble: fix packet leak
  • d7a51c6b4: apps.ipv6.reassemble: avoid spurious sort
  • 2e5b5e89b: apps.ipv6.reassemble: copy header from first fragment
  • f7a00fff1: apps.ipv6.fragment: fix bug in ICMP type match
  • 57cc28065: apps.ipv6.reassemble: remove over-eager optimization of module operator
  • d054ec014: apps.ipv6.reassemble: use max_payload constant in packet size check
  • 69473ebd7: apps.ipv6.reassemble: fix check for valid packet length

Andy Wingo (122):

  • 634ab2439: Remove duplicate lj_auditlog.c
  • 2914e5af0: Make file-local auditlog variables static
  • 8119e5d36: Remove references to the profiler, -jv, -jdump, and the like
  • bbd763561: Remove references to -jv, -jdump, and the like
  • 694313518: Revert "Merge pull request #1040 from lukego/dynasm-gc64-nocoerce"
  • a91e4577e: Add ring buffer module
  • 252257c4b: Add basic IO streams
  • 5ceb3c84e: Add file stream implementation
  • ddb6a8ea2: Add full replacement for Lua's "io" module
  • fed20342b: Move io.open implementation to lib.stream.file
  • 5ee535744: YANG output byte streams use new Lua streams
  • 311bea2a4: Move tmpfile() impl to file.lua; add optional perms arg
  • 8a0b09801: More YANG output byte stream refactoring
  • 55deb49bf: Add some helper methods to Lua streams
  • b27a00c58: Remove calls to :align() output to ffi natural sizes
  • a2fda310b: Remove unused open_output_byte_stream function
  • 0e5f45f73: Remove unused lwaftr rangemap load/save capabilities
  • a36169771: Replace lib.yang streams with lib.stream streams
  • 0512a8f42: Remove YANG streams
  • 810c81e8e: Add memory-backed stream implementation
  • 5d1b830fb: Migrate YANG and related libs away from ad-hoc string_io_file
  • 949e663a7: YANG syntax parser is now streaming
  • 7e45ce3cf: Fix use of undeclared variable (refactor residue)
  • 1a33991a2: Fix default EOL handling style
  • ce3b8ade6: Fix error reporting in "listen" test
  • 3805a3af3: Fix top-level scalar parsers to take stream as argument
  • ac8e74ee5: File streams query OS for appropriate block size
  • 91560fa59: Adapt "snabb config listen" to streaming parse
  • 38f1ad4a7: Fix conversion of listen to streams
  • e135a0218: call_with_output_string flushes stream
  • 4129dec31: Add timer wheel
  • 1edd231f1: Add fibers scheduler
  • 1d2e560dc: Add fibers
  • c6beee91c: Add concurrent ML operations and channels
  • f9a37a6b5: Move sleep and timeout-related operations to sleep.lua
  • 18467fb40: Add epoll wrapper
  • 28ca806bb: Rework complete tasks to be more centralized
  • 650f7c28b: Add epoll-based nonblocking file I/O
  • 2974b061c: Supervisor process restores blocking flags on stdin,stdout,stderr
  • 6bf7425cf: Add Concurrent ML buffered channel
  • 149360b58: Convert "snabb config listen" over to use fibers
  • 2a5b52638: Convert lib.ptree.trace to use new streams
  • e26a4b6b6: Adapt new JSON library to return nil on EOF
  • 19e422ce1: Rewrite "snabb config bench" to use fibers and new streams
  • a6654cea3: Replace old ptree JSON library
  • e1b0324e9: Fix fibers sleep self-test
  • 70fde0bb0: Add sockets library that integrates with blocking handlers
  • fb7c091ab: Improve error handling in "snabb config" tools
  • 007be9b31: Add support for orderly scheduler shutdown
  • 37053d267: Convert ptree manager to use fibers
  • 0d7d94a50: Minor cleanup when reading string table
  • 7466c74a9: Fix YANG binary serialization of by-reference cdata leaf values
  • 8ef996b65: Add assertion to Stream:write_scalar
  • fdec9b7e4: YANG binary serialization allows for >4GB files
  • f6f87551f: Avoid copy when reading in ctable
  • ee1a81a6a: Use more relaxed NUMA memory binding policy
  • 855aae74d: Simplify alarm notifications listener
  • 3ee13d91a: Fix socket API change
  • 9bb068eb6: Add condition variables to fibers
  • a6ea6ff2c: Fix typo in channels self-test
  • f3cf8046f: Update fibers file API to allow wait-for-readable ops
  • b47a55f76: Add inotify module to ptree
  • 90dacea99: Add EINTR handling to epoll module
  • f4a4ab9bc: Add :next_entry_time() method to timer wheel
  • af60f950c: Add scheduler :main method
  • b0bc5b316: Use fiber main method in programs
  • 598745a7f: Restore schedule_tasks call on event waiter
  • 5426d1807: Fix duplicated method
  • 032d187ae: Minor scheduler refactor
  • cd99fe39d: Inotify is_dir() function uses lstat
  • c16edb746: Make lib.comma_value work better for large uint64 values
  • 5c8cabdbf: Rewrite "snabb top" with fibers
  • b74014c07: Fix error case for histogram summaries
  • 4fa0ca870: Arrows change focus in snabb top
  • 600cbee19: Remove snabbvmx top.
  • 270bddb30: Fix "snabb lwaftr query"
  • 1914a8633: Add round-robin database library
  • bfe4f3dff: Back off RRD version to 3
  • c29f09544: Refactor ptree manager treatment of counters
  • d08292e56: Fix reading of "snabb config" configurations from stdin
  • 225878d74: Make sure recursive inotify drains all nested events before returning
  • 57b8c18ce: Swap argument order for file names and initargs in rrd create
  • 5eedfef7e: Fix RRD bugs
  • 8a7ab76a2: Ptree manager samples worker and aggregated counters into RRDs
  • 81a54ed56: "snabb top" reads rrd files
  • 59d372da1: snabb top doesn't monitor itself
  • 5d033e1b7: Add "interface view"
  • abe2d5834: Improve spacing and column width allocation in snabb top grids
  • cf8992fef: Switch "snabb top" to prune state tree in UI
  • 2e95609a5: Wrap "snabb top" counter leaves in an object
  • 6530a0d03: Sort rrd lookup results
  • c3fef254e: top: Add ability to skim back and forward through time
  • 1e77c9d29: Add fallback version of directory monitor if inotify is unavailable
  • 2ba44e83f: Make alarms codec use stream i/o routines
  • 6806b5991: Tweaks to make alarm encoding have less overhead
  • 74e78e3bb: Cache array types in stream.lua
  • d6a8c9868: Fix another snabb top problem
  • 53f4e05cb: Update "snabb top" docs
  • 607f7c1ed: Add ptree docs on counter collection and aggregation
  • a533ed413: Fix typo
  • 26812c6cc: Remove some indirection in alarm_codec
  • 34ec6c8f7: Fix broken encode_raise_alarm
  • 15be8033e: Simplify alarms API
  • 93090aedd: alarm_codec doesn't require unpacked args
  • 047f6e70e: Fix bug introduced in previous commit
  • a99cd300b: Ptree extends alarms by installing alarm handler
  • 3930e905f: NDP uses a pre-allocated pseudoheader
  • 0cb4122da: Remove some loops-within-loops in stream.lua
  • dbdb0d1f8: Micro-optimizations
  • 993071585: Fix to alarm:raise
  • 84c290115: Expand on some Changelog features
  • 6ce2990ce: Minor wording changes around the RRD feature
  • dd54c802f: Revert "Show rxbits and txbits instead of bytes"
  • 7b75fbf8a: Ensure vhost-user socket paths are NUL-terminated
  • 44ef1270e: intel_mp app instantiations make stats symlink counter forest
  • 5fa0d15bd: Remove unused symlink creation routines
  • edad14ba8: Minor formatting change
  • 71bf2190f: Update l2vpn for intel_mp stats change
  • a24bb8da5: Remove extraneous diff
  • fa913d56f: Remove more extraneous diff
  • 8f548697c: Revert "Minor formatting change"
  • 144c589a6: intel_mp: Don't eagerly open shared counters

Asumu Takikawa (30):

  • b145d272c: tap: bump selftest timeout to 0.05 seconds
  • c4681a6c5: Use virtual instead of profile time for vmprofile
  • fdf5d02cb: Restore use of LUAJIT_CFLAGS
  • 4bd9d6edf: intel_mp: store shm stats in global directory
  • 2a638fec6: Go back to avoiding setting run_stats
  • 0d641de05: inotify: adjust is_dir to allow symlinks to dirs
  • 373d1951a: Filter queue counters based on enabled bitmap
  • 1c536e2ef: intel_mp: add a new test for rxcounters & workers
  • c40f0ea0c: snabb top: refactor queue stats filtering
  • af8c75fb5: snabb top: fix worker nesting with shared pci
  • 5388c9876: intel_mp: add 10g test for shared RX counters
  • 6b72001f9: Use virtual instead of profile time for vmprofile
  • 504e2a64b: Start changelog for lwAFTR v2018.06.01
  • 102f99096: Add a benchmarking script for lwAFTR releases
  • fd0f29ebf: Adjust benchmark to check SNABB_PCI env vars
  • 929bb7a19: Add CPU env var for lwAFTR benchmark script
  • c02519f2c: Provide info if lwAFTR errors during benchmark run
  • d627abd80: Fix typo in env var check in benchmarking script
  • ece8074a4: Parameterize CPUs used for loadtest in benchmark
  • cf5dc3fdf: Set CPU affinity on two CPUs for RSS release test
  • 79d454611: Use self.shm frame in get_rxstats / get_txstats
  • 07c3be894: Adjust test_10g_counters.sh for new location
  • 5b217941b: Remove remove_stats_symlinks call
  • 2ae4ea488: lib.yang.data: use stream ops to open test data
  • 89d5e6eb6: lib.yang.parser: use error() instead of os.exit()
  • 9703dd02d: intel_mp: fix delayed counter read
  • bcbc3fec6: Add changelog for lwAFTR v2018.09.01
  • 987f60c17: snabbnfv: bump telnet timeout for selftest
  • 90e9b679d: ljsyscall: ensure size matches mask for get_mempolicy
  • 08ff28f03: ljsyscall: ensure size matches mask for get_mempolicy

Ben Agricola (4):

  • 39dc2458d: Fix notification_peers is nil error in ptree
  • af4363e1a: Fix incorrect status sent as alarm-notification
  • e0a5738dc: Add alt-resource support to yang.alarms.
  • ebfb2c611: Add missing cltable include

CapsAdmin (1):

  • fabab0060: x64/LJ_GC64: Fix asm_fuseloadk64()

Darius Bacon (1):

  • 559113ac0: correct spelling

Dibyendu Majumdar (17):

  • 0dda7b270: issue #8 baseline checkin of Lua 5.1 test suite
  • e6fc70247: Create README.md
  • e832e541b: Update README.md
  • 1cb616175: issue #8 initial attempt to get the tests running
  • 0497c7b23: issue #8 initial attempt to get the tests running
  • 45b22589b: issue #8 initial attempt to get the tests running
  • b11631383: Update README.md
  • ea00addbe: issue #8 add 5.2.2 tests
  • ef23b70ed: issue #8 add 5.2.2 tests
  • 6e2030f1e: issue #8 add 5.2.2 tests
  • a1dccdb03: issue #8
  • 318dedd6d: Update README.md
  • 8e20d26a6: Update README.md
  • 2faff3564: issue #8 add strings.lua and literals.lua to the execution
  • ad494d6df: issue #8 add strings.lua and literals.lua to the execution
  • 6fe6fbe77: add coroutine.lua
  • e7b029b02: issue #8 removing tests

Diego Pino Garcia (154):

  • 044a45823: Enable vmprofiling in workers
  • 92adb41af: Hoist enable_auditlog out of loop
  • 360a50480: Implement alarm-notification logic
  • 129f33cdb: Basic notification push mechanism
  • 7fa656a65: Fetch notifications from alarms state
  • 911917d81: Serialize notifications to JSON
  • f4e9a7e6b: Add alarms listen subprogram
  • 65df2caf1: Push notifications over socket using a queue
  • 3feb45124: Fix error while parsing ipv4 and ipv6 prefix
  • f8bc5705f: Remove unused function
  • 3e7786803: Fix impendance mismatch in ipv4-prefix
  • 6334a302e: Add test case for inet:ip-prefix
  • b45785145: Adapt alarm notifications management to new API
  • a46612073: Add identificator name in alarms
  • 050c9fbb9: Add basic support for influxdb format
  • 2911d5add: Prevent potential error if value is nil
  • a8180aa7b: Initialize root variable if nil
  • 031e69ecc: Detect nodes uniqueness as a function of the schema
  • cf3520981: Fix several errors in serialization of arrays
  • 682a0efb6: Escape influxdb tags and values
  • 07a0dc83c: Add influxdb printer tests
  • 39e932579: Disambiguate keys
  • 89d7b19b5: Use '%position' as tag key for leaf-list nodes
  • 8352fd5b9: Schema markers need to be reset on each load
  • 42717a9fe: Test more data types in test case
  • a25deebc1: Handle integer data types
  • f7ee4994e: Append '/' to uniquified names
  • 43c0636e6: Collect node uniqueness in extra pass
  • 9f8dda9a5: Set TTL=64 in ICMPv4 echo response
  • 18f50c8b9: Set hop_limit=64 in ICMPv6 echo response
  • aafbe6e0f: Add end-to-end tests for pings with TTL lower than 64
  • 150420087: Simplify monitor behavior
  • 19ff59814: Add function is_iface to core.lib
  • 93a32fe20: Indent
  • 83f83162b: Support tap interfaces in v4 and v6 arguments
  • ca2a3f06d: Support tap interfaces in on-a-stick mode
  • 55d387e8a: Change load_tap to load_iface using RawSocket
  • f49c9c6b4: Change load_on_a_stick_tap to load_on_a_stick_iface using RawSocket
  • fd4ab223b: Reduce size of packet
  • e12cc2bfc: Rework function 'is_iface'
  • 4842d8160: Rename references to iface as kernel iface
  • d88e019ef: Open channel in worker for listening to directory events
  • 3abdc1f44: Initialize aggregated counters in manager process
  • 918bd28e4: Cache counters
  • 3039ce8fb: Archive counters on delete
  • 569116936: Move fiber for managing aggregated counters (creation and destruction)
  • 606074452: Create fiber to update aggregated counters
  • b5f26d879: On archiving counter, perform counter.delete
  • 4aeeafcf9: Merge create and update counter logic
  • c02c07946: Sum counters of all workers and commit on each iteration
  • 514cd519f: Emit cancel operation on workers shutdown
  • ef4f9b8aa: Rework archive_counter
  • 4134c1b59: Call scheduler shutdown for 0.1s or until it returns true
  • c7388a22d: Sum of archived aggregated counter should be accumulative
  • 5e7793a45: Rework aggregate counters logic
  • 5e1fced0c: Fix aggregated counter retrieval
  • f5fd15efb: Fix attempt to index a nil value
  • 2a6498e1a: Implement leafref value
  • a510b7178: Add leafref test
  • 4db39d7c3: Implement consistency checker
  • 84397f829: Resolve circular reference by moving consistency code to path_data
  • ec0223ad2: Visit leafref nodes with an iterator
  • d4cc98da0: Implement require-instance constraints in leafref
  • 2224f9d91: Precompute getter outside of calling function
  • 618d552fc: Synchronize daylight-save flag between utc time and local time
  • 2e59e6db2: Fix parsing of ISO8601 date format
  • 60b37d4b4: Show command 'listen' in list of available 'alarms' subcommands
  • 0e306ee36: Remove undeclared variable
  • 660e9b2bc: Enable leafrefs in ietf-alarms
  • 720a1d740: Run consistency checker after loading configuration
  • 19d14c965: Improve parse_path
  • 63355f437: Getter should be of parent path
  • 56ad8ee5a: Return path if path is absolute
  • 8152cf7df: Resolve current() to current node_path
  • 597d79f89: Rename arguments
  • bc2333e6f: Only add leafrefs if successfully obtained a getter
  • d1b8ae591: Add consistency checker of ietf-alarms
  • 4651a92a1: Fix typo in lwAFTR configuration docs
  • f4bb339fa: Print out value as mac address if label is 'macaddr'
  • 7dd4fe074: Fix undefined variable
  • 4af258a21: Add guard when retrieving speed and macaddr values
  • 95e57ccf8: Fix function require_splitter
  • 6c4e92827: Determine whether a configuration should run on-a-stick
  • cdd79cfa2: Add on-a-stick assert and prepare migration
  • e649e6049: Scale packet drops
  • ed5316165: Initialize stats queue number
  • c444683b7: Set run_stats true for all nic setups
  • 6c1dd955b: Sync only statistics if instance is master
  • 004b01d3d: Sync stats for relevant queue only if rxcounter defined
  • 14e6b472a: Fix test
  • 1c3115bd8: Update some stats counters always
  • b57d9ade1: Sync device stats refardless of run_stats value
  • 227f996bd: Iterate queue stats registers in order
  • a1cbf7266: Honor txcounter when updating queue stats
  • 709b99fb3: Blacklist of counters which should not be aggregated
  • 0c2785f14: Check sync_timer exists before calling it
  • 30412f08c: Skip blacklisted counters in aggregated counter list
  • e68b756b1: Skip blacklisted without goto and refactor blacklisted
  • 5d4683a1b: Update Snabb lwAFTR version
  • b026f2155: Improve CPUSet:acquire warning message
  • 51dc6aae7: Reintroduce subcommand compile-binding-table
  • 0faa67739: Modify generate-binding-table to generate a configuration file instead
  • b45115577: Rename generate-binding-table to generate-config
  • c19905f1d: Rename compile-binding-table to compile-config
  • 6fb022b4b: Update lwAFTR README
  • 75e61ecf5: Fix test
  • d742a6bb8: Fix indentation
  • e27f506b6: Change instance template to id 0
  • 36283033e: Restrict condition for use of V4V6 splitter
  • 7ba21bfa8: Fix parsing of path in setter and remover for grammar
  • dc67aee94: Remove dead code
  • eb8065753: Do not skip psid=0 if psid-length is zero
  • 436d311ac: Fix error while opening rrd.file
  • fe72a43f9: Show rxbits and txbits instead of bytes
  • 73d0072f0: Print out user-friendly error message
  • 12b8f196d: Fix MAC address comparison
  • cd5aa38c4: Change MAC addresses in configuration file
  • a81e7d288: Select ping6 program
  • 1582927c1: Missing argument in Manager:update_configuration
  • f0c6011fd: Implement checksum computation using DynASM
  • 9a96d576f: Add reference implementation of checksum computation in Lua
  • d42747c73: Convert loops to ifs
  • 9da791f9e: Remove unnecessary label
  • f3969f092: Add at 16 bytes strides
  • 52e845790: Fix comments
  • 12fd28cfb: Sum at 32 bytes strides
  • 1ed8aa519: Remove unnecessary assignment to register
  • a7bac0498: Print out nanseconds by byte and per csum
  • ca059dda3: Check AVX2 and SSE2 are available
  • f38ec15cc: Add function for verifying correctness of new checksum computation
  • 7d5eeab4d: Remove AVX2 and SSE2 checksum computations
  • 24ee9fbac: Use new checksum function by default
  • ced75004f: Add snabbmark checksum subprogram
  • 542a17968: Benchmark checksum using PMU utilities
  • b163b10c0: Fix runtime error in lwAFTR verbose mode (-v)
  • 08ea6a140: Don't print out stacktrace on reporting parsing error
  • e081d27d0: Report parsing errors using Parser:error and not assert
  • 8f8b43b2d: Extract method parse list of cpus
  • 15793920d: Bind manager process to first available CPU in NUMA node
  • b6363558b: Make CPUSet:bind_to_numa bind to CPU too
  • 7845eeca9: Compute available cores by subtracting total cores - isolated
  • b6d50e6ad: Bind manager process to a set of available cpus
  • 56876bd0c: Randomize name parameter in test to avoid collisions
  • 321ee1899: Disable snabbvmx nexthop test
  • b858c9ed3: Allow setting flow-label in ingress packets
  • b75190deb: CPU parsing should return an empty list if string is blank
  • 3c2218f56: Trim list of cpus
  • 14690f2f6: Make flow-label YANG leaf default to 0
  • 03dd8e195: Show nexthop MAC in top
  • c64426a98: Skip memory binding in blackisted kernels
  • 1600fb943: Allow to blacklist kernel versions that are greater or equals than a certain version
  • 8aea0891f: Add assert limit for width value
  • 6489f0e50: Memoize specialized functions
  • 690760456: Save next-hop MAC resolution in ARP and NDP apps respectively

Jessica Tallon (10):

  • d84e63065: Preserve the version number for lwaftr release
  • ce6313e09: Remove unreleased note from changelog
  • 69b5d0a8e: Fix loadtest find-limit arguments for short form.
  • f8fec8d20: Add changelog items for 2018.06.01
  • 3934c3325: Fix few nits in changelog
  • bb25545ca: Fix version number
  • ae0ca397b: Fix errors due to bad strncpy behavour.
  • 012c2935c: Update CHANGELOG.md with 2019.09.02 release
  • 8dbdad074: Add testing 2 instances with 4 queues (RSS).
  • fa0e13e98: Add improvement to benchmarking script to CHANGELOG.md

Lesley De Cruz (18):

  • 46e1fea56: Add first part of test framework: parse tests.
  • a4ec00269: Add index() and extract() to tester module.
  • a4dd1e039: Add run_single() and run() to tester module.
  • 639480bc6: Add filter() to tester module for filtering tags
  • af54fa130: Add verbose option to run() and run_single()
  • b0b3a201a: Add test.lua for running and filtering tests.
  • 24d2b9787: Move some tests into new structure and adapt comments to test runner.
  • 5f331e709: Avoid string.rep in test.lua
  • 0d975fa2e: Clean up test script (args, tag patterns)
  • 885905822: Implement @key: value matching in parse() function of tester module
  • 16b329346: Don't print an empty description in build_codestring() in tester module
  • 765714f63: Put @key: value pairs in separate attributes table in parse()
  • 14bfa87fa: Add --runcmd='x' option to test runner
  • a6e510292: Capture stderr when tests are run externally in run_single()
  • 91cb29bc9: Add workdir argument to extract() in tester module
  • 82586b19f: Improve filenames of extracted tests and error reporting in test runner
  • 1d7aaed64: Moved proposed test runner and examples into 'experimental' directory.
  • 581a474d7: Put subtests in 'test' dir

Luke Gorrie (242):

  • b0a75b45a: Added bench/roulette.lua
  • a71cd6d99: roulette: Stop seeding the random number generator
  • f333908a8: Added bench/PARAM_x86_CI.txt (CI params)
  • 6a66f5d0a: Added LUAJIT_VMPROFILE: new profiler backend
  • 5c74044ad: Added initial README.md
  • 006018f78: Change wording of README
  • d1c0e13d4: Remove LUAJIT_USE_PERFTOOLS
  • 7beb3b29a: Remove all architectures except x86-64.
  • 827e3d68f: Add ifdef-defile config for 'unifdef'
  • 3127cb0b9: COPYING: Switch to Apache License 2.0 for new code
  • 58b063ba7: CONDUCT.md: Add simple code of conduct
  • 40381fa10: Remove unused code.
  • 0213af2a7: Added absolute minimum .travis.yml
  • 1842bc3ae: README.md: Added Travis-CI status badge.
  • f4c8ca693: README.md: Performance regression tests link
  • 7fe552f1d: Revised README.md
  • b270bf026: Remove jit.p, jit.v, jit.dump, disassemblers
  • e2968ccae: Removed dynasm modules for unsupported architectures
  • a168dc60c: README.md: Add quotes, fix benchmarks link
  • 8796648ab: Add LuaJIT/LuaJIT-test-cleanup to submodules/
  • 09b2f3ecc: Add LuaJIT test suite to Travis-CI
  • 9359d140a: Added CONTRIBUTING.md
  • 43e53c75d: COPYRIGHT: Update the COPYRIGHT file inherited from LuaJIT
  • 0e8e9976d: Revised README.md
  • ac49377f4: Remove all uses of LJ_FASTCALL (a NOP)
  • ac6311df6: Remove definition of LJ_FASTCALL (a NOP)
  • 28f0f6bc3: README.md: Indulge in more pithy quotations
  • 5ccbcfe68: Make test 366 pass by adding "move:" to expectation
  • 66b482221: Removed luajit-test-cleanup submodule
  • d5b935481: Add raptorjit-testsuite submodule
  • bfe7ddc6d: Update Travis-CI to use raptorjit-testsuite
  • 9fedd59de: Travis-CI: Added '+slow' argument to test suite
  • 5726c8820: Switch from gcc to clang
  • 78f9acff6: Makefile: Replace minilua with luajit dependency
  • 60aa095ed: Specify build dependencies with nix
  • 112434064: Travis-CI update for nix-based build.
  • a4a5720eb: README.md: Updated build instructions
  • 3a523dee9: default.nix: Commented
  • cd0e41617: README.md: Add link to default.nix
  • 84379d3b7: Remove "amalg" amalgamated build"
  • eb052df4c: Remove '*.bat' console build batchfiles
  • df45ff533: Remove PROFILE and VMEVENT features
  • 972fc1e4a: lib_jit.c: Remove introspection and jit.attach()
  • e2e568975: Remove unused lj_vm_profhook() prototype
  • f7dc94a7a: Define NO_UNWIND
  • 8f2744acd: ifdef-defile: Correct spelling of LJ_NO_UNWIND
  • 5660da339: README.md: Note +NO_UNWIND
  • f7122f197: README: Declared CPU & Optimization policy
  • 5f263f29d: README.md: Add software optimization links
  • fa02289da: Remove DUALNUM mode
  • f458d9ee9: Fix mistakes in DUALNUM removal
  • 170c3ac7a: vm_x64.dasc: Fix FORL type coercion
  • c8b2b1cdb: vm_x64.dasc: Resolve +JIT +FFI -X64WIN
  • 03ad9118d: Travis CI: Test -O3/-O2/-O1/-joff separately
  • d286c9506: Fixed typo in jit=-O1
  • b1cfd2730: lj_asm_x86.h: Fix CNEWI for constant pointers
  • fb32f91b8: Fix IR_KKPTR case of b1cfd2730e42d8a0b8d5f76f0c05dac948925dec
  • b1bc13bde: Compile with -Werror (treat warnings as errors)
  • 065909239: Remove submodule for testsuite
  • c025664d8: nix: pin nixpkgs, pin clang 4.0, run test suite
  • 82487c76b: Travis-CI: Update now that nix runs the test suite
  • 398bd2846: Cleaned up nix expressions
  • 735670897: md5 benchmark 15% speed by removing "slow LEA"
  • 7a3583959: Import revamped nix benchmark framework
  • b1b52db19: Fix markdown goof in README.md
  • f5aa32905: README.md: Add note about where benchmark visualizations go
  • 43181637f: testsuite/bench: Tweaked tests to run longer
  • 7bf26e61d: Add new "uplifting" RaptorJIT logo
  • cb132d173: Add lj_auditlog (very preliminary)
  • 5ea4b741a: lj_auditlog: use msgpack format for audit log
  • 76be28386: lj_auditlog: remove redundant "size" field
  • b302c6eab: lj_auditlog: Add "event" object
  • 2dfdb732f: lj_auditlog: Implement logging of trace_abort
  • 376fb58c4: lj_trace: Log trace aborts to auditlog
  • 0a554696d: Generate separate DWARF debug info
  • 0acc230ed: lj_auditlog: Log the memory containing IR instructions
  • 65675f511: lj_vmprofile: Port & adapt revisions
  • a86ca9373: raptorjit build: remove jit.* and disassembler symlinks
  • 27e600ff4: raptorjit build: hackey update of makefiles and nix exprs
  • c6aae3038: core.app, core.main: drop jit.zone dependency (dangling)
  • f9d7cdd0d: src/Makefile: Shrink by removing obsolete platform logic
  • 6d7a8d218: Add VM generated code to the repository
  • 086b4c920: Exclude generated code from .gitignore
  • 196a9e264: Makefile: s/LuaJIT 2.1.0-beta2/RaptorJIT 1.0.0-alpha1/
  • 3ca3df826: README: Update build procedure description
  • 964cbe445: Makefile: New target 'bootstrapclean' removes in-tree generated code
  • 726cc9c25: raptorjit.nix: preBuild = 'make bootstrapclean'
  • 2cf99248c: check-generated-code.nix: Check if in-tree VM code is stale
  • 9fe396796: .travis.yml: Include check-generated-code test
  • c297923f2: Makefile: New 'reusevm' target & bootstrap-skipping method
  • 8cd8f7e2f: vmprofile: Extend Lua API and add test cases
  • d7fd44e28: testsuite/bench: Remove PARAM_* for unsupported platforms
  • d095eae73: raptorjit.nix: Fix executable name / broken build
  • 8ec77f987: .travis.yml: Update Travis-CI config (was not testing)
  • 076d161eb: check-generated-code.nix: Fixed
  • d27d4d4fc: check-generated-code.nix: Tweak order of diff args
  • 300d14e74: reusevm: Updated generated code
  • 4aaa844b8: lj_jit.h: Save 'parent' and 'exitno' fields in GCtrace
  • fcf7053dd: check-generated-code.nix: Add more verbosity
  • 4a06d4a55: lj_vmprofile.c: Fixed to set file magic number with C API calls
  • 4b4dcb0cc: lj_trace.c: Make trace numbers unique (stop reusing them)
  • 2b8d1a32e: Makefile: Add 'make reusevm' for raptorjit
  • 1d81da757: src/Makefile: Switch "luajit" command to "raptorjit"
  • bbbd4b691: src/Makefile: Fix path to raptorjit.a
  • 55ac7f5d3: snabbnfv.traffic: Remove jit.p and jit.dump calls (not in raptorjit)
  • cf655d95a: lj_crecord.c: JIT pointer difference for all element sizes
  • 4e945d25e: lj_api.c: Fix breakage in cherry-pick of ffd2610139125e6145b5b10af52fda3d07fb8b9e
  • 4cd536f1e: testsuite: Enable Lua 5.2 compat
  • 00e983c4c: src/reusevm: update generated files
  • 88bcf0063: README.md: New introduction
  • 2bc2d951c: README: Make less fuss about Intel Core
  • 9ab33a893: README: shorten intro, move Optimization Resources down
  • 7c2a11ec9: fixup! README: shorten intro, move Optimization Resources down
  • bebdbacca: Makefile: Added reusevm target at top-level
  • cc5668b09: README: Added note about future platform support
  • 1b5c2f27d: fixup! README: Added note about future platform support
  • 86f23d611: README: Re-introduce goal of minimizing non-deterministic performance
  • ad14f4571: GCtrace: Make it possible to map between IR and mcode insns
  • c5923d846: lj_auditlog.c: Log VM definition information
  • f7212ccb9: lj_trace.c: Clear penalty slot after successful trace
  • 01dc84486: lj_jit.h: Increase HOTCOUNT_MAX and expand HotPenalty.val
  • a720595ae: lj_trace.c: Reset hotcount table after flush
  • ce6fbb424: lj_record.c: Relax heuristic for root trace meeting JIT loop
  • e182ae84a: Add jit.tracebarrier() primitive
  • 0be85c638: src/reusevm: update generated files
  • f5d810e97: lj_record.c: Record IFUNC/IFUNCV the same as FUNC/FUNCV
  • b6902f8a5: Remove EXITSTATE_PCREG
  • 089c55ab2: lj_obj.h: Explicitly define implicit VM states
  • bd7266db9: Track last exited trace (lasttrace) in global_State
  • 2b89796f6: vmprofile 3.0 with more information
  • 5cac382f4: lj_vmprofile.c: Fix file header initialization
  • c73491031: Remove feature to compress GCproto.lineinfo
  • 5e673ead6: lj_obj.h: Fix comment about lineinfo (non)compression
  • 7f4787acb: Fix bug in lj_bcread_proto()
  • 17b3c9cdf: lj_bcread.c: Fix warning
  • c1659d94d: VMProfile 4.0: File format revision
  • ae5c6aaed: vm_x64.dasc: Fixes to ensure g.lasttrace is a trace number
  • 0823d9683: lj_vmprofile.c: Fix trace number overflow (into bucket 0)
  • a8b0f320b: lj_vmprofile.c: Add assertions with lua_assert
  • 16121f247: Statically allocate JIT temp buffers
  • 7a4e25b94: Add log of recorded bytecodes (BCLogRec) to jit_State
  • 9b2b46751: Minor update to jit_State bytecode log
  • 238c698b7: lj_auditlog: Improve logging of trace stop/abort
  • b29101e9e: fixup! lj_auditlog: Improve logging of trace stop/abort
  • bc57ceb17: lj_state.c: Fix bug in allocation of IR buffer
  • d371db63c: lj_state.c: Fix dealloc to match
  • 06b9f3227: lj_state.c: Fix allocation and free of IR buffer
  • 43691e007: reusevm: Update generated code
  • 4d8b3eb93: auditlog: Log all loaded bytecode (GCproto objects)
  • 5843c5370: lj_auditlog.c: Log prototype names (GCstr)
  • 88cc35c3f: reusevm: update generated code
  • 2f5a9a37f: lj_obj.h: Redefine GCRef as simple GCobj* pointer
  • 158737793: lj_obj.h: Redefine MRef as simple void* pointer
  • 857073ccd: lj_auditlog.c: Add lj_auditlog_open(path) API function
  • 671d770a5: lib_jit.c: Add 'jit.auditlog(filename)' Lua API function
  • 07fef11fc: luajit.c: Add 'raptorjit -a ...' command line auditlog syntax
  • 7e34e72e9: reusevm: Update generated code
  • 3e2d4e443: lj_auditlog.c: Use open_memstream() instead of fmemopen()
  • 588e9c39c: lj_auditlog.c: Fix compiler warning
  • 2276cd8c9: lj_trace.c: Fix compiler warnings
  • 623d45f43: lj_auditlog.c: Remove fflush() that seems problematic
  • 0b940c582: lj_auditlog.c: Glibc memory stream workaround...
  • 3a5aa7df7: lj_trace.c: Do not reuse trace numbers after flush
  • b5056fa2d: lj_parse.c, lj_debug.c: Remove clever tricks in lineinfo encoding
  • 541d60dd9: auditlog: Can only be opened once now (error on second open)
  • de0f44270: fixup! auditlog: Can only be opened once now (error on second open)
  • 1fa5375d2: Fix compiler warning & reusevm generated code
  • 7844c5f52: Add '-p file' command line syntax for VMProfile
  • fd0e49da8: Support "one-liner" usage of jit.vmprofile.open()
  • 9dac90f56: auditlog: Log source code (in chunks via lexer events)
  • ed2103493: auditlog: Log source (lex events) as msgpack binary
  • f66fc04ef: testsuite/bench: Fix awk parsing of perf output
  • fcf86b847: lj_str.c: Remove special-case string interning fastpath
  • fe89c1069: luajit/lib_jit.c: Fix merge conflict (duplicate of jit.tracebarrier)
  • 072d23e73: src/Makefile: Fix raptorjit build
  • 4db5edf3d: engine: Enable RaptorJIT auditlog and vmprofile
  • 8c09d57a4: core.shm: Add function path(name)
  • b021efbf4: src/Makefile: Fix s/luajit/raptorjit/ bug
  • c2c2ed2a9: lj_auditlog.c: Pick latest working version from lukego/auditlog
  • e92c500fc: lj_vmprofile.c: Fix bug where restarting the timer would not work
  • 4189da6cb: Just use the default gcc instead of clang 4.0.0.
  • 42bb70b28: lj_ir.h: Fix typo made when resolving merge conflict
  • 0dea74ee8: lj_lex.c: don't log lexer events for bytecodes
  • 9be90a3e3: lj_jit.h: Increase default maxtrace from 1000 to 10000
  • 7b57a2358: lj_trace.c: Allow reuse of trace numbers after jit.flush()
  • c6347dc27: lj_trace.c: Clear profiler lasttrace state on flushall()
  • cad220d9e: lj_trace.c, lj_auditlog.c: Log auditlog event "trace_flushall"
  • cc311cf7c: dasm: Error when a 64-bit value is used as a 32-bit immediate
  • 7bc8597a2: Move lj_auditlog.c out of Snabb and into RaptorJIT
  • 0158240c7: luajit.c: Make -a and -p argument handling more consistent
  • d0dcc755d: lj_audit.log.c: Add file size limit (default 100MB)
  • b0cbca7ad: lj_auditlog.c: Add "nanotime" timestamp to events
  • f4ff59e60: lj_auditlog.c: Increase in-memory log limit to 10MB (from 1MB)
  • 10764c489: lj_auditlog.c: Log strings referenced as IR constants
  • d0191fec2: lj_auditlog.c, lj_ctype.c: Log named ctypes to the audit log
  • 1c81d51de: fixup! lj_auditlog.c, lj_ctype.c: Log named ctypes to the audit log
  • 486f720ff: lj_auditlog.c: Log GCfunc objects referenced by IR constants
  • b93738f79: shell.nix: Make 'nix-shell' command work as documented
  • 1d1dc9f49: README.md: State more clearly that Linux is required
  • 44fbf8e3e: lj_auditlog.c: Log GCtrace->irmcodesz (IR-mcode mapping)
  • d64a769f6: fixup! lj_auditlog.c: Log GCtrace->irmcodesz (IR-mcode mapping)
  • 8c8731e01: lj_asm.c: Fix szirmcode values
  • f62c2463e: fixup! lj_asm.c: Fix szirmcode values
  • 9b5ab0af4: lj_dwarf.c: Add lj_ircall.h and lj_ff.h for more debug information
  • 02062e939: src/Makefile: Embed DWARF debug info as binary blob
  • 229fc152d: lj_auditlog.c: Log raptorjit VM DWARF debug information to audit.log
  • e51eaa11b: lj_debuginfo.h: Add missing file declaring dwarf data
  • 1646db3ae: lj_audit.log.c: Fix iteration through trace constants
  • a5222e7a1: lj_state.c: Partial fix of assertion on shutdown
  • 92955dc83: src/Makefile: Add dependency from DWARF info to generated headers
  • 9a798d7ba: luajit.c: Fix argument parsing bug that made "-a" fall into "-p"
  • 8d9d959ac: Extend GCproto debug with declared function name (declname)
  • 4166e7a80: lj_bcdump.h: Bump bytecode version number (2 -> 3)
  • 74b52e652: lj_bcread.c: Remove suspicious loop
  • 73b96a4a0: src/reusevm: Update generated code
  • 01f8b4cf9: lj_bcread.c: Remove suspicious loop
  • 8f55c0343: src/reusevm: Update generated code
  • d60c59518: lj_prase.c: Remove old debug noise
  • c552236ca: Restore older debug info fields to their original positions
  • 96e00a6f8: lj_bcwrite.c: Remove unused variable
  • 90a15f7a4: lj_ctype.c, lj_trace.c: Poll for ctypes to log on trace stop/abort
  • 473cb199e: lj_ctype.c: Avoid crash when printing unprintable ctype IDs
  • cd172fc27: lj_parse.c: Set declname for file-level code to
  • 2c5faa8a7: Exclude function-rooted traces from global_State->lasttrace
  • ca0abe30f: reusevm: Update generated code
  • 420fa7571: Minimal rebranding from LuaJIT -> RaptorJIT
  • 48919010a: README.md: revised ahead of first release
  • 4e1405dd4: README.md: Add quick Studio getting started intro
  • fcf138fd1: README.md: Correct profile names to *.vmprofile (expected by studio)
  • 47822655d: Fix allocation/deallocation of T->szirmcode
  • 66f9234b6: lj_trace_alloc: Copy T->szirmcode to new trace
  • 9959cb1ab: lj_asm.c: Added comment about szirmcode moving to final GCtrace
  • 3f9db9e3f: lj_ctype.c: Detect loops in ctype_repr()
  • d09927b33: lj_trace.c: Fix and simplify allocation of J->trace
  • d3c149d5f: default.nix: Test with -DLUA_USE_ASSERT and -Werror
  • a667ead77: Fix deallocation of T->szirmcode
  • 3b8063349: lj_state.c: Restore assertion that all memory is deallocated
  • 55e765664: lj_ctype.c: Detect bad ctypeid without failing lua_assert
  • 56a88b23f: Prepare for RaptorJIT 1.0 with installation fixes
  • fe6324e66: .version: Step to v2019.01
  • 15b1a62db: .version: Fix conflict
  • a9fe280fb: core.engine: Add .vmprofile suffix to filenames to help Studio

Max Rottenkolber (5):

  • 6be5397d0: core.main: call vmprofile.start() before running program...
  • 580c87ef5: core.histogram: extract summarize method from snabb top
  • 1f9619cbf: core.histogram: add __tostring meta-method to meta-type
  • 3d5cbb497: core.packet: register SHM type with __tostring method for freelist
  • ff2d7bd7e: snabb shm: introduce tool to replace 'snabb top -l '

Mike Pall (83):

  • a273241fe: Initial commit
  • de5568e0e: Remove Lua 5.0 compatibility defines.
  • 0cf78854a: ARM64: Fix XLOAD/XSTORE with FP operand.
  • 779a1eb8e: ARM64: Fix Nintendo Switch build.
  • fa126c5f9: x64/LJ_GC64: Fix assembly of CNEWI with 64 bit constant pointer.
  • 024ade796: LJ_GC64: Fix BC_CALLM snapshot handling.
  • 78f5f1cef: x64/LJ_GC64: Fix emit_loadk64().
  • 3143b2189: ARM64: Add big-endian support.
  • e205ad0c5: FFI: Fix FOLD rules for int64_t comparisons.
  • dc320ca70: Remove old Lua 5.0 compatibility defines.
  • de97b9d52: Add some more changes and extensions from Lua 5.2.
  • 247b3624f: OSX: Fix build with recent XCode.
  • 22dfa6328: Allow building on Haiku OS.
  • 9c685f700: Refactor with LUA_OK.
  • c67a09829: From Lua 5.2: Add lua_version().
  • ef23b70eb: From Lua 5.2: Add lua_copy().
  • f2e2a3f75: From Lua 5.3: Add lua_isyieldable().
  • cde968f91: From Lua 5.2: Add luaL_testudata().
  • 2b8de8cfc: From Lua 5.2: Add luaL_setmetatable().
  • de26f76e2: From Lua 5.2: Add lua_tonumberx() and lua_tointegerx().
  • cced1786b: Document added C API extensions from Lua 5.2/5.3.
  • 18efb331a: ARM64: Fix stores to vmstate.
  • 58aaac3c6: MIPS64: Fix write barrier in BC_USETV.
  • ed54eace6: MIPS64: Fix stores of MULTRES.
  • 02b4b1e55: Add workaround for MSVC 2015 stdio changes.
  • fbfbd7b9e: FFI: Compile bitfield loads/stores.
  • cf8a5bea8: Add FOLD rules for mixed BAND/BOR with constants.
  • b608891d7: FFI: Update docs on compiler limitations.
  • ae0d438f2: Update changelog.
  • 0bf80b07b: RELEASE LuaJIT-2.0.5
  • e9f8abfbf: Update changelog.
  • 8271c643c: RELEASE LuaJIT-2.1.0-beta3
  • 1c89933f1: Fix LJ_MAX_JSLOTS assertion in rec_check_slots().
  • 630ff3196: Add missing LJ_MAX_JSLOTS check.
  • 7381b6203: MIPS: Use precise search for exit jump patching.
  • c7c3c4da4: MIPS: Fix handling of spare long-range jump slots.
  • a057a07ab: MIPS64: Add soft-float support to JIT compiler backend.
  • b0ecc6dd6: FreeBSD/x64: Avoid changing resource limits, if not needed.
  • 6a71e71c1: Remove unused define.
  • 82151a451: Modify fix for warning from 'ar'.
  • 7e662e4f8: x64/LJ_GC64: Fix emit_rma().
  • fd37da0d5: PPC: Add soft-float support to interpreter.
  • 07f976a08: Remove Lua 5.0 compatibility defines.
  • 5126a06f2: LJ_GC64: Fix BC_CALLM snapshot handling.
  • de9a8863a: x64/LJ_GC64: Fix emit_loadk64().
  • e834e9c7c: Merge branch 'master' into v2.1
  • dbe561925: Remove old Lua 5.0 compatibility defines.
  • d6db00566: Add some more changes and extensions from Lua 5.2.
  • b28c891a6: Refactor with LUA_OK.
  • eaf262dd6: From Lua 5.2: Add lua_version().
  • f1264bfb8: From Lua 5.2: Add lua_copy().
  • 9a520cb5b: From Lua 5.3: Add lua_isyieldable().
  • 4a307c1ed: From Lua 5.2: Add luaL_testudata().
  • 9fabcf9ed: From Lua 5.2: Add luaL_setmetatable().
  • ffd261013: From Lua 5.2: Add lua_tonumberx() and lua_tointegerx().
  • bddc781fc: Document added C API extensions from Lua 5.2/5.3.
  • 2f7f0a23b: FFI: Compile bitfield loads/stores.
  • e091baf7a: Add FOLD rules for mixed BAND/BOR with constants.
  • a698e89f4: FFI: Update docs on compiler limitations.
  • a0a198391: Merge branch 'master' into v2.1
  • 07918dc7b: Merge branch 'master' into v2.1
  • e2cabaff9: Remove unused define.
  • c0165a6e8: x64/LJ_GC64: Fix emit_rma().
  • f3d75075e: Use https for freelists.org links.
  • 6b0824852: x64/LJ_GC64: Fix fallback case of asm_fuseloadk64().
  • 71b7bc883: PPC: Add soft-float support to JIT compiler backend.
  • 05fbdf565: x64/LJ_GC64: Fix type-check-only variant of SLOAD.
  • bf12f1daf: MIPS64: Hide internal function.
  • 0c0e7b168: DynASM/x86: Fix potential REL_A overflow.
  • b4ed3219a: LJ_GC64: Fix ir_khash for non-string GCobj.
  • 850f8c59d: LJ_GC64: Make ASMREF_L references 64 bit.
  • 9f0caad0e: Fix FOLD rule for strength reduction of widening.
  • 06cd9fce7: ARM64: Fix assembly of HREFK.
  • 99cdfbf6a: MIPS64: Fix register allocation in assembly of HREF.
  • 33082a6f4: ARM64: Fix xpcall() error case.
  • 7dbf0b05f: Fix saved bytecode encapsulated in ELF objects.
  • d417ded17: ARM64: Fix xpcall() error case (really).
  • ea7071d3c: MIPS64: Fix xpcall() error case.
  • 58d0dde0a: Fix IR_BUFPUT assembly.
  • 430d9f8f7: Fix string.format("%c", 0).
  • 97356f99f: Use https for freelists.org links.
  • f6c52a376: Merge branch 'master' into v2.1
  • 91dbe2369: Merge branch 'master' into v2.1

Peter Cawley (22):

  • 488e3fb74: Shake things up.
  • 74d256ffc: Remove some already-modernised tests from misc.
  • b8bbda318: Modernise goto test.
  • f40304dde: Modernise string_op test.
  • e002a085d: Improve reporting of failing tests in --quiet mode.
  • 6a7e34297: Modernise misc/meta_* tests.
  • 1bee68fde: PUC-Rio Lua compatibility.
  • bcd286b8d: Modernise more tests.
  • 3e5cca793: Modernise some tests.
  • 9f1451d82: Normalise line endings.
  • 9c27a59d8: Fix batch modifier application.
  • a82c499a0: Modernise some FFI tests.
  • d7985d1c6: Modernise more ffi tests.
  • 703e9cfb8: Skip some tests under LuaJIT 2.0
  • c3224bb76: Exercise TSETR and TSETM slow paths.
  • 7897e7fff: Add tests for allocation of variable-sized cdata
  • 071f05010: Exercise string concat some more
  • bcf938bcb: Extend cdata_var test slightly
  • 73139f88c: Disable some tests under 5.2 compatibility
  • 14c132e6a: Add tests for table indexing (inspired by #221)
  • 63a6f7e28: Add test for BC_KNIL slot revival under LJ_GC64
  • 014708bce: Add test for BC_VARG slot revival

aouinizied (1):

  • f2bd95dcd: Implement nDPI2.x snabb compatibility

bandhu (2):

  • 3e731388d: issue #8 add dummy file to ensure directory is saved in git
  • cd429000d: issue #8 add dummy file to ensure directory is saved in git
snabb - Snabb 2018.09 “Eggplant”

Published by eugeneia about 6 years ago

This release improves compatibility of the vhost-user driver with current QEMU versions, and adds rudimentary PMU support for AMD family 15h+ CPUs (including Ryzen). With “Eggplant”, our high-performance hash table implementation received a callback that can be invoked when it is resized, and a generic Token Bucket implementation (lib.token_bucket) and time stamp counter module (lib.tsc) are introduced. As usual, this release comes with numerous bug fixes and minor enhancements.

Changes

  • #1369 apps.vhost: compatibility updates for current QEMU versions
  • #1354 lib.pmu: rudimentary support for AMD family 15h+ CPUs
  • #1359 Add optional callback to the CTable:resize() method
  • #1355 Add support for RDTSC, apply to token bucket
  • #1358 Add protocol header for ICMPv6 Packet-Too-Big type
  • #1210 #1367 #1362 #1351 #1344 #1366 #1305 #1373 Various bug fixes and minor enhancements

Contributors

Alexander Gall (4):

  • fb29cd054: Add support for RDTSC, apply to token bucket
  • c7d772cea: Add protocol header for ICMPv6 Packet-Too-Big type
  • af980310b: Add optional callback to the CTable:resize() method
  • 8a1ebb0c3: ctable: fix power-of-2 issue

Andy Wingo (1):

  • de790aa84: Load potentially 64-bit values using mov64

Asumu Takikawa (5):

  • 015dcea09: Fix minor markdown typo
  • 8d6e22ddb: Adjust ipfix README diagram
  • 88079adb0: vhost_user: Add VHOST_USER_F_PROTOCOL_FEATURES
  • 27e8c13d5: vhost_user: fill out two additional messages
  • 4700a963d: vhost_user: asserts for wrong/missing link name

Ben Agricola (1):

  • 270aea4ba: Fix length property testing

Luke Gorrie (3):

  • 73223bdb4: Bump .version to 2018.08
  • 8cfe82826: fixup! Bump .version to 2018.08
  • dc4cb7903: Add engine.stop() to stop all apps.

Max Rottenkolber (4):

  • 0077d2154: core.memory: unmap tmpptr in allocate_huge_page
  • 4a40691fb: lib.pmu: rudimentary support for AMD family 17h CPUs
  • 3aa1cda9f: lib.pmu_x86: fix regression introduced in 4a40691fb
  • a597b4023: lib.numa: pretend non-NUMA systems are NUMA systems with one node

kullanici0606 (1):

snabb - Snabb 2018.06 “Dill”

Published by eugeneia over 6 years ago

This release introduces support for low-overhead packet queues between Snabb processes within the same process group, as well as a software-based “Receive Side Scaling” (RSS) app to pair with it. Dill also comes with basic pattern restriction support in lib.yang, a better in-band packet tap app that records Pcap data, and—as usual—various bug fixes and miscellaneous improvements.

Changes

  • #1263 Adds basic support for pattern restrictions to lib.yang
  • #1288 Adds a pair of apps (apps.interlink.transmitter and apps.interlink.receiver) that enable efficient packet I/O between Snabb processes within the same process group (inter-process links)
  • #1309 Adds a software-based “Receive Side Scaling” (RSS) app
  • #1315 Introduces the new snabbco/raptorjit integration branch
  • #1320 Adds an in-band packet tap app that logs to Pcap data as a more efficient and featureful alternative to PcapWriter
  • #1327 Fixes a bug in lib.protocol.tcp
  • #1338 Fixes a bug in ljsyscall’s lseek wrapper

Contributors

Alexander Gall (5):

  • 3495fc76c: Add a RSS app
  • 41bd845c9: apps.rss: add selftest
  • 3114c5a2a: apps.rss: cosmetic changes
  • c8318aad4: apps.rss: remove unused variable from selftest
  • 39d2f1284: rss.lua: fix bug in selftest

Andy Wingo (3):

  • 468a9a977: Add pcap packet tap
  • 1d90c3e00: Revert inadvertant removal of PcapReader / PcapWriter docs
  • bf4307d9a: Make "offset" arg to lseek a signed integer

Luke Gorrie (3):

  • e7f63d64c: doc/branches.md: Add snabbco/raptorjit integration branch
  • e22e6832d: .version: Bump to 2018.06
  • cf4a5dcaf: Revert "Merge 'eugeneia/numa-selftest-nonnuma' into wingo-next"

Max Rottenkolber (70):

  • 5100c5db7: wip: MCRingBuffer for packets.
  • 3ddb3f317: manual batching
  • 86a6ee975: balance packets
  • 293892b85: apps/test
  • 9cdd697ed: worker
  • 322b61ccf: factor
  • 6306ed7d0: core.worker: include si_status in status
  • 4e538cf1d: fix init race
  • 626c8b6e4: reorg
  • ac886badf: global max
  • 06053f695: lib.interlink: fix initialization race.
  • 2e32f8387: core.worker: include si_status in status
  • 47d87924e: lib.interlink: specialized inter-process links
  • 7318cc0a9: apps.interlink: name apps
  • 8dff93bfd: apps.interlink: use robust setup/teardown routine, add sensible memory barriers
  • 4486728f4: apps.interlink.receiver: don’t forward packets until connected
  • db61756ec: extract lib.print_object from lib.store_config
  • a60a42b1a: lib.xsd_regexp: port MaxPC to lib.maxpc, implement regular expression parser
  • 204f21e27: lib.xsd_regexp: implement basic regexp compiler
  • 6f419662f: lib.maxpc: add input_class argument to parse / use classes for input objects
  • 660ae79c4: Revert "lib.maxpc: add input_class argument to parse / use classes [...]"
  • ba37cd82d: lib.maxpc: decode UTF-8 input
  • d3cacc66a: lib.maxpc: fix bug in match._not
  • b6cc1a66d: lib.maxpc: port digit/number parsers
  • 5fd019885: lib.xsd_regexp: implement unicode ranges
  • 7de7fd363: lib.ucd: supporting Unicode database for lib.xsd_regexp
  • f62c95a77: lib.xsd_regexp: implement limited category escapes
  • 5eaf4ac9f: lib.xsd_regexp: remove support for block escapes, copy in GC predicates
  • ba292f0cc: lib.xsd_regexp: remove obsolete match.digit
  • ba818b9c4: Revert "lib.ucd: supporting Unicode database for lib.xsd_regexp"
  • b26d5fcc9: Revert "lib.xsd_regexp: implement unicode ranges"
  • 6fcebb897: Revert "lib.maxpc: decode UTF-8 input", revert lib.xsd_regexp to ASCII-only
  • 1187fc73c: lib.xsd_regexp: implement \i, \I, \c, and \C
  • 074ff0c4f: lib.xsd_regexp: implement backtracking
  • 1be3a55d8: lib.yang.schema: fix parse_range
  • de468cb22: lib.yang.data: implement range and pattern restrictions
  • e54b5f658: lib.yang.data: do not compile pattern validator for empty set of patterns
  • 88cbeb043: lib.yang.data: only run pattern validator on string values
  • d1a740959: lib.yang.schema: fix bug in selftest (range can have multiple intervals)
  • e577721b4: program.lwaftr.tests.propbased.genyang: adapt to new range format
  • 090d6179d: lib.numa: skip selftest if running on a non-NUMA machine
  • 2ece0c1c4: lib.numa: more fine grained approach to 090d6179d
  • 6783dac1b: lib.interlink: use attribute((packet, aligned(64))) to align s
  • cae255473: apps/interlink: turn test.lua into Snabb script selftest.snabb
  • 022ab0c92: apps.interlink: add duration parameter to selftest.snabb
  • d1adbcb15: process group: rebalance packets exchanged across process boundaries
  • 9f0694fb9: core.packet: extract packet.account_free from packet.free
  • 756255ced: DynASM: add CMPXCHG instruction
  • d05da3846: core.sync: add atomic compare-and-swap primitive based on CMPXCHG
  • 9dfa543ea: interlink: adapt interlink and related apps to group freelist
  • 020a9fd65: core.sync: consolidate core.spinlock into core.sync
  • 302f9527d: core.app: pass app name as second argument to :new in start_app
  • 4686cbf93: apps.interlink: use app name to derive SHM interlink path
  • cb9250fde: lib.interlink: fix life-time fsm design and implementation bugs
  • 274ea4b63: core.packet: do not count packets reclaimed from group_fl as freed
  • 59caa02ca: apps.interlink: shutdown handler to release stale attachments
  • b1472e82d: lib.interlink: integrate with shm.open_frame for snabb top
  • 5ac340e26: core.shm: explicitly open shm objects read-only in open_frame
  • 95de7043d: lib.interlink: fix outdated comments
  • 154d63c11: lib.interlink / core.main: fix shutdown bugs
  • 72aadf747: lib.interlink: take advantage of non-excl shm.create semantics
  • 44b4cdf1c: core.packet: use ffi init argument to initialize packet_fl
  • 5ac6e7bae: core.packet: enable group freelist only on demand
  • 02bdf78b8: apps.interlink.*: add user-facing documentation.
  • be6c657ee: lib.maxpc: fix backtracking “zero or more” combinator match.all
  • c583ac743: apps.interlink: fix documentation bugs
  • 5fbe79ec3: apps.interlink: avoid engine/appname kludge by attaching in :link()
  • a0834879b: Revert "core.app: pass app name as second argument to :new in start_app"
  • 00acc776b: apps.rss: include documentation in genbook.sh
  • b699d7e89: apps.interlink: allow specifying queue name per config

R. Matthew Emerson (1):

  • c888a869e: Simple spinlock implementation based on xchg instruction.

hepeng (2):

  • 88da49f57: fix a bug in tcp fields,
  • ae53f4aef: icmp for ipv4
snabb - Snabb 2018.04 “Edamame”

Published by eugeneia over 6 years ago

This release includes the newest version of Igalia’s lwAFTR, as well as a powerful new load testing tool. Also in the mix is an easy way to test Snabb on platforms that support Docker such as OS X, a new “unhexdump” tool that synthesizes packets from hexadecimal encodings, and significant performance and stability improvements. As usual, Edamame also includes assorted bug fixes.

Changes

  • #1328 #1330 #1331 merge Snabb lwAFTR releases up to 2018.04, this includes a new program loadtest which gauges maximum sustainable load of a networking function, as well as fixes to lib.ptree
  • #1326 improves intel_mp selftest more reliability
  • #1289 adds a minimal Docker image that eases testing on e.g. OS X
  • #1274 adds snabb unhexdump tool
  • #1300 fixes a race condition during supervisor setup
  • #1287 optimizes breathe loop by removing unsunk allocations
  • #1271 adds a showcase program that implements DNS service discovery
  • #1308 #1272 include various bug fixes and improvements

Contributors

Alexander Gall (1):

  • 279aa3845: core.app: remove garbage when using pace_breathing

Andy Wingo (53):

  • 3e7d2b5e1: Fix "snabb lwaftr run" after lib.scheduling refactor
  • 47588b979: Split YANG getter-at-path out to own module
  • 667b8432f: Move generic data-at-path utilities to lib.yang.path_data
  • feab0129d: Rename program.config.json to lib.ptree.json
  • a83a82786: "snabb config listen" more lenient about missing paths
  • bd689ffdf: "snabb config listen" can take schema / revision from directives
  • 879830747: Add ability for ptree manager to record incoming RPCs
  • 9572bde3d: Wire up --trace for "snabb ptree" and document
  • fe328da94: Wire up a --trace argument for the lwaftr
  • 966228015: Reduce memory use for get-config RPC
  • 008a4b865: Increase response length limit from leader from 100M to 1G chars
  • bd9a8da34: Improve speed of yang qstring parser.
  • 3e2fecb8e: Fix ptree trace selftest
  • 7136c245d: changelog
  • ee03a9870: Fix data_grammar_from_schema for empty cases
  • 631357ce0: Rewrite random YANG path selector and value generator
  • c752d1d5b: Remove unused imports
  • cf6126578: Simplify test
  • 8ce887274: Add "snabb unhexdump" tool
  • 383fd83aa: Process tree runs data-plane processes with busywait=true by default
  • c6d0e2296: Pcap savefile writer records frame sizes
  • 3cf4cdaf4: Sizes for "packetblaster lwaftr" are frame sizes
  • c55199b2f: Fix up packetblaster lwaftr selfchecks
  • fe08efb5d: Address review nit
  • 2876c6e7b: Revert "Pcap savefile writer records frame sizes"
  • 75ee99030: Regenerate packetblaster lwaftr test files
  • 87c426379: Regenerate packetblaster lwaftr test files
  • d9b651242: Fix next-hop discovery with multiple devices
  • b38ae3a86: Remove early lwAFTR NUMA affinity check
  • 05bffbc90: Move "loadtest" command out of lwaftr
  • 09ce69e87: Fix ctable resizing logic
  • 3142fad8c: Fix sense of ctable resize limit
  • db8b2c4dc: Make minimum ctable size uniform
  • f31e840fa: Add limit-finding loadtester.
  • 047018a96: Add find-limit --exec to README
  • da3a2f825: Make supervisor setup more reliable
  • 459ee9983: Make supervisor setup more reliable
  • 0736ffd7d: Fix out-of-bounds write in ctable test suite
  • 55bf2e38a: Promptly close util.ls() dir fd; fix bug with deleted entries
  • 828641fe2: Remove lib.files_in_directory
  • f133f7f90: Promptly close fd in random_bytes_from_dev_urandom
  • 1e6f85237: Fix modification to lib.hardware.pci.scan_devices
  • 65cbc01a3: Set SNABB_RANDOM_SEED for intel_mp tests
  • a5bed8220: Claim name in central lwaftr ptree manager function
  • 703f1a957: "snabb config" tests wait until ptree manager socket is available
  • 69f545b57: Revert lwAFTR-specific version change for merge to upstream
  • a1efb46e8: Harmonize style in changelog
  • d51d0d53a: Changelog for lwAFTR v2018.04.01
  • 99ffe3158: Fix removal of v2018.01.2.1 header
  • bb63b39a4: Fix missing closing backtick
  • 54a540242: Flip sense of conditional-skip of IPsec end-to-end test
  • f03ba1b9e: Test on presence of SNABB_IPSEC_ENABLE_E2E_TEST, not value
  • 3f94ce5bd: Bash programming is known to the State of California to cause confusion

Diego Pino Garcia (23):

  • 459a936b1: Fix property-based test stall
  • ea5228c6d: Fix lwaftr selftest run
  • f57c75ebb: Rework alarms timestamping logic
  • 73caaaf8b: Add DNS-SD program
  • 3c9edf08b: Show error if running on loop-back interface
  • 373b42b55: Enable alarm notification
  • dca505ca6: Fix variable name
  • 191e655cb: Fix error message
  • 77f7abc7b: Fix path to transient README
  • cb68e08ba: Check status code in monitor test
  • 9e2f5da31: Temporarily disable ipsec selftest
  • b4629a759: Snabb lwAFTR v2018.01.2.1
  • 1ad64e40f: Changelog 2018.01.2.1
  • 80109514b: XPath formater fixes
  • c55b21bdb: Fix tests
  • 25c8ad6a5: Implement alarm shelving
  • 7f6791de7: Add failsafe parameter to common.parse_args
  • 76d0a89fe: Refactor argument parsing
  • 419c943b8: Fix error message
  • 5cd8b1b2b: Update README
  • aa31d24e9: Implement table_is_empty
  • d35cdd5e5: Rename 'failsafe' to 'allow_extra_args'
  • 2e8a5f903: Fix undefined variable

Jessica Tallon (6):

  • 468e72c50: Fix small mistake in arp documentation.
  • d9ac3666f: Fix find-limit by checking actual throughput rather than requested.
  • 6e0733243: Extend find-limit to support multiple NICs.
  • aa435ba10: Support the old argument format and fix nits
  • d10a84010: Remove unused fatal function
  • bcda559b7: Fix a few more minor nits :)

Luke Gorrie (2):

  • e9ee18a2a: README.md: Add link to Slack auto-invite page
  • 72b9b3c40: .version: bump to 2018.04

Marcel Wiget (11):

  • 7d4486596: [wip] use socker server mode
  • 7fce5941c: undo previous wip
  • c81176e68: build snabb docker container
  • 3337ae80a: make clean before build to avoid using binaries built outside of docker
  • dff887754: adding container build and run instructions
  • ba390ecc3: src/snabb wrapper when building container snabb
  • 3a4015c46: document snabb wrapper script
  • b9ae0d7a7: adjust if statement to work in dash too
  • a0959685f: merging launch-docker-container.sh with dock.sh
  • d806fe0cf: use separate docker run commands
  • b7f6ab268: run container privileged and build src

Max Rottenkolber (4):

  • 2468f7c13: intel_app: run selftest even though its not the default driver anymore
  • 35539ece7: Correct/extend doc/snabblab.md
  • 58883b118: snabb top: minor formatting fixes
  • 664f3786a: intel_app: fix skipped message with regard to 2468f7c13
snabb - Snabb 2018.01.2 “Daikon” (update 2)

Published by eugeneia over 6 years ago

This is another bugfix release that amends Daikon with #1294, which works around some unreliable CI tests.

snabb - Snabb 2018.01.1 “Daikon” (update)

Published by eugeneia over 6 years ago

This is a bugfix release for Daikon that fixes numerous CI failures introduced by it. It includes: #1280 #1277 #1273 #1283

Contributors

Andy Wingo (1):

  • 0c295bae0: Fix "snabb lwaftr run" after lib.scheduling refactor

Diego Pino Garcia (2):

  • 5121fe841: Fix property-based test stall
  • 3b7812118: Fix lwaftr selftest run

Max Rottenkolber (3):

  • 636bb6589: apps.ipv4.reassemble: fix a copy paste error at end of selftest
  • af4764217: apps.ipv6.reassemble: same for ipv6
  • f4b9e8676: doc/branches.md: take over fixes maintainership from lukego

Michael G (4):

  • ddd90d203: Naive i350 fixes
  • 818c8b759: queue_registers, not registers
  • 68f0cd54c: Fixed bits() on RO register
  • 19b56204a: Detect PCI -> port mapping
snabb - Snabb 2018.01 “Daikon”

Published by eugeneia over 6 years ago

This release includes a new fleshed out version of Igalia’s YANG based
configuration subsystem—now known as lib.ptree, for “process tree”, as well as
Alexander Gall’s l2vpn, a virtual multi-port Ethernet switch on top of a plain
IPv6. Additionally, lib.ipsec now support ESP in tunnel mode. As usual, Daikon
also includes assorted bug fixes.

Major Changes

  • #1257 Reworked multi-process reconfigurable network functions
  • #1261 Upstreamed Alexander Gall’s l2vpn
  • #1266 lib.ipsec: add support for ESP in tunnel mode

Minor Changes

  • #1220 lib.ipsec: added IPsec ESP interoperability test with Linux
  • #1259 core.link: free packets during link.free
  • #1260 snabb top: fixed a bug; should have improved performance

Contributors

Alexander Gall (64):

  • a4acb5f8c: Add a Snabb program to construct a complete L2VPN endpoint
  • cd89bedc9: Fix identification of proper p2p VPN
  • c4cc0253d: Add documentation
  • a9d1ca841: Untabify apps/intel/intel1g.lua
  • 2ebacf224: Fix regression introduced by 11a19ce1
  • b06fbb67c: Amend the list of devices supported by the Intel i210 driver
  • f2f400aeb: Add configurable MTU to intel1g.lua
  • cf6e415df: Add SNMP support to intel1g.lua
  • 8777c5f03: Fix bridge post_config() call
  • 3a3f81edc: Use /tmp to store test data in pseudowire selftest
  • b68519dfa: Fix ifSpeed in intel10g and intel1g
  • 5886ebc47: Use logger:can_log() in l2vpn tunnel modules
  • 57848e7bd: Improve performance of the VLAN multiplexer
  • 53e930b33: Set ifAlias, ifDescr in intel drivers
  • 0f5f76edf: Add oversized packets counter to ifInDiscards for intel10g
  • 244b0a210: Add app for static ND
  • 32b876743: Add VLAN support to the l2vpn program
  • a6032d693: Remove MAC addresses from pseudowire app
  • aac33d477: Allow per-PW control-channel disable override
  • 1a55b0eb6: Add missing image files
  • c38a501f8: Fix bug in l2vpn
  • 93f94f87b: Remove SNMP code from Intel drivers
  • e5f14ce9c: Extract physical MAC address in intel10g
  • 47eaceba0: Make ND apps reconfigurable
  • 771f7a496: Fixes for new packet API
  • d7e9c3988: Fixes/enhancements for iftable_mib.lua
  • 31d691188: Streamline SNMP config in l2vpn
  • 7e9fba18e: De-couple SNMP setup from ND reconfig
  • fed01a827: Add SIOCGIF{FLAGS,MTU,HWADDR} ioctls to ljsyscall
  • f71c64f3c: Augment stats counters for apps.tap.tap
  • d59c8063b: Properly count the number of pseudowires
  • 134b4ce3d: Disable interrupts in intel10g
  • f9208675f: Make waiting for link-up optional in intel{1,10}g
  • 5e7f8dc46: nd_light: add option to reduce verbosity
  • 9365ce3a5: Fix program/l2vpn/pseudowire selftest
  • c821bf2c7: Fix l2vpn pseudowire for new packet semantics
  • 47fa2ceb4: Fix tap after merge
  • e912fa3b4: intel1g: replace lib.timer by lib.throttle
  • b3c1b6bcf: nd_light: add "quiet" option to config template
  • 7e4f8d311: inetl_app: add "wait_for_link" option to config template
  • 4fdd5308c: l2vpn: switch to intel_mp drivers
  • 916f6c882: l2vpn: add extra_config to driver configuration
  • 2833f21ad: l2vpn/README.md: Fix indention
  • e498067d8: l2vpn: document new extra_config driver configuration item
  • c9bbb8592: l2vpn: use intel_mp in README throughout
  • 5f763e144: Remove intel1g driver
  • 22d5ebbf6: Revert intel_app, inetl10g to upstream/master
  • 4400bbf08: intel_mp: move shm initialization to constructor
  • 3b0c82fae: iftable_mib: streamline processing
  • 9bec79f5a: Tap: add support for MTU, operational status
  • 47aee5086: l2vpn: access interface counters via read-only shm frames
  • f094f74af: apps.vlan: use config parser, update README
  • b61c4b0d5: nd_light: add optional option local_mac
  • dd0a91c59: nd_light: fix bug in NS validation
  • a9c0ddf47: program.l2vpn.l2vpn: only use nd_light
  • 23ffbb50c: l2vpn: support dynamic reconfiguration
  • 50ba67dd3: core.app: fix bug in reconfiguration
  • da5346bf4: l2vpn: add port-mirroring option
  • d5960dce1: apps.vlan.vlan: remove assert in VlanMux link()
  • a886ed386: apps.ipv6: document quiet option of nd_light
  • 54b99f893: l2vpn: re-write of app network construction
  • 8c5ea03ec: l2vpn: fix bug in app links generation
  • 96026fda1: Fix bug in p2p optimization
  • 821fd8ddd: Add -jopt option to l2vpn program to set JIT options

Andy Wingo (215):

  • dd73f5a47: Fix structural typing of YANG data
  • 34a0dc4ba: Worker processes have useful process name
  • 950d2b21b: lwaftr: main process should not run at 100% CPU
  • 1163af779: yang: Mark list keys as mandatory after expansion
  • 354a18c00: Better support for identity in YANG schemas
  • 4e9b81863: yang: Attach default prefix to identityref type nodes.
  • 09e726793: Enable YANG data range and length validation
  • 71345f34d: Fix schema test for range representation change
  • 0439614f0: Remove unused code
  • b231028f7: Adapt property-based test generation for range change.
  • 4f6de0193: Leader should poll follower for its channel. (#866)
  • 8291a3a4d: Remove Ethernet-specific code from lwAFTR app
  • c0abcf0c4: Move NDP app to ndp.lua
  • 22af99d8d: Inline helper function only used by NDP app
  • df5883084: NDP assigns random MAC addr if needed, stamps MAC on outgoing packets
  • 7d71c277b: Localize more functions in ndp.lua
  • fbbc1f722: Fix bugs in migrated NDP app, add test
  • d300df6bd: Use more structs in NDP implementation
  • 3d9ad9ac0: Convert advertisement part of NDP app to FFI style
  • ae714b662: Finish refactoring NDP to FFI style
  • 5931f634f: Finish cleanup of NDP app
  • 581589ed7: Fix NDP nits.
  • a6cc10661: Fix errors constructing NDP packets
  • 099522602: Remove backpressure from IPv4 ping responder
  • 3930a04c6: Reindent lib.yang.state
  • 3d26a46e4: More robust lib.yang.state find_counters routine
  • 6fe8424da: YANG schema inherit-config phase gives all nodes config property
  • 9da160e9f: Separate YANG grammars for config and state data
  • 42d4e3408: Fix grammar generation
  • 45ab10c01: Unify lwAFTR and other state query around YANG
  • 49c7c8180: Lwcounter module uses YANG to know available counters
  • 259ffdb62: Attempt to fix snabbvmx check
  • 4f1fc206f: README reformatting to trigger CI
  • 40d4373df: Fix snabbvmx some more
  • 37268cca4: Revert change to snabbvmx lwaftr
  • d66184ac4: Add YANG docs to documentation build.
  • 6c9af142e: Fix YANG doc link.
  • b00485ebe: Snabb lwAFTR version is Snabb version
  • d75381a28: Fix bugs in generate-binding-table.
  • a3557d9cb: Release Snabb lwAFTR 2017.07.01
  • d8fd1c0c9: Fix typo.
  • 745b5b230: More robust name-to-PID mapping in query test
  • 08d30f77e: Work around race condition in query tests
  • 7fd36222a: Beginning of separating out IPv4 reassembly app
  • cd90b3768: Remove unused vlan capability from fragmentation tests
  • 64bfbb5fd: Further work to separate IPv4 reassembly from lwAFTR
  • d01a489a7: Style cleanups in reassembly tests
  • d999ef0af: Tighten packet generation for reassembly tests
  • c294c2c47: Use fragmenting app, not library, when testing reassembly app
  • dbd18ade7: Simplify reassembly test
  • 03e9e6adc: Inline reassembly test into reassemble.lua
  • d719cfa4f: Clean up reassembly header
  • f2bad7aee: Rewrite reassembly tests to be exhaustive
  • 839e9ea6f: Remove global state in reassembler
  • 62203fae4: Beginning of moving reassembly to FFI style
  • 0b6a8d415: Finish moving reassembly to FFI style
  • 896c5ae41: CTable random eviction wrapper uses ctable API
  • 1cbc62661: ctable add method returns pointer to entry, not index
  • 01efd2237: Inline reassembly handling
  • fa75b1987: Inline more reassembly helpers
  • 781dd8afa: Minor reassembly cleanups
  • 5a952949f: Reassembler embeds struct packet
  • 5b04a447e: More small reassembly cleanups
  • c7b8b6907: Tighten up validation of reassembly input packets
  • 232fe4c60: Reassemble app uses SHM frame to open counters
  • 4fe94b721: Rename reassembler config params
  • e90371e48: Add IPv4 reassembler documentation
  • 90b9c5499: ctable:add() should return a pointer, not a reference
  • 597f7446a: IPv4 reassembly: Periodically update counters
  • 366d3b8ca: Fix IPv4 reassembly bugs
  • 707c1e7ad: Adapt counters to new IPv4 reassembly table size
  • 087d3b86a: IPv4 reassembly passes through non-IPv4 packets
  • 673d48ca1: Update README
  • 260fc8546: Update reassembly counter expectations
  • a1781e719: Begin extracting IPv6 reassembler out of lwaftr
  • 033ccb80e: Add IPv6 reassembly tests
  • ca370fd10: IPv6 reassembler: finish converting to FFI style
  • 48485f358: IPv6 reassembler passes through non-IPv6 traffic
  • 15e7ec8de: lwcounter avoids creating counters for IPv6 reassembly
  • b80b7c95b: Update IPv6 reassembly counter memory use expectations
  • 05ad9d691: Begin extracting IPv4 fragmenter from lwAFTR
  • 1483c6daf: Add exhaustive IPv4 fragmentation tests
  • 6a53389bd: Add fragmentation comment
  • 97cd28537: Fix IPv4 reassembly when last fragment is full MTU
  • e6c3bc242: Start to convert IPv4 fragmenter to FFI style
  • f0777759e: Inline fragmentation code into app
  • f7b87d88e: IPv4 fragments and transmits directly
  • d54d4edf0: Only test valid MTUs for IPv6 reassembly
  • a11da9741: Port IPv6 fragmenter to new style.
  • b3a873f04: Fix nondeterminacy in "snabb lwaftr check"
  • 045ff0cb6: Fix previous patch
  • 136fdc658: Move fragmentation-disabled drop counters back to lwAFTR
  • 867328892: Fix unintentional hairpinning in lwaftr config_test.
  • 520d5db3e: Convert lwAFTR to "shm frame" mechanism
  • 107c99917: Fix whitespace issue
  • 44515e777: Extract ICMP echo responders from lwAFTR
  • da223f5e0: Inline some ICMP helpers into their use modules
  • 5de181eda: Minor ICMPv4 echo responder refactors
  • 4b484e648: Port ICMPv4 echo responder over to FFI style
  • 0729fce84: Rewrite ICMPv6 echo responder into FFI style.
  • 7e6482335: Add documentation for ICMP echo responders
  • 5522091b8: Remove "snabb lwaftr run-nohw"
  • 2f2a91226: Remove run-nohw test.
  • bab1b8a72: Remove apps.lwaftr.conf
  • d9988f638: Remove unused apps.lwaftr.dump
  • 0c6862bd9: Remove unused apps.lwaftr.generator
  • 5fa5807cb: Fix "snabb snabbvmx lwaftr"
  • 9223f8000: Fix snabbvmx again
  • a7bd117a2: Comment to force CI to run again
  • b5063945e: Add needed import
  • b68815f8e: Fix needed import.
  • 293e50dc8: Remove a couple of unused imports
  • d95799c7f: Convert lwAFTR to use methods
  • bfa07eea1: Inline lwAFTR helper ICMP library into lwaftr.lua
  • 10dca6176: Inline lwheader.lua into lwaftr.lua
  • 82236b83a: Remove unused lwtypes includes
  • d2022fb42: Remove unused definitions from lwtypes
  • 99e5b0f33: Inline lwtypes into lwaftr.lua
  • 57c1f004b: More consistent naming of FFI types in lwaftr
  • c8d5d4802: More minor lwAFTR style refactorings
  • 3abe15153: Shorten names in write_ipv6_header
  • 471b69a86: Fix error introduced by refactoring
  • 67873f1b4: Repeater apps have push functions instead of pull functions
  • b097e4bd1: Stabilize breathe order
  • 4f12e0919: Allow LPM self-tests to complete even if no CPU affinity
  • e67330317: Restart CI
  • a77330dcb: Add -j option to "snabb lwaftr run" and "bench"
  • c59e2e365: Add documentation
  • fa9f31a27: Ingress drop timer doesn't count drops in the 10 seconds after a flush
  • 97910f376: Snabb lwAFTR v2017.08.01 release
  • c28e1117a: Add cpuset module
  • 6d2050ba7: Allow multiple CPUs via --cpu
  • 154163ce1: Print out the CPU to which we bind data plane processes
  • dc1e6672a: Add lwAFTR changelog for v2017.08.02
  • 9630c3467: Snabb lwAFTR v2017.08.02
  • 080e5eaac: Use false instead of "off" to disable intel_mp txq/rxq
  • b45149e76: ChangeLog for v2017.08.03
  • 8f93a8591: Snabb lwAFTR v2017.08.03
  • 4d73be001: RSS queue ID in examples is 0, not 1
  • fb18030d6: lwaftr run migrates configs in place
  • 326ebd96a: Simplify parsing of single-instance lwaftr configurations
  • 5a279a3a7: Set queue ID as RSS queue ID
  • c5df53cd7: Add dedicated copier for YANG data
  • 70d2dd2b6: Produce one worker config per device and queue
  • b2d006f0a: Worker ids built using RSS id, not containing struct
  • 1286b07ce: Fix error in snabbvmx setup
  • 31b208412: Fix another error in snabbvmx setup
  • d6974ca03: Another friggin snabbvmx error
  • c133476ed: Zero out synthesized lwaftr packets
  • 9d30c3c08: Update benchdata/ packets to match test configurations
  • 940f0db72: Fix bug printing error in config leader
  • edb15dd3c: Fix accessing first queue
  • 1cccf7a21: Fix sparse cltable value serialization
  • 0e73d944c: Fix insertion into sparse cltables
  • 293838e44: Fix serialization of sparse arrays, again
  • e29810f90: Fix yet another sparse cltable serialization problem (!)
  • b5de0d52a: Update configuration.md to discuss RSS.
  • 5e159f044: Fix inconsistencies in documentation.
  • 59dec8224: Reflow text
  • dd5c53b4d: lwAFTR always uses pool 0.
  • 2ea981cee: Change log for Snabb lwAFTR v2017.08.04.
  • 72f2fe35b: Snabb lwAFTR v2017.08.04
  • d3b3c873e: Use different pool numbers for on-a-stick VMDq interfaces
  • 9f769e095: Ignore unexpected ARP replies
  • e15b30500: Workers can communicate next-hop MAC address between themselves
  • c72c6c2dc: Workers can communicate next-hop MAC address between themselves (NDP)
  • f66b08541: lwAFTR configures ARP and NDP with shared_next_mac_key
  • bc41ec36a: Give snabb-softwire-v2 a different namespace from snabb-softwire-v1
  • 59fcb911c: Avoid leaking shared next MAC key in ARP
  • 8216ef660: Avoid leaking shared next MAC key in NDP
  • 1fbb5a974: Update lwAFTR reconfiguration docs for new YANG schema
  • 709470ac2: Add snabb alarms documentation
  • 9ba052ab9: Prepare for Snabb lwAFTR v2017.08.05
  • bc3291782: Add new ietf-softwire-br, ietf-softwire-common schemas
  • 878f1d4fc: Implement "refine" support for YANG schemas.
  • 94676915c: Fix typo
  • d153c4c67: Fix ietf-softwire-br by lifting per-instance state into traffic-stat.
  • 4631a6f77: Fix querying config or state data by path when choices are involved
  • 14dd5447c: Fix "snabb config get-state" for foreign schemas
  • 27703e020: Add support for new ietf-softwire-br
  • 46a30ee5b: Remove support for ietf-softwire; ietf-softwire-br now default
  • d28efc9ee: Fix typo
  • 55ad468fc: Fix nits
  • d0cd81933: Snabb lwAFTR v2017.08.06
  • bd9609e07: Fix bug in cpuset:release()
  • fde343465: Copy app.config to lib.ptree ("process tree")
  • 370498708: Rename lib.ptree.leader to lib.ptree.manager
  • 3619ac22a: Rename lib.ptree.follower to lib.ptree.worker
  • 90b7c2fa7: Add lib.scheduling
  • 67e44e8f9: Rework ptree manager to handle worker scheduling
  • aaeac1bae: Make worker app private
  • 49651f81a: Rework ptree worker to be library, not app
  • 747340809: Refactor ptree manager to be lib, not app
  • d49eb7ded: Ptree manager stop() method shuts down workers too
  • 356d34e38: Ptree worker refactors
  • 94907573b: Add ptree manager log facility; fix manager main function
  • 9511c0b0d: Update ptree worker comment
  • 7c0d1a120: Ptree manager runs timers
  • 3c5f169e0: Ptree manager has "state change listener" facility
  • 6080eca67: Timers can be cancelled
  • 5c3600ab3: Port lwAFTR over to use lib.ptree
  • cb72a6e31: Remove apps.config
  • 27280f427: Add facility to add yang schemas to Snabb's database.
  • 94200753e: Rename lib.ptree.manager to lib.ptree.ptree
  • d6e022977: Add "snabb ptree" program
  • 7ee298361: Update ptree documentation
  • a77867a31: Add programs.inc to gitignore
  • 68d70ba9d: Fix example ptree setup.lua
  • 378701c64: More useful cpuset
  • 4e965946e: Fix NUMA node in cpuset warning
  • 42191acc8: Return ptree manager socket name to old name
  • afe2fbd93: If "snabb config" doesn't have a schema, fetch remotely
  • f034af885: Remove debugging printout
  • ee6537f8f: Enhance ptree readme with multi-process example
  • 024b3ed7a: Finish "snabb ptree" docs

Asumu Takikawa (5):

  • 25090caa4: Adjust how intel_mp VMDq enabled state is checked
  • ff12ba88e: Adjust how VMDq pool selection works
  • 74da3fe3c: Allow either 32/64 pools depending on queuing mode
  • 66d38f3ca: Fix pool selection coordination for manual case
  • fbdb6718c: Canonicalize PCI addresses for intel_mp shm refs

Diego Pino Garcia (129):

  • d41ff02c5: Sanitize YANG lists
  • 33dd33c8e: Snabb lwAFTR v3.1.8 change log
  • 4a2f33256: Support type 'ipv4-prefix'
  • 1b199b71c: Remove undeclared variable 'program_name'
  • 05c1e7b4f: Implement identity lookup and validator
  • b459d514b: Add IETF Yang Alarms module
  • 1000d4692: Parse Yang version as 1 or 1.1
  • 125a2fc1e: Add support for empty type
  • 1056e538d: Addressed review comments
  • 38d943f3c: Enumerations should be treated as strings when compiling to binary
  • 3f6cf3fd9: Add binary compilation of enumerations test
  • ad69902f9: Add enum validator
  • 6effb2f8e: Add enum initializator
  • 6571b3d76: Remove one value attribute from enumerations definition
  • d6b344230: Address review comments
  • 90163b9d3: Fix enums validation
  • c0ef6c926: Assign type.unions in typedefs
  • 15364796a: Print 'wrote compiled configuration' message only if succeed
  • e18c327e4: Upgrade ietf-alarms YANG module
  • b3f926c8d: Add leafref to types table
  • 224134752: Do not modify a map while iterating over it
  • 471e88c7e: Print out schema information in parents
  • e0eedbb4e: Add binary serialization support for identity-ref
  • e3eb9ded1: Add option to print out default values in 'config get' and 'config get-state'
  • 0a09031f6: Update README
  • 9ee004a63: Update config/README documenting --print-default knob
  • 2b7702e44: Improve parsing of snabb config query paths
  • a6c86a8ee: Replace missing function 'table_count' for 'table_size'
  • 7f3be77a9: Implement XPath data printer
  • fbe4a9c52: Support xpath-printer knob
  • 61c72796e: Update docs
  • 5204ea57a: Rename xpath-format to format
  • d124052e1: Print out table in XPath format
  • be73854f2: Fix key composition
  • 0a47c05e7: Handle special cases when root path includes trailing slash
  • 2b0cf7f3b: Support print out of arrays in XPath format
  • cf8a7efd5: Append accumulated path when print a struct keyword
  • a516bf835: Top printers should print absolute path too
  • 9eb95fb54: Support print_default in scalar top_printer
  • a79af52d5: Remove trailing semicolon
  • a81c33178: Allow a string argument to be empty
  • 6cdb03c42: Implement alarm_codec
  • 87bf3371d: Basic alarms channel mechanism
  • 03240caed: Decompress paramaters individually in raise-alarm and clear-alarm encoding/decoding
  • 24d9d4160: Group decompressed arguments into key and args
  • 4e9d594c6: Notify raise and clear alarms in ARP app
  • 45848b238: Create alarms-channel if it doesn't exist
  • 2b4184dae: Emit alarm notification in ARP app only if set
  • 3aa386875: Encode raise-alarm and clear-alarm directly
  • 2912b6c67: Make alarm_notification flag a local
  • ed7f5b4ad: Move function set to core/lib.lua
  • 2bf2021ec: Document lib.set
  • e0024986a: Implement YANG empty datatype
  • 4fde7bcad: Compile empty leaves as a boolean flag
  • 801a49359: Substitute references to leafref datatype for string
  • 42120734a: Comment use of instance-identifier as it's not currently supported
  • 52751f2db: Add alarms capabilities
  • fa69e910b: Extend snabb-softwire-v2 with alarms containers
  • 1723026ff: Load alarm inventory and fetch alarm state
  • 22379b886: Apps add their own alarms to the global alarm repository
  • 27c6befa3: Implement declare alarms
  • 7f940901d: Enable alarms in NDP app
  • e84e158b6: Implement raise alarm logic
  • 821093966: Implement clear alarm logic
  • 64974dac8: Fix nits
  • 974b3bdf8: Add encode:maybe_string
  • 60174c008: Make alarm_list:copy private
  • b07a44acf: Fix unroll of sparse table
  • 8ae762dd5: Fix followers iteration
  • 57e5b28fa: Break tail call in htonl
  • 93b481889: Optimize creation of psid_map
  • 76016155e: Documented need of parenthesis in htonl and htons
  • 0fd423683: Adapt requires_splitter to new configuration format
  • 6764c6242: Implement set-operator-state
  • c6f9b9d08: Implement RPC set-operator-state
  • b116e3014: Rename set_operator_state to set_alarm_operator_state
  • 2710a04a4: Raise error on set_alarm_state
  • 1cc027bc3: Update README
  • 46660faf9: Rework argument parsing
  • 3c49cfecd: Add set-alarm-operator-state to README.md
  • 750221c52: Implement purge-alarms
  • 506c4f052: Add RPC definition of purge-alarms
  • 27874ea09: Fix nits
  • 3c45df90a: Implement compress-alarms
  • 0a5b4d928: Implement RPC compress-alarms
  • f5887c196: Fix format of compress-alarms command
  • 80b7fa913: Missing statements in snabb-softwire-v2 schema
  • 569964330: Implement alarm summary
  • 664338879: Decouple alarms declaration
  • 16299e29d: Remove tabs
  • a7d8bacac: Move apps.lwaftr.alarms to program.lwaftr.alarms
  • 3053ee8db: Remove alarms container from snabb-softwire-v2
  • 0e297f2cb: Add subprogram to fetch alarms state
  • d411ec2a1: Do not append alarms state in lib.yang.state
  • 7035b2b3c: Add alarms module
  • 97f918e54: Assert schema is 'ietf-alarms'
  • 8d9eb5bdc: Move alarms related subprograms from config to alarms module
  • ef46bece1: Rename set_alarms_operator_state subcommand to set_operator_state
  • c05208099: Modify README
  • eb73690c7: Adjust alarms related programs
  • 631f73a06: Customize usage for each alarms command
  • 68002b196: Make alarm_type.resource a single data type
  • 444cc70cf: Rename 'alarm_codec.parse_args' to 'alarm_codec.to_alarm'
  • d296d40a4: Temporarily deactive alarms overwritten by lwaftr
  • 41096e74d: Make add_to_inventory a message passing command
  • ebeca500a: Make declare_alarm a message passing command
  • 162caff15: Replace ARP resource identifier for PID
  • c84e1568d: Add alarms API method to set default alarms
  • fe969b234: Preserve previously defined resources
  • 558bbf924: Replace NDP resource identifier for PID
  • 8458d8c02: Return '' if empty string
  • 672a32c1d: Fix alarm_codec test
  • 42e946c02: Check default alarm exists before accessing it
  • 6ec0eb237: Fix lib.yang.alarms test
  • 8d20ddcc4: Clear alarm only if it previously existed
  • 833abd705: Raise alarms if bad-softwires matches go over threshold
  • 60ef3c99b: Move alarm checks to beginning of push function
  • b6102f018: Implement ingress/egress IPv4 and IPv6 filter alarms
  • 11236632c: Raise alarm if incoming IPv4 fragments reaches limit
  • 921e7bd34: Raise alarm if incoming IPv6 fragments reaches limit
  • 4a896e401: Raise alarm if outgoing IPv4 fragments reaches limit
  • fbe86c19e: Raise alarm if outgoing IPv6 fragments reaches limit
  • c5c8cf960: Alarm helper class for querying expressions
  • 85a7bd48e: Implement ingress bandwith and packet-rate alarms
  • b9fad567a: Implement ingress packet drops alarm
  • 887d04856: lwAFTR specific alarms documentation
  • 226d8af5a: Rename ExprAlarm to CallbackAlarm
  • 57621f3d5: Fix typo in require
  • b0fe9775d: Do not print out counters which are not defined

Jessica Tallon (116):

  • 854d1bc8c: #683 Add version 2 of snabb-softwire yang file
  • 47db93b77: #683 Add config migration for snabb-schema-v2
  • 32fc3d42e: #683 Convert the lwaftr test configs to v2
  • ea1be8a83: #683 Update generate_binding_table.lua for config v2
  • b194d4a45: #683 - Fix typos in generate_binding_table.lua
  • fbd45f318: #683 - Fix snabb-softwire-v2 module name & add revision
  • 942c8e144: #683 - Add mandatory to br-address leaf in snabb-softwire-v2
  • 644564a2e: #683 - Convert codebase to use snabb-softwire-v2
  • 4eff4d40c: #683 - Generalize migration and fix for printing
  • 5755a1dfa: #683 - Convert config commands to snabb-softwire-v2
  • 2cb1ee75e: #683 - Convert documentation and some tests to snabb-softwire-v2
  • e20dd8200: #683 - Migrate snabbvmx configs and some more tests
  • d587d2cd6: #683 - Migrate lwaftr's vlan test configs
  • 1d1e6fb7f: #683 - Correct the version number for config migration
  • 650b0ffaa: Fixes problem with large migration files
  • 9d188e08e: Remove comments and br_address list
  • 6af402568: Add new version to migrate-configuration README
  • 4e8deeaf9: Remove unused local variable
  • 5a9cd5919: Retrigger tests to run
  • 086bf1fe0: Updates the test for br-address on softwire
  • 0bf92baa4: Fix small nit in config test
  • 98ade9e50: Move psidmap onto softwire in snabb-softwire-v2
  • 2e4b581ce: Add migration for psidmap on softwire
  • b759e1f3a: Convert lwaftr's data files to 3.2.0.1
  • 8a9aad400: Convert v2 migration to handle 3.2.0 and 3.2.0.1
  • 163438aec: Update revision statement to include new port-set
  • 24407a2f4: Support new softwire in support and binding table
  • 8f62c2215: Change binding table's psid map to ctable
  • 7d419bf5b: Add ability to add psid entries and update tests
  • f22b67a41: Remove validate_config and validate_update
  • d69ed40da: Fix migration to 3.2.0
  • 020659c91: Update snabbvmx tests to the psid-map on softwires
  • 9e463a308: Fix a test to use snabb-softwire-v2 schema
  • 7cb536a28: Fix a few more tests and remove redundent tests
  • 3f4d9085f: Fix config translation layer for ietf-softwire
  • c2408ffb6: Fix small nits
  • a1a3425c2: Update documentation for new schema
  • 777657234: Fix typo nit in docs
  • c96875f3e: Remove shift and padding parameters
  • 5eb712634: Update test data for removal of shift and padding
  • 6635dd4b8: Update migration for removal of shift and padding
  • 6db0b0875: Update snabbvmx configs to remove shift too
  • c83350776: Fix migration to handle larger files and add padding leaf
  • c7cb1451b: Convert the binding table to use rangemap
  • d49aaf7dc: Fix small documentation and other nits
  • 35e23c429: Add test for lwaftr's generate-binding-table subcommand
  • 985359a52: Fix small nit in generate_binding_table_test.py
  • c48d6af0a: Update generate-binding-table for new schema changes
  • 10c502900: Fix small performance nit
  • 43bfb5d0a: Update migrations fixing the port-set definition.
  • fc8980b3e: Fix lwaftr's migrate-configuration.
  • f27f70a2e: Fix lwaftr's test vlan configs
  • eac7acf8e: Fix some small nits
  • c295c2c01: Add selftest for YANG choice type
  • 7699f7703: Fix #835 - Support YANG choice statement
  • ef66b7d53: Fix small nit in parser definition
  • efd24f7d0: Add choice statement printer for YANG data
  • 8b07e1e36: Add YANG binary data emitter for choice statements
  • 54887709f: Fix potential problem modifying a table during iteration
  • 725a91560: Add test for choice support for YANG binary compilation
  • acb67077d: Include the round which binary choice test fails
  • 0eb00d3cc: Fix bug where choice statements where not being written out correctly
  • 3f9ab2e51: Add multiprocess support to snabb-softwire-v2
  • 37b5b13ab: Change instance list to have a list for RSS queues
  • 3f2d3e383: Addresses feedback on multiprocess changes
  • 6d8106e20: Fix some small problems in YANG schema
  • ec7ec0fd1: Add migration for multiprocess snabb-softwire-v2
  • 48a768702: Migrate lwaftr testing config files
  • 27d7c7ed5: Convert lwaftr bench to multiprocess config for non --reconfigurable
  • 9bbf115b4: Add support for snabb-softwire-v3 for reconfigurable
  • 1dfb7e640: Convert test data from fixed PCI device to JIT based
  • 2d8f87f4c: Update tests and migration
  • 5f7c9509f: Add missed snabbvmx configs
  • ea311f6ea: Fix nit in snabbvmx setup
  • 127dcb80b: Add checks for PCI devices and feed single instance configs to lwaftr
  • 0b73e2503: Fix vlan tagging in new configuration
  • 049126c41: Update documentation for multiprocess snabbs-softwire-v2 schema
  • 237a541d8: Update the version number to new format used by thew lwAFTR
  • 6b527a9e8: Fix a couple of typos and nits from review
  • 0444c7e27: Restore --v4 and --v6 flags to lwaftr run command.
  • 737bf47cd: Fix small bug in retriving instance config
  • 27a6fc556: Fix small nit in documentation
  • ade39daac: Fix some small nits
  • 9db1f5123: Remove redundnet JIT files in selftest.sh
  • 096de0363: Fix incorrect call to produce_instance_configs in snabbvmx
  • c626e2133: Move back produce_instance_configs to lwutil
  • a3868d2a3: Fix testcases as manual migration is not needed.
  • 4e0efcfb2: Fix #876 - Improve config migration by chaining together
  • 5f5c2577d: Add selftests for snabb lwaftr migrate-configuration
  • 6f778a75f: Reduce memory footprint of migration
  • d7abf533a: This fixes the memory issues with util.string_output_file
  • 176906c96: Deprecate reconfigurable flag
  • 95c1e4e44: Fix few nits with depreaction of --reconfigurable
  • 65e447cf7: Start worker processes from leader
  • 9503b7dc7: Cleanup setup.lua to remove produce_instance_configs calls
  • 380df1e8b: Fixes Leader update configuration
  • a1a98c238: Maintain a single in_place_dependencies
  • c7b918c7d: Fix nits in variable names and comments
  • 0bd6d0c15: Improve variable name clarity and make timer repeating
  • 0c4b0f8af: Move sampling to setup
  • 7a64163f0: Support starting and stopping instances via snabb config
  • 155269b98: Update ietf-softwire translation layer for multiproc
  • 44c0e36a2: Improve error handling in multiprocess tests
  • 949be7939: Add empty.conf data for lwaftr
  • edc1e7553: Shutdown the follower properly when removing
  • 0b742d1fd: Stop csv stats outputting for stale instances
  • f9b12ab96: Only check for stale followers if one has been shutdown
  • ede1f8cdc: Fix nit
  • 8aec91209: Add test for migration using --on-a-stick command
  • 71a0f9dbb: Appropriately choose on-a-stick or bump-in-the-wire
  • 34a2f6364: Fix typo nits
  • 278501c61: Fix get-state for multiprocesses in lwaftr
  • c893cbc7f: Add tests for multiprocess get-state
  • 8b8a24413: Change default schema to ietf-softwire
  • 0d70e22c9: Fix indent nit
  • e0c037fe6: Fix tests

Kristian Larsson (1):

  • 74cfd808e: Remove mandatory statement for list keys

Luke Gorrie (1):

  • a8a805a67: .version: bump to v2018.01

Max Rottenkolber (20):

  • 879af8686: core.packet: resize should return the packet like the other functions
  • 0a6716215: lib.ipsec.esp: add support for tunnel mode
  • 1df5f63f1: program/snabbnfv/selftest.sh: move some functions to test_env for reuse
  • add01dceb: Cleanup ipsec esp linux interoperability test.
  • cb28b637c: apps/ipsec/selftest.sh: remove leftovers
  • 1600fcb7b: lib.ipsec.esp.decrypt_payload: properly handle packet underflow
  • b3072ab09: lib.ipsec.aes_128_gcm: use consttime_memequal to compare HMAC
  • beab39c79: lib.ipsec.aes_128_gcm: use fixed length ASM routine instead of consttime_memequal
  • d95d1cb3c: apps/ipsec/selftest.sh: add environment variable for skipping the e2e test
  • ae098953f: lib.ipsec.esp.decrypt_payload: remove redundant bounds/spi checks
  • 2794f6a99: core.link: free any packets left in link when freeing link
  • ac7c5e026: top: fix bug where counters were redundantly reopened
  • 413b661e1: lib.ipsec: update documentation w/r to tunnel mode and new interface
  • f0b2060c6: src/README.md: improve docs of core packet ops that clobber their input value
  • ee6cd0dd3: apps.ipsec: fixup incompatibilities introduces in esp-tunnel branch
  • 0faa5107b: Revert "src/README.md: improve docs of core packet ops that clobber their input value"
  • 73e88bf1c: lib.ipsec.esp: paddle back on "freeing" vs "ownership" in documentation.
  • da5293dc2: lib.lpm.lpm4: skip intensive test by default
  • 2c71c239c: lib.numa: skip selftest if running on a non-NUMA machine
  • fcf0ff169: Revert "lib.numa: skip selftest if running on a non-NUMA machine"

Nicola Larosa (3):

  • 00af6321a: Allow running just one lwaftr test file (#859)
  • b04b85a10: Stop the lwaftr monitor test from hanging (#858)
  • a5fa676c6: Improve the generate-binding-table test (#863)

Timo Buhrmester (2):

  • 28bb89690: Fix minor things that crossed my path
  • 20a9c3e99: ipsec test vs qemu works with vanfstd/snabblab-nixos:ipsec-linux-test (aad3824a2a703ff01bd44a5f065faee7d430cc2e) command: nix-build -K jobsets/ipsec.nix -A tests --arg snabbSrc /path/to/snabb
snabb - Snabb 2017.11 “Endive”

Published by eugeneia almost 7 years ago

This release introduces a driver-agnostic interface to network interface cards
(NIC), and switches over to the new intel_mp driver as the default choice. In
addition, some efforts of making LuaJIT’s compiler more predictable have been
back-ported from RaptorJIT to Snabb. Endive also includes various bug fixes as
usual.

Major Changes

  • #1229 Implemented VMDq, VLAN insert/remove for intel_mp driver
  • #1199 #1234 #1236 #1248 Implemented driver-agnostic I/O interface
  • #1237 Prefer intel_mp as the default driver
  • #1242 Introduced jit.tracebarrier() primitive, to delimit JIT compiler
    traces
  • #1244 luajit: Record calls to blacklisted functions the same way as calls to
    uncompiled functions (this fixes a pathological case where a blacklisting
    could cause cascading failures of the JIT compiler)

Minor Changes

  • #1225 lib.hash.siphash: avoid ctype diversity for hash functions
  • #1230 #1247 #1190 Various intel_mp improvements
  • #1228 Fixed a bug in the wrapper of get_mempolicy(2) in ljsyscall
  • #1245 In case of a segmentation fault, we now log various interesting details
    about the faulting address before exiting
  • #1235 #1240 #1254 Minor bug fixes and enhancements

Contributors

Alexander Gall (2):

  • 35cb3ad84: intel_mp: move shm initialization to constructor
  • fb46309c8: siphash: avoid ctype diversity for hash functions

Andy Wingo (24):

  • be89a9d40: intel_mp app relies on lib.parse to supply default values
  • 824af9ffe: Rename "ndescriptors" intel_mp config arg to "ring_buffer_size"
  • 2b551c15a: Old intel10g driver supports ring_buffer_size initarg
  • 16a16fb93: Fix intel1g snabbmark for intel_mp link names
  • 125c0f8d8: Add "rx" and "tx" elements to PCI device info
  • 770b536f8: Update virtual_ether_mux to take NIC link names from PCI info
  • aabbaedda: Update SnabbVMX lwAFTR setup to take link names from PCI driver
  • 2f4ca31c7: Unconditionally enable VMDq for lwAFTR packetblaster
  • 8037e4799: Update packetblaster lwaftr to take NIC link names from PCI driver
  • a9f39db83: Unconditionally turn on VMDq for LISPer
  • 9a4c329aa: Allow LISPer to use any PCI device that has a Snabb driver
  • 3f5d3efbb: Make snabbnfv traffic resilient regarding NIC link names
  • 38b1ef6e6: Update comment in Snabb NFV's "fuzz" command
  • 3260ca9ba: Update comment in virtio/net_device.lua to point to intel_mp
  • 2ec03c0c6: Standardize on "app:rxdrop()" instead of "app:ingress_packet_drops()"
  • c1f3a41a8: Remove "snabb lwaftr transient"
  • 2745c618a: Add CSVStatsTimer compatibility hack
  • 86f912e7a: Unconditionally turn on VMDq for the lwAFTR
  • dae0c4821: Fix SnabbVMX setup for driver independence
  • 34a81569b: Switch PCI driver to intel_mp
  • 60336e32f: Port firehose program over to intel_mp
  • b9d1d5d54: Attempt to fix apps/intel_mp/test_1g_sw_sem.snabb
  • 63295d72c: Fix adaptation of "snabb snabbnfv traffic" to be driver-agnostic
  • 617e157bd: Early error on incompatible vlan/macaddr/vmdq settings in virtual ether mux

Asumu Takikawa (87):

  • efbb5e72c: First attempt at VMDq for intel_mp
  • 60474bcab: Fix up VMDq mode so that it actually runs
  • 19edfb1df: First attempt at tests for VMDq mode
  • 70bd72d25: Try testing different MAC addrs with VMDq
  • 284ba9f65: Fix MAC address registration in VMDq mode
  • 70968dd44: Add comment explaining some RSS code
  • 32857a2f3: Enable RSS queues via PSRTYPE properly for VMDq
  • aca0bf334: Use :bits to set the VMDq RSS mode properly
  • cc026018d: Remove RSS bit check for setting RETA
  • 12a55f0c2: Fix RTTPCS bit set that had a wrong length arg
  • 162eac062: Adjust test to test that both vmdq pools get pkts
  • 97e36349e: Move MAC pool enable code and make it cross-NIC
  • 09c3bc635: Adjust the VMDq initialization assertions
  • 6240e9ab2: Error when the max number of MAC addresses is reached
  • cf044c7e0: Add code for enabling VLAN filtering/tagging
  • e31423765: Refactor vmdq test script
  • 88c0810df: Enable VLAN takedown code for VMDq
  • c3b58d0e4: Refactor intel_mp recv test scripts to reduce duplication
  • 6991cce56: Enable VLAN tag stripping in VMDq mode
  • 432e35a99: Adjust VLAN test to also test tag insertion
  • ec0c436f8: VMDq settings for transmit queues
  • c303d301f: Add a test for VLAN tag insertion & VMDq tx
  • 45a74947d: Set registers needed to make Tx test work
  • e8a1c36cd: Fix assertion for Rx queue num to allow nil
  • e1766fb29: Adjust intel_mp to error with VMDq on non-82599
  • 8e07ff327: Remove unnecessary helper function
  • 67420dd03: Fix permissions on two intel_mp tests
  • e6f2b05d7: Fix 1q vmdq test and testrecv.lua
  • 5dc4dcd47: Adjust VLAN test to avoid testing tag insertion
  • 590e2caed: Add waits to avoid race conditions in vmdq tests
  • c0558d6f5: Add documentation for new vmdq-related parameters
  • f83c6090a: Refactor vmdq-related assertions
  • f31b29a52: Adjust VMDq test for 82599 to be more robust
  • 871494e25: Add VMDq consistency check for intel_mp apps
  • 31229a602: Allow mirroring in VMDq mode
  • 59deb3502: Avoid use of bits function in hot code
  • 2d288c144: Avoid pairs in more places in intel_mp
  • 656ce13ab: Fix mistake in commit d1b0a87fb23ce9b49a
  • f2e8e3073: Sort keys in debug prinouts for easier reading
  • 5de384a23: Fix offsets for QBTC/QPTC registers
  • ddf0a241a: Add rxcounter support in intel_mp
  • 37b7c2b25: Add txcounter support in intel_mp
  • 142896df9: Port Tx rate limit and priority code to intel_mp
  • 1cf3239de: Fix silly typo in method call
  • 071290a20: Add code from intel10g for discarding unsent pkts
  • 87e0d45df: Fix some buggy app teardown code in intel_mp
  • d276077f6: Fix teardown test for this branch
  • a236d29fa: Rename limit field to rate_limit
  • ce2e40032: Fix another typo in VLAN code
  • f13aa500e: Make rx queue numbers relative to the pool number
  • 475cc80b5: Disable MTU check that intel10g disables
  • 24ced235a: Make txq number relative to the pool number too
  • 20bc39c36: Adjust the max Rx/Tx queue numbers in VMDq mode
  • 0c2364667: Fix VLAN tag setting after a NIC app is restarted
  • eaab2efb4: Shuffle code and refactor check_vmdq method
  • 98cecb639: Automatically select available pools in VMDq mode
  • 6ea7eeb90: Add a test where VMDq pools are auto selected
  • 15e486548: Revise intel_mp poolnum docs
  • 900775464: Add a fine-grained test for intel_mp auto pools
  • ddf3e2629: Fix pool lock cleanup for intel_mp
  • 5596eabdd: Minor fixes in intel_mp vmdq code
  • e9b815375: Move comment to avoid conflict with newline
  • 19e6434df: Rename some test files .sh -> .snabb
  • c00adf8c6: Minor improvements to pool selection code
  • ee0ce1d87: Protect against race conditions in VMDq config
  • 9f3074d59: Add test ensuring MAC/VLAN indices are set right
  • b0b0daa56: Adjust sleep time and add wait to intel_mp test
  • 76b3c3486: Fix fd cleanup in intel_mp
  • 702d01bc5: Use conf defaults explicitly for consistency
  • 4f27b28ec: Add option to disable rxq/txq in intel_mp
  • b9a04a079: Explicitly disable rxq/txq for intel_mp test
  • ac2e60ced: Update intel_mp README with diagram & methods
  • 790786f1c: Update intel_mp README with all ported config options
  • aa81c5465: Fix documented max pools/queues in intel_mp README
  • f2c673f49: Add a reconfig method to intel_mp
  • 5ed8e4fbf: Clear ETQF/ETQS registers on init
  • c91f00442: Fix RXPBSIZE initialization
  • 682370589: Set packet buffer size to max (16KB) via SRRCTL
  • ee98e2f67: Only sync stats in push if rxq is disabled
  • ecb74d385: Cache functions imported from link module
  • f858e4857: Enable VM TX loopback in VMDq mode
  • 033f657dc: Revert "Add a reconfig method to intel_mp"
  • 9c7763cfa: Add comments and delete commented code in intel_mp
  • 67e1776a4: Adjust ctable selftest to avoid assertion failure
  • 8c36d0b6a: Allow snabbwall to use any NIC that has a Snabb driver
  • a0591b442: Make lwaftr loadtest work with any PCI device
  • f21e80085: Port packetblaster over to intel_mp

Diego Pino Garcia (3):

  • 245e0f092: Set mask.size equals to MAX_NUMNODES if lower
  • a2fd55f12: Rewrite get_maxnumnodes function to not depend on a fixed filesize
  • 776601a15: Rework readfile function and add comment on how to calculate maxnumnodes

Fabian Bonk (1):

  • c76a9914e: Fix file mode

Luke Gorrie (6):

  • c2da4ae40: Add jit.tracebarrier() primitive
  • bfc8612d4: core.engine: jit.tracebarrier() before each app callback
  • e8c0808f3: core.engine: jit.tracebarrier() after each app callback too
  • 18620843d: lj_record.c: Record IFUNC/IFUNCV the same as FUNC/FUNCV
  • 0cc1ad9f2: .version: bump to 2017.11
  • 50ced9966: engine: Remove jit.barrier() calls around apps (too expensive)

Max Rottenkolber (2):

  • e2ef66a70: core/memory: log segfault address to stderr for unhandled SIGSEGV
  • 7c98e0607: core/memory: also log instruction and stack pointers as well as si_errno

Nicola 'tekNico' Larosa (19):

  • 6b321ac64: Make intel_mp tests run even when either 1G or 10G cards are not present
  • a13a3859d: Disable VMDq check if not in VMDq mode
  • 34d261225: Add default for number of pools
  • a9d7c3115: Remove redundant poolnum check
  • 07baa180e: Remove another redundant check on poolnum
  • 41380721f: Replace intel1g with intel_mp in comments and strings
  • 9615f89ea: Remove tabs from testrecv.lua
  • 721750174: Remove redundant checks for link in push and pull methods
  • 50fcf690f: Fix txdesc bug in intel_mp driver
  • ae707ce8f: Allow 64 pools instead of 32, and 2 queues per pool instead of 4
  • 0574ad6b3: Undo wrong change
  • 5a6177f61: Fix intel_mp test
  • fd6e310a8: Remove duplicate require line
  • 31e625e06: Add the poll-follower-for-channel fix
  • a58fa28d2: Typo fix to make CI run again
  • 299a5a869: Add config defaults for txq and rxq
  • d93693419: Add default for number of pools (revised)
  • 9c0547d6c: Make IPFIX use generic pci.device_info to load drivers
  • c8df78deb: Allow lwAFTR to use any Snabb-supported PCI device

krawthekrow (1):

  • e45ba2791: include ipv4/ipv6 in gre inner protocol list
snabb - Snabb 2017.09 “Dasheen”

Published by eugeneia almost 7 years ago

This release merges recent changes to SnabbWall, a layer-7 network flow
detector and firewall application built using Snabb. It also includes various
minor bug fixes and documentation updates.

Changes

  • #1219 Updates to SnabbWall
  • #1232 #1221 #1218 Minor bug fixes

Contributors

Andy Wingo (1):

  • 199c0ce9a: Allow LPM self-tests to complete even if no CPU affinity

Asumu Takikawa (2):

  • 7eaf4aafe: Refactor snabbwall test script, remove temp files
  • f5cb8be72: Change upstream branch of snabbwall to wingo-next

Ben Agricola (1):

  • 0508572f9: Fix Unix socket EOF handling

Diego Pino Garcia (7):

  • 0ad67c737: Add Apache License header
  • 752196098: Rename variables
  • 4aa32da3e: Explain filtering rules
  • e56e9f829: List 'filter' program in wall help
  • cef61c293: Show up filtering examples in 'filter' help
  • 114039714: Require root permission
  • 2198cea8d: Add Snabbwall copyright notice

Luke Gorrie (1):

  • 6cb8f4619: .version: bump to 2017.09

ikdc (1):

  • 0afaa4089: Correct name of Intel 82599 app in docs
snabb - Snabb 2017.08 “Endive”

Published by eugeneia about 7 years ago

This release adds a library of LPM routines for IPv4 addresses. Endive also includes many various improvements and fixes, including direct access to CPU PMU hardware, MTU support for apps.tap, improved performance for apps.vlan, and extended configuration options for apps.ipv6.nd_light.

Changes

  • #1136 lib.lpm: Longest Prefix Match library for IPv4 addresses
  • #1170 lib.pmu: Enable RDPMC via /sys/devices/cpu/rdpmc
  • #1178 lib.protocol.header: Return nil instead of asserting when a header is too big to overlay
  • #1189 apps.tap: support MTU, augment stats
  • #1191 apps.vlan: improve performance, configurable encapsulation
  • #1193 apps.ipv6.nd_light: added two new configuration options (remote_mac, quit)
  • #1208 Fixes a bug in the IPFIX app's netflow v9 mode
  • #1174 #1176 #1179 #1142 Minor bug fixes and improvements

Contributors

Alexander Gall (8):

  • 20d59582: Tap: support MTU, augment stats
  • d26fd86f: Fixes/enhancements for iftable_mib.lua
  • ee189643: iftable_mib: streamline processing
  • c6befb8a: nd_light: make app reconfigurable
  • acc3260a: nd_light: add option to reduce verbosity
  • a12ac85f: nd_light: add optional option local_mac
  • ccbe8101: nd_light: fix bug in NS validation
  • da4f98b0: apps.vlan: improve performance, configurable encapsulation

Andy Wingo (46):

  • f601fcf6: intel_mp: Poll more frequently for linkup
  • bf9baa24: Re-introduce 82599 reset into linkup wait loop.
  • d60b1667: Use default hash in IPFIX cache
  • 9c014531: Minor comment fix in ipfix exporter
  • ce65fd97: Split IPv4 and IPv6 collector data paths
  • e6b1d36a: Small IPFIX elements parsing cleanup
  • 47a6188e: IPFIX: Refactor template computation
  • 87945ec7: Add anonymous counters and links
  • 10d7c6fb: IPFIX exporter logic now independent of record types
  • 331840ca: Rename flow key/value to match standard IEs
  • a7d3db16: Join IPFIX apps together
  • fb959e7d: Use generated types in ipfix cache
  • 4aa22c50: Better mocking for ipfix test
  • 318bac76: Join IPFIX meter and exporter apps
  • 4608a95b: Implicitly create cache, and expire records directly
  • 4b9874d5: IPFIX app has single input again
  • 1daf62d9: Separate IPFIX templates into separate file
  • a17a0e91: Fix IPFIX leak
  • 2a9efb6a: Revert anonymous links
  • 03d40754: Pare down info collected by default IPFIX flow sets
  • 26da1174: Try different expiry mechanism
  • ba10cc3f: Remove unused variable
  • 0115e5d0: Configurable template refresh interval
  • 28873226: Remove IPFIX utils module
  • 72bddd84: Clean up IPFIX file header
  • 56914f9f: Clean up FlowSet initialization.
  • c5a9f3ef: Add comments; use float seconds more generally.
  • 734501ae: More IPFIX cleanup
  • 6ac2bf28: Make set of templates configurable
  • 16830a30: Add README.md
  • 1d2d633e: Initial import of lwAFTR IPv4 apps to apps/ipv4
  • ed64366d: Inline needed bits of ipv4_apps into arp.lua
  • 93e1f2d6: Add ARP test
  • d426e2fe: Break ARP app off from lwaftr
  • e8e2f308: Switch lwAFTR over to new ARP app
  • 5d57a657: ARP can assign itself a local MAC address; stamps outgoing traffic
  • e2f5f312: Add ARP README.md
  • 3c570800: Add ARP documentation to the doc build
  • 41c49f21: Fix nits
  • 8880f5e4: Remove unwanted tabs
  • adbd63c3: Integrate ARP into IPFIX
  • b949911f: Remove Ethernet details from IPFIX app
  • 9155b53b: Simplify "probe" interface to rely on ARP
  • e31bace7: Add missing imports
  • 6e5a979f: Add documentation for ipfix probe
  • e7bf90eb: Fix nits

Asumu Takikawa (70):

  • b5bfceca: Initial draft of netflow app
  • b6759d35: Add a selftest, support transport ports properly
  • b07d1f0e: Start to implement V9/IPFIX communication code
  • a3042848: Can now export flow records at a very basic level
  • b35fb6b9: Fix uptime calculation for v9 packets
  • e30dc7db: Fix IP checksum computation for exports
  • f2f3421b: Make the exporter slightly more configurable
  • d2eed9ad: Rename apps/program to avoid netflow confusion
  • 4d9965ef: Account for MTU in constructing record packets
  • 2953d562: Make sure to free ignored packets
  • 415b3538: Make selftest pass again
  • 59524277: Rewrite timer-based code in flow_export
  • 6e4e411b: Print a message when selftest succeeds
  • 787fc488: Add a sanity check for flow exporter's ctable
  • 41e023a4: Improve selftest with random packet processing
  • d2c82eb4: Improve selftest by checking number of flows
  • 33f293eb: Fix variables that should have been renamed
  • 4da54b21: Fix flow timestamp code to use the right clock
  • 332c9ee7: Enable idle flow timeout now that it works
  • 1b77271a: Reformat FFI cdefs for flow key/record
  • 1008f5bd: Restructure flow data structures for efficiency
  • ca47cb68: Add an IPv6 test and fix address fields in key
  • 11543f20: Modify IPFIX code to use IANA assignment CSV
  • b6171d66: Fix uptime computation that got out of sync
  • 3374a65e: Add debug printing for flow expiration
  • 43202954: Fix silly boolean/number confusion in ipfix.lua
  • abe9d9ee: Fix typo in ipfix.lua
  • a1f866a7: Improve debug printouts, set it via environment
  • acdb1063: Swap idle and active timeouts
  • 8f890aef: Improve debug messages with datestamp, abstract it
  • 735493b1: Fix active timeout calculation
  • 80026f45: Fix padding bytes and do a minor refactoring
  • 833d1415: Progress towards a robust snabb flow_export run
  • 64810934: Make flow timeouts configurable via program flags
  • 8091ffe6: Refactor IPFIX code to use a class & methods
  • 3175097c: Adjust flow export code to allow IPFIX v10 messages
  • b0acf2c7: Refactor write_header arguments in ipfix
  • 6a9d1b22: Adjust default MTU to 512 octets per RFC7011
  • 21f7e93f: Adjust default template refresh per RFC5153
  • 43d2b600: Packets should always be freed at the end
  • d3d00621: Adjust selftest for recent config changes
  • 37f879d7: Use a consistent UDP src port per "session"
  • 0d11dae7: Fix record data order and do minor refactoring
  • 05820247: Do a major refactoring of the flow exporter into two apps
  • 3805894d: Rename flow export app/program to ipfix
  • 44670416: Add a selftest for apps.ipfix.export
  • ef4e93f4: Move record expiry function back into the meter
  • 38b96ad2: Expire records incrementally instead of on a timer
  • e2243ce6: Rewrite meter code to avoid using header libraries
  • 62a550d3: Improve 'snabb ipfix probe' for benchmarking
  • a0ccddb9: Avoid allocation of flow keys for old flows
  • af63e7e8: Fix bugs in the last commit, zero out the key
  • 3ac87e2e: Pre-allocate both keys and record variables
  • 59d50177: Reduce number of timestamp computations
  • bd89b4d8: Save some space in the flow key representation
  • 8271e429: Use a different hash function for performance
  • 53e04f6a: Use dynasm to speed up the hash function
  • c760913e: Use slightly nicer assembly for hash
  • 9b89c948: Avoid indirection through wrapper methods in cache
  • 79126df5: Fix debug prints that broke from some optimization
  • 60e1a0c2: Add a basic benchmark script for the IPFIX app
  • d8b4cb1b: Fix pcap output for ipfix probe
  • fc5f8ebc: Fix typo in ipfix probe
  • 2f5c77f2: Fix app configuration in ipfix probe
  • 52339879: Add tap IO option for ipfix probe
  • 7ce48da4: Don't read southbound packets until ARP resolved
  • b824190b: Add timeout options to ipfix probe docs
  • 78bdcae3: Add an ipfix test script that uses a collector
  • 4c9c4b82: Improve ipfix collector test
  • 17ac2094: Fix typo in IPFIX v9 mode

Diego Pino Garcia (1):

  • d7181301: Remove src/core/version.lua from .gitignore

Luke Gorrie (5):

  • d01f4167: lib.pmu: Enable RDPMC via /sys/devices/cpu/rdpmc
  • 5fc8a770: .version: Bump to 2017.08
  • fabac149: virtual_ether_mux: Treat vlan=0 as vlan=nil
  • 290c1398: Revert "virtual_ether_mux: Treat vlan=0 as vlan=nil"
  • ebd0aa91: apps.vlan: Allow vlan=0

Nicola 'tekNico' Larosa (4):

  • 1f1da1b4: Avoid the most repetitive output in tests
  • e2aba33d: Reintroduce deterministic seed report, but only when it is a new one
  • 104502f1: Remove broken attempt to filter output
  • 3b866798: Relax the check on max_displacement in selftest

Pete Bristow (1):

  • 52b63083: initial import of lib.lpm* longest prefix matching lookup routines for IPv4 addresses

ikdc (6):

  • 13aa49ae: Return nil instead of asserting when a header is too big to overlay.
  • 06a42e69: free new header if size is too small
  • 3b359126: document that new_from_mem can return nil
  • 2e0d9529: check that new_from_mem returns non-nil in header subclasses
  • 20a1f190: assert TLV options
  • 22fa8c89: assert miscellaneous uses of new_from_mem