Hi Genis,

The headroom per CoS API had been previously discussed in ODP and I will
post a patch in API-NEXT to include this API for further discussion and
approval.

Regards,
Bala

On 20 July 2015 at 22:53, Genis Riera <gri...@starflownetworks.com> wrote:

> Hi Bala,
>
> Thank you again for your explanations. In the near future I will try to
> use this API's to change my current solution. However, moving to the
> previous point, will the work for defining headroom per CoS go on, or
> doesn't it matter anymore? I continue thinking that it could be a good idea
> to take into account for a future new API's, as you said before.
>
> Regards,
>
> Genís Riera Pérez.
>
> Genís Riera Pérez
> Software Engineer at StarFlow Networks
> Edifici K2M, S103 c/ Jordi Girona 31
> 08034 Barcelona
>
> E-mail: gri...@starflownetworks.com
>
> On Mon, Jul 20, 2015 at 7:03 PM, Bala Manoharan <bala.manoha...@linaro.org
> > wrote:
>
>>
>> Hi Genis,
>>
>> On 20 July 2015 at 22:18, Genis Riera <gri...@starflownetworks.com>
>> wrote:
>>
>>> Hi Bala,
>>>
>>> I've been reflecting about this and I agree with you, seems to make more
>>> sense defining a headroom size per CoS as a generic concept, however my use
>>> case differs from it cause it's simpler. In my use case, so far, I only
>>> need to define the same headroom size for all packet stored in a packet
>>> pool memory. For this reason I proposed to define it at packet pool
>>> creation level. However I have some doubts regarding to use this feature to
>>> solve my use case. I wondered if using the following ODP API's:
>>>
>>>  - uint32_t   uarea_size // packet pool parameter from odp_pool_param_t
>>>  - void *odp_packet_user_area(odp_packet_t pkt);
>>>  - uint32_t odp_packet_user_area_size(odp_packet_t pkt);
>>>
>>> I would be able to store meta-data for each received packet to the
>>> packet pool memory I initialize. When I create a packet pool memory and
>>> define uarea_size, does it mean that each packet received on this pool have
>>> a specific user memory area to store meta-data per-packet? If this is
>>> correct, my use case already is solved, but regardles of it, I'm agree with
>>> you to add a headroom per CoS.
>>>
>>
>> Yes. uarea_size will be the user area associated with every packet
>> allocated from this pool.
>> This region could be used to store meta-data associated with each packet.
>> eg the application might be interested to store a context per packet to
>> hold some packet processing information and this context could be store in
>> this uarea_size ( This uarea_size can hold a pointer if a bigger ctx needs
>> to be stored)
>>
>> Headroom_size will denote the amount of data available before the start
>> of the packet so that if the application wants to add additional header or
>> increase the size of the L2/L3 protocol header then there is no need to
>> copy the entire packet it can simply increase the headroom and modify the
>> L2/L3 protocol header and it will be more performance efficient.
>>
>> Hope this helps
>>
>> Regards,
>> Bala
>>
>>>
>>> Best,
>>>
>>> Genís Riera Pérez.
>>>
>>> Genís Riera Pérez
>>> Software Engineer at StarFlow Networks
>>> Edifici K2M, S103 c/ Jordi Girona 31
>>> 08034 Barcelona
>>>
>>> E-mail: gri...@starflownetworks.com
>>>
>>> On Mon, Jul 20, 2015 at 3:00 PM, Bala Manoharan <
>>> bala.manoha...@linaro.org> wrote:
>>>
>>>> Hi Genis,
>>>>
>>>> I would like you to validate whether the options of adding headroom per
>>>> CoS work for you.
>>>>
>>>> IMO, adding headroom per CoS makes more sense since CoS defines a
>>>> specific flow and the application might be interested to modify headroom
>>>> per flow. Since with your current proposal the same is possible but that
>>>> would mean you need to create different pools per different types of flows.
>>>>
>>>> Regards,
>>>> Bala
>>>>
>>>> On 16 July 2015 at 00:20, Ivan Khoronzhuk <ivan.khoronz...@linaro.org>
>>>> wrote:
>>>>
>>>>> Nicolas,
>>>>>
>>>>> On 15.07.15 20:49, Nicolas Morey Chaisemartin wrote:
>>>>>
>>>>>> You don t need to add the lng-odp part. The mailing list doed it on
>>>>>> its
>>>>>> own when it s not in the title already
>>>>>>
>>>>>
>>>>> You cannot be sure and rely upon it. I'm often add someone else in CC
>>>>> and in this case the letter doesn't pass through the list server.
>>>>> It's good when the letter is seen by everyone with the same subject.
>>>>>
>>>>>
>>>>>
>>>>>>
>>>>>> Envoyé depuis un mobile Samsung.
>>>>>>
>>>>>>
>>>>>> -------- Message d'origine --------
>>>>>> De : Ivan Khoronzhuk
>>>>>> Date :15/07/2015 18:34 (GMT+01:00)
>>>>>> À : Bill Fischofer , Genis Riera
>>>>>> Cc : ODP mailing list
>>>>>> Objet : Re: [lng-odp] [PATCH] api: pool: add headroom init parameter
>>>>>> to
>>>>>> odp_pool_param_t
>>>>>>
>>>>>>
>>>>>>
>>>>>> On 15.07.15 19:20, Bill Fischofer wrote:
>>>>>>  > Any proposed API changes need to be tagged API-NEXT.  Proper patch
>>>>>>  > procedure is the following:
>>>>>>  >
>>>>>>  > git clone http://git.linaro.org/lng/odp.git myodp
>>>>>>  > cd myodp
>>>>>>  > git checkout -b api-next origin/api-next
>>>>>>  > ...Make your changes and commits locally
>>>>>>  > git format-patch origin/api-next --subject-prefix="API-NEXT PATCH"
>>>>>>
>>>>>> --subject-prefix=lng-odp]\ [API-NEXT PATCH
>>>>>> Correct me if I'm wrong
>>>>>>
>>>>>>  > // Make sure your patches are checkpatch clean:
>>>>>>  > ./scripts/checkpatch *.patch
>>>>>>  > git send-email --to=lng-odp@lists.linaro.org
>>>>>>  > <mailto:lng-odp@lists.linaro.org> *.patch
>>>>>>  >
>>>>>>
>>>>>> You can simplify by adding hook to:
>>>>>> .git/hooks/post-commit
>>>>>>
>>>>>> git show --format=email | ./scripts/checkpatch.pl --strict --mailback
>>>>>> --show-types -
>>>>>>
>>>>>> Just to see issues when adding a commit.
>>>>>>
>>>>>>  >
>>>>>>  >
>>>>>>  > On Wed, Jul 15, 2015 at 11:11 AM, Genis Riera
>>>>>>  > <gri...@starflownetworks.com <mailto:gri...@starflownetworks.com>>
>>>>>> wrote:
>>>>>>  >
>>>>>>  >     Ivan,
>>>>>>  >
>>>>>>  >     If you have this compilation issues I can send again the patch
>>>>>>  >     without this check, assuming always positive values. Is it
>>>>>> right for
>>>>>>  >     you?
>>>>>>  >
>>>>>>  >     Genís Riera Pérez
>>>>>>  >     Software Engineer at StarFlow Networks
>>>>>>  >     Edifici K2M, S103 c/ Jordi Girona 31
>>>>>>  >     08034 Barcelona
>>>>>>  >
>>>>>>  >     E-mail: gri...@starflownetworks.com
>>>>>> <mailto:gri...@starflownetworks.com>
>>>>>>  >
>>>>>>  >     On Wed, Jul 15, 2015 at 6:04 PM, Ivan Khoronzhuk
>>>>>>  >     <ivan.khoronz...@linaro.org <mailto:ivan.khoronz...@linaro.org
>>>>>> >>
>>>>>> wrote:
>>>>>>  >
>>>>>>  >         Genis
>>>>>>  >
>>>>>>  >         On 15.07.15 19:00, Genis Riera wrote:
>>>>>>  >
>>>>>>  >             Hi, Ivan,
>>>>>>  >
>>>>>>  >             Not, but I added this check just in case of error when
>>>>>>  >             defines this
>>>>>>  >             parameter (e.g., when misstyping).
>>>>>>  >
>>>>>>  >
>>>>>>  >         Usually I have compilation error/warn when trying to
>>>>>> compare
>>>>>>  >         unsigned int on value < 0.
>>>>>>  >
>>>>>>  >
>>>>>>  >             Best,
>>>>>>  >
>>>>>>  >             Genís Riera Pérez
>>>>>>  >             Software Engineer at StarFlow Networks
>>>>>>  >             Edifici K2M, S103 c/ Jordi Girona 31
>>>>>>  >             08034 Barcelona
>>>>>>  >
>>>>>>  >             E-mail: gri...@starflownetworks.com
>>>>>>  >             <mailto:gri...@starflownetworks.com>
>>>>>>  >             <mailto:gri...@starflownetworks.com
>>>>>>  >             <mailto:gri...@starflownetworks.com>>
>>>>>>  >
>>>>>>  >             On Wed, Jul 15, 2015 at 5:54 PM, Ivan Khoronzhuk
>>>>>>  >             <ivan.khoronz...@linaro.org
>>>>>>  >             <mailto:ivan.khoronz...@linaro.org>
>>>>>>  >             <mailto:ivan.khoronz...@linaro.org
>>>>>>  >             <mailto:ivan.khoronz...@linaro.org>>> wrote:
>>>>>>  >
>>>>>>  >                  Hi, Genis
>>>>>>  >
>>>>>>  >                  On 15.07.15 18:47, Genis Riera wrote:
>>>>>>  >
>>>>>>  >                      A new headroom parameter is added to
>>>>>>  >             odp_pool_param_t when the
>>>>>>  >                      pool is
>>>>>>  >                      type of ODP_POOL_PACKET, so that headroom size
>>>>>> could be
>>>>>>  >                      configured at
>>>>>>  >                      pool initialization time (ODP application
>>>>>> runtime).
>>>>>>  >
>>>>>>  >                      Signed-off-by: Genis Riera Perez
>>>>>>  >             <gri...@starflownetworks.com
>>>>>>  >             <mailto:gri...@starflownetworks.com>
>>>>>>  >                      <mailto:gri...@starflownetworks.com
>>>>>>  >             <mailto:gri...@starflownetworks.com>>
>>>>>>  >                      <mailto:gri...@starflownetworks.com
>>>>>>  >             <mailto:gri...@starflownetworks.com>
>>>>>>  >
>>>>>>  >                      <mailto:gri...@starflownetworks.com
>>>>>>  >             <mailto:gri...@starflownetworks.com>>>>
>>>>>>  >
>>>>>>  >                      --
>>>>>>  >                         include/odp/api/pool.h            |  5
>>>>>> +++++
>>>>>>  >                         platform/linux-generic/odp_pool.c | 10
>>>>>> +++++++++-
>>>>>>  >                         2 files changed, 14 insertions(+), 1
>>>>>> deletion(-)
>>>>>>  >
>>>>>>  >                      diff --git a/include/odp/api/pool.h
>>>>>>  >             b/include/odp/api/pool.h
>>>>>>  >                      index e5061ab..913f510 100644
>>>>>>  >                      --- a/include/odp/api/pool.h
>>>>>>  >                      +++ b/include/odp/api/pool.h
>>>>>>  >                      @@ -82,6 +82,11 @@ typedef struct
>>>>>> odp_pool_param_t {
>>>>>>  >                                                /** User area size
>>>>>> in
>>>>>>  >             bytes. Specify
>>>>>>  >                      as 0 if no
>>>>>>  >                      user
>>>>>>  >                                                    area is needed.
>>>>>> */
>>>>>>  >                                                uint32_t uarea_size;
>>>>>>  >                      +
>>>>>>  >                      +                       /** Packet headroom
>>>>>> size in
>>>>>>  >             bytes. The
>>>>>>  >                      maximum
>>>>>>  >                      and the
>>>>>>  >                      +                           default value is
>>>>>> defined by
>>>>>>  >                      ODP_CONFIG_PACKET_HEADROOM.
>>>>>>  >                      +                           Use 0 for
>>>>>> default. */
>>>>>>  >                      +                       uint32_t headroom;
>>>>>>  >                                        } pkt;
>>>>>>  >                                        struct {
>>>>>>  >                                                /** Number of
>>>>>> timeouts in
>>>>>>  >             the pool */
>>>>>>  >                      diff --git a/platform/linux-generic/odp_pool.c
>>>>>>  >                      b/platform/linux-generic/odp_pool.c
>>>>>>  >                      index dcbdf07..9359e53 100644
>>>>>>  >                      --- a/platform/linux-generic/odp_pool.c
>>>>>>  >                      +++ b/platform/linux-generic/odp_pool.c
>>>>>>  >                      @@ -201,7 +201,15 @@ odp_pool_t
>>>>>>  >             odp_pool_create(const char *name,
>>>>>>  >                                case ODP_POOL_PACKET:
>>>>>>  >                                        unseg = 0; /* Packets are
>>>>>> always
>>>>>>  >             segmented */
>>>>>>  >                      -               headroom =
>>>>>> ODP_CONFIG_PACKET_HEADROOM;
>>>>>>  >                      +
>>>>>>  >                      +               /* If headroom is not
>>>>>> specified by
>>>>>>  >             params,
>>>>>>  >                      +                  set it to the default */
>>>>>>  >                      +               if (params->pkt.headroom <= 0
>>>>>> ||
>>>>>>  >                      +                   params->pkt.headroom >
>>>>>>  >                      ODP_CONFIG_PACKET_HEADROOM)
>>>>>>  >
>>>>>>  >
>>>>>>  >                  Can headroom be < 0?
>>>>>>  >
>>>>>>  >                      +                       headroom =
>>>>>>  >             ODP_CONFIG_PACKET_HEADROOM;
>>>>>>  >                      +               else
>>>>>>  >                      +                       headroom =
>>>>>>  >             params->pkt.headroom;
>>>>>>  >                      +
>>>>>>  >                                        tailroom =
>>>>>>  >             ODP_CONFIG_PACKET_TAILROOM;
>>>>>>  >                                        buf_num = params->pkt.num;
>>>>>>  >
>>>>>>  >
>>>>>>  >                      Genís Riera Pérez
>>>>>>  >                      Software Engineer at StarFlow Networks
>>>>>>  >                      Edifici K2M, S103 c/ Jordi Girona 31
>>>>>>  >                      08034 Barcelona
>>>>>>  >
>>>>>>  >                      E-mail: gri...@starflownetworks.com
>>>>>>  >             <mailto:gri...@starflownetworks.com>
>>>>>>  >                      <mailto:gri...@starflownetworks.com
>>>>>>  >             <mailto:gri...@starflownetworks.com>>
>>>>>>  >                      <mailto:gri...@starflownetworks.com
>>>>>>  >             <mailto:gri...@starflownetworks.com>
>>>>>>  >                      <mailto:gri...@starflownetworks.com
>>>>>>  >             <mailto:gri...@starflownetworks.com>>>
>>>>>>  >
>>>>>>  >
>>>>>>  >
>>>>>> _______________________________________________
>>>>>>  >                      lng-odp mailing list
>>>>>>  >             lng-odp@lists.linaro.org <mailto:
>>>>>> lng-odp@lists.linaro.org>
>>>>>>  >             <mailto:lng-odp@lists.linaro.org
>>>>>>  >             <mailto:lng-odp@lists.linaro.org>>
>>>>>>  >             https://lists.linaro.org/mailman/listinfo/lng-odp
>>>>>>  >
>>>>>>  >
>>>>>>  >
>>>>>>  >
>>>>>>  >     _______________________________________________
>>>>>>  >     lng-odp mailing list
>>>>>>  >     lng-odp@lists.linaro.org <mailto:lng-odp@lists.linaro.org>
>>>>>>  >     https://lists.linaro.org/mailman/listinfo/lng-odp
>>>>>>  >
>>>>>>  >
>>>>>> _______________________________________________
>>>>>> lng-odp mailing list
>>>>>> lng-odp@lists.linaro.org
>>>>>> https://lists.linaro.org/mailman/listinfo/lng-odp
>>>>>>
>>>>> _______________________________________________
>>>>> lng-odp mailing list
>>>>> lng-odp@lists.linaro.org
>>>>> https://lists.linaro.org/mailman/listinfo/lng-odp
>>>>>
>>>>
>>>>
>>>
>>
>
_______________________________________________
lng-odp mailing list
lng-odp@lists.linaro.org
https://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to