)]}'
{
  "commit": "c63b8c948db468bfcf43106830e20a43081108bd",
  "tree": "090388b308bfda4b9e99b4eaa5e7e1706b6ce6b5",
  "parents": [
    "b45e7741802e3b1fbe5635ea6798df0ce0991a16"
  ],
  "author": {
    "name": "martinduke",
    "email": "martinduke@google.com",
    "time": "Wed Jan 03 17:40:43 2024 -0800"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Wed Jan 03 17:41:35 2024 -0800"
  },
  "message": "Copy the ECN codepoint in QuicReceivedPacket::Clone().\n\nCloned incoming packets will not carry a ECN codepoint even when the original packet has one, so the resulting ECN feedback will be incorrect -- this will cause the peer to abandon ECN, potentially impairing performance.\n\nThe relevant instance of cloned packets is Buffered Packets at the beginning of the connection. ECN peers will abandon ECN if early packets are buffered.\n\nThe only other instance is the QuicProxyConnectionMap. Fixing Clone() is necessary but not sufficient for getting QuicProxyDispatcher to forward ECN properly.\n\nThere are tests for both downstream effects of this bug.\n\nProtected by FLAGS_quic_reloadable_flag_quic_clone_ecn.\n\nPiperOrigin-RevId: 595547494\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "13f75f8ec9681aad58b5240af63edbe425d41322",
      "old_mode": 33188,
      "old_path": "quiche/quic/core/quic_buffered_packet_store_test.cc",
      "new_id": "b241fe1f2e04ae198c8b016d76bae25971bb1443",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/quic_buffered_packet_store_test.cc"
    },
    {
      "type": "modify",
      "old_id": "f9211472280a4ec099e51c502ffb8bea7260095e",
      "old_mode": 33188,
      "old_path": "quiche/quic/core/quic_dispatcher_test.cc",
      "new_id": "0e6b8489ccd0bb167a593e2e09d05efe10d14e54",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/quic_dispatcher_test.cc"
    },
    {
      "type": "modify",
      "old_id": "ea2876d1f8b4faf44679d29a5d7fcdfb717b65c3",
      "old_mode": 33188,
      "old_path": "quiche/quic/core/quic_flags_list.h",
      "new_id": "23508a0cb4c05278233ab6b33412e3a436937feb",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/quic_flags_list.h"
    },
    {
      "type": "modify",
      "old_id": "907c7c84bfcbbe24767d8888878fdafc5ee7cc4d",
      "old_mode": 33188,
      "old_path": "quiche/quic/core/quic_packets.cc",
      "new_id": "e8642519fd944f796296ab5afc9f404bc61f52e5",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/quic_packets.cc"
    },
    {
      "type": "modify",
      "old_id": "3d70fec2eb6574f1abb310eb601864fe9628784b",
      "old_mode": 33188,
      "old_path": "quiche/quic/core/quic_packets.h",
      "new_id": "f3178407007ccbccf3f66f1f260b8577e1ba7390",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/quic_packets.h"
    },
    {
      "type": "modify",
      "old_id": "4e6598ddb5b44d46a83b5affe5e8106a8e022e59",
      "old_mode": 33188,
      "old_path": "quiche/quic/core/quic_packets_test.cc",
      "new_id": "82feda684e8bcaf5006371a9b1c8942fe68a9a36",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/quic_packets_test.cc"
    },
    {
      "type": "modify",
      "old_id": "3214c56e1ec148a99e81d99400c87bd71c31b496",
      "old_mode": 33188,
      "old_path": "quiche/quic/test_tools/first_flight.cc",
      "new_id": "820dbbb1dbb77a1ded2baede5bd63d8f7a3b6961",
      "new_mode": 33188,
      "new_path": "quiche/quic/test_tools/first_flight.cc"
    },
    {
      "type": "modify",
      "old_id": "7360cf3646d70515f526ca1d9b04cb3bb66eb30d",
      "old_mode": 33188,
      "old_path": "quiche/quic/test_tools/first_flight.h",
      "new_id": "2fe86c516ec415ca444e3876fd501dcd9f4527b2",
      "new_mode": 33188,
      "new_path": "quiche/quic/test_tools/first_flight.h"
    },
    {
      "type": "modify",
      "old_id": "6298cda79d63599fe0b2dfe19ea2eadecec4353a",
      "old_mode": 33188,
      "old_path": "quiche/quic/test_tools/quic_test_utils.cc",
      "new_id": "8ffb8e817b4d177416a4c60e640405e08a410551",
      "new_mode": 33188,
      "new_path": "quiche/quic/test_tools/quic_test_utils.cc"
    },
    {
      "type": "modify",
      "old_id": "52b4c1248f254aa07370608047df4aba6fe99326",
      "old_mode": 33188,
      "old_path": "quiche/quic/test_tools/quic_test_utils.h",
      "new_id": "8fdaf98b14e3928721aa9b1ff8bf6cb8395634fd",
      "new_mode": 33188,
      "new_path": "quiche/quic/test_tools/quic_test_utils.h"
    }
  ]
}
