qdeconinck / mp-quic

Please read https://multipath-quic.org/2017/12/09/artifacts-available.html to figure out how to setup the code.
MIT License
176 stars 71 forks source link

MPQUIC installation #42

Closed Zack-Tsang closed 1 year ago

Zack-Tsang commented 1 year ago

Hello, everybody! I want to install the mpquic in real environment, however, I could not install when I executed _go get github.com/lucas-clemente/quic-go and go get -t -u ./... . Does anybody successfully install it? I would very appreciated if someone could tell me how to install it. Thank you so much for your attention and participation.

Zack-Tsang commented 1 year ago

Hello, Quentin De Coninck, thanks for your excellent work. I compiled it by using Go 1.19.6, however, I met so many errors.

1) When I executed go get github.com/lucas-clemente/quic-go, the errors are as following:

use of internal package github.com/quic-go/quic-go/internal/ackhandler not allowed use of internal package github.com/quic-go/quic-go/internal/flowcontrol not allowed use of internal package github.com/quic-go/quic-go/internal/handshake not allowed use of internal package github.com/quic-go/quic-go/internal/logutils not allowed use of internal package github.com/quic-go/quic-go/internal/protocol not allowed use of internal package github.com/quic-go/quic-go/internal/qerr not allowed use of internal package github.com/quic-go/quic-go/internal/utils not allowed use of internal package github.com/quic-go/quic-go/internal/utils/linkedlist not allowed use of internal package github.com/quic-go/quic-go/internal/wire not allowed

2) And I omitted these errors, when I run go get -t -u ./..., the errors I met are as following: internal/crypto/cert_cache.go:12:24: cannot use generic type lru.Cache[K comparable, V any] without instantiation internal/crypto/cert_cache.go:44:37: cannot infer K (/home/zhiy/go/src/github.com/hashicorp/golang-lru/lru.go:27:10)

Would you please tell me how to fix these problems? Thanks a lot!

snopytas commented 1 year ago

Hi, did you try the tutorial on this page:

https://multipath-quic.org/2017/12/09/artifacts-available.html

Section "Starting from the Mininet VM (skip if you downloaded our VM)"

Actually you don't need mininet. It works with golang up to version 1.15.

bailiao commented 1 year ago

@snopytas hello, I'm also trying to install the mquic by using Go 1.20.2, but the packet "go get github.com/lucas-clemente/quic-go" is totally different now. Is there any way to successfully run mpquic tests with higher version Go?

Thank you in advance!

snopytas commented 1 year ago

Hi @bailiao , I only fully worked with mp-quic using go 1.15. I'm not a go expert, but I know that starting from 1.16 the way how dependencies are installed changed. As mentioned in this pull request [1] there is a patched version of mp-quic at [2] for go 1.17.7.

I achieved to run the example program by using go 1.20 with the following commands:
git clone https://github.com/jmwample/mp-quic/tree/conext17-1 cd mp-quic/example go run main.go -v

The dependencies will be installed and after that the output is Created pconn_manager, any on [::]:6121 Listening for udp connections on [::]:6121

[1] https://github.com/qdeconinck/mp-quic/pull/33 [2] https://github.com/jmwample/mp-quic/tree/conext17-1

Zack-Tsang commented 1 year ago

Hi, did you try the tutorial on this page:

https://multipath-quic.org/2017/12/09/artifacts-available.html

Section "Starting from the Mininet VM (skip if you downloaded our VM)"

Actually you don't need mininet. It works with golang up to version 1.15.

Thank you, snopytas! I have tried, however, I failed several times. I will try with version 1.15, thanks again!