wireshark/docbook/release-notes.adoc

221 lines
9.9 KiB
Plaintext
Raw Normal View History

include::attributes.adoc[]
:stylesheet: ws.css
:linkcss:
:copycss: {stylesheet}
= Wireshark {wireshark-version} Release Notes
// Asciidoctor Syntax Quick Reference:
// https://asciidoctor.org/docs/asciidoc-syntax-quick-reference/
This is an experimental release intended to test new features for Wireshark 4.0.
== What is Wireshark?
Wireshark is the worlds most popular network protocol analyzer.
It is used for troubleshooting, analysis, development and education.
== Whats New
NOTE: We no longer ship packages for 32-bit Windows. wsbuglink:17779[]
2021-11-12 10:11:25 +00:00
* The PCRE2 library (https://www.pcre.org/) is now a required dependency to build Wireshark.
* You must now have a compiler with C11 support in order to build Wireshark.
2021-11-12 10:11:25 +00:00
Many improvements have been made.
See the “New and Updated Features” section below for more details.
// === Bug Fixes
// The following bugs have been fixed:
//* wsbuglink:5000[]
//* wsbuglink:6000[Wireshark bug]
//* cveidlink:2014-2486[]
2021-11-19 02:36:37 +00:00
//* Wireshark insists on subscribing to two dozen streaming services but only watches three.
=== New and Updated Features
2021-11-19 02:36:37 +00:00
The following features are new (or have been significantly updated) since version 3.6.0:
2021-12-09 21:41:07 +00:00
* The Windows installers now ship with Npcap 1.60.
They previously shipped with Npcap 1.55.
* Display filter syntax:
** Set elements must be separated using a comma, e.g: {1, 2, "foo"}. Using only whitespace as separator was deprecated in 3.6 and is now a syntax error.
2021-11-19 02:36:37 +00:00
** Adds support for some additional character escape sequences in double quoted strings.
Besides octal and hex byte specification the following C escape sequences are now supported with the same meaning: \a, \b, \f, \n, \r, \t, \v.
Previously they were only supported with character constants.
** Unrecognized escape sequences are now treated as a syntax error. Previously they were treated as a literal character.
In addition to the sequences indicated above, backslash, single quotation and double quotation mark are also valid sequences: \\, \', \".
2021-11-19 02:36:37 +00:00
** The display filter engine now uses PCRE2 instead of GRegex (GLib bindings to the older end-of-life PCRE library).
PCRE2 is compatible with PCRE so the user-visible changes should be minimal.
Some exotic patterns may now be invalid and require rewriting.
** Adds a new strict equality operator "===" or "all_eq". The expression "a === b" is true if and only if all a's are equal to b.
The negation of "===" can now be written as "!==" (any_ne).
** Adds the aliases "any_eq" for "==" and "all_ne" for "!=".
2022-03-30 13:35:38 +00:00
** The operator "~=" is deprecated and will be removed in a future version. Use "!==" with the same meaning instead.
** Date and time can be given in UTC using ISO 8601 (with 'Z' timezone) or by appending the suffix "UTC" to the legacy formats.
Otherwise local time is used.
** Integer literal constants may be written in binary (in addition to decimal/octal/hexadecimal) using the prefix "0b" or "0B".
dfilter: Add special syntax for literals and names The syntax for protocols and some literals like numbers and bytes/addresses can be ambiguous. Some protocols can be parsed as a literal, for example the protocol "fc" (Fibre Channel) can be parsed as 0xFC. If a numeric protocol is registered that will also take precedence over any literal, according to the current rules, thereby breaking numerical comparisons to that number. The same for an hypothetical protocol named "true", etc. To allow the user to disambiguate this meaning introduce new syntax. Any value prefixed with ':' or enclosed in <,> will be treated as a literal value only. The value :fc or <fc> will always mean 0xFC, under any context. Never a protocol whose filter name is "fc". Likewise any value prefixed with a dot will always be parsed as an identifier (protocol or protocol field) in the language. Never any literal value parsed from the token "fc". This allows the user to be explicit about the meaning, and between the two explicit methods plus the ambiguous one it doesn't completely break any one meaning. The difference can be seen in the following two programs: Filter: frame == fc Constants: Instructions: 00000 READ_TREE frame -> reg#0 00001 IF-FALSE-GOTO 5 00002 READ_TREE fc -> reg#1 00003 IF-FALSE-GOTO 5 00004 ANY_EQ reg#0 == reg#1 00005 RETURN -------- Filter: frame == :fc Constants: 00000 PUT_FVALUE fc <FT_PROTOCOL> -> reg#1 Instructions: 00000 READ_TREE frame -> reg#0 00001 IF-FALSE-GOTO 3 00002 ANY_EQ reg#0 == reg#1 00003 RETURN The filter "frame == fc" is the same as "filter == .fc", according to the current heuristic, except the first form will try to parse it as a literal if the name does not correspond to any registered protocol. By treating a leading dot as a name in the language we necessarily disallow writing floats with a leading dot. We will also disallow writing with an ending dot when using unparsed values. This is a backward incompatibility but has the happy side effect of making the expression {1...2} unambiguous. This could either mean "1 .. .2" or "1. .. 2". If we require a leading and ending digit then the meaning is clear: 1.0..0.2 -> 1.0 .. 0.2 Fixes #17731.
2022-02-22 21:55:05 +00:00
** New syntax to disambiguate literals from identifiers. Every value with a leading dot is a protocol or protocol field.
Every value with a leading colon or in between angle brackets is a literal value. See the User Guide for details.
** Floats must be written with a leading and ending digit. For example the values ".7" and "7." are now invalid as floats.
2022-03-30 13:35:38 +00:00
It must be written "0.7" and "7.0" respectively.
** The "bitwise and" operator is now a first-class bit operator, not a boolean operator. In particular this means
it is now possible to mask bits, e.g.: frame[0] & 0x0F == 3.
** Arithmetic is supported for numeric fields with the usual operators: +, -, *, /, %. Arithmetic expressions must be grouped using
curly brackets (not parenthesis).
** Logical AND now has higher precedence than logical OR, in line with most programming languages.
** Adds new display filter functions max(), min() and abs().
dfilter: Allow arithmetic expressions as function arguments This allows writing moderately complex expressions, for example a float epsilon test (#16483): Filter: {abs(_ws.ftypes.double - 1) / max(abs(_ws.ftypes.double), abs(1))} < 0.01 Syntax tree: 0 TEST_LT: 1 OP_DIVIDE: 2 FUNCTION(abs#1): 3 OP_SUBTRACT: 4 FIELD(_ws.ftypes.double) 4 FVALUE(1 <FT_DOUBLE>) 2 FUNCTION(max#2): 3 FUNCTION(abs#1): 4 FIELD(_ws.ftypes.double) 3 FUNCTION(abs#1): 4 FVALUE(1 <FT_DOUBLE>) 1 FVALUE(0.01 <FT_DOUBLE>) Instructions: 00000 READ_TREE _ws.ftypes.double -> reg#1 00001 IF_FALSE_GOTO 3 00002 SUBRACT reg#1 - 1 <FT_DOUBLE> -> reg#2 00003 STACK_PUSH reg#2 00004 CALL_FUNCTION abs(reg#2) -> reg#0 00005 STACK_POP 1 00006 IF_FALSE_GOTO 24 00007 READ_TREE _ws.ftypes.double -> reg#1 00008 IF_FALSE_GOTO 9 00009 STACK_PUSH reg#1 00010 CALL_FUNCTION abs(reg#1) -> reg#4 00011 STACK_POP 1 00012 IF_FALSE_GOTO 13 00013 STACK_PUSH reg#4 00014 STACK_PUSH 1 <FT_DOUBLE> 00015 CALL_FUNCTION abs(1 <FT_DOUBLE>) -> reg#5 00016 STACK_POP 1 00017 IF_FALSE_GOTO 18 00018 STACK_PUSH reg#5 00019 CALL_FUNCTION max(reg#5, reg#4) -> reg#3 00020 STACK_POP 2 00021 IF_FALSE_GOTO 24 00022 DIVIDE reg#0 / reg#3 -> reg#6 00023 ANY_LT reg#6 < 0.01 <FT_DOUBLE> 00024 RETURN We now use a stack to pass arguments to the function. The stack is implemented as a list of lists (list of registers). Arguments may still be non-existent to functions (this is a feature). Functions must check for nil arguments (NULL lists) and handle that case. It's somewhat complicated to allow literal values and test compatibility for different types, both because of lack of type information with unparsed/literal and also because it is an underdeveloped area in the code. In my limited testing it was good enough and useful, further enhancements are left for future work.
2022-04-16 01:42:20 +00:00
** Functions can accept expressions as arguments, including other functions. Previously only protocol
fields and slices were syntactically valid function arguments.
** New syntax to match a specific layer in the protocol stack. For example ip.addr#2 == 1.1.1.1
matches only the inner layer in an IP-over-IP packet.
* text2pcap and "Import from Hex Dump":
** text2pcap supports writing the output file in all the capture file formats
that wiretap library supports, using the same "-F" option as editcap,
mergecap, and tshark.
** text2pcap supports selecting the encapsulation type of the output file
format using the wiretap library short names with an "-E" option, similiar
to the "-T" option of editcap.
** text2pcap has been updated to use the new logging output options and the
"-d" flag has been removed. The "debug" log level corresponds to the old
"-d" flag, and the "noisy" log level corresponds to using "-d" multiple times.
** text2pcap and Import from Hex Dump support writing fake IP headers (and fake
TCP, UDP, and SCTP headers) to files with Raw IP, Raw IPv4, and Raw IPv6
encapsulations, in addition to Ethernet encapsulation as previously.
** text2pcap supports scanning the input file using a custom regular expression,
as supported in Import from Hex Dump in Wireshark 3.6.x.
** In general, text2pcap and wireshark's Import from Hex Dump have feature
parity.
* HTTP2 dissector now supports using fake headers to parse the DATAs of streams captured without first HEADERS frames of a long-lived stream (like
gRPC streaming call which allows sending many request or response messages in one HTTP2 stream). User can specify fake headers according to the
server port, stream id and direction of the long-lived stream that we start capturing packets after it is established.
* Mesh Connex (MCX) support in existing 802.11 packets.
* Capture Options dialog contains same configuration icon as Welcome Screen. It is possible to configure interface there.
* Extcap dialog remembers password items during runtime therefore it is possible to run extcap multiple times in row. Passwords are never stored to disk.
* It is possible to set extcap passwords on cli for tshark and other cli tools.
* Extcap configuration dialog now supports and remembers empty strings. There are new buttons to reset a value back to default value.
* Support to display JSON mapping for Protobuf message.
* macOS debugging symbols are now shipped in separate packages.
* ZigBee ZCL Messaging: rename zbee_zcl_se.msg.msg_ctrl.depreciated to zbee_zcl_se.msg.msg_ctrl.deprecated
* The interface list on the welcome page sorts active interfaces first and only displays the sparkline for active interfaces.
Additionally, the interfaces can now be hidden/unhidden via the context menu in the interface list
* ETW reader now supports to display IP packets from an event trace logfile or an event trace live session
=== Removed Features and Support
* CMake: The options starting with DISABLE_something were renamed ENABLE_something for consistency.
For example DISABLE_WERROR=On became ENABLE_WERROR=Off. The defaults are unchanged.
// === Removed Dissectors
=== New File Format Decoding Support
[commaize]
--
--
=== New Protocol Support
2020-10-22 19:13:21 +00:00
// Add one protocol per line between the -- delimiters in the format
2021-11-19 02:36:37 +00:00
// “Full protocol name (Abbreviation)”
// git log --oneline --diff-filter=A --stat v3.7.0rc0.. epan/dissectors plugins
Switch from AsciiDoc to Asciidoctor. Switch the markup text processor for files in the docbook directory from AsciiDoc to Asciidoctor. Asciidoctor has several useful features (such as direct PDF output) and is actively developed. It's written in Ruby but that dependency can be sidestepped with AsciidoctorJ, a self-contained bundle that only depends on the JRE. The current toolchain targets require Python, AsciiDoc, DocBook XML, DocBook XSL, Java, FOP, xsltproc, lynx, and the HTMLHelp compiler: HTML: AsciiDoc → DocBook XML → xsltproc + DocBook XSL Chunked HTML: AsciiDoc → DocBook XML → xsltproc + DocBook XSL PDF: AsciiDoc → DocBook XML → xsltproc + DocBook XSL → FOP HTMLHelp: AsciiDoc → DocBook XML → xsltproc + DocBook XSL → HHC This change removes the AsciiDoc and FOP requirements and adds either AsciidoctorJ or Asciidoctor + Ruby: HTML: Asciidoctor → DocBook XML → xsltproc + DocBook XSL Chunked HTML: Asciidoctor → DocBook XML → xsltproc + DocBook XSL PDF: Asciidoctor HTMLHelp: Asciidoctor → DocBook XML → xsltproc + DocBook XSL → HHC Ideally we could generate all of these using AsciidoctorJ, Java, and lynx. Unfortunately we're not there yet. The release notes depend on several macros (ws-buglink, ws-salink, cve-idlink, sort-and-group). Add Asciidoctor (Ruby) equivalents. Remove the BUILD_xxx_GUIDES CMake options and add various output targets automatically. This means that you have to build the various documentation targets explicitly. Change-Id: I31930677a656b99b1c6839bb6c33a13db951eb9a Reviewed-on: https://code.wireshark.org/review/25668 Petri-Dish: Gerald Combs <gerald@wireshark.org> Tested-by: Petri Dish Buildbot Reviewed-by: Gerald Combs <gerald@wireshark.org>
2017-10-19 22:03:55 +00:00
[commaize]
--
Allied Telesis Loop Detection (AT LDF)
AUTOSAR I-PDU Multiplexer (AUTOSAR I-PduM)
DTN Bundle Protocol Version 7 (BPv7)
DTN Bundle Protocol Security (BPSec)
DTN TCP Convergence Layer Protocol (TCPCL)
DVB Selection Information Table (DVB SIT)
Enhanced Cash Trading Interface 10.0 (XTI)
Enhanced Order Book Interface 10.0 (EOBI)
Enhanced Trading Interface 10.0 (ETI)
FiveCo's Legacy Register Access Protocol (5co-legacy)
Generic Data Transfer Protocol (GDT)
Host IP Configuration Protocol (HICP)
Mesh Connex (MCX)
Microsoft Cluster Remote Control Protocol (RCP)
Realtek
REdis Serialization Protocol v2 (RESP)
Secure File Transfer Protocol (sftp)
Secure Host IP Configuration Protocol (SHICP)
USB Attached SCSI (UASP)
ZBOSS NCP
gRPC Web (gRPC-Web)
--
=== Updated Protocol Support
Too many protocols have been updated to list here.
=== New and Updated Capture File Support
// There is no new or updated capture file support in this release.
// Add one file type per line between the -- delimiters.
Switch from AsciiDoc to Asciidoctor. Switch the markup text processor for files in the docbook directory from AsciiDoc to Asciidoctor. Asciidoctor has several useful features (such as direct PDF output) and is actively developed. It's written in Ruby but that dependency can be sidestepped with AsciidoctorJ, a self-contained bundle that only depends on the JRE. The current toolchain targets require Python, AsciiDoc, DocBook XML, DocBook XSL, Java, FOP, xsltproc, lynx, and the HTMLHelp compiler: HTML: AsciiDoc → DocBook XML → xsltproc + DocBook XSL Chunked HTML: AsciiDoc → DocBook XML → xsltproc + DocBook XSL PDF: AsciiDoc → DocBook XML → xsltproc + DocBook XSL → FOP HTMLHelp: AsciiDoc → DocBook XML → xsltproc + DocBook XSL → HHC This change removes the AsciiDoc and FOP requirements and adds either AsciidoctorJ or Asciidoctor + Ruby: HTML: Asciidoctor → DocBook XML → xsltproc + DocBook XSL Chunked HTML: Asciidoctor → DocBook XML → xsltproc + DocBook XSL PDF: Asciidoctor HTMLHelp: Asciidoctor → DocBook XML → xsltproc + DocBook XSL → HHC Ideally we could generate all of these using AsciidoctorJ, Java, and lynx. Unfortunately we're not there yet. The release notes depend on several macros (ws-buglink, ws-salink, cve-idlink, sort-and-group). Add Asciidoctor (Ruby) equivalents. Remove the BUILD_xxx_GUIDES CMake options and add various output targets automatically. This means that you have to build the various documentation targets explicitly. Change-Id: I31930677a656b99b1c6839bb6c33a13db951eb9a Reviewed-on: https://code.wireshark.org/review/25668 Petri-Dish: Gerald Combs <gerald@wireshark.org> Tested-by: Petri Dish Buildbot Reviewed-by: Gerald Combs <gerald@wireshark.org>
2017-10-19 22:03:55 +00:00
[commaize]
--
--
// === New and Updated Capture Interfaces support
//_Non-empty section placeholder._
2021-12-03 03:09:31 +00:00
=== Major API Changes
* proto.h: The field display types "STR_ASCII" and "STR_UNICODE" were removed. Use "BASE_NONE" instead.
== Getting Wireshark
Wireshark source code and installation packages are available from
https://www.wireshark.org/download.html.
=== Vendor-supplied Packages
2020-09-15 20:56:25 +00:00
Most Linux and Unix vendors supply their own Wireshark packages.
You can usually install or upgrade Wireshark using the package management system specific to that platform.
A list of third-party packages can be found on the
https://www.wireshark.org/download.html[download page]
on the Wireshark web site.
== File Locations
2020-09-15 20:56:25 +00:00
Wireshark and TShark look in several different locations for preference files, plugins, SNMP MIBS, and RADIUS dictionaries.
These locations vary from platform to platform.
You can use menu:Help[About Wireshark,Folders] or `tshark -G folders` to find the default locations on your system.
== Getting Help
2020-09-15 20:56:25 +00:00
The Users Guide, manual pages and various other documentation can be found at
https://www.wireshark.org/docs/
2020-09-15 20:56:25 +00:00
Community support is available on
https://ask.wireshark.org/[Wiresharks Q&A site]
2020-09-15 20:56:25 +00:00
and on the wireshark-users mailing list.
Subscription information and archives for all of Wiresharks mailing lists can be found on
https://www.wireshark.org/lists/[the web site].
2020-09-15 20:56:25 +00:00
Bugs and feature requests can be reported on
https://gitlab.com/wireshark/wireshark/-/issues[the issue tracker].
// Official Wireshark training and certification are available from
// https://www.wiresharktraining.com/[Wireshark University].
== Frequently Asked Questions
A complete FAQ is available on the
https://www.wireshark.org/faq.html[Wireshark web site].