Comments (10)
This is strange that PQUIC does not raise error when trying to insert both plugins/multipath/multipath_rtt_cond.plugin and plugins/multipath/multipath_rtt.plugin, as they should be mutually exclusive. Only insert plugins/multipath/multipath_rtt_cond.plugin.
from pquic.
This lacks documentation indeed, multipath.plugin is just not a complete plugin but just the core functionalities. We could rename it to multipath.core probably. It's included in other plugins that specialise multipath with a particular path scheduler for example. Use multipath_rr.plugin for a round robin path scheduler and multipath_rtt.plugin for a lowest RTT first path scheduler.
from pquic.
I see, It also seems that multipath_rr_cond.plugin is needed in order to run a mp supporting server? If I run multipath_rr.plugin (without the _cond) the server does not send a max_sending_uniflow_id as transport parameter, but still sends MP-frames, resulting in a client identifying that it is receiving MP frames without the peer signaling MP support.
from pquic.
Yes indeed, its our internal plugin for testing when we know that MP is supported. The _cond variants enables negotiation.
from pquic.
Thank you for the response, my client now performs the handshake and sees the transport parameter. Closing the issue now.
from pquic.
@The3ternum Hi! Could you still remember the commands you used for the multipath plugin?
I'm currently using
./picoquicdemo -P plugins/multipath/multipath_rtt_cond.plugin -P plugins/multipath/multipath_rtt.plugin
at the server side and
./picoquicdemo -P plugins/multipath/multipath_rtt_cond.plugin -P plugins/multipath/multipath_rtt.plugin -p 4443 127.0.0.1
at the client side.
The client logs:
Starting PicoQUIC connection to server IP = 127.0.0.1, port = 4443 and 2 local plugins
local plugin plugins/multipath/multipath_rtt_cond.plugin
local plugin plugins/multipath/multipath_rtt.plugin
WARNING: direct plugin insertion at client might interfere with remote plugin injection...
Testing scenario: <0:index.html;4:test.html;8:/1234567;12:main.jpg;16:war-and-peace.txt;20:en/latest/;24:/file-123K>
No server name specified, certificate will not be verified.
include multipath_cond.plugin...
create memory manager for plugin be.qdeconinck.multipath.rtt
create fixed block size memory manager
Successfully inserted preplugin plugins/multipath/multipath_rtt_cond.plugin
include multipath.plugin...
create memory manager for plugin be.qdeconinck.multipath.rtt
create dynamic memory manager
Successfully inserted local plugin plugins/multipath/multipath_rtt.plugin
26b3ba679a99a813: Sending packet type: 2 (initial), S0, Version ff00001d,
26b3ba679a99a813: <26b3ba679a99a813>, <30b9278ce0ac735c>, Seq: 0, pl: 1206
26b3ba679a99a813: Prepared 1206 bytes
26b3ba679a99a813: Crypto HS frame, offset 0, length 275: 0100010f0303d710...
26b3ba679a99a813: padding, 927 bytes
26b3ba679a99a813: Sending 1252 bytes to 127.0.0.1:4443 at T=0.019404 (5d4603de9c87e)
Select returns 1252, from length 28, after 12 (delta_t was 0)
26b3ba679a99a813: Receiving 1252 bytes from 127.0.0.1:4443 at T=0.038752 (5d4603dea1412)
26b3ba679a99a813: Receiving packet type: 2 (initial), S0, Version ff00001d,
26b3ba679a99a813: <30b9278ce0ac735c>, <5c2954282a467913>, Seq: 0, pl: 133
26b3ba679a99a813: Decrypted 133 bytes
26b3ba679a99a813: ACK (nb=0), 0
26b3ba679a99a813: Crypto HS frame, offset 0, length 123: 02000077030397ee...
ERROR: trying to get input 5, but there are only 5 inputs available
Segment Fault
The server can receive the first initial packet from the client and keeps sending packets but the client has shut. Maybe I used the wrong commands?
from pquic.
@The3ternum Hi! Could you still remember the commands you used for the multipath plugin? I'm currently using
./picoquicdemo -P plugins/multipath/multipath_rtt_cond.plugin -P plugins/multipath/multipath_rtt.plugin
at the server side and
./picoquicdemo -P plugins/multipath/multipath_rtt_cond.plugin -P plugins/multipath/multipath_rtt.plugin -p 4443 127.0.0.1
at the client side.
The client logs:
Starting PicoQUIC connection to server IP = 127.0.0.1, port = 4443 and 2 local plugins local plugin plugins/multipath/multipath_rtt_cond.plugin local plugin plugins/multipath/multipath_rtt.plugin WARNING: direct plugin insertion at client might interfere with remote plugin injection... Testing scenario: <0:index.html;4:test.html;8:/1234567;12:main.jpg;16:war-and-peace.txt;20:en/latest/;24:/file-123K> No server name specified, certificate will not be verified. include multipath_cond.plugin... create memory manager for plugin be.qdeconinck.multipath.rtt create fixed block size memory manager Successfully inserted preplugin plugins/multipath/multipath_rtt_cond.plugin include multipath.plugin... create memory manager for plugin be.qdeconinck.multipath.rtt create dynamic memory manager Successfully inserted local plugin plugins/multipath/multipath_rtt.plugin 26b3ba679a99a813: Sending packet type: 2 (initial), S0, Version ff00001d, 26b3ba679a99a813: <26b3ba679a99a813>, <30b9278ce0ac735c>, Seq: 0, pl: 1206 26b3ba679a99a813: Prepared 1206 bytes 26b3ba679a99a813: Crypto HS frame, offset 0, length 275: 0100010f0303d710... 26b3ba679a99a813: padding, 927 bytes 26b3ba679a99a813: Sending 1252 bytes to 127.0.0.1:4443 at T=0.019404 (5d4603de9c87e) Select returns 1252, from length 28, after 12 (delta_t was 0) 26b3ba679a99a813: Receiving 1252 bytes from 127.0.0.1:4443 at T=0.038752 (5d4603dea1412) 26b3ba679a99a813: Receiving packet type: 2 (initial), S0, Version ff00001d, 26b3ba679a99a813: <30b9278ce0ac735c>, <5c2954282a467913>, Seq: 0, pl: 133 26b3ba679a99a813: Decrypted 133 bytes 26b3ba679a99a813: ACK (nb=0), 0 26b3ba679a99a813: Crypto HS frame, offset 0, length 123: 02000077030397ee... ERROR: trying to get input 5, but there are only 5 inputs available Segment Fault
The server can receive the first initial packet from the client and keeps sending packets but the client has shut. Maybe I used the wrong commands?
I'm receiving this error as well. How did you fix this? I am currently running ./picoquicdemo -P plugins/multipath/multipath_rtt_cond.plugin
for the server and ./picoquicdemo -4 -G 10000 -P plugins/multipath/multipath_rtt_cond.plugin -p 4443 127.0.0.1
for the client
from pquic.
What platform are you running this on?
from pquic.
Ubuntu 20.04. I managed to avoid the segmentation fault, but I still see the same error statement, "trying to get input 5..."
from pquic.
ERROR: trying to get input 5, but there are only 5 inputs available
, this one is not a real problem but a corner case in the plugin that we never fixed. I assume your platform is x86 64bits then. Does the transfer completes? How did you prevent the segmentation fault from happening?
from pquic.
Related Issues (20)
- how to run pquic with multipath plugins HOT 5
- load balance work with MPQUIC
- How multiple path can exist? HOT 1
- Mac OS build errors
- How to use PQUIC with multipath plugin to transport in Internet
- error while compiling HOT 1
- How to ensure pquic use HOT 1
- Problem about using multipath plugin HOT 1
- What are the differences between plugins with & without "cond" HOT 2
- Multipath Plugin does not establish subflows
- Invalid original_destination_connection_id HOT 2
- Retention of the unused encryption keys HOT 2
- Limitless active_connection_id_limit HOT 2
- Post request
- Incorrect way of prunning the retransmission queue. HOT 2
- /usr/bin/ld: cannot find -lprofiler HOT 1
- Segmentation fault (core dumped)
- -n sni is not opening on specified server
- /usr/bin/ld: cannot find -lprofiler: No such file or directory HOT 1
- Difference between picoquic and p-quic
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pquic.