aboutsummaryrefslogtreecommitdiff
path: root/platform/linux-generic
diff options
context:
space:
mode:
authorBill Fischofer <bill.fischofer@linaro.org>2014-12-15 19:09:47 +0200
committerMaxim Uvarov <maxim.uvarov@linaro.org>2014-12-16 01:26:12 +0300
commit8c32b5196fb0762b185daa6491c7d5af11b55b1f (patch)
tree3b9d403ca67d2410ac087774cb61556416a6b4da /platform/linux-generic
parent835be05f8f19561e91555a31ca18b9d3f447695b (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')
-rw-r--r--platform/linux-generic/include/api/odp_config.h70
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)
+
+/**
* @}
*/