Error when probing primary path after drop in multipath #1889
-
Hello, I'm currently developing an application in Windows utilizing the picoquic library for multipath. I have used picoquicdemo.c as a reference for configuring and enabling multipath support. This is my current implementation:
While testing edge cases, I found one scenario that needs to be addressed. When multiple interfaces are available initially and the primary interface (path id 0) drops or gets removed mid-connection and later comes back online, picoquic_probe_new_path_ex() returns error code 1089 I also noticed something else worth mentioning. Suppose there are two interfaces initially with path IDs 0 and 1 respectively. If the second interface, with path ID 1, drops and later comes back, it gets assigned to path ID 2 instead of reclaiming its previous ID. This suggests that the path itself is abandoned. So even path ID 0 gets abandoned as well when the primary interface drops? My main question is whether this is expected behavior, and if so, is there a recommended way to handle the primary interface dropping and reconnecting without hitting the |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 3 replies
-
Yes, the path 0 gets abandoned when the primary interface drops. The path object is identified by a path id. If the interface drops and the path is abandoned, the path id cannot be used anymore. This is in conformity with the multipath draft. |
Beta Was this translation helpful? Give feedback.
-
@akh7177 @Adithya1435 Thanks for raising this discussion and following on. The original design is indeed that if a path is closed, the application cannot reuse the same path ID, need to open another one. Problem there was a bug (issue #1918) in the way the stack tested whether opening that path should be possible. This is fixed in PR #1919. The expected behavior is:
We now have tests to verify that specific scenario, and after fixing the bug these tests are passing. |
Beta Was this translation helpful? Give feedback.
@akh7177 @Adithya1435 Thanks for raising this discussion and following on. The original design is indeed that if a path is closed, the application cannot reuse the same path ID, need to open another one. Problem there was a bug (issue #1918) in the way the stack tested whether opening that path should be possible. This is fixed in PR #1919.
The expected behavior is:
picoquic_probe_new_path
to cr…