Add additional RoCE extended transport headers (such as DETH and ImmDt)#3408
Add additional RoCE extended transport headers (such as DETH and ImmDt)#3408haggaie wants to merge 4 commits intosecdev:masterfrom
Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #3408 +/- ##
==========================================
- Coverage 80.10% 80.02% -0.09%
==========================================
Files 370 370
Lines 91727 91767 +40
==========================================
- Hits 73477 73433 -44
- Misses 18250 18334 +84
🚀 New features to boost your workflow:
|
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
c783a2d to
e43e500
Compare
Allow parsing additional subheaders. Use ConditionalFields to enable subheaders according to the opcode.
e43e500 to
491a485
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.