-
-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Add additional RoCE extended transport headers (such as DETH and ImmDt) #3408
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
base: master
Are you sure you want to change the base?
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #3408 +/- ##
=======================================
Coverage 81.62% 81.62%
=======================================
Files 359 359
Lines 86052 86092 +40
=======================================
+ Hits 70237 70275 +38
- Misses 15815 15817 +2
|
e47caf2
to
215e36a
Compare
Very sorry about the delay regarding this PR ! |
Don't worry about it 😄 |
215e36a
to
70b8a56
Compare
70b8a56
to
ae8d063
Compare
is this PR going to be merged? |
Not as-is, no. A lot feedback has not been addressed. |
Hi @gpotter2, I would be happy to fix this pull request (and continue with other parts of the RoCE spec), but I wanted to consult with you on how to best represent the RoCE protocol stack within scapy. I believe the main issue with the pull request was how the code examines upper layers in order to determine the next layer. With RoCE, a single opcode field within the BTH header can decide several subsequent layers. For example, an opcode of UD_SEND_ONLY_WITH_IMMEDIATE should tell the parser that the next header after BTH is the DETH header, and the one after that is the ImmDt. I'm not sure what's the best way to represent this in scapy. I can see three alternatives:
I can see there are pros and cons to each method, so I wonder if the scapy project has a preferred approach, or if you have any other alternative I haven't considered. Thanks, |
617993b
to
c783a2d
Compare
Allow parsing additional subheaders. Use ConditionalFields to enable subheaders according to the opcode.
c783a2d
to
e43e500
Compare
Allow parsing unreliable datagram headers. The code adds guess_payload_class
functions to find the correct sub-header according to BTH.opcode, and also
automatic selection of the opcode when possible.