use separate packet number spaces for sending packets

Packet numbers now start at 0 for every packet number spaces.
Furthermore, an ACK frame now only acknowledges packets in the packet
number space it was sent in.
This commit is contained in:
Marten Seemann
2019-02-11 20:12:46 +08:00
parent b35c161f2e
commit f6642ff948
9 changed files with 369 additions and 378 deletions

View File

@@ -805,7 +805,7 @@ func (s *session) destroy(e error) {
// It returns the first packet number that should be used in the new session.
func (s *session) closeForRecreating() protocol.PacketNumber {
s.destroy(errCloseForRecreating)
nextPN, _ := s.sentPacketHandler.PeekPacketNumber()
nextPN, _ := s.sentPacketHandler.PeekPacketNumber(protocol.EncryptionInitial)
return nextPN
}
@@ -1028,7 +1028,7 @@ func (s *session) maybeSendRetransmission() (bool, error) {
break
}
s.logger.Debugf("Dequeueing retransmission for packet 0x%x", retransmitPacket.PacketNumber)
s.logger.Debugf("Dequeueing retransmission for packet 0x%x (%s)", retransmitPacket.PacketNumber, retransmitPacket.EncryptionLevel)
packets, err := s.packer.PackRetransmission(retransmitPacket)
if err != nil {
return false, err