Compare commits
3 Commits
69b7b5c4c2
...
c3a2ca80c1
Author | SHA1 | Date |
---|---|---|
cyp0633 | c3a2ca80c1 | |
cyp0633 | d55479fc2f | |
cyp0633 | f7b62f2725 |
|
@ -44,13 +44,13 @@ PINT_PROB 1.0
|
|||
SWIFT_AI 1000
|
||||
SWIFT_BETA 0.8
|
||||
SWIFT_MAX_MDF 0.5
|
||||
SWIFT_BASE_TARGET 60000
|
||||
SWIFT_HOP_SCALE 30000
|
||||
SWIFT_BASE_TARGET 4500
|
||||
SWIFT_HOP_SCALE 1000
|
||||
SWIFT_FS_MAX_CWND 0.1
|
||||
SWIFT_FS_MIN_CWND 0.000300
|
||||
SWIFT_FS_RANGE 0.000300
|
||||
SWIFT_MIN_CWND 0.001
|
||||
SWIFT_MAX_CWND 800000
|
||||
SWIFT_MAX_CWND 20000
|
||||
SWIFT_TARGET_ENDPOINT_DELAY 1000000
|
||||
|
||||
ACK_HIGH_PRIO 0
|
||||
|
|
|
@ -44,13 +44,13 @@ PINT_PROB 1.0
|
|||
SWIFT_AI 1000
|
||||
SWIFT_BETA 0.8
|
||||
SWIFT_MAX_MDF 0.5
|
||||
SWIFT_BASE_TARGET 60000
|
||||
SWIFT_HOP_SCALE 30000
|
||||
SWIFT_BASE_TARGET 6000
|
||||
SWIFT_HOP_SCALE 1000
|
||||
SWIFT_FS_MAX_CWND 0.1
|
||||
SWIFT_FS_MIN_CWND 0.000300
|
||||
SWIFT_FS_RANGE 0.000300
|
||||
SWIFT_MIN_CWND 0.001
|
||||
SWIFT_MAX_CWND 800000
|
||||
SWIFT_MAX_CWND 20000
|
||||
SWIFT_TARGET_ENDPOINT_DELAY 1000000
|
||||
|
||||
ACK_HIGH_PRIO 0
|
||||
|
|
|
@ -2047,21 +2047,23 @@ RdmaHw::HandleAckSwift(Ptr<RdmaQueuePair> qp, Ptr<Packet> p, CustomHeader& ch)
|
|||
{
|
||||
qp->swift.m_pacing_delay = rtt * 1.0 / cwnd;
|
||||
qp->SetWin(INT_MAX); // to make sure sending is only pacing-bound, but not window-bound
|
||||
qp->swift.m_real_win = cwnd;
|
||||
qp->UpdatePacing();
|
||||
}
|
||||
else
|
||||
{
|
||||
qp->swift.m_pacing_delay = 0;
|
||||
qp->SetWin((uint32_t)cwnd);
|
||||
qp->swift.m_real_win = cwnd;
|
||||
}
|
||||
std::cout << "[SWIFT] cwnd: " << cwnd << std::endl;
|
||||
std::cout << "[SWIFT] cwnd: " << cwnd << ", delay: " << fabric_delay << std::endl;
|
||||
}
|
||||
|
||||
// calculate target fabric delay
|
||||
uint64_t
|
||||
RdmaHw::TargetFabDelaySwift(Ptr<RdmaQueuePair> qp, Ptr<Packet> p, CustomHeader& ch) const
|
||||
{
|
||||
double fcwnd = 0.0;
|
||||
double fcwnd = qp->swift.m_real_win;
|
||||
auto num_hops = ch.ack.ih.swift.nhop;
|
||||
auto alpha =
|
||||
swift_fs_range / (std::pow(swift_fs_min_cwnd, -0.5) - std::pow(swift_fs_max_cwnd, -0.5));
|
||||
|
@ -2080,7 +2082,7 @@ RdmaHw::GetCwndSwift(Ptr<RdmaQueuePair> qp,
|
|||
uint64_t curr_delay) const
|
||||
{
|
||||
bool canDecrease = ch.ack.ih.swift.ts > qp->swift.m_t_last_decrease.GetNanoSeconds();
|
||||
double cwnd = qp->m_win;
|
||||
double cwnd = qp->swift.m_real_win;
|
||||
if (curr_delay < target_delay)
|
||||
{
|
||||
if (cwnd >= 1)
|
||||
|
|
|
@ -85,6 +85,7 @@ RdmaQueuePair::RdmaQueuePair(uint16_t pg,
|
|||
swift.m_curRate = 0;
|
||||
swift.m_retransmit_cnt = 0;
|
||||
swift.m_pacing_delay = 0;
|
||||
swift.m_real_win = 0;
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -141,7 +141,10 @@ class RdmaQueuePair : public Object
|
|||
Time m_t_last_decrease;
|
||||
// pacing delay, i.e. sending interval
|
||||
uint64_t m_pacing_delay;
|
||||
// num of acked packets
|
||||
// real window size
|
||||
//
|
||||
// swift sets window size to INT_MAX to avoid packet capping during pacing (win<1)
|
||||
double m_real_win;
|
||||
} swift;
|
||||
|
||||
/***********
|
||||
|
|
Loading…
Reference in New Issue