Per your example, what shall be the fate of a pocket that matches PMR1 but
doesn't NOT match PMR2 ?
Where should those packets go ? What priority should they be given ?
That is why there is a CoS assigned to every packet at every stage in the
classifier - so that it has where to go if it fails to match all of the rules
that were applied to it.
You could picture every PMR as a decision diamond in a flow chart, and every
arrow for both outcomes of a decision is a CoS, where the value is unchanged
when a decision is "no match".
{ Leo }
On Oct 24, 2014, at 2:07 AM, Radu-Andrei Bulie
<[email protected]<mailto:[email protected]>> wrote:
Hi,
I have some questions regarding the classifier API.
When creating cascading pmrs, cos parameter is specified - see odp_cos_pmr_cos
A cos is basically (as stated in the classifier doc) a target for packets.
One of the elements attached to the cos is the frame queue (or a group of frame
queues).
When linking a pmr by other pmr the odp_cos_pmr_cos function is used.
In this case, packets that match let's say pmr1 will go to cos1 then to pmr2
and if there is a match
they will go to cos2. (pmr1 -->cos1 -->pmr2->cos2)
Why do we need the cos in this situation? Do we make an enqueue to cos1 then
from this enqueue we go to pmr2?(I think that classification should be done
directly without the scheduler intervention)
Or the cos is seen just as a logical element to link pmr1 with pmr2? In this
case what is the sense of the cos' frame queue if it is not used? Why not
link the pmrs directly without any cos?
If there is a cascading chain (consider the above one as a snippet in a longer
chain) what happens if the packets arrive to pmr2 but there is no match with
it.? They will be dropped?
Regards,
Radu
_______________________________________________
lng-odp mailing list
[email protected]
http://lists.linaro.org/mailman/listinfo/lng-odp