You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As discussed in #4144, the SOME/IP specification allows to transmit multiple SOME/IP messages in a single TCP/UDP packet:
[PRS_SOMEIP_00535]
All Transport Protocol Bindings shall support transporting more than one SOME/IP
message in a Transport Layer PDU (i.e. UDP packet or TCP segment).
[PRS_SOMEIP_00140]
The header format allows transporting more than one SOME/IP message in a single
packet. The SOME/IP implementation shall identify the end of a SOME/IP message by
means of the SOME/IP length field. Based on the packet length field, SOME/IP shall
determine if there are additional SOME/IP messages in the packet. This shall apply for
UDP and TCP transport.
The end of each message is based on its Length field:
[PRS_SOMEIP_00042]
Length field shall contain the length in Byte starting from Request ID/Client ID until
the end of the SOME/IP message.
The current implementation of Scapy only interprets the first SOME/IP message, putting all additional messages in the payload of the first one. Please consider splitting them up according to the specification.
Scapy version
2.6.1
Python version
3.11.2
Operating system
Windows 11
Additional environment information
No response
How to reproduce
The following snippet constructs a full ethernet frame with dummy data. Its UDP payload contains three individual SOME/IP messages. They are nested in a way that the current Scapy implementation sees them as a single message. This matches the structure of real data.
Brief description
As discussed in #4144, the SOME/IP specification allows to transmit multiple SOME/IP messages in a single TCP/UDP packet:
The end of each message is based on its
Length
field:The current implementation of Scapy only interprets the first SOME/IP message, putting all additional messages in the payload of the first one. Please consider splitting them up according to the specification.
Scapy version
2.6.1
Python version
3.11.2
Operating system
Windows 11
Additional environment information
No response
How to reproduce
The following snippet constructs a full ethernet frame with dummy data. Its UDP payload contains three individual SOME/IP messages. They are nested in a way that the current Scapy implementation sees them as a single message. This matches the structure of real data.
Actual result
eth_frame.show()
shows only a single SOME/IP message:The other two messages are hidden inside the payload of the first message:
Expected result
All three SOME/IP messages should be shown individually:
Related resources
Protocol Specification: https://www.autosar.org/fileadmin/standards/R24-11/FO/AUTOSAR_FO_PRS_SOMEIPProtocol.pdf
The text was updated successfully, but these errors were encountered: