opendataplane (1.8.0.0) * API: - api headers moved to include/odp/api/spec/ and apps should use include/odp_api.h now instead of odp.h - api/linux-generic/example: classification: add pmr create api - api: move include/odp.h to include/odp_api.h - api: odp.h to ease transition period - api: packet: add bcast/mcast parse documentation - api: packet: add detailed packet error flags - api: packet: added multicast flags - api: pktio: add pktout event queue - api: pktio: added pktio info structure - api: pktio: added supported set operations bit mask to pktio capability - api: pktio: changed odp_pktio_mtu() return value to uint32_t - api: pktio: define default pktio modes - api: pktio: define default queue configuration - api: pktio: remove old single queue API - api: pktio: rename pktio_recv_queue to pktin_recv - api: pktio: rename pktio_send_queue to pktout_send - api: pktio: specify when queue config is called - api: queue: remove queue type pktin and pktout - api: sched: define default sched param values - api: time: fix typo for cmp function - api: tm: add tm API definitions - api: tm: replace pktio with pktout_queue in odp_tm_egress_struct - doc: users: migrate TM from API to users doc - drv: creation of the driver interface (drv) * ODP docs: - doc: depend the docs on the images - doc: descr of structure for new interfaces - doc: drop using output dir for guides - doc: glossary: defining ODP thread more precisely - doc: images: add traffic manager svg - doc: implementers-guide: adding drv interface - doc: removing invalid characters - doc: update to latest ax_prog_doxygen.m4 - doc: use imagedir attribute for path - doc: user-guide documentation for classification - doc: user-guide: fixing other typos - doc: user-guide: shmem - doc: users: add TM example - doc: users: migrate TM from API to users doc - documentation: userguide: add images for packet processing - documentation: userguide: add packet processing description * Validation - linux-generic: version: added implementation name string - performance: crypto: add odp_crypto to .gitignore file - test: l2fwd: add event queue packet output - test: l2fwd: add option to give destination MAC - test: l2fwd: fix test getting stuck in DIRECT_RECV/POLL_QUEUE mode - test: l2fwd: utilize pktio param defaults - test: performance: crypto: measure crypto operation performance - test: pktio_perf: finalize port to use new pktio api - test: pktio_perf: port to use new pktio api - validataion: packet: add tests for broadcast and multicast flags - validation: classification: add test case for odp_cos_drop() function - validation: classifier: port to use new pktio api - validation: packet: test if user area is properly set - validation: pktio: add output event queue tests - validation: pktio: assign MAC address if one loop pktio is used - validation: pktio: check if configuring promisc mode is supported before testing - validation: pktio: fix pktio_test_recv_queue() crash - validation: pktio: fix type on defining pktiout mode - validation: pktio: port to use new pktio api - validation: pktio: replace pktio_test_jumbo() with pktio_test_recv_mtu() - validation: pktio: set packet mac addresses and checksum in statistics test - validation: scheduler: increase delay tolerance - validation: tm: add cunit test for traffic mngr - validation: tm: fix arm compilation - validation: tm: miscellaneous cleanup and fixes for tm cunit tests * General: - linux-generic: Makefile: fix broken include path - linux-generic: pktio: initial dpdk pktio implementation - linux-generic: dpdk: add dpdk_setup_port() - linux-generic: dpdk: add functions for fetching packet input/output queues - linux-generic: dpdk: add get/set functions for mtu, promisc mode, and capability - linux-generic: dpdk: add odp_pktio_input_queues_config() - linux-generic: dpdk: add odp_pktio_link_status() - linux-generic: dpdk: add odp_pktio_output_queues_config() - linux-generic: dpdk: add rx/tx locking - linux-generic: dpdk: close resources in odp_pktio_close() - linux-generic: dpdk: handle ixgbe_pmd minimum burst size - linux-generic: drv: creation of the driver interface (drv) - linux-generic: fix usage of function strncpy - linux-generic: loop: avoid packet table overflow - linux-generic: move CPU info dummy data to generic default file - linux-generic: netmap: add support for VALE and pipe virtual ports - linux-generic: netmap: bump up link wait timeout to 10 secs - linux-generic: netmap: improve single RX queue performance - linux-generic: netmap: increase maximum descriptor count - linux-generic: netmap: support 'netmap:' interface name prefix - linux-generic: packet: implement broadcast and multicast metadata flags - linux-generic: packet: implement parser extensions for broadcast and multicast - linux-generic: pktio: add dpdk pktio build support - linux-generic: pktio: add link_status handler for loop interfaces - linux-generic: pktio: add separate functions for global and local init - linux-generic: pktio: allow num queues request on disabled pktio - linux-generic: pktio: allow recv on stopped interface - linux-generic: pktio: pktout event queues - linux-generic: pktio: set pktio capability supported set operations flags - linux-generic: pktio: simplify callback interface - linux-generic: pktio: use unique names for pktin event queues - linux-generic: pool: implement user area init support - linux-generic: queue: simplify NULL param handling - linux-generic: return error for unsupported pktio calls - linux-generic: separate MIPS ODP_CACHE_LINE_SIZE to its arch file - linux-generic: separate PowerPC ODP_CACHE_LINE_SIZE to its arch file - linux-generic: separate x86 ODP_CACHE_LINE_SIZE to its arch file - linux-generic: sysinfo clean up for ARM - linux-generic: systemcpu(): use input parameter instead of global data - linux-generic: test: add tm unit test to list of tests to run - linux-generic: tm: Add missing name table initialization call. - linux-generic: tm: fix numerous bugs in timer wheel and main tm implementation - linux-generic: tm: implement traffic manager - linux-generic: tm: remove not used includes of odp_api.h - linux-generic: tm: use intermediate casts to avoid strict warnings - linux-generic: tm: use odp_hash_crc32c() api to avoid arch issues - linux-generic: use one uniform call systemcpu() - linux-generic: validation: add netmap test - linux-generic: version: added implementation name string * Helper: - helper: eth: added mac address parse - helper: ip: added ipv4 address parse - helper: linux: correct cpumask usage - helper: linux: remove unnecessary cpumask copy - helper: remove odp_ definitions - helper: remove ring code - helpers: remove odp_ prefix for tests source files - tests: use parse mac and ip address helpers opendataplane (1.7.0.0) * API: - api: atomic: add non-relaxed 64bit operations - api: atomic: added 32 bit acquire and release - api: atomic: added 32bit cas_rel and cas_acq_rel - api: atomic: added atomic min and max - api: atomic: added atomic_lock_free_u64 - api: atomic: added cas operations - api: atomic: added relaxed exchange operation - api: atomic: init functions are not atomic - api: atomic: rename release ordering - api: classifier: align enum type naming - api: cpu: add new API to get CPU max frequency - api: cpu: add new API to get per-CPU current frequency - api: cpu: add new API to get per-CPU max frequency - api: cpu: add new API to get per-CPU model string - api: cpu: added pause call - api: cpu: make frequency API return 0 on failure - api: cpumask: add new API odp_cpumask_all_available() - api: cpumask: documented string format - api: define pktio statistics api - api: endian: rename endian types with odp_ prefix - api: errno: any odp function can set errno - api: init: align enum type naming - api: init: removed platform_init struct definition - api: pktio: added direct queue receive - api: pktio: added direct send to pktio output queue - api: pktio: added link status - api: pktio: added multiple pktio input queues - api: pktio: added multiple pktio output queues - api: pktio: added pktio capability struct - api: pktio: refine multiqueue API spec - api: pktio: remove unused ODP_PKTIO_ANY - api: pktio: rename pktio modes - api: pool: allow per-thread caching - api: queue: define queue type as enum - api: queue: moved queue type into queue parameters - api: queue: rename QUEUE_TYPE_POLL to _PLAIN - api: sched: rename SCHED_SYNC_NONE to _PARALLEL - api: schedule: clarify scheduler API documentation - api: stdlib: added odp_memcmp - api: sysinfo: move CPU Hz API to cpu.h - api: sysinfo: move CPU model API to cpu.h - api: thrmask: documented string format - api: pktio: rename single_user param - api: pktio: renames for compact type and func names - api: queue: add enq and deq mode params * 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 - test/performance: pktio: perform an initial warmup run - test: change l2fwd pool size - test: l2fwd: added poll queue mode - test: l2fwd: re-organize functions - test: l2fwd: use multi-queue API for scheduled queues - test: l2fwd: use multi-queue pktio in direct mode - test: l2fwd: use multiple queues in sched mode - test: perf: l2fwd detect missing odp_generator - test: update CPU Hz calling functions - tests: harmonize posix extensions level defines - validation: atomic: added cas test - validation: atomic: added lock free op test - validation: atomic: added max and min tests - validation: atomic: added non-relaxed test - validation: atomic: added xchg test - validation: classification: add additional PMR term - validation: classification: adds Test case for ODP_PMR_DIP_ADDR - validation: classification: remove double frees - validation: cls: adopt for supported l3 PMR - validation: cls: assign default CoS before creating chain - validation: cls: use correct MAC addresses - validation: define ODP_TEST_INACTIVE and ODP_TEST_ACTIVE - validation: implement pktio statistics counters - validation: pktio: don't continue if packet with > MTU is sent - validation: pktio: fix check of pktio_stop() called twice - validation: pktio: fix typo on setting in_mode - validation: pktio: reduce stdout noise - validation: pktio: test batch receive - validation: pktio: use odp_time_ns() instead own function - validation: pktio check for number of interfaces - validation: pktio: add test for odp_pktio_recv_queue() and odp_pktio_send_queue() - validation: pktio: add test for odp_pktout_queue_config() - validation: pktio: add test for odp_pktin_queue_config() - validation: possibility to inactive preconded test - validation: queue: add test for odp_queue_to_u64() - validation: remove remaining references synchronizers - validation: removing synchronizers tests - validation: scheduler: add timing tests for scheduled queue types - validation: shmem: sync threads with barrier - validation: stdlib: add odp_memcmp test - validation: synchro tests split into 3 groups - validation: system: add validation for new CPU APIs - validation: system: add validation tests for odp_cpu_cycles_ calls - validation: system: fix return code for checks - validation: system: make odp_cpu_hz optional in validation test - validation: system: make odp_cpu_hz_id conditional - validation: test odp_pktio_link_status() - validation: time: increase limit to check to 2 res - validation: time: round up resolution - validation: time: store local and global resolution - validation: timer: fix delay after loop - validation: timer: handle early exhaustion of pool * General: - linux-generic: add packet_io_stats.h to Makefile.am - linux-generic: arch: renamed cpu arch files - linux-generic: atomic: 32bit cas_rel and cas_acq_rel - linux-generic: atomic: implemented exchange - linux-generic: atomic: non-relaxed 64bit operations - linux-generic: barrier: use API memory barrier - linux-generic: classification: implement verify_pmr_dmac - linux-generic: cpu: implemented pause - linux-generic: define posix extension level once - linux-generic: init: handle local/global init/term cleanly - linux-generic: locks: replace internal atomics - linux-generic: netmap: add functions for fetching pktio queues - linux-generic: netmap: add initial multi queue support - linux-generic: netmap: add netmap_close_descriptors() function - linux-generic: netmap: add netmap_link_status() function - linux-generic: netmap: add odp_pktio_capability() - linux-generic: netmap: add odp_pktio_link_status() - linux-generic: netmap: add odp_pktio_start() - linux-generic: netmap: add scheduler multi-queue support - linux-generic: netmap: add start()/stop() functionality - linux-generic: netmap: disable debug prints - linux-generic: netmap: fix MTU size - linux-generic: netmap: fix netmap_mtu_get() - linux-generic: netmap: implement pktio statistics - linux-generic: netmap: map rings in netmap_start - linux-generic: netmap: odp_pktio_recv() from all pktin queues - linux-generic: netmap: use select() instead of poll() in recv - linux-generic: packet: hide frame_len behind accessor - linux-generic: packet_io: expose pktio_tbl and is_free() - linux-generic: packet_io: fix array indexing in pktin_deq_multi() - linux-generic: packet_io: separate locks for RX/TX - linux-generic: pcap: implement pktio statistics counters - linux-generic: pktio loop: implement statistics counters - linux-generic: pktio: add RSS helper functions - linux-generic: pktio: added poll type input queue - linux-generic: pktio: added scheduler multi-queue support - linux-generic: pktio: dummy multi-queue pktio - linux-generic: pktio: enable using PKTIO_MAX_QUEUES in pktio implementations - linux-generic: pktio: implement odp_pktio_link_status() - linux-generic: pktio: print out the name of pktio used - linux-generic: pktio: re-organize queue config code - linux-generic: pktio: remove unwanted initialisation - linux-generic: pktio: use multiqueue recv internally - linux-generic: pool: accelerate buffer allocation marking - linux-generic: pool: catch duplicate free errors in debug builds - linux-generic: queue: check invalid handle in odp_queue_destroy - linux-generic: remove direct include of endian.h from byteorder.h - linux-generic: remove direct include of stdint.h by atomic.h - linux-generic: remove direct include of stdlib.h by timer.h - linux-generic: removed spin_internal - linux-generic: scheduler: improve pktio polling - linux-generic: sockets: implement pktio statistics - linux-generic: sysinfo: apply per-CPU implementation to MIPS - linux-generic: sysinfo: apply per-CPU implementation to PowerPC - linux-generic: sysinfo: make the cpu_hz per-CPU data - linux-generic: sysinfo: make the model_str per-CPU data - linux-generic: sysinfo: move ARM system info codes to default arch file - linux-generic: sysinfo: move MIPS system info codes to its plarform file - linux-generic: sysinfo: move PowerPC system info codes to its plarform file - linux-generic: sysinfo: move cpu_arch_str to odp_system_info_t - linux-generic: sysinfo: move x86 system info codes to its plarform file - linux-generic: sysinfo: rename odp_cpu_hz_current with odp_ prefix - linux-generic: sysinfo: rename variable cpu_hz to cpu_hz_max - linux-generic: sysinfo: revise odp_cpu_hz() to return current frequency - linux-generic: sysinfo: set values for cpu_arch_str - linux-generic: sysinfo: update dummy function to pass validation - linux-generic: sysinfo: use uniform call odp_sysinfo_parser - linux-generic: timer use SIGEV_THREAD_ID - linux-generic: timer: limit notification about resolution incorrectness - linux-generic: timer use SIGEV_THREAD_ID - linux-generic: update CPU Hz calling functions 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