bobzhuyb / ns3-rdma

NS3 simulator for RDMA over Converged Ethernet v2 (RoCEv2), including the implementation of DCQCN, TIMELY, PFC, ECN and shared buffer switch
GNU General Public License v2.0
246 stars 116 forks source link

Questions about some member variables of the BroadcomNode class #44

Open YuTao-Zhangyy opened 4 days ago

YuTao-Zhangyy commented 4 days ago

Greetings to the esteemed author:

Recently I've been carefully analyzing your project ns3-rdma-master code, and I found some member variables in BroadcomNode hard to understand. In order to better sort out the key steps of the DCQCN protocol, could you please help me explain the meaning of the following variables?

for example,m_usedIngressPGBytes[pCnt][qCnt]、m_usedIngressPortBytes[pCnt]、m_usedIngressSPBytes[4]、m_usedIngressPGHeadroomBytes[pCnt][qCnt]、m_usedEgressQMinBytes[pCnt][qCnt]、m_usedEgressQSharedBytes[pCnt][qCnt]、m_usedEgressPortBytes[pCnt]、m_usedEgressSPBytes[4].

In fact, I don't understand the meaning of the fields PGBytes, SPBytes, PGHeadroomBytes, QMinBytes, QSharedBytes. If you can help me with these queries, perhaps I can deduce the meaning of the other variables on my own.

I wish you all the best.

bobzhuyb commented 4 days ago

These are related to Broadcom switches' internal buffer management. PG stands for priority group (I think), SP means service pool, Q is short for queue. You have to understand the Broadcom buffer management first to really understand what they mean. I cannot share those Broadcom documents... If you have some kind of support from Broadcom, you can ask them for Trident or Tomahawk's buffer management documents.

YuTao-Zhangyy commented 4 days ago

Thank you very much for your prompt reply, I will try to search for some materials to help with learning. Thank you again.