Coder Social home page Coder Social logo

Comments (10)

qdeconinck avatar qdeconinck commented on July 25, 2024 1

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.

mpiraux avatar mpiraux commented on July 25, 2024

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.

The3ternum avatar The3ternum commented on July 25, 2024

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.

mpiraux avatar mpiraux commented on July 25, 2024

Yes indeed, its our internal plugin for testing when we know that MP is supported. The _cond variants enables negotiation.

from pquic.

The3ternum avatar The3ternum commented on July 25, 2024

Thank you for the response, my client now performs the handshake and sees the transport parameter. Closing the issue now.

from pquic.

ArthurCChen avatar ArthurCChen commented on July 25, 2024

@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.

dylanfernandezdelara avatar dylanfernandezdelara commented on July 25, 2024

@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.

mpiraux avatar mpiraux commented on July 25, 2024

What platform are you running this on?

from pquic.

dylanfernandezdelara avatar dylanfernandezdelara commented on July 25, 2024

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.

mpiraux avatar mpiraux commented on July 25, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.