This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Understanding QMSS Queue initialisation



Hi

I am using PDK_Keystone2_1_00_00_11.  I have assigned 4096 descriptors to a memory region and called Qmss_insertMemoryRegion() for that region. I then initialise the descriptors  push the descriptors to a global free queue by calling Cppi_initDescriptor().

However, when I try to pop a descriptor from the free queue I find that the buffer descriptor is incorrect; it is outside the memory region that I specified.

I tried stepping into Cppi_initDescriptor() to understand what was happening.  The code there includes these lines:

/* Find the source queue given the memory region */

if ((srcQueNum = Qmss_getMemRegQueueHandle(descCfg->memRegion)) < 0)

{

return CPPI_QMSS_MEMREGION_NOT_INITIALIZED;

}

I find that this source queue only contains 1 descriptor, not 4096.

Please explain where this 'source queue' is associated with a memory region.

Please also suggest why that queue has only 1, not 4096, descriptors on it.

BR

David

   

if ((queue = Cppi_initDescriptor