With TCP Sequence Number Analysis disabled, a new TCP conversation
with the same 5-tuple (reused ports) was not properly recognized
as the base_seq was only set with the preference enabled.
Save all dependent frames when there are multiple levels
of reassembly.
This is a retry of !6329, combined with the fix in !6509 which
were reverted in !6545.
epan: fix a segfault, introduced in !6329
After android T, BT process might be called i.e.
com.google.android.bluetooth, instead of com.android.bluetooth
It depends on what APEX version is installed.
When dissectors register for Follow Stream, have them register a
function for finding the next valid sub stream id for a given
stream and substream id pair. This function is NULL if the dissector
does not use sub stream IDs.
Use this function in follow_stream_dialog to update the sub stream
id widget (and use the absence of the function to disable and hide
the widget.) Use this function in the CLI tap-follow to determine
whether to parse a sub stream id from the command line options.
This removes the dependencies on epan/dissectors from the Qt
follow_stream_dialog, and gets us closer to having dissectors
being able to register for Follow Stream without having to update
anything in the common source code.
Fix
wireshark\epan\wslua\wslua_proto_field.c(423,29): error C2220: the following warning is treated as an error [wireshark\build\epan\wslua\wslua.vcxproj]
wireshark\epan\wslua\wslua_proto_field.c(423,29): error C2220: mask = (guint64)wslua_optguint32(L, idx, default_value); [wireshark\build\epan\wslua\wslua.vcxproj]
wireshark\epan\wslua\wslua_proto_field.c(423,29): error C2220: ^ [wireshark\build\epan\wslua\wslua.vcxproj]
wireshark\epan\wslua\wslua_proto_field.c(423,29): warning C4244: 'function': conversion from 'guint64' to 'lua_Number', possible loss of data [wireshark\build\epan\wslua\wslua.vcxproj]
wireshark\epan\wslua\wslua_proto_field.c(423,29): warning C4244: mask = (guint64)wslua_optguint32(L, idx, default_value); [wireshark\build\epan\wslua\wslua.vcxproj]
wireshark\epan\wslua\wslua_proto_field.c(423,29): warning C4244: ^ [wireshark\build\epan\wslua\wslua.vcxproj]
on Windows and
wireshark/epan/wslua/wslua_proto_field.c:1462:48: error: format specifies type 'unsigned long' but the argument has type 'guint64' (aka 'unsigned long long') [-Werror,-Wformat]
f->vs,f->mask,f->blob);
^~~~~~~
wireshark/wsutil/wmem/wmem_strutl.h:51:56: note: expanded from macro 'ws_strdup_printf'
#define ws_strdup_printf(...) wmem_strdup_printf(NULL, __VA_ARGS__)
^~~~~~~~~~~
on macOS.
Unused bytes in SLL Link Layer address can be random bytes.
Which makes the duplicate check think the packets are different.
Even if the unused bytes was the only difference.
This flag enables editcap to set the unused bytes to zeros to enable
the duplicate check to detect duplicates.
The dissection also includes adding control procedure sequence validation.
See Core_v5.3, Vol 6, Part B, Section 2.4.2.36-39 and Section 5.1.19-22.
Core_v5.3 was released in 2021.
Signed-off-by: Rubin Gerritsen <rubin.gerritsen@nordicsemi.no>
The LL_REJECT_EXT_IND is an allowed response to the LL_POWER_CONTROL_REQ,
see Core_v5.3, Vol 6, Part B, Section 5.1.17.
Performs control procedure validation one a LL_POWER_CHANGE_IND is sent
Signed-off-by: Rubin Gerritsen <rubin.gerritsen@nordicsemi.no>
Core spec 5.2, Vol 6, Part B, Section 5.3 describes how the link layer should
resolve the scenario where a collision occurs where both link layers initiate
incompabile control procedures.
This commit adds expect information for the case where these conflicts are not
handled according to spec.
Example of an invalid scenario:
M->S: LL_PHY_REQ
S->M: LL_PHY_REQ
S->M: LL_PHY_RSP
M->S: LL_PHY_UPDATE_IND
The correct sequence for this scenario is:
M->S: LL_PHY_REQ
S->M: LL_PHY_REQ
S->M: LL_PHY_RSP
M->S: LL_REJECT_EXT_IND
M->S: LL_PHY_UPDATE_IND
Signed-off-by: Rubin Gerritsen <rubin.gerritsen@nordicsemi.no>
By defining control_proc_add_frame(), control_proc_add_last_frame(), and
control_proc_add_frame_with_instant() a lot of duplicate code can be removed.
This commit makes the checks for the CIS establishment procedure follow the spec.
Previously the dissector had two bugs:
- It allowed both master and slave to initiate this procedure
- The procedure was marked as complete once the LL_CIS_RSP was received.
Signed-off-by: Rubin Gerritsen <rubin.gerritsen@nordicsemi.no>
Moves the check of starting a control procedure before the previous was complete inside
the function control_proc_start(). This check should be beformed before starting any
control procedure. Therefore it is better to simply move it inside the funciton to remove
code duplication.
Signed-off-by: Rubin Gerritsen <rubin.gerritsen@nordicsemi.no>