diff --git a/quic/core/congestion_control/bbr2_misc.h b/quic/core/congestion_control/bbr2_misc.h
index 8732118..f68092b 100644
--- a/quic/core/congestion_control/bbr2_misc.h
+++ b/quic/core/congestion_control/bbr2_misc.h
@@ -76,8 +76,9 @@
    */
 
   // The gain for both CWND and PacingRate at startup.
+  float startup_cwnd_gain =
+      GetQuicReloadableFlag(quic_bbr2_flip_bbq2) ? 2.0 : 2.885;
   // TODO(wub): Maybe change to the newly derived value of 2.773 (4 * ln(2)).
-  float startup_cwnd_gain = 2.885;
   float startup_pacing_gain = 2.885;
 
   // Full bandwidth is declared if the total bandwidth growth is less than
@@ -94,7 +95,8 @@
   /*
    * DRAIN parameters.
    */
-  float drain_cwnd_gain = 2.885;
+  float drain_cwnd_gain =
+      GetQuicReloadableFlag(quic_bbr2_flip_bbq2) ? 2.0 : 2.885;
   float drain_pacing_gain = 1.0 / 2.885;
 
   /*
diff --git a/quic/core/congestion_control/bbr2_sender.cc b/quic/core/congestion_control/bbr2_sender.cc
index fe32835..6de304a 100644
--- a/quic/core/congestion_control/bbr2_sender.cc
+++ b/quic/core/congestion_control/bbr2_sender.cc
@@ -142,9 +142,14 @@
 void Bbr2Sender::ApplyConnectionOptions(
     const QuicTagVector& connection_options) {
   if (ContainsQuicTag(connection_options, kBBQ2)) {
-    // 2 is the lower, derived gain for CWND.
-    params_.startup_cwnd_gain = 2;
-    params_.drain_cwnd_gain = 2;
+    if (GetQuicReloadableFlag(quic_bbr2_flip_bbq2)) {
+      params_.startup_cwnd_gain = 2.885;
+      params_.drain_cwnd_gain = 2.885;
+    } else {
+      // 2 is the lower, derived gain for CWND.
+      params_.startup_cwnd_gain = 2;
+      params_.drain_cwnd_gain = 2;
+    }
   }
   if (ContainsQuicTag(connection_options, kBSAO)) {
     model_.EnableOverestimateAvoidance();
diff --git a/quic/core/congestion_control/bbr2_simulator_test.cc b/quic/core/congestion_control/bbr2_simulator_test.cc
index 1f5db20..ca8ac7e 100644
--- a/quic/core/congestion_control/bbr2_simulator_test.cc
+++ b/quic/core/congestion_control/bbr2_simulator_test.cc
@@ -589,10 +589,18 @@
   ASSERT_EQ(Bbr2Mode::DRAIN, sender_->ExportDebugState().mode);
   EXPECT_APPROX_EQ(sender_->BandwidthEstimate() * (1 / 2.885f),
                    sender_->PacingRate(0), 0.01f);
-  // BBR uses CWND gain of 2.88 during STARTUP, hence it will fill the buffer
-  // with approximately 1.88 BDPs.  Here, we use 1.5 to give some margin for
-  // error.
-  EXPECT_GE(queue->bytes_queued(), 1.5 * params.BDP());
+
+  if (GetQuicReloadableFlag(quic_bbr2_flip_bbq2)) {
+    // BBR uses CWND gain of 2 during STARTUP, hence it will fill the buffer
+    // with approximately 1 BDP.  Here, we use 0.95 to give some margin for
+    // error.
+    EXPECT_GE(queue->bytes_queued(), 0.95 * params.BDP());
+  } else {
+    // BBR uses CWND gain of 2.88 during STARTUP, hence it will fill the buffer
+    // with approximately 1.88 BDPs.  Here, we use 1.5 to give some margin for
+    // error.
+    EXPECT_GE(queue->bytes_queued(), 1.5 * params.BDP());
+  }
 
   // Observe increased RTT due to bufferbloat.
   const QuicTime::Delta queueing_delay =
diff --git a/quic/core/crypto/crypto_protocol.h b/quic/core/crypto/crypto_protocol.h
index bf3a97c..d272aeb 100644
--- a/quic/core/crypto/crypto_protocol.h
+++ b/quic/core/crypto/crypto_protocol.h
@@ -100,8 +100,8 @@
 const QuicTag kBBRS = TAG('B', 'B', 'R', 'S');   // DEPRECATED
 const QuicTag kBBQ1 = TAG('B', 'B', 'Q', '1');   // BBR with lower 2.77 STARTUP
                                                  // pacing and CWND gain.
-const QuicTag kBBQ2 = TAG('B', 'B', 'Q', '2');   // BBR with lower 2.0 STARTUP
-                                                 // CWND gain.
+const QuicTag kBBQ2 = TAG('B', 'B', 'Q', '2');   // BBRv2 with 2.885 STARTUP and
+                                                 // DRAIN CWND gain.
 const QuicTag kBBQ3 = TAG('B', 'B', 'Q', '3');   // BBR with ack aggregation
                                                  // compensation in STARTUP.
 const QuicTag kBBQ5 = TAG('B', 'B', 'Q', '5');   // Expire ack aggregation upon
