-
-
Notifications
You must be signed in to change notification settings - Fork 84
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: Fix and enable connection migration tests #410
feat: Fix and enable connection migration tests #410
Conversation
For example, to avoid using zero-len CIDs.
094645a
to
2324a3d
Compare
@marten-seemann this is ready from my side. |
@marten-seemann conflict is resolved. |
@larseggert @marten-seemann I assume this is still worth merging? |
FYI, using this branch with
Also, |
Those Wireshark messages probably mean you have a version installed that is too old. |
$ tshark -v
TShark (Wireshark) 4.0.17 (Git v4.0.17 packaged as 4.0.17-0+deb12u1).
$ editcap -v
Editcap (Wireshark) 4.0.17 (Git v4.0.17 packaged as 4.0.17-0+deb12u1). Isn't that recent enough? |
Those are too old. I use |
Thanks, that helped! However, even with
Note that the connection migration test is using IPv6, and not IPv4 like the rebinding tests (which are passing now), so perhaps the issue is elsewhere? |
Co-authored-by: Piotr Sikora <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we need to bump the WIRESHARK_CACHEKEY
to build a new Wireshark version?
```bash | ||
pip3 install -r requirements.txt | ||
``` | ||
```bash | ||
pip3 install -r requirements.txt | ||
``` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This doesn't look correct.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is? You gotta indent the block if it's supposed to be part of the bullet.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see, makes sense.
@staticmethod | ||
def testname(p: Perspective): | ||
return "transfer" | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This means that implementation that don't implement path validation yet (like quic-go 🤐) will fail this test. I think this is ok, since this is a mandatory part of the RFC. Might lead to some complaints though if the matrix is getting slightly more red as a result of merging this PR.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No progress without pain.
@larseggert I'm adding the ConnectionMigration testcase for linux QUIC where I set preferred address ('193.167.100.100', 444) from server side. However, it failed in the check() of TestCaseAddressRebinding (the parent class of TestCaseConnectionMigration):
I don't understand why it requires client source IP address to change after the client migrates its dest IP to the server's preferred address? did you see any description on RFC for that? Thanks. |
The assumption for I don't think simply sending another IPv4 address in the TPs works? |
oh, I see the idea now, thanks for the explanation. |
@lxin actually, I misremembered and what I said was incorrect. |
@larseggert I think it’s fine for this to serve as a test case for QUIC’s ability to handle migration between IPv4 and IPv6 (or vice versa), just the test case description should explicitly states this purpose. Otherwise, users might interpret it as writing migration within the same address family, as I initially did. This is a great test case for migration across address families to me. It might be worth requiring implementations to fully support this scenario, rather than simply 'working around' it by limiting the migration to the same address family to pass the test case. BTW, with the fix you posted in #419, it now passes in the Linux QUIC when the migration involves only a port change. Thanks. |
No description provided.