Last Updated: 2021-11-29 13:55:05 UTC
by Didier Stevens (Version: 1)
Wireshark version 3.6.0 was released.
It has many updates and bug fixes.
There is one change I want to highlight: the behavior of operator != (not equal) in display filters. Starting with version 3.6.0, expression "a != b" is the same as "!(a == b)".
This was not the case prior to version 3.6.0, and it's something you might have noticed (I'm sure you are aware of this if you ever took my Wireshark trainings ;-) ).
When the syntax of a display filter is correct, the background color of the display filter field is green:
If the syntax is wrong, the background color is red (<> is not a valid operator here):
And if you would use the != operator, then the background color would be yellow:
Yellow means that the syntax is correct, but that the semantics might not be what you expect. That's because fields can have multiple values. For example, field ip.addr has 2 values (ip.src and ip.dst). But ip.src can also have multiple values, for example when an IP packet is embedded inside another IP packet (an ICMP packet for example).
The yellow color is a warning: check if the semantics are what you expect, and if not, rewrite your expression: "a != b" -> "!(a == b)". This would give you a green color:
Starting with version 3.6.0, the semantics of operator != have changed. "a != b" is semantically the same as "!(a == b)" now, and the yellow color no longer appears:
FYI: if you need the "old" semantics, use operator ~= (any_ne).
If you have more information or corrections regarding our diary, please share.