aboutsummaryrefslogtreecommitdiff
path: root/config
AgeCommit message (Collapse)Author
2019-01-10linux-dpdk: decrease default tx descriptor countMatias Elo
Increases i40e driver single core l2fwd performance by over 10%. Signed-off-by: Matias Elo <matias.elo@nokia.com> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
2018-12-13linux-dpdk: queue: fix usage of too small queue ringMatias Elo
A ring which is used to implement a queue must be larger than the queue. Optimal memory usage when queue size is power of two minus one. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
2018-12-13Port 12c4ca508 "linux-gen: timer: add config option for inline timer poll ↵Matias Elo
frequency" Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
2018-12-13Port 297cd7e9f "linux-gen: config: add schedule group config file options"Matias Elo
Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
2018-12-13Port 52d54fae5 "linux-gen: sched: add spread weight config file option"Matias Elo
Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
2018-12-13Port 95cbee5ac "linux-gen: pool: add max num packets in config file"Matias Elo
Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
2018-12-13Port d6a88b032 "linux-gen: sched: per priority burst size configuration"Matias Elo
Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
2018-12-05Merge tag 'v1.20.0.0' of https://github.com/Linaro/odp into odp-dpdkMatias Elo
== OpenDataPlane (1.20.0.0) === Summary of Changes ODP v1.20.0.0 is a refresh of ODP, incorporating significant configurability and performance improvements as well as new APIs and API restructures. ==== APIs ===== Symbol `ODP_SHM_NULL` Removed. An invalid `odp_shm_t` has the value `ODP_SHM_INVALID`, consistent with other ODP types. The legacy synonym `ODP_SHM_NULL` is now removed for consistency. ===== New 3GPP Crypto Algorithm Support New support for 3GPP crypto algorithms is added by defining symbols for * `ODP_CIPHER_ALG_KASUMI_F8` * `ODP_CIPHER_ALG_SNOW3G_UEA2` * `ODP_CIPHER_ALG_ZUC_EEA3` In addition new authentication algorithm symbols are defined for * `ODP_AUTH_ALG_KASUMI_F9` * `ODP_AUTH_ALG_SNOW3G_UIA2` * `ODP_AUTH_ALG_ZUC_EIA3` These values are returned as ODP capabilities as well as being accepted in crypto session creation for implementations that indicate support for them. ===== Crypto Capability for Bitwise Operation The new `bit_mode` capability Boolean is added to the `odp_crypto_cipher_capability_t` struct to indicate that an implementation supports operating in bit mode. When operating in bit mode, field offsets and lengths are expressed in terms of bits rather than bytes. However, such lengths must always be specified in multiples of 8. ===== Improved Crypto Spec Documentation The ODP crypto API specification is tightened to specify default values for cipher and authentication algorithms. Also documented when key and IV parameters need to be set. ===== IPsec Extensions IPsec requires "salt" (extra keying material) when the GMAC authentication algorithm is used. To accommodate this the `auth_key_extra` field is added to the `odp_ipsec_crypto_param_t` struct and documentation is added clarifying when this field is needed and how it should be used. ===== Classifier Type Rename The `odp_pmr_t` type name for an invalid value is renamed from `ODP_PMR_INVAL` to `ODP_PMR_INVALID` for consistency with the rest of ODP type names. The old symbol is still available when ODP is configured with `--enable-deprecated`. ===== New API for Packet Event Subtypes The `odp_packet_subtype()` API is added that returns the subtype of a packet event directly. ===== Streamlined Packet Parsing Results The `odp_packet_parse_result()` API is added that returns the result of packet parsing as a single `odp_packet_parse_result_t` struct. This can offer efficiency improvements for applications that need all parse results rather than making individual parse result calls. ===== PktIO Extensions to Support per-Queue Configuration PktIO interfaces support multiple input queues to enable increased parallelism in I/O processing. Previously, all of these input queues were required to belong to the same scheduler group. The `odp_pktin_queue_param_t` struct is now extended with an optional `odp_pktin_queue_param_ovr_t` struct that permits individual pktin queues to be assigned to separate scheduler groups. This may permit improved performance for advanced application use cases. ===== Timer Pool Capabilities The `odp_timer_capability_t` struct is extended to return three additional pieces of information: `max_pools_combined`:: The total number of timer pools that can be created combining different clock sources `max_pools`:: The maximum number of timer pools for a given clock source. `max_timers`:: The maximum number of timers in a single pool. A zero value means number is limited only by available memory. ===== Add Scheduler mix/max/default Priority Functions Three new APIs: `odp_schedule_max_prio()`, `odp_schedule_min_prio()`, and `odp_schedule_default_prio()` are added that return the min, max, and default values specified for the `prio` field in the `odp_schedule_param_t` struct. With the introduction of these scheduling priority functions the previously defined macros (`ODP_SCHED_PRIO_HIGHEST`, `ODP_SCHED_PRIO_NORMAL`, and `ODP_SCHED_PRIO_LOWEST`) are now deprecated and should no longer be used. ===== Specification of `odp_schedule_prio_t` as an `int` Previously, the `odp_schedule_prio_t` type definition was left to each implementation. With the addition of explicit schedule priority ranges, this type is now specified to be an `int` to permit efficient implementation (including inlining) of these functions. ====== New Scheduler APIs The new scheduler APIs `odp_schedule_multi_wait()` and `odp_schedule_multi_no_wait()` are added to provide more efficiently implementable versions of these functions. The existing scheduler APIs remain unchanged. These new APIs can simply provide a fastpath for some applications/implementations as an alternative to specifying a parameter on `odp_schedule_multi()`. ===== Memory Model in `odp_init_global()` The `odp_init_t` parameter passed to `odp_init_global()` is extended to add the `mem_model` field. This field is defined by the new `odp_mem_model_t` struct and is used to specify whether the application will be using a thread (`ODP_MEM_MODEL_THREAD`) or process (`ODP_MEM_MODEL_PROCESS`) memory model. The default is a thread model is used for compatibility with previous levels of ODP. ==== ABI Changes A number of changes to the ODP ABI have also been made in this release to improve application binary portability. ===== Strong Typing for Timer Pools The `odp_timer_pool_t` is now strongly typed. ===== Consistent Initialization The values of the various `ODP_xxx_INVALID` symbols for ODP abstract types in the `odp-linux` reference implementation are now consistently zeros. This reduces errors and improves portability. === Implementation Improvements ==== Configuration File A new configuration file mechanism is introduced that makes use of https://www.hyperrealm.com/libconfig/libconfig_manual.html[libconfig] to enable various runtime ODP parameters to be specified dynamically. Default configuration values for the `odp-linux` reference implementation are contained in the `config/odp-linux-generic.conf` file. Users may override these default values by supplying their own configuration file. At `odp_init_global()` time, if the `ODP_CONFIG_FILE` environment variable is set, this is used to locate the path to the override configuration file. ==== Process Mode Support The `odp-linux` reference implementation now supports applications that run in process mode (`mem_model` = `ODP_MEM_MODEL_PROCESS`) as well as the default thread mode. This support only applies within a single ODP instance, so any `fork()` calls must be done only _after_ `odp_init_global()` has been called to initialize ODP on a root process. ==== Removal of `iQuery` Scheduler The `iQuery` scheduler is removed from the `odp-linux` reference implementation, as it offers no performance advantages and has not seen application use. ==== Number of CPUs The `odp-linux` reference implementation now supports up to 256 CPUs by default (increased from 128). ==== Support for Large Burst Sizes The `odp-linux` reference implementation now supports large burst sizes for both I/O and non-I/O scheduled events. Large bursts (when available) are received directly to the application without any stashing for improved throughput. Burst sizes are configurable via the new configuration file mechanism, as described above. ==== `--without-openssl` Warnings When building `odp-linux` using `--without-openssl` a warning will be issued cautioning that strong cryptography will not be available. ==== Inline Queue Enq/Deq APIs The various enq/deq APIs are now subject to inlining when `odp-linux` is built with `--disable-abi-compat`. ==== Configurable Timer Controls Inline timers are now controlled via a config file option. Timer polling frequency is similarly controlled via the config file. ==== Huge Page Configuration The config file is now used to specify the huge page usage limit. ==== Single and Multi-Consumer/Producer Rings The queue implementation in `odp-linux` now automatically makes use of optimized single and multi-consumer/producer rings to significantly speed up enq/deq processing. ==== `odp_shm_print_all()` Improvements The output from `odp_shm_print_all()` is reworked to provide more useful and comprehensive shared memory usage information in `odp-linux`. ==== IPsec Improvements SA lifetime checking is now more scalable to multiple threads. This significantly reduces overhead for multithreaded IPsec applications. ==== Native Builds When running in non-ABI compatibility mode, `odp-linux` now enables native machine-specific optimizations for the CPU architecture of the local machine. === Validation Test Improvements ==== SCTP Test Packets SCTP test packets are now used in parser testing. SCTP headers are added to ODP and ODP helpers and SCTP checksums are now inserted and verified as part of validation testing. ==== `odp_packet_reset()` Test The packet validation test suite now properly tests `odp_packet_reset()`. === Helper Changes In support of process mode, ODP helper functions have been changed to better match these new capabilities ==== New `enum` The `odph_linux_thread_type_t enum` has been replaced with the new `odp_mem_model_t` type. ==== Helper Options The new `odph_options()` getter function is added that returns applicable options in effect via the new `odph_helper_options_t` struct. This currently includes the memory model (thread or process) that is in use. ==== SCTP Helpers The new helper APIs `odph_sctp_chksum_set()` and `odph_sctp_chksum_verify()` are added to facilitate working with SCTP packet checksums. === Performance Test Improvements ==== Pool Performance A new `odp_pool_perf` test has been added that stress-tests ODP pool functions in a multithreaded environment to generate performance statistics. ==== Scheduler Performance A new `odp_sched_perf` test has been added that stress-tests the scheduler in a multithreaded environment. ==== CPU Performance A new `odp_cpu_bench` performance test has been added that runs compute-intensive packet operations in a multithreaded environment and prints the observed maximum throughput for each thread. === Example Improvements ==== Classifier Example changes The `odp_classifier` example program now uses a reduced number of threads by default to reduce elapsed run time. `ODP_THREAD_COUNT_MAX` is also now used as the max worker count. ==== Generator Improvements The `odp_generator` example has numerous cleanups and performance improvements. ==== IPsec Example The `odp_ipsec` example now properly stops and closes pktio devices on exit. ==== Packet Dumping A new `odp_packet_dump` example is added that prints received packets to the terminal. This is useful for debugging packet I/O interfaces. ==== Sysinfo Example A new `odp_sysinfo` example is provided that prints system information. Useful for checking the ODP environment during debugging. This includes providing detailed information about the various crypto facilities supported, as well as the feature flags used at build time (_e.g.,_ if the binary was built with ARMv8.0 or ARMv8.1 instructions). ==== Traffic Manager Example The traffic manager example now properly destroys all TM queues it creates for improved reliability. It also now always prints a proper termination summary message. === Bug Fixes ==== Numbered Bugs/Issues ===== https://bugs.linaro.org/show_bug.cgi?id=3983[Bug 3983] Compile fails on OpenSuSE 42.2 Leap with error: negative width in bit field '__error_if_negative' ===== https://bugs.linaro.org/show_bug.cgi?id=3989[Bug 3989] odp_system_info_init() issues ===== https://bugs.linaro.org/show_bug.cgi?id=3999[Bug 3999] IPsec antireplay check drops packets when sequence number jumps. ===== https://bugs.linaro.org/show_bug.cgi?id=4002[Bug 4002] IPsec SA creation must fail for ESN-enabled SAs ===== https://bugs.linaro.org/show_bug.cgi?id=4013[Bug 4013] Per-SA IPv4 ID allocation may cause duplicate IDs. ===== https://bugs.linaro.org/show_bug.cgi?id=4017[Bug 4017] Unexpected IP ID causes IPsec API validation to fail ===== https://github.com/Linaro/odp/issues/662[Issue 662] rte_mempool_ops_alloc() is not dpdk api ==== Unnumbered Bugs/Issues * Fixed enq/deq issues encountered on architectures with weak memory ordering. * Return 0 from `odp_sys_huge_page_size_all()` if hugepages are not supported/detected. Tests modified to not treat this as an error. * Set `ODP_CACHE_LINE_SIZE` to 128 on ppc64le systems. * iplookuptable fix putting values into table * DPDK pktio support now works properly across multiple ODP instances. * Zero timer pool memory on reserve (fixes timer failures due to uninitialized variables). * `-march=native` disabled for `clang`. This fixes a known issue with recent levels of clang. === Known Issues ==== https://bugs.linaro.org/show_bug.cgi?id=3998[Bug 3998] IPsec extended sequence number support is missing ==== https://bugs.linaro.org/show_bug.cgi?id=4014[Bug 4014] Separate IP ID allocation for transport and tunnel mode SAs may cause duplicate IDs ==== https://bugs.linaro.org/show_bug.cgi?id=4018[Bug 4018] Unexpected IV causes IPsec API validation to fail ==== https://bugs.linaro.org/show_bug.cgi?id=4040[Bug 4040] Clang build fails on Ubuntu 18.04 # Conflicts: # .travis.yml # example/packet/Makefile.am
2018-11-28linux-gen: shm: remove single_va configuration optionMatias Elo
Process mode is now enabled by setting odp_init_global() parameter odp_init_t.mem_model to ODP_MEM_MODEL_PROCESS. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org> Reviewed-by: Petri Savolainen <petri.savolainen@linaro.org> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
2018-11-16linux-gen: ishm: add config option for selecting huge page usage limitMatias Elo
Add configuration option for selecting huge page usage limit in kilobytes. Memory reservations larger than this value are done using huge pages (if available), whereas smaller reservations are done using normal pages to conserve memory. The default value is still 64 kilobytes. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
2018-11-16linux-gen: timer: add config option for inline timer poll frequencyMatias Elo
Add configure option 'timer.inline_poll_interval' for adjusting inline timer polling frequency. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
2018-11-16linux-gen: timer: enable inline timer implementation using config fileMatias Elo
Add configure option 'timer.inline' for enabling inline timer implementation. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
2018-11-14linux-gen: ishm: read single va size from configMatias Elo
Simplify adjusting single VA memory size by moving the value to ODP config (shm.single_va_size). The default size is dropped to 128MB to save memory. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
2018-10-31linux-gen: config: add schedule group config file optionsPetri Savolainen
Added options to disable unused automatic schedule groups. Signed-off-by: Petri Savolainen <petri.savolainen@linaro.org> Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
2018-10-29linux-gen: sched: add spread weight config file optionPetri Savolainen
Add new config file option to control scheduler internal queue preference ratio. Signed-off-by: Petri Savolainen <petri.savolainen@linaro.org> Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
2018-10-18linux-gen: pool: add max num packets in config filePetri Savolainen
This config is used to for maximum capability. The default capability needs to be modest so that system memory limit is not exceeded. User may increase maximum number of packets when system memory size allows (and SHM single VA is not used). Signed-off-by: Petri Savolainen <petri.savolainen@linaro.org> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
2018-09-28linux-gen: shm: add option for allocating internal shm using single VAMatias Elo
Enables using ODP in process mode. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
2018-09-28linux-gen: sched: per priority burst size configurationPetri Savolainen
Change burst size configuration to be per priority instead of only two levels of control (high/low priority). Also maximum burst size is configurable, so that application may request a large burst of events without a worry that a large burst of low priority events is received. Signed-off-by: Petri Savolainen <petri.savolainen@linaro.org> Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
2018-09-12linux-gen: ishm: make huge page cache size dynamicJosep Puigdemont
Signed-off-by: Josep Puigdemont <josep.puigdemont@linaro.org> Reviewed-and-tested-by: Matias Elo <matias.elo@nokia.com> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
2018-09-12linux-gen: ishm: implement huge page cacheJosep Puigdemont
With this patch, ODP will pre-allocate several huge pages at init time. When memory is to be mapped into a huge page, one that was pre-allocated will be used, if available, this way ODP won't have to trap into the kernel to allocate huge pages. The idea with this implementation is to trick ishm into thinking that a file descriptor where to map the memory was provided, this way it it won't try to allocate one itself. This file descriptor is one of those previously allocated at init time. When the system is done with this file descriptor, instead of closing it, it is put back into the list of available huge pages, ready to be reused. A collateral effect of this patch is that memory is not zeroed out when it is reused. WARNING: This patch will not work when using process mode threads. For several reasons, this may not work when using ODP_ISHM_SINGLE_VA either, so when this flag is set, the list of pre-allocated files is not used. By default ODP will not reserve any huge pages, to tell ODP to do that, update the ODP configuration file with something like this: shm: { num_cached_hp = 32 } Example usage: $ echo odp.config odp_implementation = "linux-generic" config_file_version = "0.0.1" shm: { num_cached_hp = 32 } $ ODP_CONFIG_FILE=odp.conf ./test/validation/api/shmem/shmem_main This patch solves bug #3774: https://bugs.linaro.org/show_bug.cgi?id=3774 Signed-off-by: Josep Puigdemont <josep.puigdemont@linaro.org> Reviewed-and-tested-by: Matias Elo <matias.elo@nokia.com> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
2018-07-26Port ee6fdca6 "linux-gen: sched: configurable default burst size"Matias Elo
Signed-off-by: Matias Elo <matias.elo@nokia.com>
2018-07-26Merge branch 'master' of https://github.com/Linaro/odp into odp-dpdkMatias Elo
Signed-off-by: Matias Elo <matias.elo@nokia.com> # Conflicts: # .travis.yml
2018-07-11linux-gen: sched: configurable default burst sizePetri Savolainen
Make default burst sizes configurable. User can set limits for burst size round up in high/low priority. When less than burst_size_xx events are requested, scheduler rounds up the number of events to these limit and stash extra events. Requests with more events are not round down. So, user can use small values in burst size configure for better real-time support, but still request large number of events for better throughput on non real-time threads. Signed-off-by: Petri Savolainen <petri.savolainen@linaro.org> Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
2018-04-26Port bcd246e "linux-gen: sched: configurable priority spread"Matias Elo
Signed-off-by: Matias Elo <matias.elo@nokia.com>
2018-04-26Port c57da8d "linux-gen: queue: configurable max size"Matias Elo
Signed-off-by: Matias Elo <matias.elo@nokia.com>
2018-04-26Port 535ad26 "linux-gen: queue: configurable default size"Matias Elo
Signed-off-by: Matias Elo <matias.elo@nokia.com>
2018-04-26Merge tag 'v1.19.0.0_tigermoth' of https://github.com/Linaro/odp into odp-dpdkMatias Elo
Tiger Moth LTS Signed-off-by: Matias Elo <matias.elo@nokia.com> # Conflicts: # .travis.yml # m4/odp_libconfig.m4
2018-04-11linux-gen: netmap: ring configuration for VALEJuha-Matti Tilli
Configure ring for VALE. On my test laptop, this may increase odp_l2fwd performance from 1.9 MPPS to 2.3 MPPS, so it gives over 20% more performance. Signed-off-by: Juha-Matti Tilli <juha-matti.tilli@iki.fi> Reviewed-and-tested-by: Matias Elo <matias.elo@nokia.com> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
2018-04-04Port 534667d "linux-gen: add runtime configuration file"Matias Elo
Signed-off-by: Matias Elo <matias.elo@nokia.com>
2018-03-22linux-gen: sched: configurable priority spreadPetri Savolainen
Use configuration file to enable user to change priority queue spreading. Signed-off-by: Petri Savolainen <petri.savolainen@linaro.org> Reviewed-by: Balasubramanian Manoharan <bala.manoharan@linaro.org> Reviewed-by: Dmitry Eremin-Solenikov <dmitry.ereminsolenikov@linaro.org> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
2018-03-22linux-gen: queue: configurable max sizePetri Savolainen
Use configuration file to enable user to change the maximum queue size. Ring memory for all queues is reserved based on the max size. Signed-off-by: Petri Savolainen <petri.savolainen@linaro.org> Reviewed-by: Balasubramanian Manoharan <bala.manoharan@linaro.org> Reviewed-by: Dmitry Eremin-Solenikov <dmitry.ereminsolenikov@linaro.org> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
2018-03-22linux-gen: queue: configurable default sizePetri Savolainen
Use configuration file to enable user to change default queue size. Queue size parameter from application is used for larger queues than the default size. Signed-off-by: Petri Savolainen <petri.savolainen@linaro.org> Reviewed-by: Balasubramanian Manoharan <bala.manoharan@linaro.org> Reviewed-by: Dmitry Eremin-Solenikov <dmitry.ereminsolenikov@linaro.org> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
2018-03-06linux-gen: add runtime configuration fileMatias Elo
Enables changing ODP runtime configuration options by using an optional configuration file (libconfig). Path to the conf file is passed using environment variable ODP_CONF_FILE. If ODP_CONF_FILE or a particular option is not set, hardcoded default values are used instead. An template configuration file is provided in config/odp-linux.conf. Runtime configuration is initially used by DPDK pktio to set NIC options. Adds new dependency to libconfig library. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Dmitry Eremin-Solenikov <dmitry.ereminsolenikov@linaro.org> Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
2013-12-30tree-wide: introduce SPDX Unique License IdentifiersKim Phillips
ODP includes big blocks of License headers in all files. This not only blows up the source code with mostly redundant information, but also makes it very difficult to generate License Clearing Reports. An additional problem is that even the same licenses are referred to by a number of slightly varying text blocks (full, abbreviated, different indentation, line wrapping and/or white space, with obsolete address information, ...) which makes automatic processing a nightmare. To make this easier, such license headers in the source files will be replaced with a single line reference to Unique License Identifiers as defined by the Linux Foundation's SPDX project [1]. I.e, in a source file the full BSD 3-clause header text will be replaced by a single line: SPDX-License-Identifier: BSD-3-Clause We use the SPDX Unique License Identifiers here; these are available at [2]. Note: From the legal point of view, this patch is supposed to be only a change to the textual representation of the license information, but in no way any change to the actual license terms. With this patch applied, all files will still be licensed under the same terms they were before. [1] http://spdx.org/ [2] http://spdx.org/licenses/ Signed-off-by: Kim Phillips <kim.phillips@linaro.org>
2013-11-18Added pthread helpersPetri Savolainen
Style cleaning on all files. Added support for pthreads and first multithreading test app code.
2013-11-18Added initial ODP filesPetri Savolainen
Directory arch/linux-generic contains ODP headers and implementation for linux-generic target. Use 'make libs' to build ODP library and 'make docs' to build ODP API documentation. Directory test contains simple test application to test few API calls. Use 'make' to build the test app, or 'make libs' or 'make docs' to build ODP libs and docs, respectively.