The following APIs are setting parameters to pktio handle and are hence
moved from classification header to pktio header file.
        odp_pktio_default_cos_set()
        odp_pktio_error_cos_set()
        odp_pktio_skip_set()
        odp_pktio_headroom_set()

This patch also modifies the error return values in API description
from -1 to non-zero value
                
Signed-off-by: Balasubramanian Manoharan <[email protected]>
---
 .../linux-generic/include/api/odp_classification.h | 92 ++++------------------
 platform/linux-generic/include/api/odp_packet_io.h | 55 +++++++++++++
 .../linux-generic/include/api/odp_platform_types.h |  3 +
 platform/linux-generic/odp_classification.c        | 22 +++---
 platform/linux-generic/odp_init.c                  |  2 +-
 5 files changed, 86 insertions(+), 88 deletions(-)

diff --git a/platform/linux-generic/include/api/odp_classification.h 
b/platform/linux-generic/include/api/odp_classification.h
index 4c9674b..46189bc 100644
--- a/platform/linux-generic/include/api/odp_classification.h
+++ b/platform/linux-generic/include/api/odp_classification.h
@@ -22,7 +22,6 @@ extern "C" {
 #include <odp_std_types.h>
 #include <odp_buffer_pool.h>
 #include <odp_packet.h>
-#include <odp_packet_io.h>
 #include <odp_queue.h>
 
 /** @defgroup odp_classification ODP CLASSIFICATION
@@ -30,11 +29,6 @@ extern "C" {
  *  @{
  */
 
-/**
- * Class of service instance type
- */
-typedef uint32_t odp_cos_t;
-
 
 /**
  * flow signature type, only used for packet metadata field.
@@ -95,7 +89,7 @@ odp_cos_t odp_cos_create(const char *name);
  *
  * @param[in]  cos_id  class-of-service instance.
  *
- * @return             0 on success, -1 on error.
+ * @return             0 on success, non-zero on error.
  */
 int odp_cos_destroy(odp_cos_t cos_id);
 
@@ -108,7 +102,7 @@ int odp_cos_destroy(odp_cos_t cos_id);
  *                             of this specific class of service
  *                             will be enqueued.
  *
- * @return                     0 on success, -1 on error.
+ * @return                     0 on success, non-zero on error.
  */
 int odp_cos_set_queue(odp_cos_t cos_id, odp_queue_t queue_id);
 
@@ -118,67 +112,13 @@ int odp_cos_set_queue(odp_cos_t cos_id, odp_queue_t 
queue_id);
  * @param[in]  cos_id          class-of-service instance.
  * @param[in]  drop_policy     Desired packet drop policy for this class.
  *
- * @return                     0 on success, -1 on error.
+ * @return                     0 on success, non-zero on error.
  *
  * @note Optional.
  */
 int odp_cos_set_drop(odp_cos_t cos_id, odp_drop_e drop_policy);
 
 /**
- * Setup per-port default class-of-service.
- *
- * @param[in]  pktio_in        Ingress port identifier.
- * @param[in]  default_cos     Class-of-service set to all packets arriving
- *                             at the pktio_in ingress port,
- *                             unless overridden by subsequent
- *                             header-based filters.
- *
- * @return                     0 on success, -1 on error.
- */
-int odp_pktio_set_default_cos(odp_pktio_t pktio_in, odp_cos_t default_cos);
-
-/**
- * Setup per-port error class-of-service
- *
- * @param[in]  pktio_in        Ingress port identifier.
- * @param[in]  error_cos       class-of-service set to all packets arriving
- *                             at the pktio_in ingress port
- *                             that contain an error.
- *
- * @return                     0 on success, -1 on error.
- *
- * @note Optional.
- */
-int odp_pktio_set_error_cos(odp_pktio_t pktio_in, odp_cos_t error_cos);
-
-/**
- * Setup per-port header offset
- *
- * @param[in]  pktio_in        Ingress port identifier.
- * @param[in]  offset          Number of bytes the classifier must skip.
- *
- * @return                     0 on success, -1 on error.
- * @note  Optional.
- *
- */
-int odp_pktio_set_skip(odp_pktio_t pktio_in, size_t offset);
-
-/**
- * Specify per-port buffer headroom
- *
- * @param[in]  pktio_in        Ingress port identifier.
- * @param[in]  headroom        Number of bytes of space preceding
- *                             packet data to reserve for use as headroom.
- *                             Must not exceed the implementation
- *                             defined ODP_PACKET_MAX_HEADROOM.
- *
- * @return                     0 on success, -1 on error.
- *
- * @note Optional.
- */
-int odp_pktio_set_headroom(odp_pktio_t pktio_in, size_t headroom);
-
-/**
  * Request to override per-port class of service
  * based on Layer-2 priority field if present.
  *
@@ -187,10 +127,10 @@ int odp_pktio_set_headroom(odp_pktio_t pktio_in, size_t 
headroom);
  * @param[in]  qos_table       Values of the Layer-2 QoS header field.
  * @param[in]  cos_table       Class-of-service assigned to each of the
  *                             allowed Layer-2 QOS levels.
- * @return                     0 on success, -1 on error.
+ * @return                     0 on success, non-zero on error.
  */
 int odp_cos_with_l2_priority(odp_pktio_t pktio_in,
-                            size_t num_qos,
+                            uint8_t num_qos,
                             uint8_t qos_table[],
                             odp_cos_t cos_table[]);
 
@@ -206,15 +146,15 @@ int odp_cos_with_l2_priority(odp_pktio_t pktio_in,
  * @param[in]  l3_preference   when true, Layer-3 QoS overrides
  *                             L2 QoS when present.
  *
- * @return                     0 on success, -1 on error.
+ * @return                     0 on success, non-zero on error.
  *
  * @note Optional.
  */
 int odp_cos_with_l3_qos(odp_pktio_t pktio_in,
-                       size_t num_qos,
+                       uint32_t num_qos,
                        uint8_t qos_table[],
                        odp_cos_t cos_table[],
-                       bool l3_preference);
+                       odp_bool_t l3_preference);
 
 
 /**
@@ -284,7 +224,7 @@ typedef enum odp_pmr_term {
 odp_pmr_t odp_pmr_create_match(odp_pmr_term_e term,
                               const void *val,
                               const void *mask,
-                              size_t val_sz);
+                              uint32_t val_sz);
 
 /**
  * Create a packet match rule with value range
@@ -302,13 +242,13 @@ odp_pmr_t odp_pmr_create_match(odp_pmr_term_e term,
 odp_pmr_t odp_pmr_create_range(odp_pmr_term_e term,
                               const void *val1,
                               const void *val2,
-                              size_t val_sz);
+                              uint32_t val_sz);
 /**
  * Invalidate a packet match rule and vacate its resources
  *
  * @param[in]  pmr_id  Identifier of the PMR to be destroyed
  *
- * @return             0 on success, -1 or error.
+ * @return             0 on success, non-zero or error.
  */
 int odp_pmr_destroy(odp_pmr_t pmr_id);
 
@@ -319,7 +259,7 @@ int odp_pmr_destroy(odp_pmr_t pmr_id);
  * @param[in]  src_pktio       pktio to which this PMR is to be applied
  * @param[in]  dst_cos         CoS to be assigned by this PMR
  *
- * @return                     0 on success, -1 or error.
+ * @return                     0 on success, non-zero or error.
  */
 int odp_pktio_pmr_cos(odp_pmr_t pmr_id,
                      odp_pktio_t src_pktio, odp_cos_t dst_cos);
@@ -332,7 +272,7 @@ int odp_pktio_pmr_cos(odp_pmr_t pmr_id,
  * @param[in]  dst_cos         CoS to be assigned to packets filtered
  *                             from src_cos that match pmr_id.
  *
- * @return                     0 on success, -1 on error.
+ * @return                     0 on success, non-zero on error.
  */
 int odp_cos_pmr_cos(odp_pmr_t pmr_id, odp_cos_t src_cos, odp_cos_t dst_cos);
 
@@ -411,7 +351,7 @@ typedef uint32_t odp_pmr_set_t;
  *                             that have been successfully mapped to the
  *                             underlying platform classification engine and
  *                             may be in the range from 1 to num_terms,
- *                             or -1 for error.
+ *                             or non-zero for error.
  */
 int odp_pmr_match_set_create(int num_terms, odp_pmr_match_t *terms,
                             odp_pmr_set_t *pmr_set_id);
@@ -429,7 +369,7 @@ int odp_pmr_match_set_create(int num_terms, odp_pmr_match_t 
*terms,
  * @param[in]  pmr_set_id      A composite rule-set handle
  *                             returned when created.
  *
- * @return                     0 on success, -1 on error.
+ * @return                     0 on success, non-zero on error.
  */
 int odp_pmr_match_set_destroy(odp_pmr_set_t pmr_set_id);
 
@@ -441,7 +381,7 @@ int odp_pmr_match_set_destroy(odp_pmr_set_t pmr_set_id);
  *                             set is to be applied
  * @param[in]  dst_cos         CoS to be assigned by this PMR match set
  *
- * @return                     0 on success, -1 or error.
+ * @return                     0 on success, non-zero or error.
  */
 int odp_pktio_pmr_match_set_cos(odp_pmr_set_t pmr_set_id, odp_pktio_t 
src_pktio,
                                odp_cos_t dst_cos);
diff --git a/platform/linux-generic/include/api/odp_packet_io.h 
b/platform/linux-generic/include/api/odp_packet_io.h
index 0c34f29..4835f4d 100644
--- a/platform/linux-generic/include/api/odp_packet_io.h
+++ b/platform/linux-generic/include/api/odp_packet_io.h
@@ -169,6 +169,61 @@ size_t odp_pktio_mac_addr(odp_pktio_t id, void *mac_addr,
                          size_t addr_size);
 
 /**
+ * Setup per-port default class-of-service.
+ *
+ * @param[in]  pktio_in        Ingress port identifier.
+ * @param[in]  default_cos     Class-of-service set to all packets arriving
+ *                             at the pktio_in ingress port,
+ *                             unless overridden by subsequent
+ *                             header-based filters.
+ *
+ * @return                     0 on success, non-zero on error.
+ */
+int odp_pktio_default_cos_set(odp_pktio_t pktio_in, odp_cos_t default_cos);
+
+/**
+ * Setup per-port error class-of-service
+ *
+ * @param[in]  pktio_in        Ingress port identifier.
+ * @param[in]  error_cos       class-of-service set to all packets arriving
+ *                             at the pktio_in ingress port
+ *                             that contain an error.
+ *
+ * @return                     0 on success, non-zero on error.
+ *
+ * @note Optional.
+ */
+int odp_pktio_error_cos_set(odp_pktio_t pktio_in, odp_cos_t error_cos);
+
+/**
+ * Setup per-port header offset
+ *
+ * @param[in]  pktio_in        Ingress port identifier.
+ * @param[in]  offset          Number of bytes the classifier must skip.
+ *
+ * @return                     0 on success, non-zero on error.
+ * @note  Optional.
+ *
+ */
+int odp_pktio_skip_set(odp_pktio_t pktio_in, uint32_t offset);
+
+/**
+ * Specify per-port buffer headroom
+ *
+ * @param[in]  pktio_in        Ingress port identifier.
+ * @param[in]  headroom        Number of bytes of space preceding
+ *                             packet data to reserve for use as headroom.
+ *                             Must not exceed the implementation
+ *                             defined ODP_PACKET_MAX_HEADROOM.
+ *
+ * @return                     0 on success, non-zero on error.
+ *
+ * @note Optional.
+ */
+int odp_pktio_headroom_set(odp_pktio_t pktio_in, uint32_t headroom);
+
+
+/**
  * @}
  */
 
diff --git a/platform/linux-generic/include/api/odp_platform_types.h 
b/platform/linux-generic/include/api/odp_platform_types.h
index 0a00219..6ed9e78 100644
--- a/platform/linux-generic/include/api/odp_platform_types.h
+++ b/platform/linux-generic/include/api/odp_platform_types.h
@@ -74,6 +74,9 @@ typedef uint32_t odp_shm_t;
 #define ODP_SHM_INVALID 0
 #define ODP_SHM_NULL ODP_SHM_INVALID /**< Synonym for buffer pool use */
 
+/** ODP Class of service handle */
+typedef uint32_t odp_cos_t;
+
 /**
  * @}
  */
diff --git a/platform/linux-generic/odp_classification.c 
b/platform/linux-generic/odp_classification.c
index eeb049a..7d09cce 100644
--- a/platform/linux-generic/odp_classification.c
+++ b/platform/linux-generic/odp_classification.c
@@ -256,7 +256,7 @@ int odp_cos_set_drop(odp_cos_t cos_id, odp_drop_e 
drop_policy)
        return 0;
 }
 
-int odp_pktio_set_default_cos(odp_pktio_t pktio_in, odp_cos_t default_cos)
+int odp_pktio_default_cos_set(odp_pktio_t pktio_in, odp_cos_t default_cos)
 {
        pktio_entry_t *entry;
        cos_t *cos;
@@ -275,7 +275,7 @@ int odp_pktio_set_default_cos(odp_pktio_t pktio_in, 
odp_cos_t default_cos)
        return 0;
 }
 
-int odp_pktio_set_error_cos(odp_pktio_t pktio_in, odp_cos_t error_cos)
+int odp_pktio_error_cos_set(odp_pktio_t pktio_in, odp_cos_t error_cos)
 {
        pktio_entry_t *entry;
        cos_t *cos;
@@ -296,7 +296,7 @@ int odp_pktio_set_error_cos(odp_pktio_t pktio_in, odp_cos_t 
error_cos)
        return 0;
 }
 
-int odp_pktio_set_skip(odp_pktio_t pktio_in, size_t offset)
+int odp_pktio_skip_set(odp_pktio_t pktio_in, uint32_t offset)
 {
        pktio_entry_t *entry = get_pktio_entry(pktio_in);
        if (entry == NULL) {
@@ -308,7 +308,7 @@ int odp_pktio_set_skip(odp_pktio_t pktio_in, size_t offset)
        return 0;
 }
 
-int odp_pktio_set_headroom(odp_pktio_t pktio_in, size_t headroom)
+int odp_pktio_headroom_set(odp_pktio_t pktio_in, uint32_t headroom)
 {
        pktio_entry_t *entry = get_pktio_entry(pktio_in);
        if (entry == NULL) {
@@ -320,12 +320,12 @@ int odp_pktio_set_headroom(odp_pktio_t pktio_in, size_t 
headroom)
 }
 
 int odp_cos_with_l2_priority(odp_pktio_t pktio_in,
-                            size_t num_qos,
+                            uint8_t num_qos,
                             uint8_t qos_table[],
                             odp_cos_t cos_table[])
 {
        pmr_l2_cos_t *l2_cos;
-       size_t i;
+       uint32_t i;
        cos_t *cos;
        pktio_entry_t *entry = get_pktio_entry(pktio_in);
        if (entry == NULL) {
@@ -348,13 +348,13 @@ int odp_cos_with_l2_priority(odp_pktio_t pktio_in,
 }
 
 int odp_cos_with_l3_qos(odp_pktio_t pktio_in,
-                       size_t num_qos,
+                       uint32_t num_qos,
                        uint8_t qos_table[],
                        odp_cos_t cos_table[],
-                       bool l3_preference)
+                       odp_bool_t l3_preference)
 {
        pmr_l3_cos_t *l3_cos;
-       size_t i;
+       uint32_t i;
        pktio_entry_t *entry = get_pktio_entry(pktio_in);
        cos_t *cos;
 
@@ -382,7 +382,7 @@ int odp_cos_with_l3_qos(odp_pktio_t pktio_in,
 odp_pmr_t odp_pmr_create_match(odp_pmr_term_e term,
                               const void *val,
                               const void *mask,
-                              size_t val_sz)
+                              uint32_t val_sz)
 {
        pmr_t *pmr;
        odp_pmr_t id;
@@ -410,7 +410,7 @@ odp_pmr_t odp_pmr_create_match(odp_pmr_term_e term,
 odp_pmr_t odp_pmr_create_range(odp_pmr_term_e term,
                               const void *val1,
                               const void *val2,
-                              size_t val_sz)
+                              uint32_t val_sz)
 {
        pmr_t *pmr;
        odp_pmr_t id;
diff --git a/platform/linux-generic/odp_init.c 
b/platform/linux-generic/odp_init.c
index 4d0aa07..77bfd09 100644
--- a/platform/linux-generic/odp_init.c
+++ b/platform/linux-generic/odp_init.c
@@ -55,7 +55,7 @@ int odp_init_global(odp_init_t *params  ODP_UNUSED,
                return -1;
        }
        if (odp_classification_init_global()) {
-               ODP_ERR("ODP crypto init failed.\n");
+               ODP_ERR("ODP classification init failed.\n");
                return -1;
        }
 
-- 
2.0.1.472.g6f92e5f


_______________________________________________
lng-odp mailing list
[email protected]
http://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to