)]}'
{
  "commit": "984973e073a0854b656d3caf4fc19e5e4f7b5ab9",
  "tree": "3503dda9a9bcb6d5333ed2dff78e57d0446b0c95",
  "parents": [
    "7a56759ba5e8d5f8c8a84c3417b12304ebafbf67"
  ],
  "author": {
    "name": "Victor Boivie",
    "email": "boivie@webrtc.org",
    "time": "Fri Nov 21 08:22:21 2025"
  },
  "committer": {
    "name": "WebRTC LUCI CQ",
    "email": "webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Fri Nov 21 20:52:14 2025"
  },
  "message": "dcsctp: Relax seq nbr handling for stream reset\n\nThe current implementation of the Stream Reset Handler strictly validates\nincoming Re-configuration Request Sequence Numbers. If a request is a\nretransmission (same sequence number), it immediately returns the cached\nresponse, which was how RFC6525 was interpreted.\n\nHowever, per recent discussions (and there will be an errata to clarify\nthis), if a request was previously responded to with \"In Progress\"\n(because the Sender\u0027s Last Assigned TSN hadn\u0027t been reached), the\nreceiver must re-evaluate the condition upon receiving a retransmission.\nThe current implementation creates a deadlock with peers that does this:\nThe peer retransmits the same sequence number, and dcSCTP keeps replying\n\"In Progress\" from its cache without checking if the TSN condition is\nnow met.\n\nThis CL relaxes the validation logic. If a request is a retransmission\nand the last result was \"In Progress\", the handler will now re-evaluate\nthe state (check the cumulative ack against the sender\u0027s last assigned\nTSN). If the condition is met, it proceeds to reset the streams;\notherwise, it returns \"In Progress\" again.\n\nThis change maintains backward compatibility with older peers (like\ncurrent dcSCTP senders) that increment the sequence number when retrying\nafter an \"In Progress\" response.\n\nFollowing this CL, when it has reached a sufficiently large population,\nthe sender logic can be updated to send requests without incrementing\nthe sequence number when \"In Progress\" was the response.\n\nBug: webrtc:379844648\nChange-Id: Icc3908a2e94e4a5bc0d350cae58bb8d844a27c1f\nReviewed-on: https://webrtc-review.googlesource.com/c/src/+/427361\nReviewed-by: Harald Alvestrand \u003chta@webrtc.org\u003e\nCommit-Queue: Victor Boivie \u003cboivie@webrtc.org\u003e\nCr-Commit-Position: refs/heads/main@{#46261}\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "700c5a6a5dcbd0f47560cdb92accd5194510a8d3",
      "old_mode": 33188,
      "old_path": "net/dcsctp/socket/stream_reset_handler.cc",
      "new_id": "5a26bfca6058b60f1f07e263627f6f10dc942212",
      "new_mode": 33188,
      "new_path": "net/dcsctp/socket/stream_reset_handler.cc"
    },
    {
      "type": "modify",
      "old_id": "c1bd24b9931e28d3941f45c92706f617575a275a",
      "old_mode": 33188,
      "old_path": "net/dcsctp/socket/stream_reset_handler.h",
      "new_id": "cc8e0991347f0a25be0728903c81bff4048a8a00",
      "new_mode": 33188,
      "new_path": "net/dcsctp/socket/stream_reset_handler.h"
    },
    {
      "type": "modify",
      "old_id": "92c55a57bfefdccd68bc27c4fc14e29e97406fb3",
      "old_mode": 33188,
      "old_path": "net/dcsctp/socket/stream_reset_handler_test.cc",
      "new_id": "415643027f2b87dccfbed0b36e47416f52055836",
      "new_mode": 33188,
      "new_path": "net/dcsctp/socket/stream_reset_handler_test.cc"
    }
  ]
}
