diff options
author | Bill Fischofer <bill.fischofer@linaro.org> | 2014-12-15 19:09:47 +0200 |
---|---|---|
committer | Maxim Uvarov <maxim.uvarov@linaro.org> | 2014-12-16 01:26:12 +0300 |
commit | 8c32b5196fb0762b185daa6491c7d5af11b55b1f (patch) | |
tree | 3b9d403ca67d2410ac087774cb61556416a6b4da /platform/linux-generic/include | |
parent | 835be05f8f19561e91555a31ca18b9d3f447695b (diff) |
api: config: add buffer/packet configuration
Signed-off-by: Bill Fischofer <bill.fischofer@linaro.org>
Signed-off-by: Taras Kondratiuk <taras.kondratiuk@linaro.org>
Reviewed-and-tested-by: Bill Fischofer <bill.fischofer@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
Diffstat (limited to 'platform/linux-generic/include')
-rw-r--r-- | platform/linux-generic/include/api/odp_config.h | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/platform/linux-generic/include/api/odp_config.h b/platform/linux-generic/include/api/odp_config.h index 906897cef..2f839b391 100644 --- a/platform/linux-generic/include/api/odp_config.h +++ b/platform/linux-generic/include/api/odp_config.h @@ -49,6 +49,76 @@ extern "C" { #define ODP_CONFIG_PKTIO_ENTRIES 64 /** + * Minimum supported buffer alignment + * This defines the minimum buffer alignment request. Requests for + * values below this will be rounded up to this value. + */ +#define ODP_CONFIG_BUFFER_ALIGN_MIN 8 + +/** + * Maximum supported buffer alignment + * This defines the maximum supported buffer alignment. Requests for + * values above this will fail. + */ + +#define ODP_CONFIG_BUFFER_ALIGN_MAX (4*1024) + +/** + * Default packet headroom + * This is default headroom that will be applied to any buffer pool created + * for packets. Note that while headroom serves to reserve space for packet + * header expansion via the odp_packet_push_head() routine, it also serves to + * align packets within the buffer. ODP packet buffers always have a minimum + * of 8 byte alignment, so the headroom can be used to offset packets so that, + * for example, a 14 byte standard Ethernet header ends on a 4 byte boundary + * so that the following IP header begins on a 4 byte alignment. Note also + * that this is the minimum headroom value that the application + * requires. Implementations are free to add to whatever value is specified + * here in multiples of 8 bytes to preserve the implied alignment + * specification. The specific default shown here allows a 1500-byte packet + * to be received into a single segment with Ethernet offset alignment and + * room for some header expansion. + */ +#define ODP_CONFIG_PACKET_HEADROOM 66 + +/** + * Default packet tailroom + * This is the default tailroom that will be applied to any buffer pool + * created for packets. This specifies the minimum tailroom value that the + * application requires. Implementations are free to add to this as desired + * without restriction. Note that most implementations will automatically + * consider any unused portion of the last segment of a packet as tailroom + */ +#define ODP_CONFIG_PACKET_TAILROOM 0 + +/** + * Minimum packet segment size + * This defines the minimum allowable size for packet segments. It exists to + * ensure that the application can have a reasonable expectation that all + * packet headers will reside in the first packet segment. Note that this + * value MUST be a multiple of 8. + * + * This is the granularity of segmented buffers/packets. Note that this is + * currently only applicable to buffers of type ODP_BUFFER_TYPE_PACKET. It is + * sized for now to be large enough to support 1536-byte packets with the + * default headroom shown above, since the raw socket interface does not + * at present support scatter/gather I/O. This is subject to the + * ODP_CONFIG_PACKET_BUF_MIN_LEN configuration shown above and MUST be a + * multiple of ODP_CACHE_LINE_SIZE. 1664 is used here as a default since it is + * a multiple of both 64 and 128, which are the most common cache line sizes. + * Adjust as needed for your platform. + */ +#define ODP_CONFIG_PACKET_BUF_LEN_MIN (1664) + +/** + * Maximum packet length supported + * MUST be an integral number of segments and SHOULD be large enough to + * accommodate jumbo packets (9K). Attempts to allocate or extend packets to + * sizes larger than this limit will fail. + */ +#define ODP_CONFIG_PACKET_BUF_LEN_MAX (ODP_CONFIG_PACKET_BUF_LEN_MIN*6) + +/** * @} */ |