aboutsummaryrefslogtreecommitdiff
path: root/doc/odp.dox
blob: b5864219437e4de95f2470af9555e411b87fb6a7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
/* Copyright (c) 2013, Linaro Limited
 * All rights reserved
 *
 * SPDX-License-Identifier:     BSD-3-Clause
 */

/**
 * @mainpage
 *
 * @section sec_1 Introduction
 *
 * OpenDataPlane (ODP) provides a data plane application programming
 * environment that is easy to use, high performance, and portable
 * between networking SoCs. This documentation is both a user guide
 * for developers who wish to use ODP and a detailed reference for ODP
 * programmers covering APIs, data structures, files, etc.  It should
 * also be useful for those wishing to implement ODP on other
 * platforms.
 *
 *  @image html overview.png
 *
 * ODP consists of a common layer and an implementation layer.
 * Applications written to the common layer are portable across all
 * ODP implementations.  To compile and run an ODP application, it is
 * compiled against a specific ODP implementation layer.  The purpose
 * of the implementation layer is to provide an optimal mapping of ODP
 * APIs to the underlying capabilities (including hardware
 * co-processing and acceleration support) of of SoCs hosting ODP
 * implementations.  As a bootstrapping mechanism for applications, as
 * well as to provide a model for ODP implementers, ODP provides a
 * 'linux-generic' reference implementation designed to run on any SoC
 * which has a Linux kernel.  While linux-generic is not a performance
 * target, it does provide a starting point for ODP implementers and
 * application programmers alike.  As a pure software implementation
 * of ODP, linux-generic is designed to provide best-in-class performance
 * for general Linux data plane support.
 *
 * @section Staging
 *
 * ODP is a work in progress and is expected to evolve significantly
 * as it develops.  Since the goal of ODP is to provide portability
 * across disparate platforms and architectures while still providing
 * near-native levels of performance on each conforming
 * implementation, it is expected that the ODP architecture and the
 * APIs presented here will evolve based on the experience in
 * implementing and tuning ODP for operation on multiple platforms.
 * For the time being, then, the goal here is not so much as to
 * present a stable API, but rather a usable one that can be built
 * upon to reach a clearly defined end goal.
 *
 * ODP releases will follow a standard major/minor/revision
 * three-level naming designation.  The intent is that APIs will be
 * stable across major revisions such that existing APIs will work
 * unchanged within a major revision, though minor revisions may add
 * new APIs.  Across major revisions some API changes may make
 * application source changes necesary.  These will be clearly noted
 * in the release notes associated with any given ODP release.
 *
 * This consistency will commence with the 1.0.0 release of ODP, which
 * is expected later in 2014.  Pre-release 1 it should be expected
 * that minor revisions may require API source changes as ODP is still
 * "growing its roots".  This is release 0.1.0 of ODP and is being
 * made available as a "public preview" to the open source community
 * for comment/feedback/evaluation.
 *
 * @section contact Contact Details
 * - The main web site is http://www.opendataplane.org/
 * - The git repo is https://git.linaro.org/lng/odp.git
 * - Bug tracking is https://bugs.linaro.org/buglist.cgi?component=General&list_id=2474&product=OpenDataPlane
 *
 */