This is great.
On which version it will be released? 1.16? or later?

Liron

-----Original Message-----
From: Savolainen, Petri (Nokia - FI/Espoo) [mailto:petri.savolai...@nokia.com] 
Sent: Friday, November 10, 2017 13:19
To: Liron Himi <lir...@marvell.com>; Bala Manoharan <bala.manoha...@linaro.org>
Cc: lng-odp@lists.linaro.org
Subject: RE: [EXT] Re: [lng-odp] classifier with pktio in ODP_PKTIN_MODE_QUEUE

To mix things, api-next introduces queue hashing *within* a CoS. But also there 
you use odp_cls_cos_queues() to get the implementation created queue handles, 
not odp_pktin_event_queue().

-Petri


> -----Original Message-----
> From: Savolainen, Petri (Nokia - FI/Espoo)
> Sent: Friday, November 10, 2017 1:13 PM
> To: 'Liron Himi' <lir...@marvell.com>; Bala Manoharan 
> <bala.manoha...@linaro.org>
> Cc: lng-odp@lists.linaro.org
> Subject: RE: [EXT] Re: [lng-odp] classifier with pktio in 
> ODP_PKTIN_MODE_QUEUE
> 
> odp_pktin_event_queue() is *not* used when classifier is enabled.
> 
> odp_queue_deq(q)
>   1) if q has events, return an event
>   2) if q does not have events, poll packet input
>      * packet input poll finds a packet
>      * classify the packet
>      * enqueue the packet into an event queue
>      * some later odp_queue_deq() call will find the packet from the 
> queue (not necessary q, but the destination queue of the CoS)
> 
> -Petri
> 
> 
> > -----Original Message-----
> > From: Liron Himi [mailto:lir...@marvell.com]
> > Sent: Friday, November 10, 2017 12:23 PM
> > To: Bala Manoharan <bala.manoha...@linaro.org>; Savolainen, Petri 
> > (Nokia
> -
> > FI/Espoo) <petri.savolai...@nokia.com>
> > Cc: lng-odp@lists.linaro.org; Liron Himi <lir...@marvell.com>
> > Subject: RE: [EXT] Re: [lng-odp] classifier with pktio in 
> > ODP_PKTIN_MODE_QUEUE
> >
> > Hi,
> >
> > I understand what you are saying, but I don't understand (probably I
> miss
> > something here) how classifier is working in PKTIO in a 
> > ODP_PKTIN_MODE_QUEUE mode.
> > Application create its own queues, associate them to the cos and 
> > connect them to the classifier.
> > In order to receive packets, application will call ' odp_queue_deq()'.
> But
> > how the packets will be enqueued to this queue?
> > Who will call ' odp_pktin_recv' to receive the packets, as in the
> schedule
> > mode case?
> >
> > Consider the following scenario and let me know if it is acceptable:
> > Application wants to configure classifier but doesn't want to use 
> > the
> odp-
> > schedule. So,
> > - PKTIO is configure with ' ODP_PKTIN_MODE_QUEUE' mode and 
> > classifier enable.
> > - application will call ' odp_pktin_event_queue' to get all pktio's
> event
> > queues.
> > - application will associate those queues in the desired cos and
> configure
> > the classifier with them.
> > - application will call ' odp_queue_deq()' and as a result the '
> > odp_pktin_recv' will be triggered (as it is a PKTIO's event queue).
> >     Implementation should not set the 'dst_queue' in this mode and as a 
> > result the packet will be return to originated queue.
> >
> > Liron
> >
> > -----Original Message-----
> > From: Bala Manoharan [mailto:bala.manoha...@linaro.org]
> > Sent: Friday, November 10, 2017 11:27
> > To: Liron Himi <lir...@marvell.com>
> > Cc: lng-odp@lists.linaro.org
> > Subject: Re: [EXT] Re: [lng-odp] classifier with pktio in 
> > ODP_PKTIN_MODE_QUEUE
> >
> > Comments inline...
> >
> > On 10 November 2017 at 12:01, Liron Himi <lir...@marvell.com> wrote:
> > > Hi Bala,
> > >
> > > According to the documentation, classifier can be operate with
> > PKTIN_QUEUE_MODE.
> > >         /** Enable classifier
> > >           *
> > >           * * 0: Classifier is disabled (default)
> > >           * * 1: Classifier is enabled. Use classifier to direct
> > incoming
> > >           *      packets into pktin event queues. Classifier can be
> > enabled
> > >           *      only in ODP_PKTIN_MODE_SCHED and ODP_PKTIN_MODE_QUEUE
> > modes.
> > >           *      Both classifier and hashing cannot be enabled
> > simultaneously
> > >           *      ('hash_enable' must be 0). */
> > >         odp_bool_t classifier_enable;
> > >
> > > So, Is there a mistake in the documentation or this combination 
> > > should
> > be supported?
> >
> > odp_pktin_event_queue() can only be used when hashing is enabled 
> > since when you connect more than one queue to pktio you need some 
> > mechanism to spread the traffic. This configuration is given using 
> > odp_pktin_hash_proto_t which is valid only when hashing is enabled.
> >
> > Since classifier and hashing are orthogonal you cannot use
> classification
> > and get packets using event queues configured using 
> > odp_pktin_event_queue().
> > Packets delivered after classification can be received by 
> > application either using odp_queue_deq() or odp_schedule() function 
> > depending upon
> the
> > dst_queue configured with CoS.
> >
> > Regards,
> > Bala
> >
> > >
> > > Liron
> > >
> > > -----Original Message-----
> > > From: Bala Manoharan [mailto:bala.manoha...@linaro.org]
> > > Sent: Friday, November 10, 2017 07:18
> > > To: Liron Himi <lir...@marvell.com>
> > > Cc: lng-odp@lists.linaro.org
> > > Subject: [EXT] Re: [lng-odp] classifier with pktio in 
> > > ODP_PKTIN_MODE_QUEUE
> > >
> > > External Email
> > >
> > > ------------------------------------------------------------------
> > > ----
> > > Hi,
> > >
> > > Both these modes cannot co-exist.
> > >
> > > There is a parameter 'classifier_enable' and 'hash_enable' as part 
> > > of
> > odp_pktin_queue_param_t which is used to identify whether classifier 
> > or hashing is enabled for a particular pktio interface.
> > > Both classifier and hash configuration are orthogonal and only one 
> > > of
> > the two can be enabled at any time. When you configure 
> > classification on the pktio interface then the packets will be 
> > routed only through classifier 'dst_queue' and not through event 
> > queues configured with the pktio interface and vice versa for 'hash_enable'.
> > >
> > > odp_pktin_event_queue() API is useful only for platforms which do 
> > > not
> > support classifier system. This is mainly targetted for HWs which 
> > only have RSS configured on the pktio and does not support 
> > flow-based classification. The same is documented in 
> > odp_pktin_queue_param_t structure pls check the documentation and 
> > let us know if you find any discrepancy.
> > >
> > > Hope this clarifies,
> > > Bala
> > >
> > >
> > > On 9 November 2017 at 23:04, Liron Himi <lir...@marvell.com> wrote:
> > >> Hi,
> > >>
> > >> I'm trying to understand how odp-classifier can work with PKTIO 
> > >> in
> > ODP_PKTIN_MODE_QUEUE mode, as this combination is allow in the API.
> > >> When configuring PKTIO in ODP_PKTIN_MODE_QUEUE then application
> should
> > call 'odp_pktin_event_queue' to retrieve the odp-queues.
> > >> When application create a cos, to be used for classification, 
> > >> does it
> > needs to create new odp-queue or used the pktio's ones?
> > >> When application wants to receive packets from this PKTIO, it 
> > >> needs
> to
> > call 'odp_queue_deq_multi' on one of the PKTIO's queues,right?
> > >> As a result of a received packet, the matched cos is being 
> > >> selected
> and
> > it's queue is being set as the dst_queue of the packet.
> > >> Then the 'pktin_recv_buf' function will enqueuer this packet to 
> > >> the
> > 'dst_queue' if it was set.
> > >> So finally the packet will be located at the cos's queue and not 
> > >> at the PKTIO's queue and the application will get zero packets 
> > >> from
> > 'odp_queue_deq_multi'.
> > >> So, either this mode isn't supported with classifier or if this 
> > >> mode
> is
> > set then the 'dst_queue' shouldn't be set and the packets will be
> located
> > at the PKTIO's queue.
> > >>
> > >> Regards,
> > >> Liron
> > >>

Reply via email to