more enum instead of magic number

This commit is contained in:
cyp0633 2024-03-23 10:09:52 +08:00
parent 2a508e674a
commit b64d291c61
Signed by: cyp0633
GPG Key ID: CF90D09FB1FDCE45
6 changed files with 30 additions and 31 deletions

1
.gitignore vendored
View File

@ -37,3 +37,4 @@ __pycache__/
.waf*
compile_commands.json
.cache/
.vscode/

View File

@ -43,7 +43,7 @@ using namespace std;
NS_LOG_COMPONENT_DEFINE("GENERIC_SIMULATION");
uint32_t cc_mode = 1;
uint32_t cc_mode = CC_MODE::POWERTCP;
bool enable_qcn = true;
uint32_t packet_payload_size = 1000, l2_chunk_size = 0, l2_ack_interval = 0;
double pause_time = 5, simulator_stop_time = 3.01;
@ -966,15 +966,15 @@ main(int argc, char* argv[])
// set int_multi
IntHop::multi = int_multi;
// IntHeader::mode
if (cc_mode == 7 || cc_mode == 11)
if (cc_mode == CC_MODE::TIMELY || cc_mode == CC_MODE::PATCHED_TIMELY)
{ // timely or patched timely, use ts
IntHeader::mode = IntHeader::TS;
}
else if (cc_mode == 3)
else if (cc_mode == CC_MODE::POWERTCP)
{ // hpcc, powertcp, use int
IntHeader::mode = IntHeader::NORMAL;
}
else if (cc_mode == 10)
else if (cc_mode == CC_MODE::HPCC_PINT)
{ // hpcc-pint
IntHeader::mode = IntHeader::PINT;
}
@ -984,7 +984,7 @@ main(int argc, char* argv[])
}
// Set Pint
if (cc_mode == 10)
if (cc_mode == CC_MODE::HPCC_PINT)
{
Pint::set_log_base(pint_log_base);
IntHeader::pint_bytes = Pint::get_n_bytes();

View File

@ -950,15 +950,15 @@ main(int argc, char* argv[])
// set int_multi
IntHop::multi = int_multi;
// IntHeader::mode
if (cc_mode == 7 || cc_mode == 11)
{ // timely or patched, use ts
if (cc_mode == CC_MODE::TIMELY || cc_mode == CC_MODE::PATCHED_TIMELY)
{ // timely or patched timely, use ts
IntHeader::mode = IntHeader::TS;
}
else if (cc_mode == 3)
else if (cc_mode == CC_MODE::POWERTCP)
{ // hpcc, powertcp, use int
IntHeader::mode = IntHeader::NORMAL;
}
else if (cc_mode == 10)
else if (cc_mode == CC_MODE::HPCC_PINT)
{ // hpcc-pint
IntHeader::mode = IntHeader::PINT;
}
@ -968,7 +968,7 @@ main(int argc, char* argv[])
}
// Set Pint
if (cc_mode == 10)
if (cc_mode == CC_MODE::HPCC_PINT)
{
Pint::set_log_base(pint_log_base);
IntHeader::pint_bytes = Pint::get_n_bytes();

View File

@ -1210,15 +1210,15 @@ main(int argc, char* argv[])
// set int_multi
IntHop::multi = int_multi;
// IntHeader::mode
if (cc_mode == 7 || cc_mode == 11)
{ // timely or patched, use ts
if (cc_mode == CC_MODE::TIMELY || cc_mode == CC_MODE::PATCHED_TIMELY)
{ // timely or patched timely, use ts
IntHeader::mode = IntHeader::TS;
}
else if (cc_mode == 3)
else if (cc_mode == CC_MODE::POWERTCP)
{ // hpcc, powertcp, use int
IntHeader::mode = IntHeader::NORMAL;
}
else if (cc_mode == 10)
else if (cc_mode == CC_MODE::HPCC_PINT)
{ // hpcc-pint
IntHeader::mode = IntHeader::PINT;
}
@ -1228,7 +1228,7 @@ main(int argc, char* argv[])
}
// Set Pint
if (cc_mode == 10)
if (cc_mode == CC_MODE::HPCC_PINT)
{
Pint::set_log_base(pint_log_base);
IntHeader::pint_bytes = Pint::get_n_bytes();

View File

@ -323,11 +323,11 @@ RdmaHw::AddQueuePair(uint64_t size,
}
qp->m_rate = m_bps;
qp->m_max_rate = m_bps;
if (m_cc_mode == 1)
if (m_cc_mode == CC_MODE::MLX_CNP)
{
qp->mlx.m_targetRate = m_bps;
}
else if (m_cc_mode == 3)
else if (m_cc_mode == CC_MODE::HPCC)
{
qp->hp.m_curRate = m_bps;
if (m_multipleRate)
@ -338,11 +338,11 @@ RdmaHw::AddQueuePair(uint64_t size,
}
}
}
else if (m_cc_mode == 7 || m_cc_mode == 11)
else if (m_cc_mode == CC_MODE::TIMELY || m_cc_mode == CC_MODE::PATCHED_TIMELY)
{
qp->tmly.m_curRate = m_bps;
}
else if (m_cc_mode == 10)
else if (m_cc_mode == CC_MODE::HPCC_PINT)
{
qp->hpccPint.m_curRate = m_bps;
}
@ -497,11 +497,11 @@ RdmaHw::ReceiveCnp(Ptr<Packet> p, CustomHeader& ch)
if (qp->m_rate == 0) // lazy initialization
{
qp->m_rate = dev->GetDataRate();
if (m_cc_mode == 1)
if (m_cc_mode == CC_MODE::MLX_CNP)
{
qp->mlx.m_targetRate = dev->GetDataRate();
}
else if (m_cc_mode == 3)
else if (m_cc_mode == CC_MODE::HPCC)
{
qp->hp.m_curRate = dev->GetDataRate();
if (m_multipleRate)
@ -512,11 +512,11 @@ RdmaHw::ReceiveCnp(Ptr<Packet> p, CustomHeader& ch)
}
}
}
else if (m_cc_mode == 7 || m_cc_mode == 11)
else if (m_cc_mode == CC_MODE::TIMELY || m_cc_mode == CC_MODE::PATCHED_TIMELY)
{
qp->tmly.m_curRate = dev->GetDataRate();
}
else if (m_cc_mode == 10)
else if (m_cc_mode == CC_MODE::HPCC_PINT)
{
qp->hpccPint.m_curRate = dev->GetDataRate();
}
@ -571,7 +571,7 @@ RdmaHw::ReceiveAck(Ptr<Packet> p, CustomHeader& ch)
// handle cnp
if (cnp)
{
if (m_cc_mode == 1)
if (m_cc_mode == CC_MODE::MLX_CNP)
{ // mlx version
cnp_received_mlx(qp);
}
@ -595,6 +595,8 @@ RdmaHw::ReceiveAck(Ptr<Packet> p, CustomHeader& ch)
case CC_MODE::PATCHED_TIMELY:
HandleAckPatchedTimely(qp, p, ch);
break;
default:
break;
}
// ACK may advance the on-the-fly window, allowing more packets to send
dev->TriggerTransmit();
@ -702,7 +704,7 @@ void
RdmaHw::QpComplete(Ptr<RdmaQueuePair> qp)
{
NS_ASSERT(!m_qpCompleteCallback.IsNull());
if (m_cc_mode == 1)
if (m_cc_mode == CC_MODE::MLX_CNP)
{
Simulator::Cancel(qp->mlx.m_eventUpdateAlpha);
Simulator::Cancel(qp->mlx.m_eventDecreaseRate);

View File

@ -41,8 +41,6 @@ class RdmaHw : public Object
Ptr<Node> m_node;
DataRate m_minRate; //< Min sending rate
uint32_t m_mtu;
// 1 for Mellanox CNP, 3 for HPCC/PowerTCP/Theta-PowerTCP, 7 for TIMELY, 8 for DCTCP,
// 10 for HPCC-PINT, 11 for Patched TIMELY
uint32_t m_cc_mode;
double m_nack_interval;
uint32_t m_chunk;
@ -206,10 +204,8 @@ class RdmaHw : public Object
void UpdateRateHpPint(Ptr<RdmaQueuePair> qp, Ptr<Packet> p, CustomHeader& ch, bool fast_react);
};
// 1 for Mellanox CNP, 3 for HPCC/PowerTCP/Theta-PowerTCP, 7 for TIMELY, 8 for DCTCP,
// 10 for HPCC-PINT, 11 for Patched TIMELY
enum CC_MODE {
enum CC_MODE
{
MLX_CNP = 1,
HPCC = 3,
POWERTCP = 3,