Skip to content
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

Compile and run using Go 1.17.7 - w/ bifurcation/mint fixes #33

Open
wants to merge 1 commit into
base: conext17
Choose a base branch
from

Conversation

jmwample
Copy link
Contributor

@jmwample jmwample commented Mar 3, 2022

Getting the repo up and running using 1.17.7 took some small fixes:

  • modularize repo - declaring repo as the github.com/lucas-clemente/quic-go module allows it to reference internal dependencies properly in newer versions of
  • fix format strings - there were hanging formatting directives in client.go and server.go that the compiler was upset about. I assume, given context of surrounding lines, that they meant to reference the ConnectionID in the infof errors
  • modify usage of bifurcation/mint to reflect latest version
    • State() -> ConnectionState()
    • KeyLen -> KeyLengths["key"]
    • IvLen -> KeyLengths["iv"]

Replaces fixes in #32

@qdeconinck
Copy link
Owner

Thanks for your contribution. There are a few points that should be fixed/clarified before going further:

  • The conext17 branch is somewhat kept for artefact reasons, and should keep targeting Go 1.9 (whatever old it can be, it should not break the all-configured VM version). Another possibility is to create another branch (say conext17-1.17) where this PR can live (I can take care of that if this suits you)
  • What is the motivation to forward-port this code to Go 1.17?

@jmwample
Copy link
Contributor Author

What is the motivation to forward-port this code to Go 1.17?

I am interested in using this code for a proof of concept research effort. Go 1.17 happens to be the latest version. I just wanted to give the option to upstream some the changes that got the minitopo experiments running for me on mininet 2.3.0 w/ golang 1.17.

should keep targeting Go 1.9

I couldn't find a way to make this work with go 1.9 (even with the configured VM) I think some of the packages that this depends on have updated and are not longer compatible with go 1.9. This could mean that pinning other packages to a commit / version would fix issues (or the VM could include all required packages using vendoring or something similar). But it was simple enough to get it working with more recent versions of golang.

If this repo is meant to track the state of the project for artefact reasons, I totally understand. Feel free to close my PRs. If you know of an alternative multipath quic implementation (preferably in golang) that is receiving current support I would be happy to check that out to. However, this seems to provide the features that I am interested in using.

@qdeconinck
Copy link
Owner

I think this is fine keeping the PR, especially for those wanting to run the code with current Go version, thanks for that!

And happy if this code suits your use case. Just be aware that this version of Multipath QUIC is based on a very old version of QUIC that is very different from the standardised IETF QUIC. Multipath IETF QUIC is an ongoing work at IETF and some implementations may appear soon, although I'm not aware of any golang one so far.

@snopytas snopytas mentioned this pull request Apr 9, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants