opendataplane (1.6.0.0) * API: - api: atomic: clean atomic API documentation - api: clib: added standard c library api - api: hash: Added crc32 and crc32c hash functions - api/linux-generic: classification: rename odp_drop_e to odp_cls_drop_t - api/validation/linux-generic: classification: implement class of service create api - api: time: add global time API - api: time: add resolution and wait API calls - api: time: make odp_local_time to be monotonic wall time - api: init: allow implementation to use private ways for its own configuration - api: classification: add odp_cls_cos_pool_set() api - api: doc: re-organize doxygen doc for synchronizer - api: rwlock_recursive: added recursive rwlock - api: spinlock_recursive: added recursive spinlock - api: crypto: Add AES128-GCM support - api: thread: added THREAD_COUNT_MAX define - api: thrmask: correct specification error - api: pktio: add odp_pktio_print() API - api: version: added implementation name str - api: sync: removed odp_sync_stores - api: barrier: added memory barriers * ODP docs: - doc/users-guide: add time API section - doc/users-guide: add cryptographic services section - doc: userguide: add application programming section - doc: process-guide: add release process - doc: images: replace overview with editable svg src - doc: guides: embed icons and images in html - doc: re-organize doxygen doc for synchronizer * Validation - api/validation/linux-generic: classification: implement class of service create api - api: hash: Added crc32 and crc32c hash functions - classification: add odp_cls_cos_pool_set() api - classification: adds additional ASSERTS for stability - classification: check return value of pktio stop - classification: start pktio after setting inq and stop it before removing it - classification: stronger checks to avoid SEGV on pktio failure - crypto: add test for AES128-GCM - crypto: allow custom auth/cipher range - crypto: support validating both cipher and auth at the same time - performance: pktio_perf: use odp_time_wait_ns() function instead of looping - performance: sched: use ODP time API instead of clock_gettime - performance: set a packet rate pass threshold for l2fwd - pktio : Fix UDP checksum computation - pktio: ability to wait for external network - pktio: add customizable out mode for pktios - pktio: add test for start when started and stop when stopped() - pktio: add tests for rrecv() on WONLY, and send on RONLY pktios - pktio: initialize mac addresses for all packets - pktio: refactor error handling during sequence check - pktio: remove unneeded stop as interface is stopped after open() - pktio: stop interfaces before removing the default inq - pktio: test odp_pktio_print() - queue: refactor test to avoid coverity issues - sched: improve scheduler validation test to check sched time correctly - scheduler: use fail timeout when waiting on events in chaos - std_clib: added validation tests - synchronizers: add missing rwlock read lock functional test - synchronizers: add recursive lock tests - test/example: use local time API as wall time - test: performance: pktio: don't use direct arithmetic operations with odp_time_t - time: add test convertsion on 0 - time: add test for odp_time_local_res() and use resolution - time: add test for odp_time_wait_ns() and odp_time_wait_until() - time: don't assign int directly to odp_time_t - time: test time constants in ns - time: update to tes global time API - validation: time: align tests with current time API * General: - align with new wall time API - classification: add null check for pool assigned to CoS - classification: define pkt_addr as const - classification: implement class of service create api - classification: implements odp_cls_cos_pool_set() api - classification: rename odp_drop_e to odp_cls_drop_t - clib: added standard c library api - crypto: Add AES128-GCM support - fix tap compilation - hash: Added crc32 and crc32c hash functions - include netmap headers with -isystem - odp_time: don't use cpu cycle API to get time - packet: _odp_parse_common: arm build fix - pktio: add odp_pktio_print() API - pktio: add tap pktio type - pktio: add test for tap pktio - pktio: check for pktio_start when started and pktio_stop when stopped - pktio: check interface mode is compatible before receiving or sending - pktio: configuration functions check that interface is stopped - queue: fix memory corruption in reorder_enq() - rwlock_recursive: added recursive rwlock - schedule: set sched_local.pool correctly - schedule: use schedule time in ns - socket: set up __odp_errno on ioctl failures - spinlock_recursive: added recursive spinlock - thread: added THREAD_COUNT_MAX define - thread: removed internal max threads define - time: add global time API - time: add resolution and wait API calls - time: remove posix bleed through on odp_time_t - timer: include event_types instead of buffer_types - validation: pktio: report test as skipped when setup fails - validation: run config tests opendataplane (1.5.0.0) * API: - api: buffer: add functions to alloc/free multiple buffers at once - api: cpu: change order of arguments for diff function - api: crypto: add AES128-CBC encrypt/decrypt methods - api: crypto: add HMAC-SHA-256-128 support - api: crypto: move enums from platform types to odp and rename to fit the API format - api: packet: add functions to alloc/free multiple packets at once - api: queue: add odp_queue_info() function to retrieve queue information - api: time: change order of arguments for diff function - api: time: unbind CPU cycles from time API * ODP docs: - userguide: add baseline overview to document - images: add additional user guide images - implementers-guide: convert to ODP standard layout - implementers-guide: fix broken doxygen build from tarball - users-guide: move EXTRA_DIST down to its makefile - Makefile: add docs to the tarball - improve asciidoc presentation - users-guide convert to asciidoc - images: add resource_management.msc for users-guide - images: add svg for user-guide * Validation - performance: odp_pktio_perf: fix potential overflow in wait loop - test/example: avoid "cycle" word usage - ability to specify test install directory - buffer: add tests for buffer alloc/free multi functions - crypto: add test for AES128 CBC - crypto: add test for HMAC-SHA-256-128 - crypto: limit packet size to maximum supported by platform - packet: add tests for packet alloc/free multi functions - queue: api validation tests for odp_queue_info() - remove strict dependency on CUnit 2.1-3 - scheduler: add missing ticketlock unlock * General: - rpm packaging support - linux-generic: config: increase ODP_CONFIG_SCHED_GRPS to 256 - linux-generic: cpumask: warn that CPU0 is used by control and worker thread - linux-generic: packet: add implementation for packet alloc/free multi - linux-generic: pool: add buffer_alloc_multi function - linux-generic: pool: add implementation for buffer alloc/free multi - linux-generic: queue: add odp_queue_info() function - linux-generic: validation: add run-test script for post install testing - platform: move list of API files to Makefile.inc so it is common to all platforms opendataplane (1.4.1.0) * Validation - pktio: test transmit error recovery - schedule: add chaos test - check return code from odp_queue_lock_count() - scheduler: test ordered queue reorder processing - pktio: initialize queue parameters correctly - pktio: test for transmit error handling - pktio: add support for direct receive - pktio: pass interface index rather than name - pktio: fix start_stop test - test: l2fwd: separate rx and tx drop counters - test: l2fwd: increase burst size - test: l2fwd: optimize statistics usage - test: l2fwd: optimize queue mode - test: l2fwd: start pktios after worker thread create - test: l2fwd: added option to disable error check - example/ipsec: Increase ip_data_len for Tunnel mode - example: ipsec: check push_tail return code * General: - linux-generic: pktio: handle transmit errors correctly - pktio socket_mmap: recover from transmit errors but 1890 - pktio: increase MTU of loop interface - ordered queues: fix race condition during order release and out of order. - configure: move HAVE_PCAP AM_CONDITIONAL to configure.ac * ODP helper: - linux: checkpatch cleaning for helper/linux.c - linux: examine the cause for child process termination - linux: request SIGTERM if parent process dies opendataplane (1.4.0.0) * API: - ** Classification ** - odp_cos_set_queue() renamed to odp_cos_queue_set() - int odp_cos_set_drop renamed to odp_cos_drop_set() - new: odp_queue_t odp_cos_queue(odp_cos_t cos_id) - new: odp_drop_e odp_cos_drop(odp_cos_t cos_id) - ODP_PMR_CUSTOM_FRAME support in classification - odp_pmr_create() arguments passing change to use struct - odp_pmr_match_set_create() added id argument - ** Config ** - new: odp_config_...() API introduced instead of ODP_CONFIG_ defines - ** Cpu, Threads and Scheduler ** - new: uint64_t odp_cpu_cycles(void) - new: uint64_t odp_cpu_cycles_diff(uint64_t c1, uint64_t c2); - new: uint64_t odp_cpu_cycles_max(void); - new: uint64_t odp_cpu_cycles_resolution(void); - odp_cpumask_def_worker() renamed to odp_cpumask_default_worker() - odp_cpumask_def_control() renamed to odp_cpumask_default_control() - odp init extended with num worker and control threads - new: int odp_queue_lock_count(odp_queue_t queue); - refine api doc for scheduler and schedule orderd locks - argument of odp_schedule_order_lock() and odp_schedule_order_unlock changed to unsigned - new: int odp_thread_count_max(void) - ** Packet ** - new: uint32_t odp_packet_flow_hash(odp_packet_t pkt) - new: void odp_packet_flow_hash_set(odp_packet_t pkt, uint32_t flow_hash) - new: int odp_packet_has_flow_hash(odp_packet_t pkt); - new: void odp_packet_has_flow_hash_clr(odp_packet_t pkt); - ** Pktio ** - pktio can be configuread as receive or transmit only - pktio: refined api doc for start() and stop() - new: void odp_pktio_param_init(odp_pktio_param_t *param) * ODP docs: - implementers-guide: update names of test module libraries - implementers-guide: update section on skipping tests * Test framework - update README files - renaming module libs - add odp_cunit_update() to modify registered tests - add ability to mark tests inactive * Validation - ** Classification ** - Add fix for classification tests - remove redundant pool lookup function - remove redundant sequence number check - use tcp data offset field to calculate data offset - move destroy_inq() to common file - add odp_pktio_param_init() API - added additional suite to test individual PMRs - use a structure instead of many args for odp_pmr_create - Add init calls for queue parameters - syntax correction for CU_ASSERT - Add init calls for pool parameters - queue and drop policy API name change - Queue parameter init calls - ** Cpu, Threads and Scheduler ** - rename odp_cpumask_def to _default - schedule: revise definition of ordered locks - schedule: remove odp_schedule_order_lock_init() API - schedule: don't check schedule time on 0 - synchronizers: support a single worker - init: fix test when debug-print is disabled - ** Packet ** - packet: test flow hash - packet: test now handles pool that do not support segmentation - ** Pktio ** - pktio: don't call APIs with an invalid pktio handle - ** Config ** - config: removed ODP_CONFIG_MAX_THREADS - config: add CUnit tests for config APIs * Performance - l2fwd: add missing braces - l2fwd: add option to disable filling eth addresses - l2fwd: add support for using odd number of ports - l2fwd: fix crash when accuracy is set to 0 - l2fwd: add option to select scheduler queue type - l2fwd: add option to change destination eth addresses - l2fwd: obey -t in queue mode - l2fwd: fill correct source ethernet address - sched: update scheduling test to use cycle counts - odp_pktio_perf: fix potential overflow for burst_gap - odp_pktio_perf: fix potential overflow for send_duration * general: - classification: implement ODP_PMR_CUSTOM_FRAME matching - classification: queue and drop policy API name change - cpu: created arch dependent cpu_cycles files - cpu: fix cycle lost while cycle counter overflow - cpu: implementation for cycle count API - cpu: rename time_cycles to cpu_cycles - pktio: implemented pcap pktio - pktio: implemented netmap pktio - pktio: close all pktio when term is called - pktio: enable classifier only when needed - pktio: factor state management into packet_io - pktio: fill in L2 parse results by default - pktio: implement odp_pktio_param_init() API - packet: implement flow hash support - schedule: fix odp_schdule_wait_time - queue: change lock_index from uint32_t to unsigned to match API - queue: direct internal enqueues to target queue - queue: fix pktout_enqueue() logic - queue: remove obsolete prototypes - use cycles_diff for time API also opendataplane (1.3.0.0) * API: - codespell: correct spelling - event: change to odp_event_type_t - init: use const pointer types - packet_io: added odp_pktio_param_t - packet_io: added start and stop - packet_io: change word instance to interface - pktio: added output mode - pktio: rename pktio_input_mode enum - pool: add odp_pool_param_init prototype - pool: standardize description for odp_pool_param_init routine - queue: add odp_queue_param_init prototype - queue: clarify odp_queue_context_set() documentation - queue: rename queue context get/set for consistency - sched: added ordered context lock - sched: added release ordered - sched: added schedule group create and destroy - sched: added schedule prefetch - sched: added worker group - sched: add additional scheduler group APIs - sched: clarified synchronization context - sched: clarify usage of PRIO_DEFAULT - sched: moved scheduler types into new file - sched: removed GROUP_DEFAULT - sched: removed SYNC_DEFAULT - sched: rename order lock APIs and typedef - sched: schedule param - sched: config: add configuration for scheduler groups - schedule: fix comment typo - spelling fixes - style: init api: documentation clean up * ODP docs: - doc: implementers-guide: add validation description - doc: publish contributing text * ODP helper: - fix installation path for includes - linux: catch possible undefined - test: chksum: catch errors in scan_ip * test: * validation: - add test on unused retvals - use _CU_TEST_INFO() macro - system: fix uninitialised variable - schedule: add param init calls - schedule: test scheduler groups - test odp_pktio_start and odp_pktio_stop - fix build from tar source - kill odp_generator - removing current dir from -I * performance: - Makefile: add scripts to EXTRA_DIST - l2fwd: fix race condition between thread init and stat counter - l2fwd: capture test fails - odp_pktio_perf: use real MAC addresses while packet creation - odp_scheduling: remove redundant var inits - use odp_pool_param_init routine - use odp_queue_param_init routine * general: - Makefile.am: fix basename conflicts - Makefile: add all arch to the tarball - fix logic for calling pktio init and term functions - install missing headers - move default cpumask functions to separate file - move openssl checks inside linux-generic - move pthread checks inside linux-generic - add pktio_start and pktio_stop - pktio: add global init and term function for pktios - pktio: always test loop interface - pktio: handle segmented packet in socket mode - pktio: remove basic socket implementation - pktio: store errno correctly in setup - pool: add odp_pool_type_t enum - pool: implement odp_pool_param_init - queue: implement odp_queue_param_init routine - queue: implement ordered queues - remove linux-generic makefile generation from common configure.ac - schedule pktin_poll: account pktio stop state - schedule: implement scheduler groups - schedule: implement odp_schedule_prefetch() - schedule: implement ordered locks - Makefile.am: fix aclocal warning when building from tarball - m4: pthread: fix warning with Wextra - scripts/git_hash: change repo to CUSTOM_STR - scripts/git_hash: fix build from tar source - scripts: Makefile: add odp_version.sh to the tarball opendataplane (1.2.0.0) * API: - docs: doxygen grouping clean up and remove excess references to ODP - pool: remove shm paramter from odp_pool_create() - packet_io: clarify what happens when not all packets are sent - cpumask: added default masks and cpumask_setall - thrmask: added thread mask - thread: added thread type * ODP helper: - helper: convert to a library - remove helper dependence on ODP internals - helper: linux: check pthread_join return code - test checksum - helpers: fix udp checksum computation - test: helper: add process and thread tests - deleted odph_linux_cpumask_default * test: * validation: - tests execution moved to platfrom side - test: pktio_perf: add missing atomic init - test: synchronizers: use thread_id instead of cpu_id to detect slow threa - validation: pktio: do not dequeue from scheduled queue - test: pktio_perf: fix pthread_t offset for tx threads - packet_io: release unsent packets after odp_pktio_send() - validation: new module errno - test: pktio_perf: add missing ns to cycle conversion for busy loop - validation: classification: fix ODP_PMR_IPPROTO capability check - validation: scheduler: fix race condition in pause test - test: do not use negative array index - thread and cpumask validation suites - example:ipsec: Fix for Polled queues - scheduler: use number of workers - example: classifier: fix string overflow * general: - linux-generic: put pktio types to separate files with common interface. - configure: use stricter warnings - linux-generic: timer: use timer handles as buffer handles - linux-generic: buffer: remove unneeded division/module when mapping within the first segment - linux-generic: pool: use ODP_CONFIG_PACKET_SEG_LEN_MIN correctly - queue: handle return value of odp_queue_enq() - linux-generic: classification: add support for ODP_PMR_IPSEC_SPI - add {EXEEXT} suffix to binaries - event: implement odp_event_free() - packet_socket: do not release packets in odp_pktio_send - linux-generic: packet: fix byte order in IPv6 header parsing - linux-generic: schedule: fix double free - linux-generic: buffers: correct segment length calculation for packets - linux-generic: timer: set timer queue to ODP_QUEUE_INVALID on init - linux-generic: buffer: reduce field size and reorder for better packing - linux-generic: crypto: eliminate buffer type hack for completions - linux-generic: pool: remove double init - linux-generic: pool: group and document pool statistics - platform: Makefile.inc: use `` instead of != for compatibility with older versions of Make - linux-generic: packet: Add lazy parsing support - linux-generic: buffer: init all the odp_buffer_bits_t struct to avoid valgrind warnings opendataplane (1.1.0.0) * API: - style: moved pool type first in pool_param - style: pool_param doxygen comments - api: packet: removed odp_packet_user_u64 - api: packet: rename user_data to user_area - api: pktio: Clarify doc on default pool usage on odp_pktio_open - timer: Add missing platform handles to u64 conversion functions - api/linux-generic/example/validation: remove odp_pmr_create_range() function definition - api: packet: relax return code to use non-zero for true - api: packet/pool: proposed APIs for packet user metadata * test: * validation: - validation: packet: add user metadata tests - test: pktio: add missing atomic init - test: use CU_ASSERT_FATAL in case odp_buffer_alloc failed to avoid segfaults - validation: pktio: fix polling tests - validation: tests for module odp_ver_abt_log_dbg - validation: rename executable to match modules * general: - linux-generic/odp_impl: add implementation version details - linux-generic: support running with restricted cpu set - linux-generic: packet: add user metadata support - linux-generic: pool: add user metadata support - linux-generic: buffer: restructure user mdatadata fields - linux-generic: use inttypes defines to print (u)int32_t values opendataplane (1.0.4) * test: * validation: - synchronizers: fix init of custom barrier atomic - pktio: don't pass invalid handles - use PRIu32 instead of %u to print uint32_t variables - thread: add odp_thread sunnyday tests - classification: add missing init of atomic variable - api_test: remove odp_shm_test * performance: - pktio: fix check for pktio_tx - pktio: test return value of odp_pktio_close() - pktio: add throughput test * example: - ODP classifier example * bugs: - example: timer: clean up prescheduled events * general: - api: time: force time defines as ULL to avoid computation overflows on 32bits systems - linux-generic: packet_io: init l2 and l3 cos table spinlocks - linux-generic: pool: initialize atomics during odp_pool_init_global - linux-generic: pool: fix initialization of odp_buffer_hdr ref_count - doc: api_guide_lines: add guidance on ODP_DEPRECATED opendataplane (1.0.3) * test: * validation: - validation: add new test l2fwd_run - validation: sched: add missing copyright - validation: move l2fwd from example to performance tests - validation: implement platform env - validation: crypto: combine sync and async tests - validation: crypto: handle synchronous operations in async test - test: enable valgrind check - test/README: explain what's the intention with test/validation - validation: classification: un-checked return - validation: pktio: support arbitrary length packets - validation: pktio: fix memory corruption - validation: common: catch odp_term_local/global failures - validation: common: print odp_init failures to stderr - validation: schedule: exit schedule loop - validation: schedule: added queue destroy test * bugs: - linux-generic: pool: fix missing increment of blkallocs stat - example: odp_generator: use odp_timer - configure.ac: include configure.m4 if platform explicitly selected * general: - doxygen cleanups - scheduler: restructured queue and pktio integration - linux-generic: schedule: terminate - linux-generic: debug_internal: assert prints condition - linux-generic: pool: check for NULL params before dereference - linux-generic: pktio: fix SEGV after odp_pktio_inq_remdef() - linux-generic: system_info: use global data struct - linux-generic: use arch optimisations - examples: odp_ipsec: runtime select multiple vs single deq - examples: odp_ipsec: runtime select scheduled vs poll queues - examples: odp_ipsec: handle alloc_pkt_ctx failure - scripts: odp_check: remove astyle - linux-generic: odp_linux: migrate helpers to helper dir opendataplane (1.0.2) * API: - api files were touched with override patches but no api changes were actually made. * test: * validation: - fix memory allocation in odp_synchronizers - fixed memory leak in odp_cpumask.c - timer: use unused attribute - pktio: add support for VPATH builds - added odp_cpumask test - timer: free malloced memory - timer: use ODP_SHM_NULL - timer: added cancel test - pktio: prevent race when using veth pair - test: debug: replace example with test - test: debug: add unused attribute MACRO - performance: odp_atomic: move atomic test from api_test to performance - performance: scheduling: add support for VPATH builds - performance: scheduling: catch exit codes * general: - barrier: allow platform to override odp_barrier_t - ticketlock: allow platform to override odp_ticketlock_t - rwlock: allow platform to override odp_rwlock_t - spinlock: allow platform to override odp_spinlock_t - doc: move api guidelines to API doc - linux-generic: strongtypes: add dummy struct var to keep c++ happy - linux-generic: queue: fix potential queue leak - linux-generic: strongtypes: use named structs for C++ - example: l2fwd print packets per second - linux-generic: linux: destroy used pthread attr * bugs: - validation: packet: use non-zero as true indicato - linux-generic: pktio check for NULL entry - linux-generic: fix incorrect pmr_term_value update in odp_pmr_create_xxx() function - replace strtok_r with strtok and fix leaks - schedule: free queues and pool opendataplane (1.0.1) * test: * validation: - pktio: disable arp on virtual interfaces - pktio check return code for pool_destroy - schedule: code clean up - odp_scheduling: limit worker thread count - odp_timer: cleanup for clean termination - common: prevent masking test failures - shm: abort on null pointer - crypto: add packet free to sync test - crypto: add common test cleanup - common: add support for test term - crypto: split crypto and random tests - add unit tests for strong type display functions * general: - linux-generic: only print errors to stderr - linux-generic: linux: remove explicit buffer cache flush * bugs: - linux-generic: odp_timer: set user_ptr for cancelled timeout - validation: odp_timer: cleanup for clean termination - example: odp_packet uncomment polling queues - linux-generic: mmap: jumbo frames support - linux-generic: thread: reuse thread ids - classification: destroy pktio default inqueue during teardown - classification: pktio skip value set to zero opendataplane (1.0.0) * API: - crypto, cpumask, packet_io, random: replace ssize_t with int32_t - crypto: add session destroy function - crypto: add error code for invalid IV - classification: Add documentation for missing macros - hints: add printf format attribute - errno: add api to public api - init: add missing documentation - packet_io: remove specific errno value * test: * validation: - Makefile.am: restructure - pktio: free unexpected packets/events - pktio: destroy interface specific pools - pktio: destroy pktio input queues - pktio: fix odp_errno usage - buffer: split pool, buffer and packet tests - init: include stdlib.h for abort() - crypto: verify session_destroy - crypto: verify odp_crypto_operation() return code - queue: destroy created ODP resources - errno: add sunnyday test * miscellaneous: - Add CPP test * bugs: - odp_init_log: fix clang format string error - buffers: remove obsolete debugging code - classification: fix unchecked return value - classification: fix incorrect ipv4 checksum update - example: generator: add missing doxygen documentation - pools: switch to simple locks for buf/blk synchronization - performance: fix c99 warnings as errors - crypto: handle copy error - system: read hugepage size for all architectures - queue: fix PKTIN queue destroy * general: - add -std=c99 gcc flag by default, fix all warnings - handle copy error in odp_crypto_operation - fix all doxygen warnings - configured defines changed ODP_CONFIG_ and moved to config.h opendataplane (0.11.0) * API: - update return descriptions - add strong types - thread, rename functions - cpu, rename functions - errno added - classification, remove pmr count - init, allow the abort function to be overridden - hints, add ODP_NORETURN - packet_flag, remove odp_packet_override_l4_checksum * validation: - init, add tests for override the abort function * bugs: - timer, avoid cunit warnings for late timeouts - version, fix odp_version_api_str (1194, 1207) - fix clang (1203, 1023) - validation: init: fix unitalized data in struct (1206) - linux-generic: setup_pktio_entry() null terminate pkio name (1055) - validation: odp_timer.c: (1048, 1056) opendataplane (0.10.0) * API: - Allow init_global logging - Add events - Add Crypto Completion event - Classification API cleanup - Move header files out of linux-generic * validation: - Classification tests * bugs: - l2fwd: fix incorrect cpumask used when spawning threads - shared memory * general: - move headers into namespace the odp/helper opendataplane (0.9.0) * Initial release