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 > > >>