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

LIT-134 Initial implementation of Path MTU Discovery #128

Merged
merged 3 commits into from Oct 19, 2023

Conversation

expressvpn-tom-l
Copy link
Contributor

@expressvpn-tom-l expressvpn-tom-l commented Oct 16, 2023

Description

Initial implementation of Path MTU Discovery, based on RFC 8899.

Motivation and Context

The Maximum Transmission Unit (MTU) is the largest amount of data that can be transmitted in a single packet on a network. It is a parameter that is determined by the underlying network technology, and can be configured on network devices (such as routers and switches).

The MTU is important because it determines the maximum size of data that can be transmitted across a network without fragmentation. If a packet is larger than the MTU, it is fragmented into smaller packets to be transmitted across the network, and then reassembled at the receiver. Fragmentation can result in additional processing overhead and increased network traffic, which can impact performance.

The goal of this feature is to allow Lightway seamlessly adapt the Path MTU to any network and reduce the connected-but-cannot-browse issues.

How Has This Been Tested?

Unit and integration tested.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

  • My code follows the code style of this project.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • All active GitHub checks are passing
  • The correct base branch is being used, if not main

src/he/conn.c Outdated Show resolved Hide resolved
src/he/pmtud.c Outdated Show resolved Hide resolved
test/he/test_conn.c Outdated Show resolved Hide resolved
test/he/test_conn.c Outdated Show resolved Hide resolved
Copy link
Contributor

@expressvpn-andre-l expressvpn-andre-l left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks Tom, from what I can tell the code logic is fine. I just have some suggestions and small nits. I've also convinced myself that the state machine handles delayed acks coming back properly, but it would be good to have a test case for that.

test/he/test_pmtud.c Outdated Show resolved Hide resolved
test/he/test_pmtud.c Show resolved Hide resolved
test/he/test_pmtud.c Outdated Show resolved Hide resolved
test/he/test_pmtud.c Outdated Show resolved Hide resolved
test/he/test_pmtud.c Outdated Show resolved Hide resolved
test/he/test_pmtud.c Outdated Show resolved Hide resolved
test/he/test_pmtud.c Show resolved Hide resolved
src/he/conn.c Outdated Show resolved Hide resolved
src/he/pmtud.c Outdated Show resolved Hide resolved
src/he/pmtud.c Show resolved Hide resolved
src/he/pmtud.c Show resolved Hide resolved
src/he/conn.c Outdated Show resolved Hide resolved
src/he/conn.c Show resolved Hide resolved
src/he/pmtud.c Show resolved Hide resolved
src/he/pmtud.c Show resolved Hide resolved
src/he/pmtud.c Show resolved Hide resolved
Copy link
Contributor

@kp-mariappan-ramasamy kp-mariappan-ramasamy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@expressvpn-tom-l expressvpn-tom-l merged commit 103a088 into main Oct 19, 2023
35 checks passed
@expressvpn-tom-l expressvpn-tom-l deleted the LIT-134-pmtud-mvp-impl branch October 19, 2023 03:11
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.

None yet

3 participants