On Wed, Jan 14, 2015 at 5:19 AM, Savolainen, Petri (NSN - FI/Espoo) < [email protected]> wrote:
> 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, > Is the intent here that we're limiting the potential numbers of QoS entries to 256 or that we're limiting the number that can be set with a single call? The latter might be reasonable, but it seems the former is an unnecessary architectural restriction. > > 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 >
_______________________________________________ lng-odp mailing list [email protected] http://lists.linaro.org/mailman/listinfo/lng-odp
