Reviewed-by: Petri Savolainen <[email protected]>

A patch set (one type of modification per patch) would have been better 
approach, but I'm OK with this since changes were trivial.


-Petri



> -----Original Message-----
> From: [email protected] [mailto:lng-odp-
> [email protected]] On Behalf Of ext Balasubramanian Manoharan
> Sent: Wednesday, January 14, 2015 8:05 AM
> To: [email protected]
> Subject: [lng-odp] [PATCH v1] api: Move Pktio related APIs to pktio Header
> file
> 
> 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

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

Reply via email to