Skip to content

Snabb 2017.06 “Carrot”

Compare
Choose a tag to compare
@eugeneia eugeneia released this 23 Jun 13:56
· 3730 commits to master since this release

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

  • #1126 net_device: Eliminate fast-path table allocations
  • #1127 Minor documentation fix

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