Ping. Any feedback on the API definition and comments most welcome.

Regards,
Bala


On 26 January 2016 at 06:37, Bill Fischofer <[email protected]> wrote:
> The question of contexts for stateful classification was discussed last
> July.  We can discuss this further during tomorrow's public call to see if
> we want to pursue this for Monarch or if it should be considered a
> post-Monarch item.
>
> On Fri, Jan 22, 2016 at 9:47 AM, Ivan Khoronzhuk
> <[email protected]> wrote:
>>
>> + list
>>
>> On 22.01.16 17:46, Ivan Khoronzhuk wrote:
>>>
>>> It discussed several times when started to look at it and Bill proposed
>>> to add some cls environment.
>>> Finally, it's sent. After this change PMR is created while connection to
>>> CoSes,
>>> and it's eliminates ability to connect the same PMR to several CoSes
>>> (which may arise questions...),
>>> and maps PMR handle directly to physical rule. It greatly simplifies life
>>> for implementors.
>>>
>>>
>>>
>>> On 22.01.16 13:54, Balasubramanian Manoharan wrote:
>>>>
>>>> Packet match rule creation is modified to include source and destination
>>>> class of service. Removes the ability to add any class of service
>>>> directly
>>>> with pktio. If a PMR needs to be applied at the pktio level the same
>>>> should be applied to default class of service.
>>>>
>>>> Packet match rule destroy function is updated to removes the link
>>>> between
>>>> the source and destination class of service.
>>>>
>>>> Signed-off-by: Balasubramanian Manoharan <[email protected]>
>>>> ---
>>>>   include/odp/api/classification.h | 74
>>>> +++++++++++++---------------------------
>>>>   1 file changed, 24 insertions(+), 50 deletions(-)
>>>>
>>>> diff --git a/include/odp/api/classification.h
>>>> b/include/odp/api/classification.h
>>>> index f46912e..59bd01d 100644
>>>> --- a/include/odp/api/classification.h
>>>> +++ b/include/odp/api/classification.h
>>>> @@ -50,7 +50,7 @@ extern "C" {
>>>>   /**
>>>>    * @def ODP_PMR_INVAL
>>>>    * Invalid odp_pmr_t value.
>>>> - * This value is returned from odp_pmr_create()
>>>> + * This value is returned from odp_cls_pmr_create()
>>>>    * function on failure.
>>>>    */
>>>>
>>>> @@ -286,50 +286,33 @@ typedef struct odp_pmr_match_t {
>>>>   } odp_pmr_match_t;
>>>>
>>>>   /**
>>>> - * Create a packet match rule with mask and value
>>>> + * Create a packet match rule between source and destination class of
>>>> service.
>>>> + * This packet matching rule is applied on all packets arriving at the
>>>> source
>>>> + * class of service and packets satisfying this PMR are sent to the
>>>> destination
>>>> + * class of service.
>>>>    *
>>>>    * @param[in]    match   packet matching rule definition
>>>> + * @param[in]    src_cos    source CoS handle
>>>> + * @param[in]    dst_cos    destination CoS handle
>>>>    *
>>>>    * @return        Handle of the matching rule
>>>>    * @retval        ODP_PMR_INVAL on failure
>>>>    */
>>>> -odp_pmr_t odp_pmr_create(const odp_pmr_match_t *match);
>>>> -
>>>> +odp_pmr_t odp_cls_pmr_create(const odp_pmr_match_t *match, odp_cos_t
>>>> src_cos,
>>>> +                 odp_cos_t dst_cos);
>>>>   /**
>>>> - * Invalidate a packet match rule and vacate its resources
>>>> + * Function to destroy a packet match rule
>>>> + * Destroying a PMR removes the link between the source and destination
>>>> + * class of service and this PMR will no longer be applied for packets
>>>> arriving
>>>> + * at the source class of service. All the resource associated with the
>>>> PMR
>>>> + * be release but the class of service will remain intact.
>>>>    *
>>>>    * @param[in]    pmr_id    Identifier of the PMR to be destroyed
>>>>    *
>>>>    * @retval        0 on success
>>>>    * @retval        <0 on failure
>>>>    */
>>>> -int odp_pmr_destroy(odp_pmr_t pmr_id);
>>>> -
>>>> -/**
>>>> - * Apply a PMR to a pktio to assign a CoS.
>>>> - *
>>>> - * @param[in]    pmr_id        PMR to be activated
>>>> - * @param[in]    src_pktio    pktio to which this PMR is to be applied
>>>> - * @param[in]    dst_cos        CoS to be assigned by this PMR
>>>> - *
>>>> - * @retval        0 on success
>>>> - * @retval        <0 on failure
>>>> - */
>>>> -int odp_pktio_pmr_cos(odp_pmr_t pmr_id,
>>>> -              odp_pktio_t src_pktio, odp_cos_t dst_cos);
>>>> -
>>>> -/**
>>>> - * Cascade a PMR to refine packets from one CoS to another.
>>>> - *
>>>> - * @param[in]    pmr_id        PMR to be activated
>>>> - * @param[in]    src_cos        CoS to be filtered
>>>> - * @param[in]    dst_cos        CoS to be assigned to packets filtered
>>>> - *                from src_cos that match pmr_id.
>>>> - *
>>>> - * @retval        0 on success
>>>> - * @retval        <0 on failure
>>>> - */
>>>> -int odp_cos_pmr_cos(odp_pmr_t pmr_id, odp_cos_t src_cos, odp_cos_t
>>>> dst_cos);
>>>> +int odp_cls_pmr_destroy(odp_pmr_t pmr_id);
>>>>
>>>>   /**
>>>>    * Inquire about matching terms supported by the classifier
>>>> @@ -357,19 +340,24 @@ unsigned odp_pmr_terms_avail(void);
>>>>    * of value match rules, and the application should take care
>>>>    * of inspecting the return value when installing such rules, and
>>>> perform
>>>>    * appropriate fallback action.
>>>> + * This is same as odp_cls_pmr_create() except that it creates the link
>>>> + * using pmr match set instead of a single PMR.
>>>>    *
>>>>    * @param[in]    num_terms    Number of terms in the match rule.
>>>>    * @param[in]    terms        Array of num_terms entries, one entry
>>>> per
>>>>    *                term desired.
>>>>    * @param[out]    pmr_set_id    Returned handle to the composite rule
>>>> set.
>>>> + * @param[in]    src_cos        source CoS handle
>>>> + * @param[in]    dst_cos        destination CoS handle
>>>>    *
>>>>    * @return            the number of terms elements
>>>>    *                that have been successfully mapped to the
>>>>    *                underlying platform classification engine
>>>>    * @retval            <0 on failure
>>>>    */
>>>> -int odp_pmr_match_set_create(int num_terms, const odp_pmr_match_t
>>>> *terms,
>>>> -                 odp_pmr_set_t *pmr_set_id);
>>>> +int odp_cls_pmr_match_set_create(int num_terms, const odp_pmr_match_t
>>>> *terms,
>>>> +                 odp_pmr_set_t *pmr_set_id, odp_cos_t src_cos,
>>>> +                 odp_cos_t dst_cos);
>>>>
>>>>   /**
>>>>    * Function to delete a composite packet match rule set
>>>> @@ -378,7 +366,7 @@ int odp_pmr_match_set_create(int num_terms, const
>>>> odp_pmr_match_t *terms,
>>>>    * same or essentially similar rule-set.
>>>>    *
>>>>    * All of the resources pertaining to the match set associated with
>>>> the
>>>> - * class-of-service will be released, but the class-of-service will
>>>> + * class of service will be released, but the class of service will
>>>>    * remain intact.
>>>>    *
>>>>    * @param[in]    pmr_set_id    A composite rule-set handle
>>>> @@ -387,21 +375,7 @@ int odp_pmr_match_set_create(int num_terms, const
>>>> odp_pmr_match_t *terms,
>>>>    * @retval            0 on success
>>>>    * @retval            <0 on failure
>>>>    */
>>>> -int odp_pmr_match_set_destroy(odp_pmr_set_t pmr_set_id);
>>>> -
>>>> -/**
>>>> - * Apply a PMR Match Set to a pktio to assign a CoS.
>>>> - *
>>>> - * @param[in]    pmr_set_id    PMR match set to be activated
>>>> - * @param[in]    src_pktio    pktio to which this PMR match
>>>> - *                set is to be applied
>>>> - * @param[in]    dst_cos        CoS to be assigned by this PMR match
>>>> set
>>>> - *
>>>> - * @retval            0 on success
>>>> - * @retval            <0 on failure
>>>> - */
>>>> -int odp_pktio_pmr_match_set_cos(odp_pmr_set_t pmr_set_id, odp_pktio_t
>>>> src_pktio,
>>>> -                odp_cos_t dst_cos);
>>>> +int odp_cls_pmr_match_set_destroy(odp_pmr_set_t pmr_set_id);
>>>>
>>>>   /**
>>>>   * Assigns a packet pool for a specific class of service.
>>>>
>>>
>>
>> --
>> Regards,
>> Ivan Khoronzhuk
>>
>> _______________________________________________
>> lng-odp mailing list
>> [email protected]
>> https://lists.linaro.org/mailman/listinfo/lng-odp
>
>
_______________________________________________
lng-odp mailing list
[email protected]
https://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to