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

Add support for variable TCP-header options #77

Open
zeeshanlakhani opened this issue Apr 8, 2020 · 0 comments
Open

Add support for variable TCP-header options #77

zeeshanlakhani opened this issue Apr 8, 2020 · 0 comments
Labels
enhancement New feature or request

Comments

@zeeshanlakhani
Copy link
Member

zeeshanlakhani commented Apr 8, 2020

Background

As per IETF RFC #793's Options field:

Options may occupy space at the end of the TCP header and are a multiple of 8 bits in length. All options are included in the checksum. An option may begin on any octet boundary. There are two cases for the format of an option:

  • Case 1: A single octet of option-kind.
  • Case 2: An octet of option-kind, an octet of option-length, and the actual option-data octets.

The option-length counts the two octets of option-kind and option-length as well as the option-data octets.

Note that the list of options may be shorter than the data offset field might imply. The content of the header beyond the End-of-Option option must be header padding (i.e., zero).

Currently defined options include (kind indicated in octal):

Kind Length Meaning
0 - End of option list
1 - No-Operation
2 4 Maximum Segment Size

More about these definitions can be found in the spec linked.

Currently, we've left this as a TODO in working with the data offset portion of the TCP header.

Solution?

In dealing with parsing dynamic options, we've done similar work w/ NDP options, but we need to figure out what the best fit is here for handling these specific options from the spec.

@zeeshanlakhani zeeshanlakhani added the enhancement New feature or request label Apr 8, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Development

No branches or pull requests

1 participant