feat(quic): implement Connection ID storage and rotation management#415
Merged
Conversation
Implement Connection ID storage and rotation management per RFC 9000 Section 5.1. This adds a new connection_id_manager class that handles: - Storage of peer-provided Connection IDs via NEW_CONNECTION_ID frames - Sequence number and retire_prior_to tracking - Stateless reset token validation - CID rotation API for path migration - Generation of RETIRE_CONNECTION_ID frames Closes #399 (partial)
- Add peer_cid_manager_ member to connection class - Initialize peer CID manager with initial destination CID - Process NEW_CONNECTION_ID frames to store peer CIDs - Add RETIRE_CONNECTION_ID frame transmission in build_packet - Add active_peer_cid() and rotate_peer_cid() public APIs - Update apply_remote_params to set active_connection_id_limit This completes the integration of peer CID management per RFC 9000. Closes #399 (partial)
Add comprehensive test coverage for Connection ID management: - ConnectionIdManagerTest: 13 tests covering CID storage, retirement, rotation, stateless reset token validation, and error cases - ConnectionPeerCidTest: 5 integration tests verifying connection class properly uses the CID manager All tests verify RFC 9000 Section 5.1 compliance. Closes #399
Add changelog entries for issue #399 in both English and Korean, documenting the new connection_id_manager class and its features.
Contributor
Performance ComparisonBase Branch ResultsNo base results PR Branch ResultsNo PR results |
kcenon
added a commit
that referenced
this pull request
Apr 13, 2026
…415) * feat(quic): add connection_id_manager for peer CID storage Implement Connection ID storage and rotation management per RFC 9000 Section 5.1. This adds a new connection_id_manager class that handles: - Storage of peer-provided Connection IDs via NEW_CONNECTION_ID frames - Sequence number and retire_prior_to tracking - Stateless reset token validation - CID rotation API for path migration - Generation of RETIRE_CONNECTION_ID frames Closes #399 (partial) * feat(quic): integrate connection_id_manager into connection class - Add peer_cid_manager_ member to connection class - Initialize peer CID manager with initial destination CID - Process NEW_CONNECTION_ID frames to store peer CIDs - Add RETIRE_CONNECTION_ID frame transmission in build_packet - Add active_peer_cid() and rotate_peer_cid() public APIs - Update apply_remote_params to set active_connection_id_limit This completes the integration of peer CID management per RFC 9000. Closes #399 (partial) * test(quic): add unit tests for connection_id_manager Add comprehensive test coverage for Connection ID management: - ConnectionIdManagerTest: 13 tests covering CID storage, retirement, rotation, stateless reset token validation, and error cases - ConnectionPeerCidTest: 5 integration tests verifying connection class properly uses the CID manager All tests verify RFC 9000 Section 5.1 compliance. Closes #399 * docs: update changelog for QUIC Connection ID Management Add changelog entries for issue #399 in both English and Korean, documenting the new connection_id_manager class and its features.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
connection_id_managerclass for managing peer Connection IDs per RFC 9000 Section 5.1connectionclass for NEW_CONNECTION_ID frame processingChanges
New files:
include/kcenon/network/protocols/quic/connection_id_manager.h: Header for CID managersrc/protocols/quic/connection_id_manager.cpp: Implementation of CID managerModified files:
connection.h/cpp: Integrate peer_cid_manager_ member and related APIsCMakeLists.txt: Add new source file to buildtest_quic_connection.cpp: Add 18 unit tests for CID managementCHANGELOG.md/CHANGELOG_KO.md: Document new featureFeatures Implemented
rotate_peer_cid()) for path migrationTest Plan
network_quic_connection_test- all 62 tests passCloses #399