{"action":"created","comment":{"url":"https://api.github.com/repos/quicwg/base-drafts/pulls/comments/199683596","pull_request_review_id":133848896,"id":199683596,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDE5OTY4MzU5Ng==","diff_hunk":"@@ -726,16 +727,17 @@ Connection ID.\n \n ### Tokens\n \n-If the client has an unused token that it received in a NEW_TOKEN frame on a\n-previous connection to what it believes to be the same server, it includes that\n-value in the Token field of its Initial packet.\n+If the client has an token received in a NEW_TOKEN frame on a previous\n+connection to what it believes to be the same server, it can include that value\n+in the Token field of its Initial packet.\n \n-A client MUST NOT reuse a token if it believes that its point of network\n-attachment has changed; that is, if there is a change in its local IP address or\n-network interface.  Reusing a token on different network paths would allow\n-activity to be linked between paths (see {{migration-linkability}}).  A client\n-needs to start the connection process over if it migrates prior to completing\n-the handshake.\n+A client SHOULD NOT reuse a token; reused tokens enable activity on connections\n+to be correlated.  A client MUST NOT reuse a token if it believes that its point\n+of network attachment has changed; that is, if there is a change in its local IP\n+address or network interface.  Reusing a token on different network paths would\n+allow activity to be linked between paths (see {{migration-linkability}}).  A\n+client needs to start the connection process over if it migrates prior to\n+completing the handshake.\n ","path":"draft-ietf-quic-transport.md","position":209,"original_position":79,"commit_id":"55e910f476f56ede4f13ff506378f74a0e488444","original_commit_id":"55e910f476f56ede4f13ff506378f74a0e488444","user":{"login":"mikkelfj","id":193335,"node_id":"MDQ6VXNlcjE5MzMzNQ==","avatar_url":"https://avatars2.githubusercontent.com/u/193335?v=4","gravatar_id":"","url":"https://api.github.com/users/mikkelfj","html_url":"https://github.com/mikkelfj","followers_url":"https://api.github.com/users/mikkelfj/followers","following_url":"https://api.github.com/users/mikkelfj/following{/other_user}","gists_url":"https://api.github.com/users/mikkelfj/gists{/gist_id}","starred_url":"https://api.github.com/users/mikkelfj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mikkelfj/subscriptions","organizations_url":"https://api.github.com/users/mikkelfj/orgs","repos_url":"https://api.github.com/users/mikkelfj/repos","events_url":"https://api.github.com/users/mikkelfj/events{/privacy}","received_events_url":"https://api.github.com/users/mikkelfj/received_events","type":"User","site_admin":false},"body":"Two separate sentences about linking, one stating \"correlate\", the other \"linked\".","created_at":"2018-07-03T04:57:10Z","updated_at":"2018-07-03T04:57:10Z","html_url":"https://github.com/quicwg/base-drafts/pull/1498#discussion_r199683596","pull_request_url":"https://api.github.com/repos/quicwg/base-drafts/pulls/1498","author_association":"NONE","_links":{"self":{"href":"https://api.github.com/repos/quicwg/base-drafts/pulls/comments/199683596"},"html":{"href":"https://github.com/quicwg/base-drafts/pull/1498#discussion_r199683596"},"pull_request":{"href":"https://api.github.com/repos/quicwg/base-drafts/pulls/1498"}}},"pull_request":{"url":"https://api.github.com/repos/quicwg/base-drafts/pulls/1498","id":198188370,"node_id":"MDExOlB1bGxSZXF1ZXN0MTk4MTg4Mzcw","html_url":"https://github.com/quicwg/base-drafts/pull/1498","diff_url":"https://github.com/quicwg/base-drafts/pull/1498.diff","patch_url":"https://github.com/quicwg/base-drafts/pull/1498.patch","issue_url":"https://api.github.com/repos/quicwg/base-drafts/issues/1498","number":1498,"state":"open","locked":false,"title":"Rework Retry packet","user":{"login":"martinthomson","id":67641,"node_id":"MDQ6VXNlcjY3NjQx","avatar_url":"https://avatars1.githubusercontent.com/u/67641?v=4","gravatar_id":"","url":"https://api.github.com/users/martinthomson","html_url":"https://github.com/martinthomson","followers_url":"https://api.github.com/users/martinthomson/followers","following_url":"https://api.github.com/users/martinthomson/following{/other_user}","gists_url":"https://api.github.com/users/martinthomson/gists{/gist_id}","starred_url":"https://api.github.com/users/martinthomson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/martinthomson/subscriptions","organizations_url":"https://api.github.com/users/martinthomson/orgs","repos_url":"https://api.github.com/users/martinthomson/repos","events_url":"https://api.github.com/users/martinthomson/events{/privacy}","received_events_url":"https://api.github.com/users/martinthomson/received_events","type":"User","site_admin":false},"body":"This includes several changes:\r\n\r\n* I moved the Retry packet description.  It is more like Version Negotiation than Handshake or Initial, so it made sense to move it up.\r\n\r\n* Retry doesn't include a packet number or payload.  Like Version Negotiation, it includes a complete definition.\r\n\r\n* As discussed in #1451, this requires a server that might send another Retry to provide a connection ID of at least 8 octets.\r\n\r\n* I clarified the description of fields, expanded the pictures, and made some other editorial tweaks.\r\n\r\nOpen Question: would it make sense to normalize the encoding of Retry and Initial?  The former includes a token without a length (because it's the last piece of the packet), whereas the latter includes a length-prefixed token.  It might be easier to invert the ODCID and token on Retry.  That would make the token processing more consistent.  I'm not sure if we want to consider adding a token to 0-RTT and Handshake packets, but that would fully normalize things.\r\n\r\nOther open question (editorial): The variety of long header formats is now a little unwieldy.  Should we reduce the long header back to what is in invariants and describe the packet number encoding part as being specific to Initial, Handshake, and 0-RTT?  Something for editors to consider.\r\n\r\nCloses #1492, #1451, #1448.","created_at":"2018-06-29T00:40:19Z","updated_at":"2018-07-03T04:57:10Z","closed_at":null,"merged_at":null,"merge_commit_sha":"1c6f869de248c93dd384fd6eaa2b39a46891c546","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":481871399,"node_id":"MDU6TGFiZWw0ODE4NzEzOTk=","url":"https://api.github.com/repos/quicwg/base-drafts/labels/-transport","name":"-transport","color":"fbca04","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/quicwg/base-drafts/pulls/1498/commits","review_comments_url":"https://api.github.com/repos/quicwg/base-drafts/pulls/1498/comments","review_comment_url":"https://api.github.com/repos/quicwg/base-drafts/pulls/comments{/number}","comments_url":"https://api.github.com/repos/quicwg/base-drafts/issues/1498/comments","statuses_url":"https://api.github.com/repos/quicwg/base-drafts/statuses/55e910f476f56ede4f13ff506378f74a0e488444","head":{"label":"quicwg:move-retry","ref":"move-retry","sha":"55e910f476f56ede4f13ff506378f74a0e488444","user":{"login":"quicwg","id":22631371,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIyNjMxMzcx","avatar_url":"https://avatars3.githubusercontent.com/u/22631371?v=4","gravatar_id":"","url":"https://api.github.com/users/quicwg","html_url":"https://github.com/quicwg","followers_url":"https://api.github.com/users/quicwg/followers","following_url":"https://api.github.com/users/quicwg/following{/other_user}","gists_url":"https://api.github.com/users/quicwg/gists{/gist_id}","starred_url":"https://api.github.com/users/quicwg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/quicwg/subscriptions","organizations_url":"https://api.github.com/users/quicwg/orgs","repos_url":"https://api.github.com/users/quicwg/repos","events_url":"https://api.github.com/users/quicwg/events{/privacy}","received_events_url":"https://api.github.com/users/quicwg/received_events","type":"Organization","site_admin":false},"repo":{"id":73779599,"node_id":"MDEwOlJlcG9zaXRvcnk3Mzc3OTU5OQ==","name":"base-drafts","full_name":"quicwg/base-drafts","owner":{"login":"quicwg","id":22631371,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIyNjMxMzcx","avatar_url":"https://avatars3.githubusercontent.com/u/22631371?v=4","gravatar_id":"","url":"https://api.github.com/users/quicwg","html_url":"https://github.com/quicwg","followers_url":"https://api.github.com/users/quicwg/followers","following_url":"https://api.github.com/users/quicwg/following{/other_user}","gists_url":"https://api.github.com/users/quicwg/gists{/gist_id}","starred_url":"https://api.github.com/users/quicwg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/quicwg/subscriptions","organizations_url":"https://api.github.com/users/quicwg/orgs","repos_url":"https://api.github.com/users/quicwg/repos","events_url":"https://api.github.com/users/quicwg/events{/privacy}","received_events_url":"https://api.github.com/users/quicwg/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/quicwg/base-drafts","description":" Internet-Drafts that make up the base QUIC specification","fork":false,"url":"https://api.github.com/repos/quicwg/base-drafts","forks_url":"https://api.github.com/repos/quicwg/base-drafts/forks","keys_url":"https://api.github.com/repos/quicwg/base-drafts/keys{/key_id}","collaborators_url":"https://api.github.com/repos/quicwg/base-drafts/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/quicwg/base-drafts/teams","hooks_url":"https://api.github.com/repos/quicwg/base-drafts/hooks","issue_events_url":"https://api.github.com/repos/quicwg/base-drafts/issues/events{/number}","events_url":"https://api.github.com/repos/quicwg/base-drafts/events","assignees_url":"https://api.github.com/repos/quicwg/base-drafts/assignees{/user}","branches_url":"https://api.github.com/repos/quicwg/base-drafts/branches{/branch}","tags_url":"https://api.github.com/repos/quicwg/base-drafts/tags","blobs_url":"https://api.github.com/repos/quicwg/base-drafts/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/quicwg/base-drafts/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/quicwg/base-drafts/git/refs{/sha}","trees_url":"https://api.github.com/repos/quicwg/base-drafts/git/trees{/sha}","statuses_url":"https://api.github.com/repos/quicwg/base-drafts/statuses/{sha}","languages_url":"https://api.github.com/repos/quicwg/base-drafts/languages","stargazers_url":"https://api.github.com/repos/quicwg/base-drafts/stargazers","contributors_url":"https://api.github.com/repos/quicwg/base-drafts/contributors","subscribers_url":"https://api.github.com/repos/quicwg/base-drafts/subscribers","subscription_url":"https://api.github.com/repos/quicwg/base-drafts/subscription","commits_url":"https://api.github.com/repos/quicwg/base-drafts/commits{/sha}","git_commits_url":"https://api.github.com/repos/quicwg/base-drafts/git/commits{/sha}","comments_url":"https://api.github.com/repos/quicwg/base-drafts/comments{/number}","issue_comment_url":"https://api.github.com/repos/quicwg/base-drafts/issues/comments{/number}","contents_url":"https://api.github.com/repos/quicwg/base-drafts/contents/{+path}","compare_url":"https://api.github.com/repos/quicwg/base-drafts/compare/{base}...{head}","merges_url":"https://api.github.com/repos/quicwg/base-drafts/merges","archive_url":"https://api.github.com/repos/quicwg/base-drafts/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/quicwg/base-drafts/downloads","issues_url":"https://api.github.com/repos/quicwg/base-drafts/issues{/number}","pulls_url":"https://api.github.com/repos/quicwg/base-drafts/pulls{/number}","milestones_url":"https://api.github.com/repos/quicwg/base-drafts/milestones{/number}","notifications_url":"https://api.github.com/repos/quicwg/base-drafts/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/quicwg/base-drafts/labels{/name}","releases_url":"https://api.github.com/repos/quicwg/base-drafts/releases{/id}","deployments_url":"https://api.github.com/repos/quicwg/base-drafts/deployments","created_at":"2016-11-15T05:30:30Z","updated_at":"2018-07-03T04:34:05Z","pushed_at":"2018-07-03T04:50:21Z","git_url":"git://github.com/quicwg/base-drafts.git","ssh_url":"git@github.com:quicwg/base-drafts.git","clone_url":"https://github.com/quicwg/base-drafts.git","svn_url":"https://github.com/quicwg/base-drafts","homepage":"https://quicwg.github.io/","size":41540,"stargazers_count":263,"watchers_count":263,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":64,"mirror_url":null,"archived":false,"open_issues_count":112,"license":null,"forks":64,"open_issues":112,"watchers":263,"default_branch":"master"}},"base":{"label":"quicwg:master","ref":"master","sha":"69f364940b67f61f52def13a4dca4ad937fdeb65","user":{"login":"quicwg","id":22631371,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIyNjMxMzcx","avatar_url":"https://avatars3.githubusercontent.com/u/22631371?v=4","gravatar_id":"","url":"https://api.github.com/users/quicwg","html_url":"https://github.com/quicwg","followers_url":"https://api.github.com/users/quicwg/followers","following_url":"https://api.github.com/users/quicwg/following{/other_user}","gists_url":"https://api.github.com/users/quicwg/gists{/gist_id}","starred_url":"https://api.github.com/users/quicwg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/quicwg/subscriptions","organizations_url":"https://api.github.com/users/quicwg/orgs","repos_url":"https://api.github.com/users/quicwg/repos","events_url":"https://api.github.com/users/quicwg/events{/privacy}","received_events_url":"https://api.github.com/users/quicwg/received_events","type":"Organization","site_admin":false},"repo":{"id":73779599,"node_id":"MDEwOlJlcG9zaXRvcnk3Mzc3OTU5OQ==","name":"base-drafts","full_name":"quicwg/base-drafts","owner":{"login":"quicwg","id":22631371,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIyNjMxMzcx","avatar_url":"https://avatars3.githubusercontent.com/u/22631371?v=4","gravatar_id":"","url":"https://api.github.com/users/quicwg","html_url":"https://github.com/quicwg","followers_url":"https://api.github.com/users/quicwg/followers","following_url":"https://api.github.com/users/quicwg/following{/other_user}","gists_url":"https://api.github.com/users/quicwg/gists{/gist_id}","starred_url":"https://api.github.com/users/quicwg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/quicwg/subscriptions","organizations_url":"https://api.github.com/users/quicwg/orgs","repos_url":"https://api.github.com/users/quicwg/repos","events_url":"https://api.github.com/users/quicwg/events{/privacy}","received_events_url":"https://api.github.com/users/quicwg/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/quicwg/base-drafts","description":" Internet-Drafts that make up the base QUIC specification","fork":false,"url":"https://api.github.com/repos/quicwg/base-drafts","forks_url":"https://api.github.com/repos/quicwg/base-drafts/forks","keys_url":"https://api.github.com/repos/quicwg/base-drafts/keys{/key_id}","collaborators_url":"https://api.github.com/repos/quicwg/base-drafts/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/quicwg/base-drafts/teams","hooks_url":"https://api.github.com/repos/quicwg/base-drafts/hooks","issue_events_url":"https://api.github.com/repos/quicwg/base-drafts/issues/events{/number}","events_url":"https://api.github.com/repos/quicwg/base-drafts/events","assignees_url":"https://api.github.com/repos/quicwg/base-drafts/assignees{/user}","branches_url":"https://api.github.com/repos/quicwg/base-drafts/branches{/branch}","tags_url":"https://api.github.com/repos/quicwg/base-drafts/tags","blobs_url":"https://api.github.com/repos/quicwg/base-drafts/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/quicwg/base-drafts/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/quicwg/base-drafts/git/refs{/sha}","trees_url":"https://api.github.com/repos/quicwg/base-drafts/git/trees{/sha}","statuses_url":"https://api.github.com/repos/quicwg/base-drafts/statuses/{sha}","languages_url":"https://api.github.com/repos/quicwg/base-drafts/languages","stargazers_url":"https://api.github.com/repos/quicwg/base-drafts/stargazers","contributors_url":"https://api.github.com/repos/quicwg/base-drafts/contributors","subscribers_url":"https://api.github.com/repos/quicwg/base-drafts/subscribers","subscription_url":"https://api.github.com/repos/quicwg/base-drafts/subscription","commits_url":"https://api.github.com/repos/quicwg/base-drafts/commits{/sha}","git_commits_url":"https://api.github.com/repos/quicwg/base-drafts/git/commits{/sha}","comments_url":"https://api.github.com/repos/quicwg/base-drafts/comments{/number}","issue_comment_url":"https://api.github.com/repos/quicwg/base-drafts/issues/comments{/number}","contents_url":"https://api.github.com/repos/quicwg/base-drafts/contents/{+path}","compare_url":"https://api.github.com/repos/quicwg/base-drafts/compare/{base}...{head}","merges_url":"https://api.github.com/repos/quicwg/base-drafts/merges","archive_url":"https://api.github.com/repos/quicwg/base-drafts/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/quicwg/base-drafts/downloads","issues_url":"https://api.github.com/repos/quicwg/base-drafts/issues{/number}","pulls_url":"https://api.github.com/repos/quicwg/base-drafts/pulls{/number}","milestones_url":"https://api.github.com/repos/quicwg/base-drafts/milestones{/number}","notifications_url":"https://api.github.com/repos/quicwg/base-drafts/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/quicwg/base-drafts/labels{/name}","releases_url":"https://api.github.com/repos/quicwg/base-drafts/releases{/id}","deployments_url":"https://api.github.com/repos/quicwg/base-drafts/deployments","created_at":"2016-11-15T05:30:30Z","updated_at":"2018-07-03T04:34:05Z","pushed_at":"2018-07-03T04:50:21Z","git_url":"git://github.com/quicwg/base-drafts.git","ssh_url":"git@github.com:quicwg/base-drafts.git","clone_url":"https://github.com/quicwg/base-drafts.git","svn_url":"https://github.com/quicwg/base-drafts","homepage":"https://quicwg.github.io/","size":41540,"stargazers_count":263,"watchers_count":263,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":64,"mirror_url":null,"archived":false,"open_issues_count":112,"license":null,"forks":64,"open_issues":112,"watchers":263,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/quicwg/base-drafts/pulls/1498"},"html":{"href":"https://github.com/quicwg/base-drafts/pull/1498"},"issue":{"href":"https://api.github.com/repos/quicwg/base-drafts/issues/1498"},"comments":{"href":"https://api.github.com/repos/quicwg/base-drafts/issues/1498/comments"},"review_comments":{"href":"https://api.github.com/repos/quicwg/base-drafts/pulls/1498/comments"},"review_comment":{"href":"https://api.github.com/repos/quicwg/base-drafts/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/quicwg/base-drafts/pulls/1498/commits"},"statuses":{"href":"https://api.github.com/repos/quicwg/base-drafts/statuses/55e910f476f56ede4f13ff506378f74a0e488444"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"mikkelfj"}}