)]}'
{
  "commit": "f018b73c6d3495c730fac28fd52ebf1d491dcfbb",
  "tree": "7ff6ad597871b68956f7d564d55d86e49eb54f42",
  "parents": [
    "3cf1d473a8cec388b2f29fcc65f00c0821b6beea"
  ],
  "author": {
    "name": "QUICHE team",
    "email": "quiche-dev@google.com",
    "time": "Wed Apr 01 15:53:51 2020 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Wed Apr 01 15:54:25 2020 -0700"
  },
  "message": "Add Pigeon USPS GSO Support via quic::PigeonWriter.\n\nThis CL adds quic::PigeonWriter and quic::PigeonSocket classes, with extensive unit tests. It refactors the old gfe2::RawSocket into a quic::RawSocketInterface and gfe2::RawQuicWriter into quic::RawPacketWriterBase. All gfe/gfe2/quic classes continue to work in the same way as before, only refactored. The changes in the CL are transparent to gfe/gfe2/quic.\n\nThe new PigeonSocket uses a BufferAllocator, which is a freelist of shared memory buffers of size 2048 bytes. The socket can externally share shared memory buffers via PigeonSocket::AcquireSegmentBufferFromSharedMemory(). The PigeonWriter uses this to support \"GetNextWriteLocation()\" for the QUIC connection to serialize packets directly into shared memory. This eliminates a memcpy() in the critical path.\n\nThe PigeonWriter and PigeonSocket classes support GSO by batching up to --quic_pigeon_socket_max_gso_segments number of segments per write. The PigeonWriter can also be used in pass-through mode by disabling GSO via flag --quic_pigeon_writer_enable_udp_gso.\n\nIf flag --ustreamer_quic_use_new_pigeon_writer is true, and the egress method is USPS, then Ustreamer will create the new quic::PigeonWriter rather than gfe2::RawQuicWriter.\n\ngfe-relnote: GFE related changes refactors gfe\u0027s PigeonSocketWriteBlockHandler to net/quic/pigeon_socket.h\nPiperOrigin-RevId: 304279221\nChange-Id: I919f8a7b8f2f039f07c078f11f2413dd6f39e12a\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5f6b6818979d6fbc3cc3625b93be0d61d2387918",
      "old_mode": 33188,
      "old_path": "quic/core/quic_packet_writer.h",
      "new_id": "bd10523e16a9b54c76940dd73fd7ef78f2f2f092",
      "new_mode": 33188,
      "new_path": "quic/core/quic_packet_writer.h"
    },
    {
      "type": "modify",
      "old_id": "b8a77a92db510a9d1f403b7db769ac935ea5c956",
      "old_mode": 33188,
      "old_path": "quic/core/quic_types.h",
      "new_id": "76d3bab90cc17b31ebeca73f45301e0da3476d0d",
      "new_mode": 33188,
      "new_path": "quic/core/quic_types.h"
    }
  ]
}
