| Index: net/quic/quic_packet_creator.cc
|
| diff --git a/net/quic/quic_packet_creator.cc b/net/quic/quic_packet_creator.cc
|
| index 419404e4b5ca86a65e6a0a33dc1508ed3a668f83..b39965029134ee14cf06f586c55a8a8bc675c91b 100644
|
| --- a/net/quic/quic_packet_creator.cc
|
| +++ b/net/quic/quic_packet_creator.cc
|
| @@ -89,7 +89,9 @@ bool QuicPacketCreator::ShouldSendFec(bool force_close) const {
|
| }
|
|
|
| void QuicPacketCreator::MaybeStartFEC() {
|
| - if (options_.max_packets_per_fec_group > 0 && fec_group_.get() == NULL) {
|
| + // Don't send FEC until QUIC_VERSION_15.
|
| + if (framer_->version() > QUIC_VERSION_14 &&
|
| + options_.max_packets_per_fec_group > 0 && fec_group_.get() == NULL) {
|
| DCHECK(queued_frames_.empty());
|
| // Set the fec group number to the sequence number of the next packet.
|
| fec_group_number_ = sequence_number() + 1;
|
| @@ -315,7 +317,7 @@ SerializedPacket QuicPacketCreator::SerializePacket() {
|
| LOG(DFATAL) << "Attempt to serialize empty packet";
|
| }
|
| QuicPacketHeader header;
|
| - FillPacketHeader(fec_group_number_, false, false, &header);
|
| + FillPacketHeader(fec_group_number_, false, &header);
|
|
|
| MaybeAddPadding();
|
|
|
| @@ -351,8 +353,7 @@ SerializedPacket QuicPacketCreator::SerializeFec() {
|
| DCHECK_LT(0u, fec_group_->NumReceivedPackets());
|
| DCHECK_EQ(0u, queued_frames_.size());
|
| QuicPacketHeader header;
|
| - FillPacketHeader(fec_group_number_, true,
|
| - fec_group_->entropy_parity(), &header);
|
| + FillPacketHeader(fec_group_number_, true, &header);
|
| QuicFecData fec_data;
|
| fec_data.fec_group = fec_group_->min_protected_packet();
|
| fec_data.redundancy = fec_group_->payload_parity();
|
| @@ -392,7 +393,6 @@ QuicEncryptedPacket* QuicPacketCreator::SerializeVersionNegotiationPacket(
|
|
|
| void QuicPacketCreator::FillPacketHeader(QuicFecGroupNumber fec_group,
|
| bool fec_flag,
|
| - bool fec_entropy_flag,
|
| QuicPacketHeader* header) {
|
| header->public_header.guid = guid_;
|
| header->public_header.reset_flag = false;
|
| @@ -400,16 +400,7 @@ void QuicPacketCreator::FillPacketHeader(QuicFecGroupNumber fec_group,
|
| header->fec_flag = fec_flag;
|
| header->packet_sequence_number = ++sequence_number_;
|
| header->public_header.sequence_number_length = sequence_number_length_;
|
| -
|
| - bool entropy_flag;
|
| - if (fec_flag) {
|
| - // FEC packets don't have an entropy of their own. Entropy flag for FEC
|
| - // packets is the XOR of entropy of previous packets.
|
| - entropy_flag = fec_entropy_flag;
|
| - } else {
|
| - entropy_flag = random_bool_source_->RandBool();
|
| - }
|
| - header->entropy_flag = entropy_flag;
|
| + header->entropy_flag = random_bool_source_->RandBool();
|
| header->is_in_fec_group = fec_group == 0 ? NOT_IN_FEC_GROUP : IN_FEC_GROUP;
|
| header->fec_group = fec_group;
|
| }
|
|
|