code: func (p *PrrSender) CanSend(congestionWindow, bytesInFlight, slowstartThreshold protocol.ByteCount) bool {
  	// Return QuicTime::Zero In order to ensure limited transmit always works.
  	if p.bytesSentSinceLoss == 0 || bytesInFlight < protocol.DefaultTCPMSS {
  		return true
  	}
  	if congestionWindow > bytesInFlight {
  		// During PRR-SSRB, limit outgoing packets to 1 extra MSS per ack, instead
  		// of sending the entire available window. This prevents burst retransmits
  		// when more packets are lost than the CWND reduction.
  		//   limit = MAX(prr_delivered - prr_out, DeliveredData) + MSS
  		return p.bytesDeliveredSinceLoss+p.ackCountSinceLoss*protocol.DefaultTCPMSS > p.bytesSentSinceLoss
  	}
  	// Implement Proportional Rate Reduction (RFC6937).
  	// Checks a simplified version of the PRR formula that doesn't use division:
  	// AvailableSendWindow =
  	//   CEIL(prr_delivered * ssthresh / BytesInFlightAtLoss) - prr_sent
  	return p.bytesDeliveredSinceLoss*slowstartThreshold > p.bytesSentSinceLoss*p.bytesInFlightBeforeLoss
  }
docs: // CanSend returns if packets can be sent