Snabb 2017.06 “Carrot”
This release merges the multiprocess support developed and tested in the last months. Carrot also upstreams many new features of the lwAFTR application, including a general library to configure Snabb applications via YANG. As usual, this release also contains minor bug fixes and optimizations.
Major Changes
- #1021 Merged multiprocess support
- #1133 #1148 Upstreamed major lwAFTR updates, notably including
lib.yang
Minor Changes
Contributors
Andy Wingo (284):
- 05f94d7: Move binary_search.dasl to core
- 21d4e74: Move multi_copy.dasl to core
- 6608e9e: Whoops, binary_search to lib/, not core/
- 6cff17c: Whoops, multi_copy to lib/, not core/
- b5cc8c1: Add streaming lookup to CTable
- 9c4c31b: Build yang files into "snabb" binary
- 6da1cbd: Fix typo in yang.lua
- c192058: Yang parser selftest uses bundled yang files
- aed5d4e: New schema parser
- dc2d4f2: Uniformly use "body" for contained statements
- 017ee82: Add base IETF yang schemas
- edf611d: Add linking/partial evaluation phase to yang
- 54a4f9a: Remove example.yang
- 6c9fc4e: Add IETF softwire schema and test it
- 33808e4: Resolve prefixed imported extensions, identities, etc
- 2744a40: Lazily resolve typedefs and groupings
- 324d561: Remove data-related facilities from schema2.lua
- 6ce76cf: Add YANG data parser module
- 0ff7a43: Yang data parsing/grammar cleanups
- e95af47: Add yang README.md
- 36f4ab0: Simplify lib.yang.data interfaces
- 6bf082e: Rename lib.yang.schema2 to lib.yang.schema
- 70f3637: Internal yang refactor
- 0934afb: yang: Primitive types for ipv4 address etc
- 103b7f3: Fix failing lib.yang.parser test
- 8c8dc72: Arrange to parse ipv4-address etc as primitive types
- f803b89: Finish lib.yang README
- c04ab99: lib.yang.util.tointeger allows for negative int64 min values
- dfd16f7: Yang primitive value types record their ctypes
- caa3689: YANG data grammar separates keys, values for tables
- 2ece77a: Add binary compilation for YANG configuration data
- 68f6657: Implement compiled configuration loader
- 9b9eb69: Add choose-representations pass
- b863974: Rework representation-choosing
- 7ffbce7: Normalize configuration identifiers
- 580d8c7: ctable: hash_fn param is optional
- 6177659: Ctable supports load/save
- 96b605c: YANG configurations compiled as raw ctables
- afe6195: Fix nits in yang support
- 467e0a2: Support cltable, string-keyed tables
- 69ca0cf: Fix bugs in raw leaf-lists
- 2c0fab2: Update lib.yang.yang
- dd5905f: Add auto-compilation interface
- 93ca00c: Add support to serialize a YANG config as text
- df8dbf9: Move snabb-softwire.yang to lib/yang
- 391b766: Rename to snabb-softwire-v1.yang
- da57ac4: Hyphen-case rather than CamelCase in snabb-softwire-v1
- cac171c: snabb-softwire-v1: Whitespace/syntax tweaks
- 352a02f: snabb-softwire: indent and reflow
- 36c866f: snabb-softwire: Two spaces after period in descriptions
- 9ffe80d: snabb-softwire: typedefs closer to uses
- be63713: snabb-softwire: descriptions more declarative
- 9e4be09: snabb-softwire: Update binding table
- a6d6723: snabb-softwire: Reorg into "external" and "internal"
- a766299: Fix snabb-softwire-v1 syntax errors
- 90add3d: Fix lib.yang.data serialization selftest
- 387f99f: snabb-softwire: ICMP error limiting on both sides
- 9f57b65: snabb-softwire: Add reassembly limits
- cb1e4d7: snabb-softwire: Change softwire leaf members
- 5f77458: Add another YANG data representation test case
- f659341: lib.yang IPv4 representation is host-endian uint32
- 3c163de: Add first pass of snabb lwaftr migrate-configuration
- 23ff1d8: Fix syntax error in snabb-softwire-v1.yang
- 987c008: Migrate-configuration quiets binding table loading
- 2a54416: ctable: hash_fn param is optional
- ee29d11: Ctable supports load/save
- 6d93fed: lwaftr binding table uses ctable instead of podhashmap
- f907489: Bump binding table version
- 803f10e: Grouping has no type.
- 0439dab: Fix YANG cltable serialization
- cba8cee: Rename conf.load_lwaftr_config to load_legacy_lwaftr_config
- b10a65b: Migrate lwAFTR data plane to use YANG conf
- 79224b1: Fix snabbvmx, hopefully!
- 5aec3d9: Trim unused code.
- 2dedf6a: Conf passed to lwaftr app must be object
- 957a45a: Fix yang source parser bug for file streams
- 08b189d: Implement configuration parsing for all yang table types
- 2788071: Fix integer parsing bug in yang
- 0e31653: Fix serialization bug in yang code
- c6a0e85: Fix cltable binary loading in yang
- 68e325e: Binary configuration saving strips off .conf
- c82ee04: Implement yang-syntax string serialization
- 6f4c43e: Migrate "snabb lwaftr" to yang configurations
- fc4c711: Migrate snabbvmx lwaftr to new configuration
- 8019d7d: Fix ctable lookup_and_copy bug
- 31beaeb: Add hash and ctable subcommands to snabbmark
- bf4471a: Remove PodHashMap
- 1348857: Isolate old-style lwaftr configuration support
- f916dea: Fix default value bug in yang parser
- fd65810: snabb-softwire-v1 tweak
- b7a5774: Omit default values in yang serialization
- ce3ecc3: Move more legacy code to migrate-configuration
- 0a92b69: Remove old binding tables
- 3078cb7: More legacy lwaftr code migration
- 952c6a4: Fix snabb lwaftr bench
- 5c5f64a: Update lwaftr docs
- 3934d6d: More doc tweaks
- 008f5e5: Update changelog for next lwaftr release
- b6dbea2: Update README.configuration.md
- be77b4f: Fix data serialization bugs
- 8f0c34b: Prune example lwaftr configs
- 0581a97: Configuration refactor
- 6de0d32: Fix reconfiguration with reconfig method
- c04e8e1: Add apps.config.leader
- 7a1503e: Implement core state machine in config leader
- a2dd717: First implementation of snabb config get-config
- 4915d1f: YANG schema support for RPCs and notifications
- a32210a: Support RPC sequences in parser/printer
- 48bb8f2: snabb config get-config uses RPC mechanism
- 253bddf: Add RPC support module
- 4a52f30: RPC between "snabb config get-config" and leader app
- db25fd6: Config leader manages app graph
- 58cdaa8: Config leader claims $root/PID/config-leader-socket
- a968569: Add Hz parameter to config leader
- 5019508: snabb lwaftr bench uses config leader
- afc8f2a: Add support for decimal64
- dece919: Add support for lib.equal comparing int64
- 2b9d1b8: Add ad-hoc data serialization via yang modules
- 154c77f: reconfig_app action takes class arg
- 11ad5b9: Implement encoding for leader-follower protocol
- d39a368: Implement decoder side of leader-follower protocol
- 4d39f82: Implement channel for leader-follower messages
- f29a6a9: Implement follower; wire up leader-follower protocol
- cdc3881: Serialize {} instead of nil
- 16db816: lwaftr apps load counters themselves
- 902dd34: Binary serialization uses alignment of type, not value
- e81de39: Fix lstruct serialization
- df3cfd4: Fix lltable loading
- f8380e9: Improve ad hoc compilation for legacy IPv4 addresses
- 8866ee2: Avoid too much type generation in yang module
- 53c2e48: Follower flushes JIT after starting or reconfiguring apps
- 3f6644d: Make get-config work
- 2a06489: YANG parser adds location information to result
- d651693: Schema strips annotations earlier
- a43c4d5: Schema parsing moving away from mutation
- b81c495: Config leader checks path
- fbebbb9: Minor schema refactor
- ef677e0: Further schema parsing refactors.
- de24664: Schema parsing refactors redux.
- 423a032: No more annotation of parser source terms.
- 5916b09: Fix assert_with_loc bug.
- 1811923: Implement load-config command
- 80b4a35: Rename action_queue to action_codec
- b354d1a: Add apps.config documentation
- 9256bf8: Add "snabb config" README
- cbca5b9: Call link methods
- d7194ad: Always unlink endpoints when links go away
- b551d27: Fix perf hazard in restart_dead_apps
- c708b62: Simplification in compute_config_actions
- 4242854: Fix perf hazard in leader socket accept()
- 50f6441: Rename "snabb config load-config" to "snabb config load"
- c43e98f: Rename "snabb config get-config" to "snabb config get"
- 87c887c: Refactor "snabb config"
- 346ae47: Refactor "snabb config load"
- cf5733f: Further "snabb config" refactors
- c243730: More snabb config refactor
- 5f8ba0f: "snabb config" asks schema from leader if needed
- 830209d: Update program/config/README.md
- 8372c4b: Implement "snabb config set"
- 8d7eb80: Remove compile-binding-table, control lwaftr commands
- c4be666: Update generate-binding-table
- 5316c14: lwaftr supports run-time reconfiguration
- 20c3bb5: changelog updates
- ff09ecb: Changelog markdown syntax fix
- b148b4d: Syntax fix for README.configuration.md
- c0db108: Version 3.0.0
- 80e6eca: Allow ability to parse/print non-struct data
- ad0c2d2: Print to strings via string_output_file()
- c0eceb0: Prepare "snabb config get" for paths
- 3685310: Fix serialization in program.config.common
- 3a55f9f: Prepare "snabb config set" for paths
- 791f1a0: Add stub "snabb config add", "snabb config remove"
- 8bcf520: Rename xpath.lua to path.lua
- 42faa34: Localize handlers for path.lua:convert_path
- 5043daf: lib.yang.path test tweaks
- 8b3f9a3: Precompute path resolvers before running
- e6f4635: Wire up snabb config get with paths
- 68a7ab5: Rename parse_string to parse in lib.yang.parser
- 2d72f21: Add ability to print and parse bare arrays and tables
- 2691648: Address nits
- 3a67a93: Add normalize_path
- f3f6b8b: "snabb config set" of paths with leader app support
- b1301ae: "snabb config set" on table/array items
- 21d1f7d: Fix bug parsing bare arrays and tables
- 2eeade4: Prepare for add and remove "snabb config" commands
- ba5d3ed: Fix bug in lib.yang.parser.parse_statement_lists
- 497a1d4: Add support for add-config to leader
- e3a0e76: Add "snabb config remove"
- e3fabe7: Re-enable pcall in leader
- 9851ec8: Fix a link in program.config.README.md
- 1e32495: Fix more config README.md links
- 9c76877: First implementation of "snabb config listen"
- 5f10222: Leader doesn't hang up on client after one request
- 4d6cd79: "snabb config listen" validates data
- 362f2ae: Listener prevents other clients from updating config
- 2e28e71: Move around READMEs
- 3fb219e: Update snabb config usage files
- 85a7dec: Fix YANG parser bug for C comments
- e15a812: Listener writes output to stdout
- 4fa5f67: Update "snabb config" docs
- 9341229: Add yang annotations to readme files
- b013c2e: Fix bugs in config leader for tables
- fcca73d: Add json read/write tests
- e479e61: Add "snabb ps"
- aacb394: Add 3.0.1 release notes
- 33677ff: Leader can load schema-specific support module
- 854cf14: Add lwAFTR v3.0.1 changelog entry
- 632120b: Fix typo
- 2eb8aad: snabb ps parses command-line args
- ef9c5f0: Fix bug in ctable:lookup_and_copy
- e996224: Add support for fast binding-table updates
- 5ab2dfc: Remove unused softwire support import
- bb63b31: Fix parsing of bare YANG scalars
- 614ed2f: Restart apps when configuration changes in place
- 5176055: Support alternate schemas in the leader
- 55409bc: container YANG schema nodes always appear in data
- 2beb5ee: Update binding-table update fast-path for schema change
- e5a6915: Fix up data-plane fallout from lwaftr schema change
- 84b8f6d: Fix up legacy lwaftr migrate-configuration
- fa65d1e: Fix binding-table self test
- 3733183: Attempt to fix snabbvmx selftest
- 0cf1564: Clean up snabbvmx setup fix
- 939f839: Better support for features
- 50f9d9f: Visit union type members
- 6d2add0: Hackily choose first union type member in data grammar
- 7f0468e: Add support for get-config in terms of ietf-softwire
- 7d8710b: Initial get-state support over ietf-softwire
- 6373ca0: "snabb config" queries leader for features
- ff6e330: Fix IPv4 and IPv6 prefix types
- 4c04f34: Features are only available if they are in capabilities
- 6ba9d8c: Fix data parsing bugs
- 74d5758: Fix "snabb config load"
- a7072dc: First pass at updates in terms of ietf-softwire
- 12886da: Fix creation of native binding table from IETF binding table
- 15edc01: Fix "add" on ietf-softwire
- 76fefdc: Bug fixes to ietf-softwire support
- 143aa98: Fix default hash function bug in ctable
- cb14656: Add missing local in ietf softwire support
- b4b0a72: Fix fast-path bugs in ietf-softwire translator pre_update function
- 7b464b1: Fix ietf-softwire updates to individual binding table entries
- f0f7233: Switch to 1-based indexing in snabb-softwire-v1
- 758e9dc: Add lwAFTR 3.1.0 changelog.
- c378451: Snabb lwAFTR v3.1.1 change log entry
- 037aefa: Incrementally lex and parse data
- f46f113: Micro-optimizations to data parser.
- 70b5d73: Add a fast path for ctable insert.
- de2b55d: Use 40% occupancy as a maximum for data ctables.
- 6d30d1d: Inline another call to check in tointeger
- a357e11: Fix bug in ctable hash-to-index mapping
- 3b3b373: Re-enable lwaftr CSV stats
- 9bea7fe: Unbreak ingress drop monitor.
- 2d5c76b: Allow for asynchrony between main and worker lwaftr for stats
- 57aa527: Snabb lwAFTR v3.1.2 change log
- 15851a8: Schedule main and worker processes on different CPUS.
- d3928a3: Snabb lwAFTR v3.1.3 change log
- ae8d769: Ship "snabb" binary and snabb-lwaftr symlink.
- 93ef6bd: Fix killer bug in leader: write beyond array end
- d1f4515: Fix a couple more instances of the uint8_t[?] bug
- e7267cc: Snabb lwAFTR v3.1.4 change log
- 38128e5: Extract json module from "snabb config listen"
- d6a5dd9: Add "snabb config bench"
- 4ea7fdc: Tighten up ctable interation bounds
- 6ff54ff: Memoize schema loads
- 73fc4ea: Add some more memoizations
- a9a4a55: Inline "snabb config bench" args parsing
- d27a5df: Add pipelining to "snabb config bench"
- a2ae3b9: Leader drains pending input from client
- efabf7f: Fix json lib for flush_to_fd rename
- 655b799: Improve memoizer; memoize more yang functions
- ba73125: Be resilient to binary compilation version changes
- 2c6b469: Leader-follower protocol tweaks
- 3066149: Cache ctable entry types.
- d182dc5: Make follower not so thirsty
- e0c039d: Close pipes before execcing listen
- 2c16488: Fix snabb config listen for get-state.
- df3484c: Snabb lwAFTR v3.1.5 change log
- 0183f43: Snabb lwAFTR v3.1.5 change log
- 7753e04: Add yang objects to build.
- 85d18c7: Skip snabbwall tests if libndpi isn't available.
- 9c812cf: Fix libndpi check
- 92bfddb: Skip lib.multi_copy selftest if AVX2 unavailable
- 08f3342: Temporarily disable snabbvmx selftest
- 7c07e80: Add soaktest to "snabb lwaftr" usage.
- 344e22a: Disable bus-mastering cleanup for intel_mp
Asumu Takikawa (45):
- 884c938: Fix
snabb config remove
on arrays - c6e58c1: Fix typo in
snabb config
README - 4ad0c2e: Minor fix to selftest.sh
- 74bdc74: Generate xpath queries for
snabb config get
test - a0c779e: Add test ensuring two config runs yield the same result
- 56f53d8: Add cleanup code to shutdown lwaftr process for test
- 0002d5c: Produce "/" path instead of "" in base case
- 69146d2: Abstract out the common prop testing code
- 56d415b: Add generation of
snabb config set
commands - b5a863c: Add a new test for the get-state command
- 1c4a26f: Make get-state lookups use generated queries too
- 3b76638: Fix the get-state test to have non-empty query results
- 7e018bc: Bump get-state test duration
- ae6c8b9: Add optional query parameter to generate functions
- 62f97a5: Improve sameval test to be resilient to missing fields
- d350232: Abstract out the crash checking into common.lua
- 5cb065e: Generate selectors for list indexing in tests
- 65af1cd: Test the ietf-softwire config protocol too
- 815c258: Traverse 'list' nodes for random generation better
- e42ad26: Adjust how integer values are generated to prefer boundaries
- 905a151: Prefer lower position arguments
- d746064: Start to add functions for generating set/add values
- d938919: Use new set command generation for nocrash test
- 341cdeb: Initial attempt at generating compound values
- ece5893: Generate more leaf data types
- 9b3baf6: Add some comments to genyang.lua
- 000ae61: Add comments, minor refactoring
- 4f73d09: Adjust weight for boundary values in number ranges
- 9f9b74b: Support decimal64 and binary types for test gen
- b5b7aa1: Run more sameval get/set tests on occasion
- 854d7e6: Implement enum generation, change error behavior
- fe83441: Use range statements in YANG types for value gen
- c9e910f: Validate PCI address for property based tests
- eaabeea: Don't fail if there isn't a range in the type
- 463a851: Add code to occasionally ignore bounds
- 521bdd3: Intentionally generate wrong types occasionally
- aba11d0: Experiment with
snabb config add
testing - 9520fa2: Generate
snabb config remove
commands too - f05dee6: Fix selftest for genyang
- 4b0892c: Generate values/paths for config add/remove better
- 41a3bcb: Adjust leaf-list case to not always use a selector
- 0b1417a: Tweak test iterations and timeout
- f4dae60: Generate 64-bit ranges correctly
- d2d3bd4: Simplify the function in f4dae60
- f8a09a1: Delete outdated TODO comment
Christian Graf (5):
- 528866a: Changes to be committed: modified: README.troubleshooting.md
- 30f2ee6: added howto craft packets via scapy tool
- d48fe99: end-to-end section updated in case counters.lua file is used
- 995d398: incorporated Diego's comments and simplified the input pcap
- c1e7eec: incorporating Fix formatting in issue 610 #8 to README.troubleshooting.md
Diego Pino Garcia (82):
- e2b22a7: Append 'src/' to example.yang filepath if executing snabb from root folder
- 0888062: Remove duplicated code in SnabbVMX selftests
- 4be802b: Remove hardcoded constants in nh_fwd
- c6f9d14: Add SnabbVMX manual
- a2043ba: Document ingress drop monitor default values
- 625a818: Allow ingress drop monitor deactivation
- faa32bf: Add image
- db2e436: Rename snabb-lwaftr to snabbvmx in Makefile
- d3b1d95: Redo exit logic in snabbvmx selftest and next_hop
- 1d1c0c7: Add unit test for ipv4_cache_trigger
- 9856da7: Add unit test for ipv6_cache_trigger
- ccce15f: Rewrite of snabbvmx's nexthop selftest.sh
- c404ea6: Rewrite SnabbVMX's selftest.sh
- 0e9d548: Allow duration in soaktest.sh
- 2729db9: Drop origin_packet always
- 064393a: Wrongly wrote outgoing v4 packets to v6 link
- f862b77: Increase SnabbVMX nexthop selftest qemu image RAM to 1Gb
- caa03b8: Check only the VM returned MAC addresses different than nil or zero
- a0d3ce4: Increase SnabbVMX nexthop selftest qemu image RAM to 1Gb
- 0ea9f8a: Check only the VM returned MAC addresses different than nil or zero
- 2185e97: Rename counters to counters_path
- cbf7400: Store pid as a string
- 9efc299: Redo by-name query support in 'lwaftr query'
- eb5088f: Redo by-name query support in 'snabbvmx query'
- ee95c09: Redo by-name query support in 'snabbvmx top'
- 97c52b1: Redo by-name query support in 'lwaftr monitor'
- 2ae3ed3: Cast pid argument to a string
- b9eee44: Replace functions 'get_pid_by_name' and 'get_name_by_pid'
- 73e6be9: Exit nicely if couldn't set affinity for a core
- d1f192c: Remove garbled lwaftr-virt configuration file
- 951fff8: Show whether a PID is a worker in 'snabb ps'
- 98216ef: Sort list of pids
- abb9372: Show PIDs as a tree
- def9ad0: Mark processes that are addressable by snabb config
- 71fab70: Remove .dasl extension
- 1533869: Refactor lwaftrctl
- c97fcae: Execute make clean in programs containing a Makefile
- e96d016: Reintroduce lwaftr command
- 1773310: Replace tabs for spaces
- c00f2c3: Remove unneeded check
- b779a2b: Clean up
- fb52203: Fix tunnel-path-mtu and tunnel-payload-mtu in ietf-softwire
- 86b9835: Remove end-addr in psid-map
- b3fdcaf: Remove end-addr from configuration files
- dd8ef6c: Add selftest
- 6845bca: Fix error on valid 'snabb config set' invocation
- 21f6585: lwaftr query selftest
- 2c36f52: Print NYI error for softwire-num-threshold
- 8c401dc: Respond to ping6 packets in on-a-stick mode
- 12e3e3a: Add test ping lwAFTR's V4 and V6 interfaces from a Linux kernel interface
- 18d635c: Add configuration file
- 9d90e5d: Skip hw ping to lwAFTR test in CI
- 64539d4: Snabb lwAFTR v3.1.6 change log
- fd46085: Revert "Remove end-addr in psid-map"
- 7f44e9e: Snabb lwAFTR v3.1.7 change log
- d1ae27e: Retry ARP and NDP resolution indefinitely
- df96eac: Refactor selftest
- 26dc11a: Set random destination port in IPv4 refresh packets
- 1299a74: Set random source port in IPv4 payload of IPv6 refresh packets
- 3249679: Remove unused variables
- 78f88f6: Verify checksum of modified refresh packets
- aa8d105: Fix run_nohw
- 88c3f7f: Fix pid in CSVStats
- 22784fa: Clean up run_nohw
- c7eb0bd: Add option 'duration' in run_nohw
- f9d77e4: Rework verbosity option
- bc9e1bd: Update run_nohw README
- 942cefd: Add run_nohw to the list of subprograms
- 1c2c7d5: Add unit test for run_nohw
- f3a88c3: Update documentation
- 248ec26: Rework unit test
- fee3322: Use snabbvmx query instead of next_hop
- 6edbd9d: Remove snabbvmx nexthop
- 6d5f80f: Append lwAFTR version number and date to help info
- 5079948: Reintroduce NDP secondary address test
- 6993af8: Print out when VM setup is ready
- 7b55781: Pass SnabbVMX PID to snabb monitor all
- ab43f22: Delete tap interface before creating it
- 459e040: Make quickcheck a lwAFTR subprogram
- 34bdf3e: Add quickcheck README
- 76afdf7: Refactor quickcheck code
- e824130: Add quickcheck unit test
Domen Kožar (9):
- e1332fd: Optionally disable openstack support in Snabb
- 66903b4: lwaftr: README.virtualization.md: fix formatting
- 391a353: lwaftrctl: pass $SSH_OPTS to all ssh invocations
- b375f38: lwaftrctl: invoke screen with -L to enable logging
- 823776f: lwaftrctl: avoid double sudo
- 1594d20: lwaftrctl: typo
- d4efeb7: lwaftrctl: allow setting QEMU_ARGS
- b9d1c93: lwaftrctl: fix docs
- 13ed45f: lwaftr: replace tap interface with 9p share
Jessica Tallon (104):
- 0f13d75: Initial commit of YANG parser
- 0e3495e: Add statement parser
- 447f2c5: Add more testing, docs, and fix bug
- a738eb2: Fix syntax problem and add helper function
- d5ced20: Remove unnecessary newlines
- 16a9713: Create a schema parser for YANG
- 1b50533: Improve schema and data tree builders
- 23f1060: Fix indentation and few stylistic things
- 2e107e6: Switch to use syscall.helpers and remove unused meta
- f3d5e36: Add the missing file descriptor closing
- cd1fd3d: Add IPv4 and IPv6 box types as well as fixing bugs
- 4714f6b: Add more statements, fix bugs and add more types
- 263c0e9: Fix problems brought up in review
- 90016a9: Fix box problems & make selftest more robust
- ecee1a5: Initial commit of snabb's lwAFTR YANG config
- 5c1ab27: Add iterating over YANG data file
- b5163fa: Fix bug in reading yang data file
- 6650a13: Add named programs
- 0ae21b6: Remove unintentional addition of claim_name to example_relay
- 90a6ada: Replace usage of syscall.util and fix cleanup code
- 4010061: Add backlink for named programs
- 4c86315: Refactor top.select_snabb_instance and fix small issues in claim_name
- 7962515: Fixes error in selftest for core.app
- 9dfb3c8: Minor cleanup of comment to re-trigger CI bot.
- c0370a5: Add
snabb config derive-data-format
option - f93f1b6: Move data_format into own directory and rename
- fc75a99: Use core.lib.dogetopt to support -h and --help
- 66d1cdd: Convert node displaying into data driven code
- 24484af: Refactor options and data_format config file
- 6fb48f8: Fix some small code cosmeic issues
- 03e2d26: Add XPath parser for xpath -> lua path
- cd6ae3c: Remove unnecessary imports in selftest
- bf43c21: Fix nits and add resolve to lib.yang.xpath
- 689e1f4: Fix invalid library references in lib.yang.xpath
- 491d635: Refactor lib.yang.xpath.convert_path and fix nits
- fab5d4f: Fix final nits in lib.yang.xpath
- 45d8bb4: Fix some more nits in lib.yang.xpath brought up by review
- ca390fe: Tighten up definitions in lib.yang.xpath
- f35af3a: Fix a bug and use string:split() in lib.yang.xpath
- 69ac479: Add counters to yang schema
- d6340ae: Add snabb config get-state as RPC
- 861989b: Add missing lib.yang.state - oops!
- f27638e: Add verious fixes for snabb config get-state
- 1454294: Fix some nits and add selftest
- ff6c5e4: Add assert in core.lib.files_in_directory for better errors
- ebd2a4b: Fix bug in core.app where shm.mkdir behavour had changed
- 1239f67: Refactor out config inheritance from lib.yang.schema.resolver
- 8ad3595: Change parameter in inherit_config from table to boolean
- e2a0389: Add assert to ensure config can't be in state data
- c545c5f: Change use of shallow copy to make more robust
- ccc176e: Second attempt to fix shallow_copy
- be12aaa: Support named lwaftr instances and update ps program
- 1ca6e6e: Add name param to lwaftr run program
- e8e3128: Remove name leaf from yang
- ab8841b: Add handler for -n/--name for lwaftr bench
- 88defd3: Remove code to handle schema defined name for lwaftr
- b84b46a: Add better documentation for config get-state
- f078bcb: Fix problem in get-state causing number formatting issues
- 4e1c534: Add missing lwaftr counters to snabb-softwire-v1
- e8fce9c: Fixes undefined "otps" variable.
- 7d8160e: Fix #622 Use correct PID when getting state
- 5c2bebc: Fix -h and --help for the ps program
- 87055ed: Add tests for snabb config with lwaftr
- f9efd36: Stop the lwaftr after the get-state command too
- 84a0ac1: Add forgotten selftest.sh
- 6e0cd4d: Remove TODO where solution was acceptable
- 1229706: Add basic error reporting to snabb-softwire-v1
- 8276021: Fix small cosmetic nits brought in in review
- 73c6590: Add socket support for snabb config listen
- 5b4a6d0: Add tests for snabb listen over unix socket
- 97eeef1: Add snabb config listen test to selftest.sh
- 0515451: test-config-listen.sh: use skipped test exit code
- c0866eb: Re-trigger unit tests
- 7f8d684: #700 - Allow for missing optional containers snabb set
- 343bd31: #737 - Add name leaf to snabb-softwire-v1
- fae70ba: #737 - Support name by --name or snabb-softwire-v1
- 7eb419e: #737 - Add rename program support and fixes bug in claim_name
- 60af0b1: #737 - Add support for changing name via snabb set
- 0467caa: #737 - Add documentation for name leaf (inc. presidence)
- 5355f1b: #737 - Add support for name leaf in ietf-softwire translation
- 2e2b3d7: #737 - Move name claiming to setup_fn and add unclaim_name
- 99aff07: #737 - Remove test that successive calls to claim_name fails
- f19182a: Change configuration.name and improve name changes
- 9d15cdc: Fix #716 - allow / in yang strings
- 836ad56: #716 - Fix small nits brought up in review
- 92ac924: #716 - Fix a few more nits
- a57d7e3: #716 - Add // comment handling in strings
- a80f481: #748 - Re-enabled broken tests
- 8589b56: Fix #748 - Move claim_name to lwaftr_app
- 73abb70: Fix indentation nit
- 4c92a0e: Fix #702 - Error when neither of next-hop's leaves are specified
- fcaa19f: Add test for #727 - check softwires are matched
- 7236a67: Add validation for softwires using snabb config add
- 04d9605: Fix pervious config test with new validation
- 8e6b398: Improve tests for softwire validation
- 7733f20: Fix #638 - Validate path on snabb config get
- 20ea537: Fix softwire validation for config and initial start
- 4fdd863: Add validation functions to generic leader support
- 85659dd: Fix config validation for non --reconfigurable too
- 07f1702: Lookup psid entries using rangemap for range support
- 084bb44: Add snabb set test and fix get_binding_table
- 828e67a: Fix small nit with validate_config call
- a08f527: Add test to check list with config false doesn't need "key"
- 4385676: Fix #789 - Make "keys" optional for list statements with config false
Katerina Barone-Adesi (43):
- 8310b87: Also run selftest in dasl files
- 34871fb: Documentation fixes, suggested by Christian Graf
- 03ad2da: Added documentation on how to run on-a-stick mode
- 7164c27: Add on-a-stick mixed IPv4 IPv6 benchdata pcap
- 6991507: Added lib.dirname to channel's mkdir
- 4e8a94f: Fix typo, idr->dir
- 9139b8e: Make lwaftr bench multiprocess
- 0f2d064: Add support for --cpu to bench
- 56bd304: Added bench support for --reconfigurable
- d05ae25: Added front-end lwaftr tests
- 764c971: Make lwaftr run --cpu work with multiprocessing
- 73cd0c5: Fixed selftest paths to run from make test
- 79c7073: Added an automated test for snabb config get
- 4f4f34e: Do not show an empty link report in run
- 8a147ca: Make lwaftr run --reconfigurable uniprocess
- 7e7190d: Revert "Make lwaftr run --reconfigurable uniprocess"
- 3e32819: Set up 'group' in the leader/parent process
- 041b0e4: Removed README. prefix from docs
- 4fd4aa7: Sketch out Igalia's testing strategy
- 10e84dd: Hard wrap at 80
- 58315b1: Explained how to test ARP in the wild
- e99ad1a: Hard word wrap at 80 chars for filter perf doc
- 3eaf558: Fixed typos, explained modular philosophy
- 5b1986d: Fix lwaftr query
- 6f806a9: Disabled finding default Snabb instance
- a9d3130: Fix byname printing of stats with --reconfigurable
- 8946b8f: Changed tests to work without load
- c70c5a7: Allow querying follower by leader pid
- f4543c1: Don't return bogus values when no pid specified
- 407d051: Get the right pid, regardless of counter filters
- 6bf6084: Make filtering work with by-name
- 72a801e: Test counter name that does not exist
- b051cf9: Addressed nits
- b31d1db: removed print
- c281682: Property-based test: lwaftr run does not crash with get
- 88e6d02: Close popens
- c7f669c: Add $ to exit code
- a28953b: Run property-check lwaftr longer
- 4d6b157: Sleep for longer before starting test
- 95e2a66: Added a regression test for end-addr
- 6a4cd40: Added vlan version of tests
- 4fbaee1: Reduced the number of globals
- 8824412: Require link and engine
Luke Gorrie (27):
- ca490c4: core.memory: Rewrite memory.c in Lua using ljsyscall
- a85017b: engine: Extend API for spawning a background worker.
- a7c2194: core.shm: Added shm.alias(newpath, oldpath)
- edee5b6: program/worker: Added "worker" program
- 42f25ee: program.worker: Removed (for replacement)
- 4922af8: core.worker: New module to run worker processes
- 0d717a4: Revert "engine: Extend API for spawning a background worker."
- 6e28390: shm: mkdir() now creates full path
- f614c6a: core.memory: Manage hugetlb file-backing lifetime
- 50a446b: hardware.pci: Disable bus mastering on shutdown
- 9fe91ac: main: Call pci.shutdown() and memory.shutdown()
- 7fbc1a3: core.memory: Auto-mapping of DMA memory w/ SIGSEGV
- f4228ca: main: Add SNABB_PROGRAM_LUACODE env var
- dff8685: core.worker: Add execve()
- 1e1f889: core.worker: Added simple selftest() function
- 49a8467: core.worker: Remove CPU core as a parameter
- 0b366da: shm.alias: Ensure directory for alias exists
- 7189790: core.main: Report unparsable SNABB_PROGRAM_LUACODE
- 1ce4ca8: core.worker: Start worker with Lua expression
- 5393afa: core.worker: cleanup child w/ prctl set_pdeathsig
- 514784a: core.worker: Updated API & removed dead code
- 987dd77: core.memory: Retry on hugetlb allocation errors
- 7adc708: ljsyscall: Add more protection against fd double-close
- f7cb722: net_device: Eliminate fast-path table allocations
- 82f3355: README.md: Document core.worker multiprocessing
- 6d7e516: core.worker: Remove dead code
- 56a5acf: README.md: Fix multiprocessing diagram syntax
Nicola Larosa (36):
- c0c64eb: Changes while reviewing
- 3cd2742: Remove the 'lwaftr generator' command (#508)
- 3fbce43: In the 'bench' command, use the same option name for the benchmark filename as in the other commands (#514)
- 8b80812: Fix the bench-file option in the run, run_nohw and transient commands (#524)
- 8d43cf2: Fix benchmark CSV creation and docs (#526)
- ac4b0ec: Add Hydra CI docs (#545)
- 9c07396: Let out-ipv6-* counters also count internally generated ICMPv6 packets, and update docs (#547)
- 3f7f744: Add an example of running a load generator towards on-a-stick mode (#554)
- 37ebdba: Add explanation of more Hydra jobset parameters (#563)
- eaeb65d: Add CSV output to the lwaftr loadtest command (#578)
- 81c5abb: Add Hydra mode to the lwaftr loadtest command (#583)
- bfbc37f: Add missing IMIX pcap files (#584)
- 785221b: Yang config doc fixes (#643)
- c1008a6: Remove useless pcap files (#667)
- 54c1283: Remove busywait from main process when leader (#732)
- aa496be: Automate creation of tarball releases with Hydra (#733)
- 074adda: Refactor query tests to use common test tooling (#741)
- 68ec9a2: Rework config tests to use common test tooling (#740)
- fd9d038: Add a selftest for the lwaftr bench command (#739)
- 53d3d7a: Bench command: turn off leader busywait, mention --reconfigurable in README (#738)
- 176773a: Enhance NUMA selftest (#734)
- 56b9240: Refactor config and query tests (#744)
- 76b6b19: Stop using tmux in query tests, use shell jobs instead (#746)
- 0804101: Add v. 1.12.9 of the 'sh' Python library (#750)
- c1fcfd4: First Python integration test (#751)
- da1acc6: Add 'run' subcommand test, refactor the 'bench' one (#753)
- 40a980b: Add a selftest for the "lwaftr loadtest" command (#755)
- 4ea06f2: Add test for 'lwaftr check' subcommand (#760)
- 9f18b41: Add a selftest for the "lwaftr monitor" command (#762)
- 1b192e0: Improve Python selftests (#763)
- 22f4a7f: Remove the 'sh' Python library (#771)
- 44617fc: Convert the "lwaftr config" tests to Python (#768)
- 6a4985b: Convert the "lwaftr query" tests to Python (#773)
- 55defa6: Create the TAP interface in the "monitor" subcommand test (#776)
- cf290d1: Improve calling the superclass classmethod in monitor test (#780)
- d895395: Remove the default bench.csv filename for benchmark data (#782)
Vincenzo Maffione (1):
- 6899c68: apps: vhost: README.md: fix typo