Compare commits
101 Commits
master
...
laforge/rs
Author | SHA1 | Date |
---|---|---|
Harald Welte | 1ba3d0f25c | |
Harald Welte | 88782ea431 | |
Harald Welte | 8fddbe2c16 | |
John Thacker | a329db7dd2 | |
Dr. Lars Völker | 5f7122828c | |
Harald Welte | ae38e9b092 | |
Harald Welte | f64e8f0796 | |
Dr. Lars Völker | 5c32f5bbd1 | |
Gerald Combs | 0a558f9143 | |
Mathis Marion | c8e2cc7552 | |
Mathis Marion | 26c691c8cd | |
Mathis Marion | ab06f6de7a | |
Mathis Marion | 9f4947609e | |
Zoran Bošnjak | 3cbb560102 | |
hidd3ncod3s | 1e5514061d | |
hidd3ncod3s | 2452c537e3 | |
hidd3ncod3s | c1c9040952 | |
Preben Guldberg | b50ed1dc80 | |
Gerald Combs | 3b7f810f36 | |
Jiří Engelthaler | 45274a7b9a | |
Martin Mathieson | 32541d81c9 | |
Jaap Keuter | cc04dad6d0 | |
Mathis Marion | d574cd2c24 | |
Mathis Marion | 0355477618 | |
Mathis Marion | bf53ea5080 | |
Dr. Lars Völker | 321932d310 | |
Gerald Combs | 9a63e4cf79 | |
John Thacker | 2a7e4982a5 | |
Jaap Keuter | 92fb895241 | |
Jaap Keuter | 4c7d2a771f | |
Jaap Keuter | 0e63c25f66 | |
Guy Harris | ff9e2494a1 | |
Igor Dmitriev | 212cec9f7b | |
Igor Dmitriev | 649b20cb44 | |
Igor Dmitriev | c11cffda3c | |
Dr. Lars Völker | 17273f2258 | |
Stig Bjørlykke | 6fc17a1303 | |
Michal Ruprich | 34d3f122d3 | |
Martin Mathieson | e6eca89501 | |
Dr. Lars Völker | 921a9a0ea2 | |
David Perry | 808fcd3c2b | |
Tomasz Moń | 248ee51e36 | |
John Thacker | a93c775849 | |
Guy Harris | d17b9baec3 | |
Martin Mathieson | d91b2448c9 | |
Mathis Marion | 2ae0c1eadc | |
Mathis Marion | 54abe7f328 | |
Mathis Marion | 0fdf91e1ec | |
John Thacker | 33ed5200a2 | |
Andreas Schultz | 6a7d6bbee6 | |
Andreas Schultz | b044959e34 | |
John Thacker | 53914b0447 | |
Martin Mathieson | c682f53222 | |
Stig Bjørlykke | 7af40c9971 | |
Guy Harris | d5a2f6fe2c | |
Gerald Combs | ffbfc1d454 | |
John Thacker | a5bdae177e | |
Gerald Combs | f6703b9b36 | |
Dr. Lars Völker | 375fa02c98 | |
Martin Mathieson | 1377421925 | |
Guy Harris | 3854770f15 | |
John Thacker | 736ed83000 | |
Dr. Lars Völker | f92d0ded8f | |
Zach Chadwick | ac28130c76 | |
John Thacker | c7823a14ec | |
John Thacker | 69d82b44ef | |
John Thacker | c9c5617aed | |
Gerald Combs | ccf01edf04 | |
Dr. Lars Völker | 5bbaf9ef35 | |
John Thacker | e1b85eacd4 | |
Alexis La Goutte | fc15fe3b4a | |
Gerald Combs | ceb5a2d55b | |
John Thacker | 224d8dba97 | |
John Thacker | 36395517d3 | |
John Thacker | 0b6e641d3c | |
John Thacker | c6c9aae152 | |
John Thacker | 4c94673401 | |
John Thacker | 0d23b6692f | |
John Thacker | 44a38f0ad4 | |
John Thacker | c9fee454e9 | |
Zach Chadwick | d98f6b16ef | |
Alexis La Goutte | 1236c07a03 | |
John Thacker | e51fea444a | |
John Thacker | 82da7faee6 | |
John Thacker | 18572b4336 | |
Stig Bjørlykke | d64114f48e | |
Martin Mathieson | 02f5fe0fe1 | |
Dr. Lars Völker | ef0a07520e | |
John Thacker | 4196076418 | |
Joris Peeraer | 31bb4ff135 | |
Gerald Combs | eb03246c6b | |
John Thacker | c998afd041 | |
John Thacker | 4fa5e0f3c9 | |
Dr. Lars Völker | 6f8eef82b4 | |
John Thacker | e7ed03d74f | |
Dr. Lars Völker | 406c8e8afd | |
Gerald Combs | 90f0814046 | |
Martin Mathieson | 29a39c1e6e | |
John Thacker | 8834c8e9de | |
John Thacker | 641434ff81 | |
John Thacker | b1460bff69 |
|
@ -886,7 +886,7 @@ ASan Menagerie Fuzz:
|
|||
extends: .fuzz-ubuntu
|
||||
stage: fuzz-asan
|
||||
script:
|
||||
- MAX_SECONDS=$(( 4 * 60 * 60 ))
|
||||
- MAX_SECONDS=$(( 6 * 60 * 60 ))
|
||||
- printf "\e[0Ksection_start:%s:cmake_section[collapsed=true]\r\e[0KRunning CMake" "$( date +%s)"
|
||||
- cmake -G Ninja -DBUILD_wireshark=OFF -DCMAKE_BUILD_TYPE=Debug -DENABLE_ASAN=ON -DCMAKE_INSTALL_PREFIX=$INSTALL_PREFIX -DENABLE_CCACHE=ON -DENABLE_WERROR=Off ..
|
||||
- printf "\e[0Ksection_end:%s:cmake_section\r\e[0K" "$( date +%s)"
|
||||
|
|
7
AUTHORS
|
@ -3021,6 +3021,7 @@ Don Chirieleison <donc[AT]mitre.org> {
|
|||
Harald Welte <laforge[AT]gnumonks.org> {
|
||||
GSM A-bis over IP dissector
|
||||
GSM A-bis OML dissector
|
||||
GSM RLP dissector
|
||||
GSMTAP dissector
|
||||
GSM SIM/USIM dissector
|
||||
Ericsson extensions to L2TP
|
||||
|
@ -4155,6 +4156,7 @@ Bharath Ravindranath <bravindranath[AT]arista.com>
|
|||
Bin Peng <binpengsmail[AT]gmail.com>
|
||||
Binh Trinh <beango[AT]gmail.com>
|
||||
Birol Capa <birol.capa[AT]siemens.com>
|
||||
Biswapriyo Nath <nathbappai[AT]gmail.com>
|
||||
Bjoern Riemer <bjoern.riemer[AT]fokus.fraunhofer.de>
|
||||
Björn Ruytenberg <bjorn[AT]bjornweb.nl>
|
||||
Bob Hinden <bob.hinden[AT]gmail.com>
|
||||
|
@ -4416,6 +4418,7 @@ Grzegorz Niemirowski <grzegorz[AT]grzegorz.net>
|
|||
Gtker <git[AT]gtker.com>
|
||||
Gtker <wireshark[AT]gtker.com>
|
||||
Guillaume Autran <gautran[AT]clearpathrobotics.com>
|
||||
Gulshan Singh <gsingh2011[AT]gmail.com>
|
||||
Gustavo Garcia <gustavogb[AT]gmail.com>
|
||||
Guvenc Gulce <guvenc[AT]linux.ibm.com>
|
||||
Guy Davies <aguydavies[AT]gmail.com>
|
||||
|
@ -4611,6 +4614,7 @@ Lars Christensen <larsch[AT]belunktum.dk>
|
|||
Lars Sundström <lars.x.sundstrom[AT]ericsson.com>
|
||||
Lasse Luttermann Poulsen <lasse.luttermann[AT]gmail.com>
|
||||
Laszlo Papp <laszlo.papp[AT]hubersuhner.com>
|
||||
Laurent Fasnacht <laurent.fasnacht[AT]proton.ch>
|
||||
Laurenz Kamp <laurenz.kamp[AT]gmx.de>
|
||||
Lee Mitchell <lee[AT]indigopepper.com>
|
||||
Lee Serin <serinee95[AT]gmail.com>
|
||||
|
@ -4684,6 +4688,7 @@ Martin Mathieson <martin.mathieson[AT]keysight.com>
|
|||
Martin Nyhus <martin.nyhus[AT]gmx.com>
|
||||
Martin Sehnoutka <msehnout[AT]redhat.com>
|
||||
Martin Stigge <martin[AT]stigge.org>
|
||||
Martin Stigge <mstigge[AT]arista.com>
|
||||
Martin Tibenský <martin.tibensky[AT]alcatel-lucent.com>
|
||||
Martin Tschoepe <martin.tschoepe[AT]web.de>
|
||||
Martin Vit <martin[AT]voipmonitor.org>
|
||||
|
@ -4693,6 +4698,7 @@ Matan Perelman <matan1008[AT]gmail.com>
|
|||
Matej Košík <5764c029b688c1c0d24a2e97cd764f[AT]gmail.com>
|
||||
Matej Tkac <matej.tkac.mt[AT]gmail.com>
|
||||
Mathias Kurth <mathias.kurth[AT]commsolid.com>
|
||||
Mathis MARION <mathis.marion1[AT]gmail.com>
|
||||
Mathis Marion <mathis.marion[AT]silabs.com>
|
||||
Mathy Vanhoef <Mathy.Vanhoef[AT]nyu.edu>
|
||||
Matias Karhumaa <matias.karhumaa[AT]gmail.com>
|
||||
|
@ -5155,6 +5161,7 @@ Yury Gargay <yury.gargay[AT]gmail.com>
|
|||
Yuya Kawakami <github[AT]yuyarin.net>
|
||||
Yuya Kawakami <yuyarin[AT]yuyarin.net>
|
||||
Yuya Kusakabe <y-kusakabe[AT]bbsakura.net>
|
||||
Zach Chadwick <zachad[AT]qacafe.com>
|
||||
Zachary Holcomb <zholcomb2017[AT]my.fit.edu>
|
||||
Zdeněk Žamberský <zzdevel[AT]seznam.cz>
|
||||
Zhao Lin <zlbinghamton[AT]gmail.com>
|
||||
|
|
3
NEWS
|
@ -30,6 +30,9 @@ Wireshark 4.1.0 Release Notes
|
|||
default. That must be done explicitly using `cmake --install
|
||||
<builddir> --component Development`.
|
||||
|
||||
The Wireshark installation is relocatable on Linux (and other ELF
|
||||
platforms with support for relative RPATHs).
|
||||
|
||||
Many other improvements have been made. See the “New and Updated
|
||||
Features” section below for more details.
|
||||
|
||||
|
|
|
@ -3459,7 +3459,7 @@ The arguments to udp_dissect_pdus are:
|
|||
|
||||
2.9 PINOs (Protocols in name only)
|
||||
|
||||
For the typical dissector there is a 1-1 relationship between it and it's
|
||||
For the typical dissector there is a 1-1 relationship between it and its
|
||||
protocol. However, there are times when a protocol needs multiple "names"
|
||||
because it has multiple dissection functions going into the same dissector
|
||||
table. The multiple names removes confusion when picking dissection through
|
||||
|
|
|
@ -321,7 +321,7 @@ pointer is stored internally with the data structure, and subsequent calls
|
|||
The primary debugging control for wmem is the WIRESHARK_DEBUG_WMEM_OVERRIDE
|
||||
environment variable. If set, this value forces all calls to
|
||||
wmem_allocator_new() to return the same type of allocator, regardless of which
|
||||
type is requested normally by the code. It currently has three valid values:
|
||||
type is requested normally by the code. It currently has four valid values:
|
||||
|
||||
- The value "simple" forces the use of WMEM_ALLOCATOR_SIMPLE. The valgrind
|
||||
script currently sets this value, since the simple allocator is the only
|
||||
|
|
|
@ -454,9 +454,11 @@ Use a separate thread per interface.
|
|||
+
|
||||
--
|
||||
Specifies the directory into which temporary files (including capture
|
||||
files) are to be written. The default behaviour is to use your system's
|
||||
temporary directory (typically __/tmp__ on UNIX-compatible systems, such
|
||||
as Linux, macOS, \*BSD, Solaris, and AIX, and __C:\\Temp__ on Windows).
|
||||
files) are to be written. The default behavior on UNIX-compatible sytems,
|
||||
such as Linux, macOS, \*BSD, Solaris, and AIX, is to use the environment
|
||||
variable __$TMPDIR__ if set, and the system default, typically __/tmp__, if it
|
||||
is not. On Windows, the __%TEMP%__ environment variable is used, which
|
||||
typically defaults to __%USERPROFILE%\AppData\Local\Temp__.
|
||||
--
|
||||
|
||||
-v|--version::
|
||||
|
|
|
@ -79,7 +79,7 @@ class ArgumentParser(argparse.ArgumentParser):
|
|||
def _get_action_from_name(self, name):
|
||||
"""Given a name, get the Action instance registered with this parser.
|
||||
If only it were made available in the ArgumentError object. It is
|
||||
passed as it's first arg...
|
||||
passed as its first arg...
|
||||
"""
|
||||
container = self._actions
|
||||
if name is None:
|
||||
|
|
|
@ -963,9 +963,11 @@ whether the *-V* option was specified. This is the default.
|
|||
+
|
||||
--
|
||||
Specifies the directory into which temporary files (including capture
|
||||
files) are to be written. The default behaviour is to use your system's
|
||||
temporary directory (typically __/tmp__ on UNIX-compatible systems, such
|
||||
as Linux, macOS, \*BSD, Solaris, and AIX, and __C:\\Temp__ on Windows).
|
||||
files) are to be written. The default behavior on UNIX-compatible sytems,
|
||||
such as Linux, macOS, \*BSD, Solaris, and AIX, is to use the environment
|
||||
variable __$TMPDIR__ if set, and the system default, typically __/tmp__, if it
|
||||
is not. On Windows, the __%TEMP%__ environment variable is used, which
|
||||
typically defaults to __%USERPROFILE%\AppData\Local\Temp__.
|
||||
--
|
||||
|
||||
-u <seconds type>::
|
||||
|
|
|
@ -664,9 +664,11 @@ The default format is relative.
|
|||
+
|
||||
--
|
||||
Specifies the directory into which temporary files (including capture
|
||||
files) are to be written. The default behaviour is to use your system's
|
||||
temporary directory (typically __/tmp__ on UNIX-compatible systems, such
|
||||
as Linux, macOS, \*BSD, Solaris, and AIX, and __C:\\Temp__ on Windows).
|
||||
files) are to be written. The default behavior on UNIX-compatible sytems,
|
||||
such as Linux, macOS, \*BSD, Solaris, and AIX, is to use the environment
|
||||
variable __$TMPDIR__ if set, and the system default, typically __/tmp__, if it
|
||||
is not. On Windows, the __%TEMP%__ environment variable is used, which
|
||||
typically defaults to __%USERPROFILE%\AppData\Local\Temp__.
|
||||
--
|
||||
|
||||
--time-stamp-type <type>::
|
||||
|
@ -1415,10 +1417,11 @@ menu:Capture[Options]::
|
|||
--
|
||||
Initiate a live packet capture (see /"Capture Options Dialog"
|
||||
below). If no filename is specified, a temporary file will be created
|
||||
to hold the capture. The location of the file can be chosen by setting your
|
||||
TMPDIR environment variable before starting *Wireshark*. Otherwise, the
|
||||
default TMPDIR location is system-dependent, but is likely either __/var/tmp__
|
||||
or __/tmp__.
|
||||
to hold the capture. Temporary files are written in the directory listed
|
||||
in menu:Help[About Wireshark > Folders]. This location can be chosen with the
|
||||
command line option *--temp-dir*, or by setting the environment variable
|
||||
TMPDIR (on UNIX-compatible systems, such as Linux, macOS, \*BSD, Solaris,
|
||||
and AIX) or TEMP (on Windows) before starting **Wireshark**.
|
||||
--
|
||||
|
||||
menu:Capture[Start]::
|
||||
|
@ -2583,7 +2586,7 @@ menu:About[Folders]::
|
|||
+
|
||||
--
|
||||
The __Folders__ page lets you view the directory names where Wireshark is
|
||||
searching it's various configuration and other files.
|
||||
searching its various configuration and other files.
|
||||
--
|
||||
|
||||
menu:About[Plugins]::
|
||||
|
|
|
@ -109,6 +109,7 @@ DECT proprietary Mitel OMM/RFP Protocol (also named AaMiDe)
|
|||
DECT DLC protocol layer (DECT-DLC)
|
||||
DECT NWK protocol layer (DECT-NWK)
|
||||
Low Level Signalling (ATSC3 LLS)
|
||||
Train Real-Time Data Protocol (TRDP)
|
||||
--
|
||||
|
||||
=== Updated Protocol Support
|
||||
|
|
|
@ -53,10 +53,10 @@ The second part describes how the Wireshark sources are structured and how to
|
|||
change the sources such as adding a new dissector.
|
||||
--
|
||||
|
||||
include::wsdg_works.adoc[]
|
||||
|
||||
include::wsdg_build_intro.adoc[]
|
||||
|
||||
include::wsdg_works.adoc[]
|
||||
|
||||
include::wsdg_capture.adoc[]
|
||||
|
||||
include::wsdg_dissection.adoc[]
|
||||
|
|
|
@ -223,6 +223,49 @@ Follow the build procedure in <<ChSetupWindows>> to build Wireshark.
|
|||
After the build process has successfully finished, you should find a
|
||||
`Wireshark.exe` and some other files in the `run\RelWithDebInfo` directory.
|
||||
|
||||
[#ChSrcBuildType]
|
||||
==== Build Type
|
||||
|
||||
CMake can compile Wireshark for several different build types:
|
||||
|
||||
.Build Types
|
||||
|===
|
||||
|Type |Compiler Flags |Description
|
||||
|
||||
|`RelWithDebInfo`
|
||||
|`-O2 -g`
|
||||
|Default, mix of optimization and debug capabilities
|
||||
|
||||
|`Debug`
|
||||
|`-O0 -g`
|
||||
|For debugging, no optimization
|
||||
|
||||
|`Release`
|
||||
|`-O3 -DNDEBUG`
|
||||
|Optimized for speed, no debug symbols or debug level logs
|
||||
|
||||
|`MinSizeRel`
|
||||
|`-Os -DNDEBUG`
|
||||
|Optimized for size, no debug symbols or debug level logs
|
||||
|===
|
||||
|
||||
The default is `RelWithDebInfo`, which provides a good compromise of
|
||||
some optimization (`-O2`) along with including debug symbols (`-g`)
|
||||
and enabling full <<ChSrcLogging,logging capabilities>>.
|
||||
To change the build type, set the CMake variable `CMAKE_BUILD_TYPE`, e.g.:
|
||||
|
||||
[source,sh]
|
||||
----
|
||||
$ cmake .. -DCMAKE_BUILD_TYPE=Debug
|
||||
----
|
||||
|
||||
or on Windows,
|
||||
|
||||
[source,cmd]
|
||||
----
|
||||
> msbuild /m /p:Configuration=Debug Wireshark.sln
|
||||
----
|
||||
|
||||
[#ChSrcRunFirstTime]
|
||||
=== Run Your Version Of Wireshark
|
||||
|
||||
|
@ -267,6 +310,16 @@ As with the Unix-like build described above, you can run Wireshark from the buil
|
|||
[#ChSrcDebug]
|
||||
=== Debug Your Version Of Wireshark
|
||||
|
||||
Optimization can make debugging a bit more difficult, e.g. by changing the
|
||||
execution order of statements. To disable optimization, set the
|
||||
<<ChSrcBuildType,build type>> to `Debug`.
|
||||
|
||||
Conversely, the `Release` or `MinSizeRel` build types can be used to optimize
|
||||
further for speed or size, but do not include debug symbols for use with
|
||||
debuggers, and completely disable <<ChSrcLoggingLevels,lower level logging>>
|
||||
and asserts, optimizing away the code path. Ensure that you have not built with
|
||||
one of those types before attempting debugging.
|
||||
|
||||
[#ChSrcLogging]
|
||||
==== Wireshark Logging
|
||||
|
||||
|
@ -289,7 +342,7 @@ define their own logging domain. Any string can be used as ID for a logging doma
|
|||
[#ChSrcLoggingLevels]
|
||||
===== Logging Levels
|
||||
|
||||
The following logging levels are defined:
|
||||
The following logging levels are defined from highest to lowest:
|
||||
|
||||
* error
|
||||
* critical
|
||||
|
@ -300,8 +353,12 @@ The following logging levels are defined:
|
|||
* noisy
|
||||
|
||||
By default logging output is generated for logging level "message" and above. If the logging level is lowered or raised
|
||||
all log output generated at or above this level is sent to the log output. Note that release builds by default do not
|
||||
generate log output for the logging levels debug and noisy.
|
||||
all log output generated at or above this level is sent to the log output.
|
||||
Note that if the <<ChSrcBuildType,build type>> is set to `Release` or
|
||||
`MinSizeRel`, then by default all log output for the logging levels "debug" and
|
||||
"noisy" will be optimized away by the compiler and cannot be sent to the log
|
||||
output, regardless of the logging setings. To enable debugging for all build
|
||||
types, set the CMake variable `-DENABLE_DEBUG=ON`.
|
||||
|
||||
There is also a special "echo" logging level used exclusively for temporary debugging print outs (usually
|
||||
via the `WS_DEBUG_HERE` macro).
|
||||
|
@ -385,16 +442,89 @@ such as Qt Creator, CLion, or Eclipse.
|
|||
|
||||
Additional traps can be set on Wireshark, see <<ChSrcTrapsLogging>>
|
||||
|
||||
[#ChSrcMemorySafety]
|
||||
===== Memory Safety and Leaks
|
||||
|
||||
Wireshark's wmem memory management framework makes it easy to allocate
|
||||
memory in pools with a certain scope that is freed automatically at
|
||||
a certain point (such as the end of dissecting a packet or when closing
|
||||
a file), even if a dissector raises an exception after allocating the
|
||||
memory. Memory in a pool is also freed collectively, which can be
|
||||
considerably faster than calling `free()` individually on each individual
|
||||
allocation. Proper use of wmem makes a dissector faster and less prone
|
||||
to memory leaks with unexpected data, which happens frequently with
|
||||
capture files.
|
||||
|
||||
However, wmem's block allocation can obscure issues that memory checkers
|
||||
might otherwise catch. Fortunately, the `WIRESHARK_DEBUG_WMEM_OVERRIDE`
|
||||
environment variable can be set at runtime to instruct wmem to use a specific
|
||||
memory allocator for all allocations, some of which are more compatible with
|
||||
memory checkers:
|
||||
|
||||
* `simple` - Uses `malloc()` only, no block allocation, compatible with Valgrind
|
||||
* `strict` - Finds invalid memory via canaries and scrubbing freed memory
|
||||
* `block` - Standard block allocator for file and epan scopes
|
||||
* `block_fast` - Block allocator for short-lived scope, e.g. packet, (`free()` is a no-op)
|
||||
|
||||
The `simple` allocator produces the most accurate results with tools like
|
||||
https://valgrind.org[Valgrind] and can be enabled as follows:
|
||||
|
||||
[source,sh]
|
||||
----
|
||||
$ export WIRESHARK_DEBUG_WMEM_OVERRIDE=simple
|
||||
----
|
||||
|
||||
For memory allocated without wmem but with GLib's GSlice memory allocator,
|
||||
there is a similar `G_SLICE` environment variable that can be set to
|
||||
`always-malloc` (similar to `simple`) or `debug-blocks` (similar to `strict`).
|
||||
See https://developer-old.gnome.org/glib/stable/glib-running.html for details.
|
||||
|
||||
If you're encountering memory safety bugs, you might want to build with
|
||||
https://en.wikipedia.org/wiki/AddressSanitizer[Address Sanitizer] so that
|
||||
Wireshark will immediately alert you to any detected issues.
|
||||
https://github.com/google/sanitizers/wiki/AddressSanitizer[Address Sanitizer]
|
||||
(ASAN) so that Wireshark will immediately alert you to any detected issues.
|
||||
It works with GCC or Clang, provided that the appropriate libraries are installed.
|
||||
|
||||
[source,sh]
|
||||
----
|
||||
$ cmake .. -G Ninja -DENABLE_ASAN=1
|
||||
----
|
||||
|
||||
See https://developer-old.gnome.org/glib/stable/glib-running.html
|
||||
TIP: ASAN slows things down by a factor of 2 (or more), so having a different
|
||||
build directory for an ASAN build can be useful.
|
||||
|
||||
ASAN will catch more errors when run with either the `simple` or `strict`
|
||||
wmem allocator than with the defaults. (It is more compatible with the
|
||||
`strict` allocator and the analogous GSlice `debug-blocks` option than
|
||||
Valgrind is.)
|
||||
|
||||
For additional instrumentation, ASAN supports a number of
|
||||
https://github.com/google/sanitizers/wiki/AddressSanitizerFlags[options].
|
||||
|
||||
For further investigating memory leaks, the following can be useful:
|
||||
|
||||
[source,sh]
|
||||
----
|
||||
# This slows things down a lot more but results in more precise backtraces,
|
||||
# especially when calling third party libraries (such as the C++ standard
|
||||
# library):
|
||||
$ export ASAN_OPTIONS=fast_unwind_on_malloc=0
|
||||
# This causes LeakSanitizer to print the addresses of leaked objects for
|
||||
# inspection in a debugger:
|
||||
$ export LSAN_OPTIONS=report_objects=1
|
||||
----
|
||||
|
||||
LeakSanitizer and AddressSanitizer can detect issues in third-party libraries
|
||||
that you cannot do anything about. For example, internal Qt library calls to
|
||||
the fontconfig library can produce leaks. To ignore them, create a
|
||||
https://github.com/google/sanitizers/wiki/AddressSanitizerLeakSanitizer#suppressions[suppressions file] with an appropriate entry, e.g. `leak:libfontconfig`.
|
||||
|
||||
If you are just interested in memory safety checking, but not memory
|
||||
leak debugging, disable the included https://github.com/google/sanitizers/wiki/AddressSanitizerLeakSanitizer[LeakSanitizer] with:
|
||||
|
||||
[source,sh]
|
||||
----
|
||||
$ export ASAN_OPTIONS=detect_leaks=0
|
||||
----
|
||||
|
||||
[#ChSrcWindowsDebug]
|
||||
==== Windows Native
|
||||
|
|
|
@ -67,8 +67,8 @@ the present time, so it’s recommended that you use it on macOS or Linux.
|
|||
To edit and build Wireshark using Qt Creator, open the top-level
|
||||
_CMakeLists.txt_ within Qt Creator. It should ask you to choose a build
|
||||
location. Do so. It should then ask you to run CMake. Fill in any
|
||||
desired build arguments (e.g. `-D CMAKE_BUILD_TYPE=Debug` or `-D
|
||||
ENABLE_CCACHE=ON`) and click the btn:[Run CMake] button. When that
|
||||
desired build arguments (e.g. <<ChSrcBuildType,`-D CMAKE_BUILD_TYPE=Debug`>> or
|
||||
`-D ENABLE_CCACHE=ON`) and click the btn:[Run CMake] button. When that
|
||||
completes select menu:Build[Open Build and Run Kit Selector...] and make
|
||||
sure _wireshark_ is selected.
|
||||
|
||||
|
|
|
@ -99,7 +99,7 @@ Clicking on the icon will show the configuration dialog for that interface.
|
|||
Hovering over an interface will show any associated IPv4 and IPv6 addresses and its capture filter.
|
||||
|
||||
Wireshark isn't limited to just network interfaces -- on most systems you can also capture USB, Bluetooth, and other types of packets.
|
||||
Note also that an interface might be hidden if it’s inaccessible to Wireshark or if it has been hidden as described in <<ChManageInterfacesSection>>.
|
||||
Note also that an interface might be hidden if it’s inaccessible to Wireshark or if it has been hidden as described in <<ChCapManageInterfacesSection>>.
|
||||
|
||||
[#ChCapCaptureOptions]
|
||||
|
||||
|
@ -258,7 +258,7 @@ Capturing can be stopped based on the following conditions:
|
|||
|
||||
You can double click on an interface row in the “Input“ tab or click btn:[Start] from any tab to commence the capture. You can click btn:[Cancel] to apply your changes and close the dialog.
|
||||
|
||||
[#ChManageInterfacesSection]
|
||||
[#ChCapManageInterfacesSection]
|
||||
|
||||
=== The “Manage Interfaces” Dialog Box
|
||||
|
||||
|
|
62
dumpcap.c
|
@ -93,8 +93,13 @@
|
|||
#include "wiretap/pcapng_module.h"
|
||||
#include "wiretap/pcapng.h"
|
||||
|
||||
/**#define DEBUG_DUMPCAP**/
|
||||
/**#define DEBUG_CHILD_DUMPCAP**/
|
||||
/*
|
||||
* Define these for extra logging messages at INFO and below. Note
|
||||
* that when dumpcap is spawned as a child process, logs are sent
|
||||
* to the parent via the sync pipe.
|
||||
*/
|
||||
/**#define DEBUG_DUMPCAP**/ /* Logs INFO and below messages normally */
|
||||
/**#define DEBUG_CHILD_DUMPCAP**/ /* Writes INFO and below logs to file */
|
||||
|
||||
#ifdef _WIN32
|
||||
#include "wsutil/win32-utils.h"
|
||||
|
@ -107,6 +112,9 @@
|
|||
FILE *debug_log; /* for logging debug messages to */
|
||||
/* a file if DEBUG_CHILD_DUMPCAP */
|
||||
/* is defined */
|
||||
#ifdef DEBUG_DUMPCAP
|
||||
#include <stdarg.h> /* va_copy */
|
||||
#endif
|
||||
#endif
|
||||
|
||||
static GAsyncQueue *pcap_queue;
|
||||
|
@ -4910,6 +4918,23 @@ main(int argc, char *argv[])
|
|||
/* Early logging command-line initialization. */
|
||||
ws_log_parse_args(&argc, argv, vcmdarg_err, 1);
|
||||
|
||||
#if defined(DEBUG_DUMPCAP) || defined(DEBUG_CHILD_DUMPCAP)
|
||||
/* sync_pipe_start does not pass along log level information from
|
||||
* the parent (XXX: it probably should.) Assume that if we're
|
||||
* specially compiled with dumpcap debugging then we want it on.
|
||||
*/
|
||||
if (capture_child) {
|
||||
ws_log_set_level(LOG_LEVEL_DEBUG);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef DEBUG_CHILD_DUMPCAP
|
||||
if ((debug_log = ws_fopen("dumpcap_debug_log.tmp","w")) == NULL) {
|
||||
fprintf (stderr, "Unable to open debug log file .\n");
|
||||
exit (1);
|
||||
}
|
||||
#endif
|
||||
|
||||
ws_noisy("Finished log init and parsing command line log arguments");
|
||||
|
||||
#ifdef _WIN32
|
||||
|
@ -4945,13 +4970,6 @@ main(int argc, char *argv[])
|
|||
|
||||
#define OPTSTRING OPTSTRING_CAPTURE_COMMON "C:dghk:" OPTSTRING_m "MN:nPq" OPTSTRING_r "St" OPTSTRING_u "vw:Z:"
|
||||
|
||||
#ifdef DEBUG_CHILD_DUMPCAP
|
||||
if ((debug_log = ws_fopen("dumpcap_debug_log.tmp","w")) == NULL) {
|
||||
fprintf (stderr, "Unable to open debug log file .\n");
|
||||
exit (1);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(__APPLE__) && defined(__LP64__)
|
||||
/*
|
||||
* Is this Mac OS X 10.6.0, 10.6.1, 10.6.3, or 10.6.4? If so, we need
|
||||
|
@ -5597,21 +5615,27 @@ dumpcap_log_writer(const char *domain, enum ws_log_level level,
|
|||
const char *user_format, va_list user_ap,
|
||||
void *user_data _U_)
|
||||
{
|
||||
/* ignore log message, if log_level isn't interesting */
|
||||
if (level <= LOG_LEVEL_INFO) {
|
||||
#if !defined(DEBUG_DUMPCAP) && !defined(DEBUG_CHILD_DUMPCAP)
|
||||
return;
|
||||
#endif
|
||||
}
|
||||
|
||||
/* DEBUG & INFO msgs (if we're debugging today) */
|
||||
#if defined(DEBUG_DUMPCAP) || defined(DEBUG_CHILD_DUMPCAP)
|
||||
if (level <= LOG_LEVEL_INFO && ws_log_msg_is_active(domain, level)) {
|
||||
#ifdef DEBUG_DUMPCAP
|
||||
ws_log_console_writer(domain, level, timestamp, file, line, func, user_format, user_ap, NULL);
|
||||
#endif
|
||||
#ifdef DEBUG_CHILD_DUMPCAP
|
||||
ws_log_file_writer(debug_log, domain, level, timestamp, file, line, func, user_format, user_ap, NULL);
|
||||
va_list user_ap_copy;
|
||||
va_copy(user_ap_copy, user_ap);
|
||||
#endif
|
||||
if (capture_child) {
|
||||
gchar *msg = ws_strdup_vprintf(user_format, user_ap);
|
||||
sync_pipe_errmsg_to_parent(2, msg, "");
|
||||
g_free(msg);
|
||||
} else {
|
||||
ws_log_console_writer(domain, level, timestamp, file, line, func, user_format, user_ap);
|
||||
}
|
||||
#ifdef DEBUG_CHILD_DUMPCAP
|
||||
ws_log_file_writer(debug_log, domain, level, timestamp, file, line, func, user_format, user_ap_copy);
|
||||
va_end(user_ap_copy);
|
||||
#endif
|
||||
#elif DEBUG_CHILD_DUMPCAP
|
||||
ws_log_file_writer(debug_log, domain, level, timestamp, file, line, func, user_format, user_ap);
|
||||
#endif
|
||||
return;
|
||||
}
|
||||
|
|
146
enterprises.tsv
|
@ -5,7 +5,7 @@
|
|||
# The format used here is: <NUMERICAL_ID><SPACE><NAME>
|
||||
# Where SPACE can be any sequence of spaces and tabs.
|
||||
#
|
||||
# (last updated 2023-02-07)
|
||||
# (last updated 2023-03-02)
|
||||
|
||||
0 Reserved
|
||||
1 NxNetworks
|
||||
|
@ -3563,7 +3563,7 @@
|
|||
3558 BGS Systemplanung AG
|
||||
3559 The Digital Schoolhouse
|
||||
3560 Sphere Logic Corporation
|
||||
3561 Broadband Forum (previously 'DSL Forum')
|
||||
3561 Broadband Forum # previously 'DSL Forum'
|
||||
3562 Jim Marsden Development # formerly 'Selway Moore Limited'
|
||||
3563 National Network Data Services
|
||||
3564 Ciphernet
|
||||
|
@ -6793,7 +6793,7 @@
|
|||
6790 Finjan Software
|
||||
6791 EXE Technologies, Inc.
|
||||
6792 Active+ Software
|
||||
6793 TUIASI (previously 'UTIasi')
|
||||
6793 TUIASI # previously 'UTIasi'
|
||||
6794 Adhesive Software Incorporated
|
||||
6795 Pocono Pet Sitters
|
||||
6796 TekVision Communications
|
||||
|
@ -13019,7 +13019,7 @@
|
|||
13028 Kuokoa Networks, Inc.
|
||||
13029 Managed Service Partners International
|
||||
13030 Monitor724 Services Limited
|
||||
13031 NextGen Business Solution, Inc. (previously 'neix,Inc.')
|
||||
13031 NextGen Business Solution, Inc. # previously 'neix,Inc.'
|
||||
13032 Reach Technologies
|
||||
13033 shockunit productions
|
||||
13034 SoftNet Systems, Inc.
|
||||
|
@ -13852,7 +13852,7 @@
|
|||
13864 MAMINOS, Inc.
|
||||
13865 Université Charles de Gaulle - Lille 3
|
||||
13866 ACE TIMING
|
||||
13867 Adfinis SyGroup AG
|
||||
13867 Adfinis AG
|
||||
13868 Bahrain Credit
|
||||
13869 Blum Capital Partners, LP
|
||||
13870 Corporate Oxygen
|
||||
|
@ -17839,7 +17839,7 @@
|
|||
17853 Heilpraktikerschule Luzern Ltd.
|
||||
17854 Twenty First Century Communications (TFCC)
|
||||
17855 zipRealty, Inc.
|
||||
17856 NetNumber, Inc.
|
||||
17856 Titan.ium Platform, LLC
|
||||
17857 Tiscali France
|
||||
17858 sonik.org
|
||||
17859 Septier Communications Ltd.
|
||||
|
@ -20026,7 +20026,6 @@
|
|||
20048 Internet Broadcasting Systems
|
||||
20049 GnuArch
|
||||
20050 Western United Insurance
|
||||
20051 GlobalSkyVault
|
||||
20052 Intesa Sanpaolo S.p.A.
|
||||
20053 I.NET2 S.r.l.
|
||||
20054 Statistisches Bundesamt
|
||||
|
@ -22158,7 +22157,6 @@
|
|||
22181 Avision Inc.
|
||||
22182 Cascadia BHC
|
||||
22183 Cylant, Inc.
|
||||
22184 21st Century Software Inc.
|
||||
22185 eScholar LLC
|
||||
22186 Marketing Resource Consultants, Inc.
|
||||
22187 Symphoniq
|
||||
|
@ -22584,7 +22582,7 @@
|
|||
22607 ChiliTech Internet Solutions, Inc.
|
||||
22608 Cmed Ltd
|
||||
22609 CJ Microware and Associates
|
||||
22610 A10 Networks (previously 'Raksha Networks Inc.')
|
||||
22610 A10 Networks # previously 'Raksha Networks Inc.'
|
||||
22611 Tele Lorca
|
||||
22612 Envirocare of Utah, LLC
|
||||
22613 City Animal Hospital Ltd.
|
||||
|
@ -24963,7 +24961,7 @@
|
|||
24988 Singh Travels
|
||||
24989 Synalogic e.K.
|
||||
24990 Bluestem Ltd.
|
||||
24991 CardContact Software & System Consulting
|
||||
24991 CardContact Systems GmbH
|
||||
24992 Toko University
|
||||
24993 MySQL, Inc.
|
||||
24994 nabios GmbH
|
||||
|
@ -31500,7 +31498,7 @@
|
|||
31531 Immutify Limited
|
||||
31532 Ensynch, Inc
|
||||
31533 ScanSafe Ltd
|
||||
31534 Adfinis SyGroup AG # formerly 'SyGroup GmbH'
|
||||
31534 Adfinis AG
|
||||
31535 Parkeon
|
||||
31536 OpenNHRP project
|
||||
31537 Gossamer Threads Inc.
|
||||
|
@ -45128,7 +45126,7 @@
|
|||
45177 Sapientier Development
|
||||
45178 Direktion der Justiz und des Innern des Kantons Zuerich
|
||||
45179 Jablotron Alarms a.s.
|
||||
45180 Rolls-Royce Marine
|
||||
45180 Kongsberg Maritime
|
||||
45181 AVSystem
|
||||
45182 bkaiser GmbH
|
||||
45183 Access Control Services Ltd
|
||||
|
@ -55256,7 +55254,7 @@
|
|||
55321 Loralab
|
||||
55322 Núcleo de Comunicaciones y Control, S.L.
|
||||
55323 Y20 Works
|
||||
55324 Anapaya Systems
|
||||
55324 SCION Association
|
||||
55325 Komprise
|
||||
55326 State University of New York College of Technology at Delhi
|
||||
55327 SOS International LLC
|
||||
|
@ -56717,7 +56715,7 @@
|
|||
56789 Hengyang Rich Power Co.,Ltd
|
||||
56790 Bradley-Bourbonnais Community High School
|
||||
56791 RES PUBLICA Consulting Group
|
||||
56792 101 Systems
|
||||
56792 Xyberdata
|
||||
56793 Ferdinand Kittinger GmbH
|
||||
56794 Research Data and Communication Technologies
|
||||
56795 cre.ative IT
|
||||
|
@ -57094,7 +57092,7 @@
|
|||
57166 MECAFOR
|
||||
57167 Matrix AI
|
||||
57168 Telecard
|
||||
57169 Kotoi-Xie Consultancy
|
||||
57169 Kotoi-Xie Consultancy, Inc.
|
||||
57170 OKB Alpha, LTD
|
||||
57171 DataNet Services UG
|
||||
57172 Alaska USA Federal Credit Union
|
||||
|
@ -59951,3 +59949,121 @@
|
|||
60027 LEEGOOD AUTOMATIC SYSTEMS. INC.
|
||||
60028 Neil Farr
|
||||
60029 Digital Check Corp
|
||||
60030 NonpareilTech
|
||||
60031 Jeff Lunsford
|
||||
60032 Sikorsky Financial Credit Union
|
||||
60033 Whiterabbit AI Inc
|
||||
60034 ZTD Training
|
||||
60035 Wolfspyre Labs
|
||||
60036 FoamyCastle
|
||||
60037 bonprix Handelsgesellschaft mbH
|
||||
60038 Hitachi Energy Automation & Communication
|
||||
60039 Andrews Property Group
|
||||
60040 Nine Consulting
|
||||
60041 Procontrol Electronics Ltd.
|
||||
60042 Tems Security Services GmbH
|
||||
60043 Admiral Sportwetten GmbH
|
||||
60044 Chris Dauksza
|
||||
60045 GSB – Sonderabfall-Entsorgung Bayern GmbH
|
||||
60046 Anger Clan
|
||||
60047 GENERAL BROADCAST
|
||||
60048 NSLComm
|
||||
60049 European Union Agency for the Space Programme, Rodrigo Da Costa
|
||||
60050 WyreStorm Technologies Corp.
|
||||
60051 Cirrus Link Solutions
|
||||
60052 Matt Melling
|
||||
60053 APP SOLUTIONS
|
||||
60054 Tecnosul
|
||||
60055 Pert Telecom Solutions Pvt Ltd
|
||||
60056 Amensolar Ess Co., Ltd.
|
||||
60057 Thales UK Ltd
|
||||
60058 Assumption College Kilmore
|
||||
60059 Lapplands
|
||||
60060 Consometers
|
||||
60061 Bayerische Versorgungskammer
|
||||
60062 Francis Augusto Medeiros-Logeay
|
||||
60063 Mosaic Primary Care Network
|
||||
60064 Goldilocks Tech Solution Pvt. Ltd.
|
||||
60065 Hone Group, Inc
|
||||
60066 Capella Controls
|
||||
60067 Sudipto Kumar barmon
|
||||
60068 Karlborgs Elkontroll AB
|
||||
60069 LeXtudio Inc.
|
||||
60070 Mälby Gård AB, 556499-7525
|
||||
60071 Wiregrass Electric Cooperative
|
||||
60072 Hologic
|
||||
60073 Accu-Precision Tool and Gauge
|
||||
60074 Caddell Construction
|
||||
60075 Morpheus Space GmbH
|
||||
60076 Teleproject Srl
|
||||
60077 Stadt Kassel - Amt für Schule und Bildung
|
||||
60078 BEYOND THE SCOPE
|
||||
60079 Pathagility
|
||||
60080 Nice Threads, LLC
|
||||
60081 Jonno Sanderson-Smith
|
||||
60082 Square Enix
|
||||
60083 Spt Arrow Net
|
||||
60084 Alteryx Extensibility
|
||||
60085 PGUM Srl
|
||||
60086 Northwest Hills Surgical Hospital
|
||||
60087 Grifon
|
||||
60088 Opelousas General Health System
|
||||
60089 Stiftung Auffangeinrichtung BVG
|
||||
60090 Lopi elektronika sp. z o.o.
|
||||
60091 EntryPoint Networks, Inc
|
||||
60092 Treasure Valley Hospital
|
||||
60093 PAYAM KHOSHBAKHT
|
||||
60094 La France insoumise
|
||||
60095 CEC Huada Electronic Design Co., Ltd.
|
||||
60096 Wealden District Council
|
||||
60097 OESSE
|
||||
60098 strudelline.net
|
||||
60099 Amazon Web Services Inc
|
||||
60100 UNpkl
|
||||
60101 Synapse Product Development
|
||||
60102 Luogu
|
||||
60103 AustroControl
|
||||
60104 Western Sydney Airport
|
||||
60105 Xinjiang Yingsheng Information Technology Co., Ltd
|
||||
60106 Beijing Dayu Technology Co.,Ltd
|
||||
60107 Select Medical
|
||||
60108 Rocky Enterprise Software Foundation
|
||||
60109 Arising Technology Systems Pty Limited
|
||||
60110 Junnikkala Oy
|
||||
60111 Brickdoc HK Holding LTD
|
||||
60112 ASTELCO Systems GmbH
|
||||
60113 Aires LLC
|
||||
60114 Beijing YiShengChuangQi Technology Co., Ltd
|
||||
60115 eCert
|
||||
60116 eCert Corp.
|
||||
60117 Nane OON GlobalCom Corporation
|
||||
60118 INSERCOMHAI
|
||||
60119 Tiuxo
|
||||
60120 Konvekta AG
|
||||
60121 Surgical Hospital of Oklahoma, LLC
|
||||
60122 INFOGRID d.o.o.
|
||||
60123 hefraTEC GmbH
|
||||
60124 Larraby Electrónica y Comunicación, S.L.
|
||||
60125 RL Online Media
|
||||
60126 AMAG Group AG
|
||||
60127 AMAG Corporate Services AG
|
||||
60128 Astelcom
|
||||
60129 NCube Hosting Consultants
|
||||
60130 Plutometry Corporation
|
||||
60131 AGL Energy Limited
|
||||
60132 Surahammars Bruks AB
|
||||
60133 Septimiu Fabian Mare
|
||||
60134 Nexim Security Solutions
|
||||
60135 Briggs & Stratton
|
||||
60136 Agima
|
||||
60137 Proba
|
||||
60138 Granby Consulting LLC
|
||||
60139 IETHCOM Information Technology Co., Ltd.
|
||||
60140 NIFT (Pvt) ltd.
|
||||
60141 Scott Corio
|
||||
60142 3A Systems, LLC
|
||||
60143 Forney ISD
|
||||
60144 Swift Navigation Incorporated
|
||||
60145 P1 Security
|
||||
60146 Vladimir Kleusov
|
||||
60147 logturm
|
||||
|
|
Can't render this file because it is too large.
|
|
@ -22,6 +22,7 @@
|
|||
|
||||
#include <wsutil/filesystem.h>
|
||||
#include <wsutil/file_util.h>
|
||||
#include <wsutil/report_message.h>
|
||||
#include <wsutil/wslog.h>
|
||||
#include <wsutil/ws_assert.h>
|
||||
|
||||
|
@ -442,6 +443,10 @@ color_filter_validate_cb(gpointer filter_arg, gpointer err)
|
|||
/* Disable the color filter in the list of color filters. */
|
||||
colorf->disabled = TRUE;
|
||||
}
|
||||
|
||||
/* XXX: What if the color filter tests "frame.coloring_rule.name" or
|
||||
* "frame.coloring_rule.string"?
|
||||
*/
|
||||
}
|
||||
|
||||
/* apply changes from the edit list */
|
||||
|
@ -513,6 +518,52 @@ color_filters_prime_edt(epan_dissect_t *edt)
|
|||
g_slist_foreach(color_filter_list, prime_edt, edt);
|
||||
}
|
||||
|
||||
static gint
|
||||
find_hfid(gconstpointer data, gconstpointer user_data)
|
||||
{
|
||||
color_filter_t *colorf = (color_filter_t *)data;
|
||||
int hfid = GPOINTER_TO_INT(user_data);
|
||||
|
||||
if ((!colorf->disabled) && colorf->c_colorfilter != NULL) {
|
||||
if (dfilter_interested_in_field(colorf->c_colorfilter, hfid)) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
gboolean
|
||||
color_filters_use_hfid(int hfid)
|
||||
{
|
||||
GSList *item = NULL;
|
||||
if (color_filters_used())
|
||||
item = g_slist_find_custom(color_filter_list, GINT_TO_POINTER(hfid), find_hfid);
|
||||
return (item != NULL);
|
||||
}
|
||||
|
||||
static gint
|
||||
find_proto(gconstpointer data, gconstpointer user_data)
|
||||
{
|
||||
color_filter_t *colorf = (color_filter_t *)data;
|
||||
int proto_id = GPOINTER_TO_INT(user_data);
|
||||
|
||||
if ((!colorf->disabled) && colorf->c_colorfilter != NULL) {
|
||||
if (dfilter_interested_in_proto(colorf->c_colorfilter, proto_id)) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
gboolean
|
||||
color_filters_use_proto(int proto_id)
|
||||
{
|
||||
GSList *item = NULL;
|
||||
if (color_filters_used())
|
||||
item = g_slist_find_custom(color_filter_list, GINT_TO_POINTER(proto_id), find_proto);
|
||||
return (item != NULL);
|
||||
}
|
||||
|
||||
/* * Return the color_t for later use */
|
||||
const color_filter_t *
|
||||
color_filters_colorize_packet(epan_dissect_t *edt)
|
||||
|
@ -559,8 +610,6 @@ read_filters_file(const gchar *path, FILE *f, gpointer user_data, color_filter_a
|
|||
name = (gchar *)g_malloc(name_len + 1);
|
||||
filter_exp = (gchar *)g_malloc(filter_exp_len + 1);
|
||||
|
||||
prefs.unknown_colorfilters = FALSE;
|
||||
|
||||
while (1) {
|
||||
|
||||
if (skip_end_of_line) {
|
||||
|
@ -654,10 +703,8 @@ read_filters_file(const gchar *path, FILE *f, gpointer user_data, color_filter_a
|
|||
df_error_t *df_err = NULL;
|
||||
|
||||
if (!disabled && !dfilter_compile(filter_exp, &temp_dfilter, &df_err)) {
|
||||
ws_warning("Could not compile \"%s\" in colorfilters file \"%s\".\n%s",
|
||||
name, path, df_err->msg);
|
||||
report_warning("Disabling color filter: Could not compile \"%s\" in colorfilters file \"%s\".\n%s", name, path, df_err->msg);
|
||||
dfilter_error_free(df_err);
|
||||
prefs.unknown_colorfilters = TRUE;
|
||||
|
||||
/* skip_end_of_line = TRUE; */
|
||||
disabled = TRUE;
|
||||
|
|
|
@ -102,13 +102,31 @@ color_filters_tmp_color(guint8 filter_num);
|
|||
WS_DLL_PUBLIC gboolean
|
||||
color_filters_reset_tmp(gchar **err_msg);
|
||||
|
||||
/* Prime the epan_dissect_t with all the compiler
|
||||
/* Prime the epan_dissect_t with all the compiled
|
||||
* color filters of the current filter list.
|
||||
*
|
||||
* @param the epan dissector details
|
||||
*/
|
||||
WS_DLL_PUBLIC void color_filters_prime_edt(struct epan_dissect *edt);
|
||||
|
||||
/** Check if any of the enabled compiled color filters of the current
|
||||
* filter list depend on a given header field.
|
||||
*
|
||||
* @param hfid The header field ID to check
|
||||
* @return TRUE if the color filter contains the header field.
|
||||
*/
|
||||
WS_DLL_PUBLIC gboolean
|
||||
color_filters_use_hfid(int hfid);
|
||||
|
||||
/** Check if any of the enabled compiled color filters of the current
|
||||
* filter list depend on any field in a given protocol.
|
||||
*
|
||||
* @param proto_id The protocol ID to check
|
||||
* @return TRUE if the color filter contains a field from the protocol
|
||||
*/
|
||||
WS_DLL_PUBLIC gboolean
|
||||
color_filters_use_proto(int proto_id);
|
||||
|
||||
/** Colorize a specific packet.
|
||||
*
|
||||
* @param edt the dissected packet
|
||||
|
|
|
@ -379,8 +379,7 @@ dfilter_compile_real(const gchar *text, dfilter_t **dfp,
|
|||
*dfp = NULL;
|
||||
|
||||
if (text == NULL) {
|
||||
ws_log(WS_LOG_DOMAIN, LOG_LEVEL_DEBUG,
|
||||
"%s() called from %s() with null filter",
|
||||
ws_debug("%s() called from %s() with null filter",
|
||||
__func__, caller);
|
||||
/* XXX This BUG happens often. Some callers are ignoring these errors. */
|
||||
dfw_error_set_msg(errpp, "BUG: NULL text pointer passed to dfilter_compile");
|
||||
|
@ -388,13 +387,11 @@ dfilter_compile_real(const gchar *text, dfilter_t **dfp,
|
|||
}
|
||||
else if (*text == '\0') {
|
||||
/* An empty filter is considered a valid input. */
|
||||
ws_log(WS_LOG_DOMAIN, LOG_LEVEL_DEBUG,
|
||||
"%s() called from %s() with empty filter",
|
||||
ws_debug("%s() called from %s() with empty filter",
|
||||
__func__, caller);
|
||||
}
|
||||
else {
|
||||
ws_log(WS_LOG_DOMAIN, LOG_LEVEL_DEBUG,
|
||||
"%s() called from %s(), compiling filter: %s",
|
||||
ws_debug("%s() called from %s(), compiling filter: %s",
|
||||
__func__, caller, text);
|
||||
}
|
||||
|
||||
|
@ -613,6 +610,43 @@ dfilter_has_interesting_fields(const dfilter_t *df)
|
|||
return (df->num_interesting_fields > 0);
|
||||
}
|
||||
|
||||
gboolean
|
||||
dfilter_interested_in_field(const dfilter_t *df, int hfid)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < df->num_interesting_fields; i++) {
|
||||
if (df->interesting_fields[i] == hfid) {
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
gboolean
|
||||
dfilter_interested_in_proto(const dfilter_t *df, int proto_id)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < df->num_interesting_fields; i++) {
|
||||
int df_hfid = df->interesting_fields[i];
|
||||
if (proto_registrar_is_protocol(df_hfid)) {
|
||||
/* XXX: Should we go up to the parent of a pino?
|
||||
* We can tell if df_hfid is a PINO, but there's
|
||||
* no function to return the parent proto ID yet.
|
||||
*/
|
||||
if (df_hfid == proto_id) {
|
||||
return TRUE;
|
||||
}
|
||||
} else {
|
||||
if (proto_registrar_get_parent(df_hfid) == proto_id) {
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
GPtrArray *
|
||||
dfilter_deprecated_tokens(dfilter_t *df) {
|
||||
if (df->deprecated && df->deprecated->len > 0) {
|
||||
|
|
|
@ -117,6 +117,25 @@ dfilter_load_field_references(const dfilter_t *df, proto_tree *tree);
|
|||
gboolean
|
||||
dfilter_has_interesting_fields(const dfilter_t *df);
|
||||
|
||||
/* Check if dfilter is interested in a given field
|
||||
*
|
||||
* @param df The dfilter
|
||||
* @param hfid The header field info ID to check
|
||||
* @return TRUE if the field is interesting to the dfilter
|
||||
*/
|
||||
gboolean
|
||||
dfilter_interested_in_field(const dfilter_t *df, int hfid);
|
||||
|
||||
/* Check if dfilter is interested in a given protocol
|
||||
*
|
||||
* @param df The dfilter
|
||||
* @param hfid The protocol ID to check
|
||||
* @return TRUE if the dfilter is interested in a field whose
|
||||
* parent is proto_id
|
||||
*/
|
||||
gboolean
|
||||
dfilter_interested_in_proto(const dfilter_t *df, int proto_id);
|
||||
|
||||
WS_DLL_PUBLIC
|
||||
GPtrArray *
|
||||
dfilter_deprecated_tokens(dfilter_t *df);
|
||||
|
|
|
@ -172,6 +172,7 @@ set(CLEAN_ASN1_DISSECTOR_SRC
|
|||
${CMAKE_CURRENT_SOURCE_DIR}/packet-ros.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/packet-rrc.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/packet-rrlp.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/packet-rspro.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/packet-rtse.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/packet-rua.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/packet-s1ap.c
|
||||
|
@ -554,6 +555,7 @@ set(DISSECTOR_PUBLIC_HEADERS
|
|||
packet-rpcrdma.h
|
||||
packet-rrc.h
|
||||
packet-rsvp.h
|
||||
packet-rspro.h
|
||||
packet-rtcp.h
|
||||
packet-rtp.h
|
||||
packet-rtp-events.h
|
||||
|
@ -1191,9 +1193,11 @@ set(DISSECTOR_SRC
|
|||
${CMAKE_CURRENT_SOURCE_DIR}/packet-gsm_cbsp.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/packet-gsm_gsup.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/packet-gsm_ipa.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/packet-gsm_l2rcop.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/packet-gsm_osmux.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/packet-gsm_r_uus1.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/packet-gsm_rlcmac.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/packet-gsm_rlp.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/packet-gsm_sim.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/packet-gsm_sms.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/packet-gsm_sms_ud.c
|
||||
|
@ -1931,6 +1935,7 @@ set(DISSECTOR_SRC
|
|||
${CMAKE_CURRENT_SOURCE_DIR}/packet-tpm20.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/packet-tpncp.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/packet-tr.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/packet-trdp.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/packet-trill.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/packet-trmac.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/packet-tsp.c
|
||||
|
@ -2002,6 +2007,7 @@ set(DISSECTOR_SRC
|
|||
${CMAKE_CURRENT_SOURCE_DIR}/packet-vrrp.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/packet-vrt.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/packet-vsip.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/packet-vsmartcard.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/packet-vsock.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/packet-vssmonitoring.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/packet-vtp.c
|
||||
|
|
|
@ -109,6 +109,7 @@ set(ASN1_SRC_DIRS
|
|||
ros
|
||||
rrc
|
||||
rrlp
|
||||
rspro
|
||||
rtse
|
||||
rua
|
||||
s1ap
|
||||
|
|
|
@ -2015,11 +2015,11 @@ VisitedPSCellInfo-r17/timeSpent-r17 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&u
|
|||
nr_drb_mac_rlc_mapping_t *mapping = &nr_rrc_get_private_data(actx)->drb_rlc_mapping;
|
||||
if (mapping->tempDirection == DIRECTION_UPLINK) {
|
||||
mapping->rlcUlSnLength_present = TRUE;
|
||||
mapping->rlcUlSnLength = (value=0) ? 6 : 12;
|
||||
mapping->rlcUlSnLength = (value==0) ? 6 : 12;
|
||||
}
|
||||
else {
|
||||
mapping->rlcDlSnLength_present = TRUE;
|
||||
mapping->rlcDlSnLength = (value=0) ? 6 : 12;
|
||||
mapping->rlcDlSnLength = (value==0) ? 6 : 12;
|
||||
}
|
||||
|
||||
#.FN_BODY SN-FieldLengthAM VAL_PTR=&value
|
||||
|
@ -2028,11 +2028,11 @@ VisitedPSCellInfo-r17/timeSpent-r17 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&u
|
|||
nr_drb_mac_rlc_mapping_t *mapping = &nr_rrc_get_private_data(actx)->drb_rlc_mapping;
|
||||
if (mapping->tempDirection == DIRECTION_UPLINK) {
|
||||
mapping->rlcUlSnLength_present = TRUE;
|
||||
mapping->rlcUlSnLength = (value=0) ? 12 : 18;
|
||||
mapping->rlcUlSnLength = (value==0) ? 12 : 18;
|
||||
}
|
||||
else {
|
||||
mapping->rlcDlSnLength_present = TRUE;
|
||||
mapping->rlcDlSnLength = (value=0) ? 12 : 18;
|
||||
mapping->rlcDlSnLength = (value==0) ? 12 : 18;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,31 @@
|
|||
# CMakeLists.txt
|
||||
#
|
||||
# Wireshark - Network traffic analyzer
|
||||
# By Gerald Combs <gerald@wireshark.org>
|
||||
# Copyright 1998 Gerald Combs
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
#
|
||||
|
||||
set( PROTOCOL_NAME rspro )
|
||||
|
||||
set( PROTO_OPT )
|
||||
|
||||
set( ASN_FILE_LIST
|
||||
RSPRO.asn
|
||||
)
|
||||
|
||||
set( EXTRA_DIST
|
||||
${ASN_FILE_LIST}
|
||||
packet-${PROTOCOL_NAME}-template.c
|
||||
${PROTOCOL_NAME}.cnf
|
||||
)
|
||||
|
||||
set( SRC_FILES
|
||||
${EXTRA_DIST}
|
||||
${EXT_ASN_FILE_LIST}
|
||||
)
|
||||
|
||||
set( A2W_FLAGS )
|
||||
|
||||
ASN2WRS()
|
|
@ -0,0 +1,347 @@
|
|||
----------------------------------------------------------------------
|
||||
-- RSPRO - Remote SIM Protocol, part of Osmocom Remote SIM Suite
|
||||
-- (C) 2018 by Harald Welte <laforge@gnumonks.org>
|
||||
-- All Rights Reserved
|
||||
--
|
||||
-- SPDX-License-Identifier: GPL-2.0+
|
||||
--
|
||||
-- This program is free software; you can redistribute it and/or modify
|
||||
-- it under the terms of the GNU General Public License as published by
|
||||
-- the Free Software Foundation; either version 2 of the License, or
|
||||
-- (at your option) any later version.
|
||||
--
|
||||
-- This program is distributed in the hope that it will be useful,
|
||||
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
-- GNU General Public License for more details.
|
||||
--
|
||||
-- You should have received a copy of the GNU General Public License along
|
||||
-- with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
-- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
--
|
||||
----------------------------------------------------------------------
|
||||
|
||||
RSPRO DEFINITIONS
|
||||
|
||||
IMPLICIT TAGS
|
||||
|
||||
::=
|
||||
|
||||
BEGIN
|
||||
|
||||
EXPORTS
|
||||
RsproPDU
|
||||
;
|
||||
|
||||
----------------------------------------------------------------------
|
||||
-- Elementary Data Types
|
||||
----------------------------------------------------------------------
|
||||
|
||||
-- Some random ID the requestor can chose and which the client echos back in a response.
|
||||
-- This allows multiple outstanding commands in flight and matching of responses to requests.
|
||||
OperationTag ::= INTEGER(0..2147483647)
|
||||
|
||||
-- Unique identifier of a given SIM bank
|
||||
BankId ::= INTEGER(0..1023)
|
||||
|
||||
-- Unique identifier of a given client (modem)
|
||||
ClientId ::= INTEGER(0..1023)
|
||||
|
||||
ComponentType ::= ENUMERATED {
|
||||
-- client: Modems / Phones
|
||||
remsimClient (0),
|
||||
-- server: Coordination
|
||||
remsimServer (1),
|
||||
-- bank daemon: SIM cards
|
||||
remsimBankd (2)
|
||||
}
|
||||
ComponentName ::= IA5String (SIZE (1..32))
|
||||
ComponentIdentity ::= SEQUENCE {
|
||||
type ComponentType,
|
||||
name ComponentName,
|
||||
software [0] ComponentName,
|
||||
swVersion [1] ComponentName,
|
||||
hwManufacturer [2] ComponentName OPTIONAL,
|
||||
hwModel [3] ComponentName OPTIONAL,
|
||||
hwSerialNr [4] ComponentName OPTIONAL,
|
||||
hwVersion [5] ComponentName OPTIONAL,
|
||||
fwVersion [6] ComponentName OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
-- IP address / port details
|
||||
Ipv4Address ::= OCTET STRING (SIZE (4))
|
||||
Ipv6Address ::= OCTET STRING (SIZE (16))
|
||||
IpAddress ::= CHOICE {
|
||||
ipv4 [0] Ipv4Address,
|
||||
ipv6 [1] Ipv6Address
|
||||
}
|
||||
PortNumber ::= INTEGER (0..65535)
|
||||
IpPort ::= SEQUENCE {
|
||||
ip IpAddress,
|
||||
port PortNumber
|
||||
}
|
||||
|
||||
-- Result of a given operation
|
||||
ResultCode ::= ENUMERATED {
|
||||
ok (0),
|
||||
-- client / bank / slot ID not accepted
|
||||
illegalClientId (1),
|
||||
illegalBankId (2),
|
||||
illegalSlotId (3),
|
||||
unsupportedProtocolVersion (4),
|
||||
unknownSlotmap (5),
|
||||
|
||||
-- no card is present in given slot
|
||||
cardNotPresent (100),
|
||||
-- card is present but unresponsive in given slot
|
||||
cardUnresponsive (101),
|
||||
-- unrecoverable transmission errors detected
|
||||
cardTransmissionError (102),
|
||||
...
|
||||
}
|
||||
|
||||
ErrorCode ::= ENUMERATED {
|
||||
-- Bankd or Server has received connection form unknown client (no mapping)
|
||||
unknownClientConnected (1),
|
||||
-- unexpected disconnect (typically bankd reports client disconnect)
|
||||
unexpectedDisconnect (2),
|
||||
unexpectedProtocolVersion (3),
|
||||
...
|
||||
}
|
||||
|
||||
ErrorString ::= IA5String (SIZE (1..255))
|
||||
|
||||
ErrorSeverity ::= ENUMERATED {
|
||||
minor (1),
|
||||
major (2),
|
||||
fatal (3),
|
||||
...
|
||||
}
|
||||
|
||||
-- Slot number within a SIM bank or a client.
|
||||
SlotNumber ::= INTEGER(0..1023)
|
||||
|
||||
-- Slot identity on client (modem) side
|
||||
ClientSlot ::= SEQUENCE {
|
||||
clientId ClientId,
|
||||
slotNr SlotNumber,
|
||||
...
|
||||
}
|
||||
|
||||
-- Slot identity on SIM bank side
|
||||
BankSlot ::= SEQUENCE {
|
||||
bankId BankId,
|
||||
slotNr SlotNumber,
|
||||
...
|
||||
}
|
||||
|
||||
ATR ::= OCTET STRING (SIZE (1..55))
|
||||
|
||||
-- flags related to a TPDU in either of the two directions
|
||||
TpduFlags ::= SEQUENCE {
|
||||
-- indicates a TPDU header is present in this message
|
||||
tpduHeaderPresent BOOLEAN,
|
||||
-- indicates last part of transmission in this direction
|
||||
finalPart BOOLEAN,
|
||||
-- indicates a PB is present and we should continue with TX
|
||||
procByteContinueTx BOOLEAN,
|
||||
-- indicates a PB is present and we should continue with RX
|
||||
procByteContinueRx BOOLEAN,
|
||||
...
|
||||
}
|
||||
|
||||
--- physical state of a given slot
|
||||
SlotPhysStatus ::= SEQUENCE {
|
||||
-- is RST activated by the modem?
|
||||
resetActive [0] BOOLEAN,
|
||||
-- is VCC applied by the modem?
|
||||
vccPresent [1] BOOLEAN OPTIONAL,
|
||||
-- is CLK applied by the modem?
|
||||
clkActive [2] BOOLEAN OPTIONAL, -- not all hardware supports this
|
||||
-- is card presence signalled to the modem?
|
||||
cardPresent [3] BOOLEAN OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
----------------------------------------------------------------------
|
||||
-- Messages
|
||||
----------------------------------------------------------------------
|
||||
|
||||
|
||||
-- BANKD->SERVER: SIM Bank connects to central server
|
||||
ConnectBankReq ::= SEQUENCE {
|
||||
-- identity of the bank that is connecting to the server
|
||||
identity ComponentIdentity,
|
||||
-- bank number, pre-configured on bank side
|
||||
bankId BankId,
|
||||
numberOfSlots SlotNumber,
|
||||
...
|
||||
}
|
||||
ConnectBankRes ::= SEQUENCE {
|
||||
-- identity of the server to which the bank is connecting
|
||||
identity ComponentIdentity,
|
||||
result ResultCode,
|
||||
...
|
||||
}
|
||||
|
||||
-- CLIENT->SERVER or CLIENT->BANKD
|
||||
ConnectClientReq ::= SEQUENCE {
|
||||
-- identity of the client that is connecting to the server/bankd
|
||||
identity ComponentIdentity,
|
||||
clientSlot ClientSlot OPTIONAL, -- mandatory for CL->BANKD; CL->SERVER: old identity, if any
|
||||
...
|
||||
}
|
||||
ConnectClientRes ::= SEQUENCE {
|
||||
-- identity of the bankd/server to which the client is connecting
|
||||
identity ComponentIdentity,
|
||||
result ResultCode,
|
||||
...
|
||||
}
|
||||
|
||||
-- SERVER->BANKD: create a mapping between a given Bank:Slot <-> Client:Slot
|
||||
CreateMappingReq ::= SEQUENCE {
|
||||
client ClientSlot,
|
||||
bank BankSlot,
|
||||
...
|
||||
}
|
||||
CreateMappingRes ::= SEQUENCE {
|
||||
result ResultCode,
|
||||
...
|
||||
}
|
||||
|
||||
-- SERVER->BANKD: remove a mapping between a given Bank:Slot <-> Client:Slot
|
||||
RemoveMappingReq ::= SEQUENCE {
|
||||
client ClientSlot,
|
||||
bank BankSlot,
|
||||
...
|
||||
}
|
||||
RemoveMappingRes ::= SEQUENCE {
|
||||
result ResultCode,
|
||||
...
|
||||
}
|
||||
|
||||
-- SERVER->CLIENT: set Client ID
|
||||
ConfigClientIdReq ::= SEQUENCE {
|
||||
-- server-allocated assignment of a client ID
|
||||
clientSlot ClientSlot,
|
||||
...
|
||||
}
|
||||
ConfigClientIdRes ::= SEQUENCE {
|
||||
result ResultCode,
|
||||
...
|
||||
}
|
||||
|
||||
-- SERVER->CLIENT: set BankId/Slot and IP/Port
|
||||
ConfigClientBankReq ::= SEQUENCE {
|
||||
-- server-allocated assignment of a client ID
|
||||
bankSlot BankSlot,
|
||||
-- bank to which the client shall connect
|
||||
bankd IpPort,
|
||||
...
|
||||
}
|
||||
ConfigClientBankRes ::= SEQUENCE {
|
||||
result ResultCode,
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
-- BANKD->CLIENT: configure the ATR which the card emulator (client) shall send to the modem
|
||||
SetAtrReq ::= SEQUENCE {
|
||||
slot ClientSlot,
|
||||
atr ATR,
|
||||
...
|
||||
}
|
||||
SetAtrRes ::= SEQUENCE {
|
||||
result ResultCode,
|
||||
...
|
||||
}
|
||||
|
||||
-- CLIENT->BANKD: TPDU in Modem -> Card direction
|
||||
TpduModemToCard ::= SEQUENCE {
|
||||
-- we include fully-qualified bank and client slots for easier debugging
|
||||
fromClientSlot ClientSlot,
|
||||
toBankSlot BankSlot,
|
||||
flags TpduFlags,
|
||||
data OCTET STRING,
|
||||
...
|
||||
}
|
||||
|
||||
-- BANKD->CLIENT: TPDU in Card -> Modem direction
|
||||
TpduCardToModem ::= SEQUENCE {
|
||||
-- we include fully-qualified bank and client slots for easier debugging
|
||||
fromBankSlot BankSlot,
|
||||
toClientSlot ClientSlot,
|
||||
flags TpduFlags,
|
||||
data OCTET STRING,
|
||||
...
|
||||
}
|
||||
|
||||
-- CLIENT->BANKD: indciation about the current status of a client (modem side)
|
||||
ClientSlotStatusInd ::= SEQUENCE {
|
||||
fromClientSlot ClientSlot,
|
||||
toBankSlot BankSlot,
|
||||
slotPhysStatus SlotPhysStatus,
|
||||
...
|
||||
}
|
||||
|
||||
-- BANKD->CLIENT: indciation about the current status of a bank (modem side)
|
||||
BankSlotStatusInd ::= SEQUENCE {
|
||||
fromBankSlot BankSlot,
|
||||
toClientSlot ClientSlot,
|
||||
slotPhysStatus SlotPhysStatus,
|
||||
...
|
||||
}
|
||||
|
||||
-- *->SERVER: indication about some kind of error
|
||||
ErrorInd ::= SEQUENCE {
|
||||
-- whoever is detecting + sending us the error
|
||||
sender ComponentType,
|
||||
severity ErrorSeverity,
|
||||
code ErrorCode,
|
||||
-- any bank-side slot that's affected
|
||||
bankSlot [0] BankSlot OPTIONAL,
|
||||
-- any client-side slot that's affected
|
||||
clientSlot [1] ClientSlot OPTIONAL,
|
||||
-- any additional textual information
|
||||
errorString [2] ErrorString OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
-- PDU
|
||||
----------------------------------------------------------------------
|
||||
|
||||
RsproPDUchoice ::= CHOICE {
|
||||
-- configuration + management
|
||||
connectBankReq [0] ConnectBankReq,
|
||||
connectBankRes [1] ConnectBankRes,
|
||||
connectClientReq [2] ConnectClientReq,
|
||||
connectClientRes [3] ConnectClientRes,
|
||||
createMappingReq [4] CreateMappingReq,
|
||||
createMappingRes [5] CreateMappingRes,
|
||||
removeMappingReq [6] RemoveMappingReq,
|
||||
removeMappingRes [7] RemoveMappingRes,
|
||||
configClientIdReq [8] ConfigClientIdReq,
|
||||
configClientIdRes [9] ConfigClientIdRes,
|
||||
-- APDUs etc.
|
||||
setAtrReq [10] SetAtrReq,
|
||||
setAtrRes [11] SetAtrRes,
|
||||
tpduModemToCard [12] TpduModemToCard,
|
||||
tpduCardToModem [13] TpduCardToModem,
|
||||
clientSlotStatusInd [14] ClientSlotStatusInd,
|
||||
bankSlotStatusInd [15] BankSlotStatusInd,
|
||||
configClientBankReq [17] ConfigClientBankReq,
|
||||
configClientBankRes [18] ConfigClientBankRes,
|
||||
errorInd [16] ErrorInd,
|
||||
...
|
||||
}
|
||||
|
||||
RsproPDU ::= SEQUENCE {
|
||||
version [0] INTEGER(0..32),
|
||||
tag [1] OperationTag,
|
||||
msg [2] RsproPDUchoice
|
||||
}
|
||||
|
||||
END
|
|
@ -0,0 +1,95 @@
|
|||
/* packet-rspro.c
|
||||
* Routines for RSPRO (Remote SIM Protocol) packet dissection
|
||||
* (C) 2019 by Harald Welte <laforge@gnumonks.org>
|
||||
*
|
||||
* Wireshark - Network traffic analyzer
|
||||
* By Gerald Combs <gerald@wireshark.org>
|
||||
* Copyright 1998 Gerald Combs
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
# include "config.h"
|
||||
#endif
|
||||
|
||||
#include <glib.h>
|
||||
#include <epan/packet.h>
|
||||
#include <epan/conversation.h>
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "packet-ber.h"
|
||||
#include "packet-rspro.h"
|
||||
|
||||
#define PNAME "Remote SIM Protocol"
|
||||
#define PSNAME "RSPRO"
|
||||
#define PFNAME "rspro"
|
||||
#define IPAC_PROTO_EXT_RSPRO 0x07
|
||||
static dissector_handle_t rspro_handle=NULL;
|
||||
|
||||
void proto_reg_handoff_rspro(void);
|
||||
void proto_register_rspro(void);
|
||||
|
||||
/* Initialize the protocol and registered fields */
|
||||
static int proto_rspro = -1;
|
||||
|
||||
#include "packet-rspro-hf.c"
|
||||
|
||||
/* Initialize the subtree pointers */
|
||||
static int ett_rspro = -1;
|
||||
|
||||
#include "packet-rspro-ett.c"
|
||||
|
||||
#include "packet-rspro-fn.c"
|
||||
|
||||
|
||||
static int
|
||||
dissect_rspro(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data)
|
||||
{
|
||||
proto_item *rspro_item = NULL;
|
||||
proto_tree *rspro_tree = NULL;
|
||||
|
||||
/* make entry in the Protocol column on summary display */
|
||||
col_set_str(pinfo->cinfo, COL_PROTOCOL, PNAME);
|
||||
|
||||
/* create the rspro protocol tree */
|
||||
if (tree) {
|
||||
rspro_item = proto_tree_add_item(tree, proto_rspro, tvb, 0, -1, FALSE);
|
||||
rspro_tree = proto_item_add_subtree(rspro_item, ett_rspro);
|
||||
|
||||
dissect_RsproPDU_PDU(tvb, pinfo, rspro_tree, data);
|
||||
}
|
||||
|
||||
return tvb_captured_length(tvb);
|
||||
}
|
||||
|
||||
/*--- proto_register_rspro -------------------------------------------*/
|
||||
void proto_register_rspro(void) {
|
||||
/* List of fields */
|
||||
static hf_register_info hf[] = {
|
||||
#include "packet-rspro-hfarr.c"
|
||||
};
|
||||
|
||||
/* List of subtrees */
|
||||
static gint *ett[] = {
|
||||
&ett_rspro,
|
||||
#include "packet-rspro-ettarr.c"
|
||||
};
|
||||
|
||||
/* Register protocol */
|
||||
proto_rspro = proto_register_protocol(PNAME, PSNAME, PFNAME);
|
||||
/* Register fields and subtrees */
|
||||
proto_register_field_array(proto_rspro, hf, array_length(hf));
|
||||
proto_register_subtree_array(ett, array_length(ett));
|
||||
}
|
||||
|
||||
|
||||
/*--- proto_reg_handoff_rspro ---------------------------------------*/
|
||||
void
|
||||
proto_reg_handoff_rspro(void)
|
||||
{
|
||||
rspro_handle = create_dissector_handle(dissect_rspro, proto_rspro);
|
||||
dissector_add_uint_with_preference("ipa.osmo.protocol", IPAC_PROTO_EXT_RSPRO, rspro_handle);
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
/* packet-rspro.h
|
||||
* Routines for RSPRO (remote SIM protocol) packet dissection
|
||||
* (C) 2019 by Harald Welte <laforge@gnumonks.org>
|
||||
*
|
||||
* Wireshark - Network traffic analyzer
|
||||
* By Gerald Combs <gerald@wireshark.org>
|
||||
* Copyright 1998 Gerald Combs
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
|
||||
#ifndef PACKET_RSPRO_H
|
||||
#define PACKET_RSPRO_H
|
||||
|
||||
|
||||
#endif /* PACKET_RSPRO_H */
|
|
@ -0,0 +1,28 @@
|
|||
# rspro.cnf
|
||||
# rspro conformation file
|
||||
# Copyright 2019 Harald Welte
|
||||
|
||||
#.OPT
|
||||
BER
|
||||
#.END
|
||||
|
||||
#.MODULE_IMPORT
|
||||
|
||||
#.EXPORTS
|
||||
|
||||
#.PDU
|
||||
RsproPDU
|
||||
|
||||
#.NO_EMIT
|
||||
|
||||
#.TYPE_RENAME
|
||||
|
||||
#.FIELD_RENAME
|
||||
|
||||
#.FN_HDR RsproPDUchoice
|
||||
gint choice_index;
|
||||
#.FN_BODY RsproPDUchoice VAL_PTR = &choice_index
|
||||
%(DEFAULT_BODY)s
|
||||
col_append_str(actx->pinfo->cinfo, COL_INFO, val_to_str(choice_index, rspro_RsproPDUchoice_vals, "Unknown (%%u)"));
|
||||
|
||||
#.END
|
|
@ -156,7 +156,6 @@ void dissect_darwin_process_info_option(proto_tree *option_tree, proto_item *opt
|
|||
case 4: /* Darwin Process UUID */
|
||||
proto_tree_add_item(option_tree, hf_pcapng_option_darwin_process_uuid, tvb, offset, option_length, ENC_BIG_ENDIAN);
|
||||
tvb_get_guid(tvb, offset, &uuid, ENC_BIG_ENDIAN);
|
||||
offset += option_length;
|
||||
|
||||
proto_item_append_text(option_item, " = %s",
|
||||
guid_to_str(pinfo->pool, &uuid));
|
||||
|
@ -164,7 +163,6 @@ void dissect_darwin_process_info_option(proto_tree *option_tree, proto_item *opt
|
|||
break;
|
||||
default:
|
||||
proto_tree_add_item(option_tree, unknown_option_hf, tvb, offset, option_length, ENC_NA);
|
||||
offset += option_length;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,16 +1,13 @@
|
|||
/* autogenerated by pidl */
|
||||
|
||||
/* DO NOT EDIT
|
||||
This filter was automatically generated
|
||||
This file was automatically generated by Pidl
|
||||
from srvsvc.idl and srvsvc.cnf.
|
||||
|
||||
Pidl is a perl based IDL compiler for DCE/RPC idl files.
|
||||
Pidl is a perl based IDL compiler for DCE/RPC idl files.
|
||||
It is maintained by the Samba team, not the Wireshark team.
|
||||
Instructions on how to download and install Pidl can be
|
||||
Instructions on how to download and install Pidl can be
|
||||
found at https://gitlab.com/wireshark/wireshark/-/wikis/Pidl
|
||||
*/
|
||||
|
||||
|
||||
#ifndef __PACKET_DCERPC_SRVSVC_H
|
||||
#define __PACKET_DCERPC_SRVSVC_H
|
||||
|
||||
|
@ -18,27 +15,34 @@
|
|||
|
||||
#define STYPE_HIDDEN ( 0x80000000 )
|
||||
|
||||
#define SHARE_1005_CSC_CACHE_MANUAL_REINT ( 0x00000000 )
|
||||
|
||||
#define SHARE_1005_CSC_POLICY_MASK ( 0x00000030 )
|
||||
|
||||
#define SHARE_1005_CSC_POLICY_SHIFT ( 4 )
|
||||
|
||||
int srvsvc_dissect_bitmap_svcctl_ServerType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_bitmap_security_secinfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetCharDevInfo0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetCharDevCtr0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetCharDevInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetCharDevCtr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetCharDevInfoCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetCharDevQInfo0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetCharDevQCtr0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetCharDevQInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetCharDevQCtr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetCharDevQInfoCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetConnInfo0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetConnCtr0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetConnInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetConnCtr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetConnInfoCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetFileInfo2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetFileCtr2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetFileInfo3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetFileCtr3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_bitmap_SessionUserFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetFileInfoCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetSessInfo0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetSessCtr0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetSessInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
|
@ -49,6 +53,7 @@ int srvsvc_dissect_struct_NetSessInfo10(tvbuff_t *tvb _U_, int offset _U_, packe
|
|||
int srvsvc_dissect_struct_NetSessCtr10(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetSessInfo502(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetSessCtr502(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetSessInfoCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
#define STYPE_DISKTREE (0)
|
||||
#define STYPE_DISKTREE_TEMPORARY (STYPE_DISKTREE|STYPE_TEMPORARY)
|
||||
#define STYPE_DISKTREE_HIDDEN (STYPE_DISKTREE|STYPE_HIDDEN)
|
||||
|
@ -61,28 +66,38 @@ int srvsvc_dissect_struct_NetSessCtr502(tvbuff_t *tvb _U_, int offset _U_, packe
|
|||
#define STYPE_IPC (3)
|
||||
#define STYPE_IPC_TEMPORARY (STYPE_IPC|STYPE_TEMPORARY)
|
||||
#define STYPE_IPC_HIDDEN (STYPE_IPC|STYPE_HIDDEN)
|
||||
#define STYPE_CLUSTER_FS (0x02000000)
|
||||
#define STYPE_CLUSTER_FS_TEMPORARY (STYPE_CLUSTER_FS|STYPE_TEMPORARY)
|
||||
#define STYPE_CLUSTER_FS_HIDDEN (STYPE_CLUSTER_FS|STYPE_HIDDEN)
|
||||
#define STYPE_CLUSTER_SOFS (0x04000000)
|
||||
#define STYPE_CLUSTER_SOFS_TEMPORARY (STYPE_CLUSTER_SOFS|STYPE_TEMPORARY)
|
||||
#define STYPE_CLUSTER_SOFS_HIDDEN (STYPE_CLUSTER_SOFS|STYPE_HIDDEN)
|
||||
#define STYPE_CLUSTER_DFS (0x08000000)
|
||||
#define STYPE_CLUSTER_DFS_TEMPORARY (STYPE_CLUSTER_DFS|STYPE_TEMPORARY)
|
||||
#define STYPE_CLUSTER_DFS_HIDDEN (STYPE_CLUSTER_DFS|STYPE_HIDDEN)
|
||||
extern const value_string srvsvc_srvsvc_ShareType_vals[];
|
||||
int srvsvc_dissect_enum_ShareType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
|
||||
int srvsvc_dissect_struct_NetShareInfo0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetShareInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetShareInfo2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetShareInfo501(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetShareInfo502(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetShareInfo1004(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetShareInfo1006(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_bitmap_DFSFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetShareCtr0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetShareInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetShareCtr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetShareInfo2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetShareCtr2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetShareInfo501(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetShareCtr501(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetShareInfo502(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetShareCtr502(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetShareInfo1004(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetShareCtr1004(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_bitmap_NetShareInfo1005Flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetShareInfo1005(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetShareCtr1005(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetShareInfo1006(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetShareCtr1006(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetShareInfo1007(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetShareCtr1007(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetShareCtr1501(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetShareInfoCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
#define PLATFORM_ID_DOS (300)
|
||||
#define PLATFORM_ID_OS2 (400)
|
||||
#define PLATFORM_ID_NT (500)
|
||||
|
@ -156,10 +171,10 @@ int srvsvc_dissect_struct_NetTransportInfo0(tvbuff_t *tvb _U_, int offset _U_, p
|
|||
int srvsvc_dissect_struct_NetTransportCtr0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetTransportInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetTransportCtr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_bitmap_TransportFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetTransportInfo2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetTransportCtr2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetTransportInfo3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetTransportCtr3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetTransportInfoCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
int srvsvc_dissect_struct_NetRemoteTODInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
#endif /* __PACKET_DCERPC_SRVSVC_H */
|
||||
|
|
|
@ -59,6 +59,7 @@ static int hf_drda_param_length = -1;
|
|||
static int hf_drda_param_codepoint = -1;
|
||||
static int hf_drda_param_data = -1;
|
||||
static int hf_drda_param_data_ebcdic = -1;
|
||||
static int hf_drda_sqlstatement_length = -1;
|
||||
static int hf_drda_sqlstatement = -1;
|
||||
static int hf_drda_sqlstatement_ebcdic = -1;
|
||||
|
||||
|
@ -716,7 +717,8 @@ dissect_drda_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data
|
|||
tvbuff_t* next_tvb = NULL;
|
||||
next_tvb = tvb_new_subset_length(tvb, offset + 4, iLengthParam - 4);
|
||||
add_new_data_source(pinfo, next_tvb, "SQL statement");
|
||||
proto_tree_add_item(drdaroot_tree, hf_drda_sqlstatement, next_tvb, 0, iLengthParam - 5, ENC_UTF_8);
|
||||
proto_tree_add_item(drdaroot_tree, hf_drda_sqlstatement_length, next_tvb, 0, 1, ENC_NA);
|
||||
proto_tree_add_item(drdaroot_tree, hf_drda_sqlstatement, next_tvb, 1, iLengthParam - 6, ENC_UTF_8);
|
||||
proto_tree_add_item(drdaroot_tree, hf_drda_sqlstatement_ebcdic, next_tvb, 0, iLengthParam - 4, ENC_EBCDIC);
|
||||
}
|
||||
}
|
||||
|
@ -847,6 +849,11 @@ proto_register_drda(void)
|
|||
FT_STRING, BASE_NONE, NULL, 0x0,
|
||||
"Param data converted from EBCDIC to ASCII for display", HFILL }},
|
||||
|
||||
{ &hf_drda_sqlstatement_length,
|
||||
{ "SQL statement Length", "drda.sqlstatement.length",
|
||||
FT_UINT8, BASE_DEC, NULL, 0x0,
|
||||
NULL, HFILL }},
|
||||
|
||||
{ &hf_drda_sqlstatement,
|
||||
{ "SQL statement (ASCII)", "drda.sqlstatement",
|
||||
FT_STRING, BASE_NONE, NULL, 0x0,
|
||||
|
|
|
@ -114,6 +114,7 @@ static dissector_table_t osmo_dissector_table;
|
|||
#define IPAC_PROTO_EXT_ORC 0x04
|
||||
#define IPAC_PROTO_EXT_GSUP 0x05
|
||||
#define IPAC_PROTO_EXT_OAP 0x06
|
||||
#define IPAC_PROTO_EXT_RSPRO 0x07
|
||||
|
||||
static const value_string ipa_protocol_vals[] = {
|
||||
{ 0x00, "RSL" },
|
||||
|
@ -165,6 +166,7 @@ static const value_string ipa_osmo_proto_vals[] = {
|
|||
{ 0x04, "ORC" },
|
||||
{ 0x05, "GSUP" },
|
||||
{ 0x06, "OAP" },
|
||||
{ 0x07, "RSPRO" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
|
|
|
@ -0,0 +1,167 @@
|
|||
/* packet-gsm_l2rcop.c
|
||||
* Routines for GSM L2RCOP (3GPP TS 27.002) dissection
|
||||
* (C) 2023 Harald Welte <laforge@osmocom.org>
|
||||
*
|
||||
* Wireshark - Network traffic analyzer
|
||||
* By Gerald Combs <gerald@wireshark.org>
|
||||
* Copyright 1998
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include <epan/packet.h>
|
||||
#include <epan/prefs.h>
|
||||
#include <epan/xdlc.h>
|
||||
#include <epan/reassemble.h>
|
||||
#include <epan/conversation.h>
|
||||
|
||||
void proto_register_gsm_l2rcop(void);
|
||||
|
||||
static int proto_l2rcop = -1;
|
||||
|
||||
static int hf_l2rcop_sa = -1;
|
||||
static int hf_l2rcop_sb = -1;
|
||||
static int hf_l2rcop_x = -1;
|
||||
static int hf_l2rcop_addr = -1;
|
||||
static int hf_l2rcop_break = -1;
|
||||
static int hf_l2rcop_break_ack = -1;
|
||||
|
||||
static int ett_l2rcop = -1;
|
||||
|
||||
static const value_string addr_vals[] = {
|
||||
{ 31, "last status change, remainder empty" },
|
||||
{ 30, "last status change, remainder full of characters" },
|
||||
{ 29, "destructive break signal, remainder empty" },
|
||||
{ 28, "destructive break acknowledge, remainder empty" },
|
||||
{ 27, "extended address in ext octet" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
static void
|
||||
add_characters(proto_tree *tree, packet_info *pinfo, tvbuff_t *tvb, guint offset, guint len)
|
||||
{
|
||||
tvbuff_t *next_tvb = tvb_new_subset_length(tvb, offset, len);
|
||||
call_data_dissector(next_tvb, pinfo, tree);
|
||||
}
|
||||
|
||||
/* Dissect a L2RCOP message as described in 3GPP TS 27.002 */
|
||||
static int
|
||||
dissect_l2rcop(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
|
||||
{
|
||||
int reported_len = tvb_reported_length(tvb);
|
||||
guint cur;
|
||||
|
||||
/* we currently support RLP v0 + v1 (first octet is always status octet) */
|
||||
|
||||
for (cur = 0; cur < (guint)reported_len; ) {
|
||||
guint8 oct = tvb_get_guint8(tvb, cur);
|
||||
guint8 addr = oct & 0x1f;
|
||||
proto_tree *l2rcop_tree;
|
||||
proto_item *ti;
|
||||
const gchar *addr_str = val_to_str(addr, addr_vals, "%u characters");
|
||||
|
||||
ti = proto_tree_add_protocol_format(tree, proto_l2rcop, tvb, 0, reported_len,
|
||||
"GSM L2RCOP Chunk Status=0x%02x (Addr: %s)", oct, addr_str);
|
||||
l2rcop_tree = proto_item_add_subtree(ti, ett_l2rcop);
|
||||
|
||||
proto_tree_add_item(l2rcop_tree, hf_l2rcop_sa, tvb, cur, 1, ENC_BIG_ENDIAN);
|
||||
proto_tree_add_item(l2rcop_tree, hf_l2rcop_sb, tvb, cur, 1, ENC_BIG_ENDIAN);
|
||||
proto_tree_add_item(l2rcop_tree, hf_l2rcop_x, tvb, cur, 1, ENC_BIG_ENDIAN);
|
||||
proto_tree_add_item(l2rcop_tree, hf_l2rcop_addr, tvb, cur, 1, ENC_BIG_ENDIAN);
|
||||
|
||||
switch (addr) {
|
||||
case 31: /* last status change, remainder empty */
|
||||
return reported_len;
|
||||
case 30: /* last status change, remainder full of characters */
|
||||
add_characters(l2rcop_tree, pinfo, tvb, cur+1, reported_len-cur-1);
|
||||
return reported_len;
|
||||
case 29: /* destructive break signal, remainder empty */
|
||||
proto_tree_add_item(l2rcop_tree, hf_l2rcop_break, tvb, cur, 1, ENC_BIG_ENDIAN);
|
||||
return reported_len;
|
||||
case 28: /* destructive break acknowledge, remainder empty */
|
||||
proto_tree_add_item(l2rcop_tree, hf_l2rcop_break_ack, tvb, cur, 1, ENC_BIG_ENDIAN);
|
||||
return reported_len;
|
||||
case 27: /* extended address in ext octet */
|
||||
cur++;
|
||||
addr = tvb_get_guint8(tvb, cur) & 0x3f;
|
||||
/* This "cannot happen"; let's abort processing right now. */
|
||||
if (addr == 0)
|
||||
return reported_len;
|
||||
proto_tree_add_uint(l2rcop_tree, hf_l2rcop_addr, tvb, cur, 1, addr);
|
||||
add_characters(l2rcop_tree, pinfo, tvb, cur+1, addr);
|
||||
cur += 1 + addr;
|
||||
break;
|
||||
case 0:
|
||||
/* This "cannot happen"; let's abort processing right now. */
|
||||
return reported_len;
|
||||
default:
|
||||
/* This "cannot happen"; let's abort processing right now. */
|
||||
if (addr == 0)
|
||||
return reported_len;
|
||||
add_characters(l2rcop_tree, pinfo, tvb, cur+1, addr);
|
||||
cur += 1 + addr;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return reported_len;
|
||||
}
|
||||
|
||||
static const true_false_string x_vals = {
|
||||
"flow control ACTIVE", "flow control inactive"
|
||||
};
|
||||
|
||||
static const true_false_string sab_vals = {
|
||||
"OFF", "ON"
|
||||
};
|
||||
|
||||
|
||||
void
|
||||
proto_register_gsm_l2rcop(void)
|
||||
{
|
||||
static hf_register_info hf[] = {
|
||||
{ &hf_l2rcop_sa,
|
||||
{ "SA", "gsm_l2rcop.sa", FT_BOOLEAN, 8, TFS(&sab_vals), 0x80,
|
||||
NULL, HFILL }},
|
||||
{ &hf_l2rcop_sb,
|
||||
{ "SB", "gsm_l2rcop.sb", FT_BOOLEAN, 8, TFS(&sab_vals), 0x40,
|
||||
NULL, HFILL }},
|
||||
{ &hf_l2rcop_x,
|
||||
{ "X", "gsm_l2rcop.x", FT_BOOLEAN, 8, TFS(&x_vals), 0x20,
|
||||
NULL, HFILL }},
|
||||
{ &hf_l2rcop_addr,
|
||||
{ "Address", "gsm_l2rcop.addr", FT_UINT8, BASE_DEC|BASE_SPECIAL_VALS, VALS(addr_vals), 0x1f,
|
||||
NULL, HFILL }},
|
||||
{ &hf_l2rcop_break,
|
||||
{ "Break", "gsm_l2rcop.break", FT_UINT8, BASE_DEC, NULL, 0x00,
|
||||
NULL, HFILL }},
|
||||
{ &hf_l2rcop_break_ack,
|
||||
{ "Break Ack", "gsm_l2rcop.break_ack", FT_UINT8, BASE_DEC, NULL, 0x00,
|
||||
NULL, HFILL }},
|
||||
};
|
||||
static gint *ett[] = {
|
||||
&ett_l2rcop,
|
||||
};
|
||||
|
||||
proto_l2rcop = proto_register_protocol("GSM L2R Character Oriented Protocol (L2RCOP)", "GSM-L2RCOP",
|
||||
"gsm_l2rcop");
|
||||
proto_register_field_array(proto_l2rcop, hf, array_length(hf));
|
||||
proto_register_subtree_array(ett, array_length(ett));
|
||||
register_dissector("gsm_l2rcop", dissect_l2rcop, proto_l2rcop);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Editor modelines - https://www.wireshark.org/tools/modelines.html
|
||||
*
|
||||
* Local variables:
|
||||
* c-basic-offset: 4
|
||||
* tab-width: 8
|
||||
* indent-tabs-mode: nil
|
||||
* End:
|
||||
*
|
||||
* vi: set shiftwidth=4 tabstop=8 expandtab:
|
||||
* :indentSize=4:tabSize=8:noTabs=true:
|
||||
*/
|
|
@ -0,0 +1,348 @@
|
|||
/* packet-gsm_rlp.c
|
||||
* Routines for GSM RLP (3GPP TS 24.022) frame dissection
|
||||
* (C) 2023 Harald Welte <laforge@osmocom.org>
|
||||
*
|
||||
* Wireshark - Network traffic analyzer
|
||||
* By Gerald Combs <gerald@wireshark.org>
|
||||
* Copyright 1998
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include <epan/packet.h>
|
||||
#include <epan/prefs.h>
|
||||
#include <epan/expert.h>
|
||||
#include <epan/reassemble.h>
|
||||
#include <epan/conversation.h>
|
||||
|
||||
void proto_register_gsmrlp(void);
|
||||
|
||||
static int proto_gsmrlp = -1;
|
||||
|
||||
static int hf_gsmrlp_cr = -1;
|
||||
static int hf_gsmrlp_pf = -1;
|
||||
static int hf_gsmrlp_n_r = -1;
|
||||
static int hf_gsmrlp_n_s = -1;
|
||||
static int hf_gsmrlp_ftype = -1;
|
||||
static int hf_gsmrlp_s_ftype = -1;
|
||||
static int hf_gsmrlp_u_ftype = -1;
|
||||
static int hf_gsmrlp_fcs = -1;
|
||||
static int hf_gsmrlp_fcs_status = -1;
|
||||
|
||||
static int hf_gsmrlp_xid_p_type = -1;
|
||||
static int hf_gsmrlp_xid_p_len = -1;
|
||||
static int hf_gsmrlp_xid_p_val = -1;
|
||||
|
||||
static int ett_gsmrlp = -1;
|
||||
static int ett_gsmrlp_xid = -1;
|
||||
|
||||
static expert_field ei_gsmrlp_fcs_bad = EI_INIT;
|
||||
|
||||
static dissector_handle_t l2rcop_handle;
|
||||
static gboolean decode_as_l2rcop = true;
|
||||
|
||||
/* 3GPP TS 24.002 Section 5.2.1 */
|
||||
enum rlp_ftype {
|
||||
RLP_FT_U,
|
||||
RLP_FT_S,
|
||||
RLP_FT_IS,
|
||||
};
|
||||
|
||||
static const value_string rlp_ftype_vals[] = {
|
||||
{ RLP_FT_U, "U" },
|
||||
{ RLP_FT_S, "S" },
|
||||
{ RLP_FT_IS, "IS" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
/* 3GPP TS 24.002 Section 5.2.1 */
|
||||
enum rlp_u_ftype {
|
||||
RLP_U_FT_SABM = 0x07,
|
||||
RLP_U_FT_UA = 0x0c,
|
||||
RLP_U_FT_DISC = 0x08,
|
||||
RLP_U_FT_DM = 0x03,
|
||||
RLP_U_FT_NULL = 0x0f,
|
||||
RLP_U_FT_UI = 0x00,
|
||||
RLP_U_FT_XID = 0x17,
|
||||
RLP_U_FT_TEST = 0x1c,
|
||||
RLP_U_FT_REMAP = 0x11,
|
||||
};
|
||||
static const value_string rlp_ftype_u_vals[] = {
|
||||
{ RLP_U_FT_SABM, "SABM" },
|
||||
{ RLP_U_FT_UA, "UA" },
|
||||
{ RLP_U_FT_DISC, "DISC" },
|
||||
{ RLP_U_FT_DM, "DM" },
|
||||
{ RLP_U_FT_NULL, "NULL" },
|
||||
{ RLP_U_FT_UI, "UI" },
|
||||
{ RLP_U_FT_XID, "XID" },
|
||||
{ RLP_U_FT_TEST, "TEST" },
|
||||
{ RLP_U_FT_REMAP, "REMAP" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
/* 3GPP TS 24.002 Section 5.2.1 */
|
||||
enum rlp_s_ftype {
|
||||
RLP_S_FT_RR = 0,
|
||||
RLP_S_FT_REJ = 2,
|
||||
RLP_S_FT_RNR = 1,
|
||||
RLP_S_FT_SREJ = 3,
|
||||
};
|
||||
static const value_string rlp_ftype_s_vals[] = {
|
||||
{ RLP_S_FT_RR, "RR" },
|
||||
{ RLP_S_FT_REJ, "REJ" },
|
||||
{ RLP_S_FT_RNR, "RNR" },
|
||||
{ RLP_S_FT_SREJ, "SREJ" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
/* 3GPP TS 24.002 Section 5.2.2.6 */
|
||||
enum rlp_xid_param_type {
|
||||
XID_P_DELIMITER = 0,
|
||||
XID_P_RLP_VERSION = 1,
|
||||
XID_P_IWF_TO_UE_WIN_SIZE = 2,
|
||||
XID_P_UE_TO_IWF_WIN_SIZE = 3,
|
||||
XID_P_ACK_TIMER_T1 = 4,
|
||||
XID_P_RETRANS_ATTEMPTS_N2 = 5,
|
||||
XID_P_REPLY_DELAY_T2 = 6,
|
||||
XID_P_COMPRESSION_PT = 7,
|
||||
XID_P_RESEQUENCING_T4 = 8,
|
||||
XID_P_OPTIONAL_FEATURES = 9,
|
||||
};
|
||||
|
||||
static const value_string rlp_xid_param_vals[] = {
|
||||
{ XID_P_DELIMITER, "Delimiter (end of parameters)" },
|
||||
{ XID_P_RLP_VERSION, "RLP version number" },
|
||||
{ XID_P_IWF_TO_UE_WIN_SIZE, "IWF to UE window size" },
|
||||
{ XID_P_UE_TO_IWF_WIN_SIZE, "UE to IWF window size" },
|
||||
{ XID_P_ACK_TIMER_T1, "Acknowledgement Timer (T1)" },
|
||||
{ XID_P_RETRANS_ATTEMPTS_N2, "Retransmission attempts (N2)" },
|
||||
{ XID_P_REPLY_DELAY_T2, "Reply delay (T2)" },
|
||||
{ XID_P_COMPRESSION_PT, "Compression PT" },
|
||||
{ XID_P_RESEQUENCING_T4, "Re-sequencing timer (T4)" },
|
||||
{ XID_P_OPTIONAL_FEATURES, "Optional Features" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
static const guint32 rlp_fcs_table[256] = {
|
||||
0x00B29D2D, 0x00643A5B, 0x0044D87A, 0x00927F0C, 0x00051C38, 0x00D3BB4E, 0x00F3596F, 0x0025FE19,
|
||||
0x008694BC, 0x005033CA, 0x0070D1EB, 0x00A6769D, 0x003115A9, 0x00E7B2DF, 0x00C750FE, 0x0011F788,
|
||||
0x00DA8E0F, 0x000C2979, 0x002CCB58, 0x00FA6C2E, 0x006D0F1A, 0x00BBA86C, 0x009B4A4D, 0x004DED3B,
|
||||
0x00EE879E, 0x003820E8, 0x0018C2C9, 0x00CE65BF, 0x0059068B, 0x008FA1FD, 0x00AF43DC, 0x0079E4AA,
|
||||
0x0062BB69, 0x00B41C1F, 0x0094FE3E, 0x00425948, 0x00D53A7C, 0x00039D0A, 0x00237F2B, 0x00F5D85D,
|
||||
0x0056B2F8, 0x0080158E, 0x00A0F7AF, 0x007650D9, 0x00E133ED, 0x0037949B, 0x001776BA, 0x00C1D1CC,
|
||||
0x000AA84B, 0x00DC0F3D, 0x00FCED1C, 0x002A4A6A, 0x00BD295E, 0x006B8E28, 0x004B6C09, 0x009DCB7F,
|
||||
0x003EA1DA, 0x00E806AC, 0x00C8E48D, 0x001E43FB, 0x008920CF, 0x005F87B9, 0x007F6598, 0x00A9C2EE,
|
||||
0x0049DA1E, 0x009F7D68, 0x00BF9F49, 0x0069383F, 0x00FE5B0B, 0x0028FC7D, 0x00081E5C, 0x00DEB92A,
|
||||
0x007DD38F, 0x00AB74F9, 0x008B96D8, 0x005D31AE, 0x00CA529A, 0x001CF5EC, 0x003C17CD, 0x00EAB0BB,
|
||||
0x0021C93C, 0x00F76E4A, 0x00D78C6B, 0x00012B1D, 0x00964829, 0x0040EF5F, 0x00600D7E, 0x00B6AA08,
|
||||
0x0015C0AD, 0x00C367DB, 0x00E385FA, 0x0035228C, 0x00A241B8, 0x0074E6CE, 0x005404EF, 0x0082A399,
|
||||
0x0099FC5A, 0x004F5B2C, 0x006FB90D, 0x00B91E7B, 0x002E7D4F, 0x00F8DA39, 0x00D83818, 0x000E9F6E,
|
||||
0x00ADF5CB, 0x007B52BD, 0x005BB09C, 0x008D17EA, 0x001A74DE, 0x00CCD3A8, 0x00EC3189, 0x003A96FF,
|
||||
0x00F1EF78, 0x0027480E, 0x0007AA2F, 0x00D10D59, 0x00466E6D, 0x0090C91B, 0x00B02B3A, 0x00668C4C,
|
||||
0x00C5E6E9, 0x0013419F, 0x0033A3BE, 0x00E504C8, 0x007267FC, 0x00A4C08A, 0x008422AB, 0x005285DD,
|
||||
0x001F18F0, 0x00C9BF86, 0x00E95DA7, 0x003FFAD1, 0x00A899E5, 0x007E3E93, 0x005EDCB2, 0x00887BC4,
|
||||
0x002B1161, 0x00FDB617, 0x00DD5436, 0x000BF340, 0x009C9074, 0x004A3702, 0x006AD523, 0x00BC7255,
|
||||
0x00770BD2, 0x00A1ACA4, 0x00814E85, 0x0057E9F3, 0x00C08AC7, 0x00162DB1, 0x0036CF90, 0x00E068E6,
|
||||
0x00430243, 0x0095A535, 0x00B54714, 0x0063E062, 0x00F48356, 0x00222420, 0x0002C601, 0x00D46177,
|
||||
0x00CF3EB4, 0x001999C2, 0x00397BE3, 0x00EFDC95, 0x0078BFA1, 0x00AE18D7, 0x008EFAF6, 0x00585D80,
|
||||
0x00FB3725, 0x002D9053, 0x000D7272, 0x00DBD504, 0x004CB630, 0x009A1146, 0x00BAF367, 0x006C5411,
|
||||
0x00A72D96, 0x00718AE0, 0x005168C1, 0x0087CFB7, 0x0010AC83, 0x00C60BF5, 0x00E6E9D4, 0x00304EA2,
|
||||
0x00932407, 0x00458371, 0x00656150, 0x00B3C626, 0x0024A512, 0x00F20264, 0x00D2E045, 0x00044733,
|
||||
0x00E45FC3, 0x0032F8B5, 0x00121A94, 0x00C4BDE2, 0x0053DED6, 0x008579A0, 0x00A59B81, 0x00733CF7,
|
||||
0x00D05652, 0x0006F124, 0x00261305, 0x00F0B473, 0x0067D747, 0x00B17031, 0x00919210, 0x00473566,
|
||||
0x008C4CE1, 0x005AEB97, 0x007A09B6, 0x00ACAEC0, 0x003BCDF4, 0x00ED6A82, 0x00CD88A3, 0x001B2FD5,
|
||||
0x00B84570, 0x006EE206, 0x004E0027, 0x0098A751, 0x000FC465, 0x00D96313, 0x00F98132, 0x002F2644,
|
||||
0x00347987, 0x00E2DEF1, 0x00C23CD0, 0x00149BA6, 0x0083F892, 0x00555FE4, 0x0075BDC5, 0x00A31AB3,
|
||||
0x00007016, 0x00D6D760, 0x00F63541, 0x00209237, 0x00B7F103, 0x00615675, 0x0041B454, 0x00971322,
|
||||
0x005C6AA5, 0x008ACDD3, 0x00AA2FF2, 0x007C8884, 0x00EBEBB0, 0x003D4CC6, 0x001DAEE7, 0x00CB0991,
|
||||
0x00686334, 0x00BEC442, 0x009E2663, 0x00488115, 0x00DFE221, 0x00094557, 0x0029A776, 0x00FF0000
|
||||
};
|
||||
|
||||
/*! compute RLP FCS according to 3GPP TS 24.022 Section 4.4 */
|
||||
static guint32 rlp_fcs_compute(const guchar *in, size_t in_len)
|
||||
{
|
||||
guint32 divider = 0;
|
||||
size_t i;
|
||||
|
||||
for (i = 0; i < in_len; i++) {
|
||||
guchar input = in[i] ^ (divider & 0xff);
|
||||
divider = (divider >> 8) ^ rlp_fcs_table[input];
|
||||
}
|
||||
|
||||
return ((divider & 0xff) << 16) | (divider & 0xff00) | ((divider & 0xff0000) >> 16);
|
||||
}
|
||||
|
||||
static int
|
||||
dissect_gsmrlp_xid(tvbuff_t *tvb, gint offset, packet_info *pinfo _U_, proto_tree *tree)
|
||||
{
|
||||
gint cur;
|
||||
|
||||
for (cur = offset; cur < (gint) tvb_reported_length(tvb);) {
|
||||
guint8 len = tvb_get_guint8(tvb, cur) & 0x0f;
|
||||
guint8 type = tvb_get_guint8(tvb, cur) >> 4;
|
||||
proto_tree *xid_tree;
|
||||
|
||||
proto_tree_add_subtree_format(tree, tvb, cur, 1 + len, ett_gsmrlp_xid, &xid_tree, "XID Parameter: %s",
|
||||
val_to_str(type, rlp_xid_param_vals, "Unknown"));
|
||||
proto_tree_add_item(xid_tree, hf_gsmrlp_xid_p_type, tvb, cur, 1, ENC_BIG_ENDIAN);
|
||||
proto_tree_add_item(xid_tree, hf_gsmrlp_xid_p_len, tvb, cur, 1, ENC_BIG_ENDIAN);
|
||||
if (len)
|
||||
proto_tree_add_item(xid_tree, hf_gsmrlp_xid_p_val, tvb, cur + 1, len, ENC_BIG_ENDIAN);
|
||||
cur += 1 + len;
|
||||
if (type == XID_P_DELIMITER)
|
||||
break;
|
||||
}
|
||||
|
||||
return cur - offset;
|
||||
}
|
||||
|
||||
|
||||
/* Dissect a RLP v0/v1 message as described in TS 24.022 section 5.2 */
|
||||
static int
|
||||
dissect_gsmrlp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
|
||||
{
|
||||
int reported_len = tvb_reported_length(tvb);
|
||||
proto_tree *rlp_tree;
|
||||
proto_item *ti;
|
||||
guint8 n_s, n_r;
|
||||
|
||||
/* we currently support the 16bit header of RLP v0 + v1 */
|
||||
|
||||
col_set_str(pinfo->cinfo, COL_PROTOCOL, "GSM-RLP");
|
||||
|
||||
n_s = (tvb_get_guint8(tvb, 0)) >> 3 | ((tvb_get_guint8(tvb, 1) & 1) << 5);
|
||||
n_r = (tvb_get_guint8(tvb, 1) >> 2);
|
||||
|
||||
ti = proto_tree_add_protocol_format(tree, proto_gsmrlp, tvb, 0, reported_len,
|
||||
"GSM RLP");
|
||||
rlp_tree = proto_item_add_subtree(ti, ett_gsmrlp);
|
||||
|
||||
proto_tree_add_item(rlp_tree, hf_gsmrlp_cr, tvb, 0, 1, ENC_BIG_ENDIAN);
|
||||
proto_tree_add_item(rlp_tree, hf_gsmrlp_pf, tvb, 1, 1, ENC_BIG_ENDIAN);
|
||||
if (n_s == 0x3f) { /* U frame */
|
||||
guint u_ftype;
|
||||
proto_tree_add_uint(rlp_tree, hf_gsmrlp_ftype, tvb, 0, 1, RLP_FT_U);
|
||||
proto_tree_add_item_ret_uint(rlp_tree, hf_gsmrlp_u_ftype, tvb, 1, 1, ENC_BIG_ENDIAN, &u_ftype);
|
||||
if ((n_r & 0x1f) == RLP_U_FT_XID)
|
||||
dissect_gsmrlp_xid(tvb, 2, pinfo, rlp_tree);
|
||||
proto_item_append_text(ti, " U-Frame: %s", val_to_str(u_ftype, rlp_ftype_u_vals, "Unknown 0x%02x"));
|
||||
} else if (n_s == 0x3e) { /* S Frame */
|
||||
guint s_ftype;
|
||||
proto_tree_add_uint(rlp_tree, hf_gsmrlp_ftype, tvb, 0, 1, RLP_FT_S);
|
||||
proto_tree_add_item_ret_uint(rlp_tree, hf_gsmrlp_s_ftype, tvb, 0, 1, ENC_BIG_ENDIAN, &s_ftype);
|
||||
proto_tree_add_uint(rlp_tree, hf_gsmrlp_n_r, tvb, 1, 1, n_r);
|
||||
proto_item_append_text(ti, " S-Frame: %s, N(S): %u, N(R): %u",
|
||||
val_to_str(s_ftype, rlp_ftype_s_vals, "Unknown 0x%02x"), n_s, n_r);
|
||||
} else { /* IS Frame */
|
||||
tvbuff_t *next_tvb;
|
||||
guint s_ftype;
|
||||
int data_len;
|
||||
|
||||
proto_tree_add_uint(rlp_tree, hf_gsmrlp_ftype, tvb, 0, 1, RLP_FT_IS);
|
||||
proto_tree_add_item_ret_uint(rlp_tree, hf_gsmrlp_s_ftype, tvb, 0, 1, ENC_BIG_ENDIAN, &s_ftype);
|
||||
proto_tree_add_uint(rlp_tree, hf_gsmrlp_n_s, tvb, 0, 2, n_s);
|
||||
proto_tree_add_uint(rlp_tree, hf_gsmrlp_n_r, tvb, 1, 1, n_r);
|
||||
proto_item_append_text(ti, " IS-Frame: %s, N(S): %u, N(R): %u",
|
||||
val_to_str(s_ftype, rlp_ftype_s_vals, "Unknown 0x%02x"), n_s, n_r);
|
||||
|
||||
/* dispatch user data */
|
||||
data_len = reported_len - 2 /* header */ - 3 /* FCS */;
|
||||
next_tvb = tvb_new_subset_length(tvb, 2, data_len);
|
||||
if (decode_as_l2rcop && l2rcop_handle)
|
||||
call_dissector(l2rcop_handle, next_tvb, pinfo, rlp_tree);
|
||||
else
|
||||
call_data_dissector(next_tvb, pinfo, rlp_tree);
|
||||
}
|
||||
|
||||
/* FCS is always the last 3 bytes of the message */
|
||||
guint32 fcs_computed = rlp_fcs_compute(tvb_get_ptr(tvb, 0, reported_len - 3), reported_len - 3);
|
||||
proto_tree_add_checksum(rlp_tree, tvb, reported_len - 3, hf_gsmrlp_fcs, hf_gsmrlp_fcs_status,
|
||||
&ei_gsmrlp_fcs_bad, pinfo, fcs_computed, ENC_BIG_ENDIAN, PROTO_CHECKSUM_VERIFY);
|
||||
|
||||
return tvb_reported_length(tvb);
|
||||
}
|
||||
|
||||
void
|
||||
proto_register_gsmrlp(void)
|
||||
{
|
||||
static hf_register_info hf[] = {
|
||||
{ &hf_gsmrlp_cr,
|
||||
{ "C/R", "gsm_rlp.cr", FT_UINT8, BASE_DEC, NULL, 0x01,
|
||||
"Command/Response bit", HFILL }},
|
||||
{ &hf_gsmrlp_pf,
|
||||
{ "P/F", "gsm_rlp.pf", FT_UINT8, BASE_DEC, NULL, 0x02,
|
||||
"Poll/Final bit", HFILL }},
|
||||
{ &hf_gsmrlp_n_r,
|
||||
{ "N(R)", "gsm_rlp.n_r", FT_UINT8, BASE_DEC, NULL, 0,
|
||||
"Receive Sequence Number", HFILL }},
|
||||
{ &hf_gsmrlp_n_s,
|
||||
{ "N(S)", "gsm_rlp.n_s", FT_UINT8, BASE_DEC, NULL, 0,
|
||||
"Send Sequence Number", HFILL }},
|
||||
{ &hf_gsmrlp_ftype,
|
||||
{ "Frame type", "gsm_rlp.ftype", FT_UINT8, BASE_HEX,
|
||||
VALS(rlp_ftype_vals), 0, NULL, HFILL }},
|
||||
{ &hf_gsmrlp_u_ftype,
|
||||
{ "U Frame type", "gsm_rlp.u_ftype", FT_UINT8, BASE_HEX,
|
||||
VALS(rlp_ftype_u_vals), 0x7c, NULL, HFILL }},
|
||||
{ &hf_gsmrlp_s_ftype,
|
||||
{ "S frame type", "gsm_rlp.s_ftype", FT_UINT8, BASE_HEX,
|
||||
VALS(rlp_ftype_s_vals), 0x06, NULL, HFILL }},
|
||||
{ &hf_gsmrlp_fcs,
|
||||
{ "Frame Check Sequence", "gsm_rlp.fcs", FT_UINT24, BASE_HEX,
|
||||
NULL, 0, NULL, HFILL }},
|
||||
{ &hf_gsmrlp_fcs_status,
|
||||
{ "FCS Status", "gsm_rlp.fcs.status", FT_UINT8, BASE_NONE,
|
||||
VALS(proto_checksum_vals), 0, NULL, HFILL }},
|
||||
|
||||
{ &hf_gsmrlp_xid_p_type,
|
||||
{ "XID Parameter Type", "gsm_rlp.xid.param_type", FT_UINT8, BASE_HEX,
|
||||
VALS(rlp_xid_param_vals), 0xf0, NULL, HFILL }},
|
||||
{ &hf_gsmrlp_xid_p_len,
|
||||
{ "XID Parameter Length", "gsm_rlp.xid.param_len", FT_UINT8, BASE_DEC,
|
||||
NULL, 0x0f, NULL, HFILL }},
|
||||
{ &hf_gsmrlp_xid_p_val,
|
||||
{ "XID Parameter Value", "gsm_rlp.xid.param_value", FT_UINT8, BASE_DEC,
|
||||
NULL, 0, NULL, HFILL }},
|
||||
};
|
||||
static gint *ett[] = {
|
||||
&ett_gsmrlp,
|
||||
&ett_gsmrlp_xid,
|
||||
};
|
||||
static ei_register_info ei[] = {
|
||||
{ &ei_gsmrlp_fcs_bad, { "gsm_rlp.fcs_bad", PI_CHECKSUM, PI_ERROR, "Bad checksum" , EXPFILL }},
|
||||
};
|
||||
module_t *rlp_module;
|
||||
expert_module_t *expert_gsmrlp;
|
||||
|
||||
proto_gsmrlp = proto_register_protocol("GSM Radio Link Protocol (RLP)", "GSM-RLP", "gsm_rlp");
|
||||
proto_register_field_array(proto_gsmrlp, hf, array_length(hf));
|
||||
proto_register_subtree_array(ett, array_length(ett));
|
||||
expert_gsmrlp = expert_register_protocol(proto_gsmrlp);
|
||||
expert_register_field_array(expert_gsmrlp, ei, array_length(ei));
|
||||
|
||||
register_dissector("gsm_rlp", dissect_gsmrlp, proto_gsmrlp);
|
||||
|
||||
rlp_module = prefs_register_protocol(proto_gsmrlp, NULL);
|
||||
prefs_register_bool_preference(rlp_module, "decode_as_l2rcop", "Decode payload as L2RCOP",
|
||||
NULL, &decode_as_l2rcop);
|
||||
}
|
||||
void
|
||||
proto_reg_handoff_gsmrlp(void)
|
||||
{
|
||||
l2rcop_handle = find_dissector_add_dependency("gsm_l2rcop", proto_gsmrlp);
|
||||
}
|
||||
|
||||
/*
|
||||
* Editor modelines - https://www.wireshark.org/tools/modelines.html
|
||||
*
|
||||
* Local variables:
|
||||
* c-basic-offset: 4
|
||||
* tab-width: 8
|
||||
* indent-tabs-mode: nil
|
||||
* End:
|
||||
*
|
||||
* vi: set shiftwidth=4 tabstop=8 expandtab:
|
||||
* :indentSize=4:tabSize=8:noTabs=true:
|
||||
*/
|
|
@ -111,6 +111,7 @@ enum {
|
|||
GSMTAP_SUB_LAPD,
|
||||
GSMTAP_SUB_FR,
|
||||
GSMTAP_SUB_V5EF,
|
||||
GSMTAP_SUB_GSM_RLP,
|
||||
|
||||
GSMTAP_SUB_MAX
|
||||
};
|
||||
|
@ -440,6 +441,7 @@ static const value_string gsmtap_types[] = {
|
|||
{ GSMTAP_TYPE_QC_DIAG, "Qualcomm DIAG" },
|
||||
{ GSMTAP_TYPE_LTE_NAS, "LTE NAS" },
|
||||
{ GSMTAP_TYPE_E1T1, "E1/T1" },
|
||||
{ GSMTAP_TYPE_GSM_RLP, "GSM RLP" },
|
||||
{ 0, NULL },
|
||||
};
|
||||
|
||||
|
@ -1109,6 +1111,9 @@ dissect_gsmtap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _
|
|||
break;
|
||||
}
|
||||
break;
|
||||
case GSMTAP_TYPE_GSM_RLP:
|
||||
sub_handle = GSMTAP_SUB_GSM_RLP;
|
||||
break;
|
||||
case GSMTAP_TYPE_UM_BURST:
|
||||
default:
|
||||
sub_handle = GSMTAP_SUB_DATA;
|
||||
|
@ -1244,6 +1249,7 @@ proto_reg_handoff_gsmtap(void)
|
|||
sub_handles[GSMTAP_SUB_LAPD] = find_dissector_add_dependency("lapd-phdr", proto_gsmtap);
|
||||
sub_handles[GSMTAP_SUB_FR] = find_dissector_add_dependency("fr", proto_gsmtap);
|
||||
sub_handles[GSMTAP_SUB_V5EF] = find_dissector_add_dependency("v5ef", proto_gsmtap);
|
||||
sub_handles[GSMTAP_SUB_GSM_RLP] = find_dissector_add_dependency("gsm_rlp", proto_gsmtap);
|
||||
|
||||
rrc_sub_handles[GSMTAP_RRC_SUB_DL_DCCH_Message] = find_dissector_add_dependency("rrc.dl.dcch", proto_gsmtap);
|
||||
rrc_sub_handles[GSMTAP_RRC_SUB_UL_DCCH_Message] = find_dissector_add_dependency("rrc.ul.dcch", proto_gsmtap);
|
||||
|
|
|
@ -41,6 +41,7 @@
|
|||
#define GSMTAP_TYPE_QC_DIAG 0x11 /* Qualcomm DIAG frame */
|
||||
#define GSMTAP_TYPE_LTE_NAS 0x12 /* LTE Non-Access Stratum */
|
||||
#define GSMTAP_TYPE_E1T1 0x13 /* E1/T1 line traces */
|
||||
#define GSMTAP_TYPE_GSM_RLP 0x14 /* GSM RLP as per 3GPP TS 24.022 */
|
||||
|
||||
/* ====== DO NOT MAKE UNAPPROVED MODIFICATIONS HERE ===== */
|
||||
#define GSMTAP_BURST_UNKNOWN 0x00
|
||||
|
|
|
@ -1802,6 +1802,7 @@ dissect_icmpv6_nd_opt(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree
|
|||
NULL
|
||||
};
|
||||
|
||||
guint32 lifetime;
|
||||
guint8 prefix_len;
|
||||
/* RFC 4861 */
|
||||
|
||||
|
@ -1815,11 +1816,13 @@ dissect_icmpv6_nd_opt(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree
|
|||
opt_offset += 1;
|
||||
|
||||
/* Prefix Valid Lifetime */
|
||||
proto_tree_add_item(icmp6opt_tree, hf_icmpv6_opt_prefix_valid_lifetime, tvb, opt_offset, 4, ENC_BIG_ENDIAN);
|
||||
ti_opt = proto_tree_add_item_ret_uint(icmp6opt_tree, hf_icmpv6_opt_prefix_valid_lifetime, tvb, opt_offset, 4, ENC_BIG_ENDIAN, &lifetime);
|
||||
proto_item_append_text(ti_opt, " (%s)", unsigned_time_secs_to_str(wmem_packet_scope(), lifetime));
|
||||
opt_offset += 4;
|
||||
|
||||
/* Prefix Preferred Lifetime */
|
||||
proto_tree_add_item(icmp6opt_tree, hf_icmpv6_opt_prefix_preferred_lifetime, tvb, opt_offset, 4, ENC_BIG_ENDIAN);
|
||||
ti_opt = proto_tree_add_item_ret_uint(icmp6opt_tree, hf_icmpv6_opt_prefix_preferred_lifetime, tvb, opt_offset, 4, ENC_BIG_ENDIAN, &lifetime);
|
||||
proto_item_append_text(ti_opt, " (%s)", unsigned_time_secs_to_str(wmem_packet_scope(), lifetime));
|
||||
opt_offset += 4;
|
||||
|
||||
proto_tree_add_item(icmp6opt_tree, hf_icmpv6_opt_reserved, tvb, opt_offset, 4, ENC_NA);
|
||||
|
@ -2170,6 +2173,8 @@ dissect_icmpv6_nd_opt(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree
|
|||
NULL
|
||||
};
|
||||
|
||||
guint32 lifetime;
|
||||
|
||||
/* Dist */
|
||||
proto_tree_add_item(icmp6opt_tree, hf_icmpv6_opt_map_dist, tvb, opt_offset, 1, ENC_BIG_ENDIAN);
|
||||
|
||||
|
@ -2182,7 +2187,8 @@ dissect_icmpv6_nd_opt(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree
|
|||
opt_offset += 1;
|
||||
|
||||
/* Valid Lifetime */
|
||||
proto_tree_add_item(icmp6opt_tree, hf_icmpv6_opt_map_valid_lifetime, tvb, opt_offset, 4, ENC_BIG_ENDIAN);
|
||||
ti_opt = proto_tree_add_item_ret_uint(icmp6opt_tree, hf_icmpv6_opt_map_valid_lifetime, tvb, opt_offset, 4, ENC_BIG_ENDIAN, &lifetime);
|
||||
proto_item_append_text(ti_opt, " (%s)", unsigned_time_secs_to_str(wmem_packet_scope(), lifetime));
|
||||
opt_offset += 4;
|
||||
|
||||
/* Global Address */
|
||||
|
@ -2195,6 +2201,7 @@ dissect_icmpv6_nd_opt(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree
|
|||
/* RFC 4191 */
|
||||
guint8 prefix_len;
|
||||
guint8 route_preference;
|
||||
guint32 lifetime;
|
||||
ws_in6_addr prefix;
|
||||
address prefix_addr;
|
||||
static int * const route_flags[] = {
|
||||
|
@ -2217,7 +2224,8 @@ dissect_icmpv6_nd_opt(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree
|
|||
opt_offset += 1;
|
||||
|
||||
/* Route Lifetime */
|
||||
proto_tree_add_item(icmp6opt_tree, hf_icmpv6_opt_route_lifetime, tvb, opt_offset, 4, ENC_BIG_ENDIAN);
|
||||
ti_opt = proto_tree_add_item_ret_uint(icmp6opt_tree, hf_icmpv6_opt_route_lifetime, tvb, opt_offset, 4, ENC_BIG_ENDIAN, &lifetime);
|
||||
proto_item_append_text(ti_opt, " (%s)", unsigned_time_secs_to_str(wmem_packet_scope(), lifetime));
|
||||
opt_offset += 4;
|
||||
|
||||
/* Prefix */
|
||||
|
@ -2248,12 +2256,15 @@ dissect_icmpv6_nd_opt(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree
|
|||
|
||||
case ND_OPT_RECURSIVE_DNS_SERVER: /* Recursive DNS Server Option (25) */
|
||||
{
|
||||
guint32 lifetime;
|
||||
|
||||
/* Reserved */
|
||||
proto_tree_add_item(icmp6opt_tree, hf_icmpv6_opt_reserved, tvb, opt_offset, 2, ENC_NA);
|
||||
opt_offset += 2;
|
||||
|
||||
/* RDNSS Lifetime */
|
||||
proto_tree_add_item(icmp6opt_tree, hf_icmpv6_opt_rdnss_lifetime, tvb, opt_offset, 4, ENC_BIG_ENDIAN);
|
||||
ti_opt = proto_tree_add_item_ret_uint(icmp6opt_tree, hf_icmpv6_opt_rdnss_lifetime, tvb, opt_offset, 4, ENC_BIG_ENDIAN, &lifetime);
|
||||
proto_item_append_text(ti_opt, " (%s)", unsigned_time_secs_to_str(wmem_packet_scope(), lifetime));
|
||||
opt_offset += 4;
|
||||
|
||||
while(opt_offset < (offset + opt_len) ) {
|
||||
|
@ -2391,6 +2402,7 @@ dissect_icmpv6_nd_opt(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree
|
|||
}
|
||||
case ND_OPT_DNS_SEARCH_LIST: /* DNS Search List Option (31) */
|
||||
{
|
||||
guint32 lifetime;
|
||||
int dnssl_len;
|
||||
const gchar *dnssl_name, *name_out;
|
||||
|
||||
|
@ -2399,7 +2411,8 @@ dissect_icmpv6_nd_opt(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree
|
|||
opt_offset += 2;
|
||||
|
||||
/* DNSSL Lifetime */
|
||||
proto_tree_add_item(icmp6opt_tree, hf_icmpv6_opt_dnssl_lifetime, tvb, opt_offset, 4, ENC_BIG_ENDIAN);
|
||||
ti_opt = proto_tree_add_item_ret_uint(icmp6opt_tree, hf_icmpv6_opt_dnssl_lifetime, tvb, opt_offset, 4, ENC_BIG_ENDIAN, &lifetime);
|
||||
proto_item_append_text(ti_opt, " (%s)", unsigned_time_secs_to_str(wmem_packet_scope(), lifetime));
|
||||
opt_offset += 4;
|
||||
while(opt_offset < (offset + opt_len) ) {
|
||||
|
||||
|
@ -3091,7 +3104,8 @@ dissect_icmpv6_rpl_opt(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree
|
|||
}
|
||||
case RPL_OPT_PREFIX: {
|
||||
/* Destination prefix option. */
|
||||
guint32 prefix_len;
|
||||
guint32 lifetime;
|
||||
guint32 prefix_len;
|
||||
static int * const rpl_prefix_flags[] = {
|
||||
&hf_icmpv6_rpl_opt_prefix_flag_l,
|
||||
&hf_icmpv6_rpl_opt_prefix_flag_a,
|
||||
|
@ -3109,12 +3123,14 @@ dissect_icmpv6_rpl_opt(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree
|
|||
ett_icmpv6_rpl_flag_prefix, rpl_prefix_flags, ENC_BIG_ENDIAN);
|
||||
opt_offset += 1;
|
||||
|
||||
/* Valid lifetime. */
|
||||
proto_tree_add_item(icmp6opt_tree, hf_icmpv6_rpl_opt_prefix_vlifetime, tvb, opt_offset, 4, ENC_BIG_ENDIAN);
|
||||
/* Valid Lifetime */
|
||||
ti_opt = proto_tree_add_item_ret_uint(icmp6opt_tree, hf_icmpv6_rpl_opt_prefix_vlifetime, tvb, opt_offset, 4, ENC_BIG_ENDIAN, &lifetime);
|
||||
proto_item_append_text(ti_opt, " (%s)", unsigned_time_secs_to_str(wmem_packet_scope(), lifetime));
|
||||
opt_offset += 4;
|
||||
|
||||
/* Preferred Lifetime */
|
||||
proto_tree_add_item(icmp6opt_tree, hf_icmpv6_rpl_opt_prefix_plifetime, tvb, opt_offset, 4, ENC_BIG_ENDIAN);
|
||||
ti_opt = proto_tree_add_item_ret_uint(icmp6opt_tree, hf_icmpv6_rpl_opt_prefix_plifetime, tvb, opt_offset, 4, ENC_BIG_ENDIAN, &lifetime);
|
||||
proto_item_append_text(ti_opt, " (%s)", unsigned_time_secs_to_str(wmem_packet_scope(), lifetime));
|
||||
opt_offset += 4;
|
||||
|
||||
/* 4 reserved bytes. */
|
||||
|
@ -3790,6 +3806,7 @@ dissect_rrenum(tvbuff_t *tvb, int rr_offset, packet_info *pinfo _U_, proto_tree
|
|||
while ((int)tvb_reported_length(tvb) > rr_offset) {
|
||||
/* Use-Prefix Part */
|
||||
guint8 uselen, keeplen;
|
||||
guint32 lifetime;
|
||||
static int * const mask_flags[] = {
|
||||
&hf_icmpv6_rr_pco_up_flagmask_l,
|
||||
&hf_icmpv6_rr_pco_up_flagmask_a,
|
||||
|
@ -3831,11 +3848,13 @@ dissect_rrenum(tvbuff_t *tvb, int rr_offset, packet_info *pinfo _U_, proto_tree
|
|||
rr_offset += 1;
|
||||
|
||||
/* Valid Lifetime */
|
||||
proto_tree_add_item(up_tree, hf_icmpv6_rr_pco_up_validlifetime, tvb, rr_offset, 4, ENC_BIG_ENDIAN);
|
||||
ti = proto_tree_add_item_ret_uint(up_tree, hf_icmpv6_rr_pco_up_validlifetime, tvb, rr_offset, 4, ENC_BIG_ENDIAN, &lifetime);
|
||||
proto_item_append_text(ti, " (%s)", unsigned_time_secs_to_str(wmem_packet_scope(), lifetime));
|
||||
rr_offset += 4;
|
||||
|
||||
/* Preferred Lifetime */
|
||||
proto_tree_add_item(up_tree, hf_icmpv6_rr_pco_up_preferredlifetime, tvb, rr_offset, 4, ENC_BIG_ENDIAN);
|
||||
ti = proto_tree_add_item_ret_uint(up_tree, hf_icmpv6_rr_pco_up_preferredlifetime, tvb, rr_offset, 4, ENC_BIG_ENDIAN, &lifetime);
|
||||
proto_item_append_text(ti, " (%s)", unsigned_time_secs_to_str(wmem_packet_scope(), lifetime));
|
||||
rr_offset += 4;
|
||||
|
||||
/* Flags */
|
||||
|
|
|
@ -741,6 +741,7 @@ static int hf_qcc = -1;
|
|||
static int hf_qcc_rqt = -1;
|
||||
static int hf_qcc_frz = -1;
|
||||
static int hf_qrp = -1;
|
||||
static int hf_bcr = -1;
|
||||
static int hf_bcr_count = -1;
|
||||
static int hf_bcr_sq = -1;
|
||||
static int hf_bcr_cy = -1;
|
||||
|
@ -1455,14 +1456,20 @@ static void get_BSIspt(tvbuff_t *tvb, guint8 *offset, proto_tree *iec104_header_
|
|||
==================================================================== */
|
||||
static void get_BCR(tvbuff_t *tvb, guint8 *offset, proto_tree *iec104_header_tree)
|
||||
{
|
||||
proto_tree_add_item(iec104_header_tree, hf_bcr_count, tvb, *offset, 4, ENC_LITTLE_ENDIAN);
|
||||
*offset += 4;
|
||||
proto_item* ti;
|
||||
proto_tree* bcr_tree;
|
||||
|
||||
proto_tree_add_item(iec104_header_tree, hf_bcr_sq, tvb, *offset, 1, ENC_LITTLE_ENDIAN);
|
||||
proto_tree_add_item(iec104_header_tree, hf_bcr_cy, tvb, *offset, 1, ENC_LITTLE_ENDIAN);
|
||||
proto_tree_add_item(iec104_header_tree, hf_bcr_ca, tvb, *offset, 1, ENC_LITTLE_ENDIAN);
|
||||
proto_tree_add_item(iec104_header_tree, hf_bcr_iv, tvb, *offset, 1, ENC_LITTLE_ENDIAN);
|
||||
*offset += 1;
|
||||
ti = proto_tree_add_item(iec104_header_tree, hf_bcr, tvb, *offset, 4, ENC_LITTLE_ENDIAN);
|
||||
bcr_tree = proto_item_add_subtree(ti, ett_vti);
|
||||
|
||||
proto_tree_add_item(bcr_tree, hf_bcr_count, tvb, *offset, 4, ENC_LITTLE_ENDIAN);
|
||||
(*offset) += 4;
|
||||
|
||||
proto_tree_add_item(bcr_tree, hf_bcr_sq, tvb, *offset, 1, ENC_LITTLE_ENDIAN);
|
||||
proto_tree_add_item(bcr_tree, hf_bcr_cy, tvb, *offset, 1, ENC_LITTLE_ENDIAN);
|
||||
proto_tree_add_item(bcr_tree, hf_bcr_ca, tvb, *offset, 1, ENC_LITTLE_ENDIAN);
|
||||
proto_tree_add_item(bcr_tree, hf_bcr_iv, tvb, *offset, 1, ENC_LITTLE_ENDIAN);
|
||||
(*offset)++;
|
||||
}
|
||||
|
||||
/* ====================================================================
|
||||
|
@ -2575,11 +2582,11 @@ proto_register_iec60870_asdu(void)
|
|||
NULL, HFILL }},
|
||||
|
||||
{ &hf_coi_r,
|
||||
{ "R", "iec60870_asdu.coi_r", FT_UINT8, BASE_DEC, VALS(coi_r_types), 0x7F,
|
||||
{ "R", "iec60870_asdu.coi.r", FT_UINT8, BASE_DEC, VALS(coi_r_types), 0x7F,
|
||||
"COI R", HFILL }},
|
||||
|
||||
{ &hf_coi_i,
|
||||
{ "I", "iec60870_asdu.coi_i", FT_BOOLEAN, 8, TFS(&tfs_coi_i), 0x80,
|
||||
{ "I", "iec60870_asdu.coi.i", FT_BOOLEAN, 8, TFS(&tfs_coi_i), 0x80,
|
||||
"COI I", HFILL }},
|
||||
|
||||
{ &hf_qoi,
|
||||
|
@ -2591,19 +2598,23 @@ proto_register_iec60870_asdu(void)
|
|||
NULL, HFILL } },
|
||||
|
||||
{ &hf_qcc_rqt,
|
||||
{ "RQT", "iec60870_asdu.rqt", FT_UINT8, BASE_DEC, VALS(rqt_r_types), 0x3F,
|
||||
{ "RQT", "iec60870_asdu.qcc.rqt", FT_UINT8, BASE_DEC, VALS(rqt_r_types), 0x3F,
|
||||
NULL, HFILL } },
|
||||
|
||||
{ &hf_qcc_frz,
|
||||
{ "FRZ", "iec60870_asdu.frz", FT_UINT8, BASE_DEC, VALS(frz_r_types), 0xC0,
|
||||
{ "FRZ", "iec60870_asdu.qcc.frz", FT_UINT8, BASE_DEC, VALS(frz_r_types), 0xC0,
|
||||
NULL, HFILL } },
|
||||
|
||||
{ &hf_qrp,
|
||||
{ "QRP", "iec60870_asdu.qrp", FT_UINT8, BASE_DEC, VALS(qrp_r_types), 0,
|
||||
NULL, HFILL }},
|
||||
|
||||
{ &hf_bcr,
|
||||
{ "BCR", "iec60870_asdu.bcr", FT_INT32, BASE_DEC, NULL, 0x0,
|
||||
"Binary Counter", HFILL }},
|
||||
|
||||
{ &hf_bcr_count,
|
||||
{ "Binary Counter", "iec60870_asdu.bcr.count", FT_INT32, BASE_DEC, NULL, 0x0,
|
||||
{ "Value", "iec60870_asdu.bcr.count", FT_INT32, BASE_DEC, NULL, 0x0,
|
||||
NULL, HFILL }},
|
||||
|
||||
{ &hf_bcr_sq,
|
||||
|
|
|
@ -3616,6 +3616,7 @@ static int hf_ieee80211_fc_frame_extension = -1;
|
|||
static int hf_ieee80211_fc_frame_type_subtype = -1;
|
||||
|
||||
static int hf_ieee80211_fc_flags = -1;
|
||||
static int hf_ieee80211_fc_flags_str = -1;
|
||||
static int hf_ieee80211_fc_to_ds = -1;
|
||||
static int hf_ieee80211_fc_from_ds = -1;
|
||||
static int hf_ieee80211_fc_data_ds = -1;
|
||||
|
@ -6204,6 +6205,22 @@ static int hf_ieee80211_vs_arista_subtype = -1;
|
|||
static int hf_ieee80211_vs_arista_apname = -1;
|
||||
static int hf_ieee80211_vs_arista_data = -1;
|
||||
|
||||
static int hf_ieee80211_vs_wisun_type = -1;
|
||||
static int hf_ieee80211_vs_wisun_ptkid = -1;
|
||||
static int hf_ieee80211_vs_wisun_gtkl = -1;
|
||||
static int hf_ieee80211_vs_wisun_gtkl_gtk0 = -1;
|
||||
static int hf_ieee80211_vs_wisun_gtkl_gtk1 = -1;
|
||||
static int hf_ieee80211_vs_wisun_gtkl_gtk2 = -1;
|
||||
static int hf_ieee80211_vs_wisun_gtkl_gtk3 = -1;
|
||||
static int hf_ieee80211_vs_wisun_nr = -1;
|
||||
static int hf_ieee80211_vs_wisun_lgtkl = -1;
|
||||
static int hf_ieee80211_vs_wisun_lgtkl_lgtk0 = -1;
|
||||
static int hf_ieee80211_vs_wisun_lgtkl_lgtk1 = -1;
|
||||
static int hf_ieee80211_vs_wisun_lgtkl_lgtk2 = -1;
|
||||
static int hf_ieee80211_vs_wisun_lgtk_key_id = -1;
|
||||
static int hf_ieee80211_vs_wisun_lgtk_lgtk = -1;
|
||||
static int hf_ieee80211_vs_wisun_data = -1;
|
||||
|
||||
static int hf_ieee80211_rsn_ie_ptk_keyid = -1;
|
||||
|
||||
static int hf_ieee80211_rsn_ie_gtk_kde_data_type = -1;
|
||||
|
@ -7754,6 +7771,9 @@ static gint ett_routerboard = -1;
|
|||
|
||||
static gint ett_meru = -1;
|
||||
|
||||
static gint ett_wisun_gtkl = -1;
|
||||
static gint ett_wisun_lgtkl = -1;
|
||||
|
||||
static gint ett_qos_map_set_exception = -1;
|
||||
static gint ett_qos_map_set_range = -1;
|
||||
|
||||
|
@ -16625,6 +16645,7 @@ dissect_vendor_ie_wpawme(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, in
|
|||
{
|
||||
proto_tree_add_item(wpa_sub_akms_tree, hf_ieee80211_wfa_ie_wpa_akms_wfa_type, tvb, offset+3, 1, ENC_LITTLE_ENDIAN);
|
||||
proto_item_append_text(wpa_akms_item, " %s", wpa_akms_return(tvb_get_ntohl(tvb, offset)));
|
||||
save_proto_data_value(pinfo, tvb_get_guint8(tvb, offset + 3), AKM_KEY);
|
||||
} else {
|
||||
proto_tree_add_item(wpa_sub_akms_tree, hf_ieee80211_wfa_ie_wpa_akms_type, tvb, offset+3, 1, ENC_LITTLE_ENDIAN);
|
||||
}
|
||||
|
@ -18750,6 +18771,101 @@ dissect_vendor_ie_arista(proto_item *item, proto_tree *ietree,
|
|||
}
|
||||
}
|
||||
|
||||
#define WISUN_PTKID 1
|
||||
#define WISUN_GTKL 2
|
||||
#define WISUN_NR 3
|
||||
#define WISUN_LGTKL 4
|
||||
#define WISUN_LGTK 5
|
||||
|
||||
static const value_string ieee80211_vs_wisun_type_vals[] = {
|
||||
{ WISUN_PTKID, "PTKID" },
|
||||
{ WISUN_GTKL, "GTKL" },
|
||||
{ WISUN_NR, "NR" },
|
||||
{ WISUN_LGTKL, "LGTKL" },
|
||||
{ WISUN_LGTK, "LGTK" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
#define WISUN_GTKL_GTK0 0x01
|
||||
#define WISUN_GTKL_GTK1 0x02
|
||||
#define WISUN_GTKL_GTK2 0x04
|
||||
#define WISUN_GTKL_GTK3 0x08
|
||||
|
||||
#define WISUN_NR_BR 0
|
||||
#define WISUN_NR_ROUTER 1
|
||||
#define WISUN_NR_LFN 2
|
||||
|
||||
static const value_string ieee80211_vs_wisun_nr_vals[] = {
|
||||
{ WISUN_NR_BR, "Border Router" },
|
||||
{ WISUN_NR_ROUTER, "Router" },
|
||||
{ WISUN_NR_LFN, "LFN" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
#define WISUN_LGTKL_LGTK0 0x01
|
||||
#define WISUN_LGTKL_LGTK1 0x02
|
||||
#define WISUN_LGTKL_LGTK2 0x04
|
||||
|
||||
static void
|
||||
dissect_vendor_ie_wisun(proto_item *item, proto_tree *ietree,
|
||||
tvbuff_t *tvb, int offset, guint32 tag_len)
|
||||
{
|
||||
guint32 type;
|
||||
|
||||
proto_tree_add_item_ret_uint(ietree, hf_ieee80211_vs_wisun_type, tvb, offset, 1, ENC_LITTLE_ENDIAN, &type);
|
||||
proto_item_append_text(item, ": %s", val_to_str_const(type, ieee80211_vs_wisun_type_vals, "Unknown"));
|
||||
offset += 1;
|
||||
tag_len -= 1;
|
||||
|
||||
switch(type) {
|
||||
case WISUN_PTKID:
|
||||
proto_tree_add_item(ietree, hf_ieee80211_vs_wisun_ptkid, tvb, offset, 16, ENC_NA);
|
||||
break;
|
||||
case WISUN_GTKL: {
|
||||
static int * const wisun_gtkl[] = {
|
||||
&hf_ieee80211_vs_wisun_gtkl_gtk0,
|
||||
&hf_ieee80211_vs_wisun_gtkl_gtk1,
|
||||
&hf_ieee80211_vs_wisun_gtkl_gtk2,
|
||||
&hf_ieee80211_vs_wisun_gtkl_gtk3,
|
||||
NULL,
|
||||
};
|
||||
|
||||
proto_tree_add_bitmask(ietree, tvb, offset, hf_ieee80211_vs_wisun_gtkl,
|
||||
ett_wisun_gtkl, wisun_gtkl, ENC_LITTLE_ENDIAN);
|
||||
break;
|
||||
}
|
||||
case WISUN_NR:
|
||||
proto_tree_add_item(ietree, hf_ieee80211_vs_wisun_nr, tvb,
|
||||
offset, 1, ENC_LITTLE_ENDIAN);
|
||||
break;
|
||||
case WISUN_LGTKL: {
|
||||
static int * const wisun_lgtkl[] = {
|
||||
&hf_ieee80211_vs_wisun_lgtkl_lgtk0,
|
||||
&hf_ieee80211_vs_wisun_lgtkl_lgtk1,
|
||||
&hf_ieee80211_vs_wisun_lgtkl_lgtk2,
|
||||
NULL,
|
||||
};
|
||||
|
||||
proto_tree_add_bitmask(ietree, tvb, offset, hf_ieee80211_vs_wisun_lgtkl,
|
||||
ett_wisun_lgtkl, wisun_lgtkl, ENC_LITTLE_ENDIAN);
|
||||
break;
|
||||
}
|
||||
case WISUN_LGTK:
|
||||
proto_tree_add_item(ietree, hf_ieee80211_vs_wisun_lgtk_key_id, tvb,
|
||||
offset, 1, ENC_LITTLE_ENDIAN);
|
||||
offset += 2;
|
||||
tag_len -= 2;
|
||||
proto_tree_add_item(ietree, hf_ieee80211_vs_wisun_lgtk_lgtk, tvb,
|
||||
offset, tag_len, ENC_NA);
|
||||
break;
|
||||
default:
|
||||
proto_tree_add_item(ietree, hf_ieee80211_vs_wisun_data, tvb, offset, tag_len, ENC_NA);
|
||||
if (tag_len > 0)
|
||||
proto_item_append_text(item, " (Data: %s)", tvb_bytes_to_str(wmem_packet_scope(), tvb, offset, tag_len));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* 802.11-2012 8.4.2.37 QoS Capability element */
|
||||
static int
|
||||
dissect_qos_capability(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int offset, int ftype)
|
||||
|
@ -28162,7 +28278,9 @@ ieee80211_tag_vendor_specific_ie(tvbuff_t *tvb, packet_info *pinfo, proto_tree *
|
|||
case OUI_MOJO_ARISTA:
|
||||
dissect_vendor_ie_arista(field_data->item_tag, tree, tvb, offset, tag_vs_len);
|
||||
break;
|
||||
|
||||
case OUI_WISUN:
|
||||
dissect_vendor_ie_wisun(field_data->item_tag, tree, tvb, offset, tag_vs_len);
|
||||
break;
|
||||
default:
|
||||
proto_tree_add_item(tree, hf_ieee80211_tag_vendor_data, tvb, offset, tag_vs_len, ENC_NA);
|
||||
break;
|
||||
|
@ -33505,6 +33623,7 @@ dissect_ieee80211_pv0(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
|
|||
gboolean more_frags;
|
||||
proto_item *ti = NULL;
|
||||
proto_item *cw_item = NULL;
|
||||
proto_tree *flags_item;
|
||||
proto_item *hidden_item;
|
||||
proto_tree *cw_tree = NULL;
|
||||
guint16 hdr_len, ohdr_len;
|
||||
|
@ -34538,6 +34657,8 @@ dissect_ieee80211_pv0(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
|
|||
proto_item_append_text(ti, ", Flags: %s", flag_str);
|
||||
col_append_fstr(pinfo->cinfo, COL_INFO, ", Flags=%s", flag_str);
|
||||
|
||||
flags_item = proto_tree_add_string(hdr_tree, hf_ieee80211_fc_flags_str, tvb, 0, 0, flag_str);
|
||||
proto_item_set_generated(flags_item);
|
||||
|
||||
/*
|
||||
* Only management and data frames have a body, so we don't have
|
||||
|
@ -36167,6 +36288,7 @@ dissect_wlan_rsna_eapol_wpa_or_rsn_key(tvbuff_t *tvb, packet_info *pinfo, proto_
|
|||
ENC_BIG_ENDIAN, BMT_NO_APPEND);
|
||||
offset += 2;
|
||||
|
||||
guint16 key_len = tvb_get_ntohs(tvb, offset);
|
||||
proto_tree_add_item(tree, hf_wlan_rsna_eapol_keydes_key_len, tvb, offset,
|
||||
2, ENC_BIG_ENDIAN);
|
||||
save_proto_data_value(pinfo, tvb_get_ntohs(tvb, offset), KEY_LEN_KEY);
|
||||
|
@ -36205,10 +36327,16 @@ dissect_wlan_rsna_eapol_wpa_or_rsn_key(tvbuff_t *tvb, packet_info *pinfo, proto_
|
|||
ti = proto_tree_add_item(tree, hf_wlan_rsna_eapol_wpa_keydes_data,
|
||||
tvb, offset, eapol_data_len, ENC_NA);
|
||||
if ((keyinfo & KEY_INFO_ENCRYPTED_KEY_DATA_MASK) ||
|
||||
!(keyinfo & KEY_INFO_KEY_TYPE_MASK)) {
|
||||
(!(keyinfo & KEY_INFO_KEY_TYPE_MASK) && key_len)) {
|
||||
/* RSN: EAPOL-Key Key Data is encrypted.
|
||||
* WPA: Group Keys use encrypted Key Data.
|
||||
* IEEE 802.11i-2004 8.5.2.
|
||||
* Having an encrypted data field without the Encrypted Key Data set
|
||||
* is not standard, but there are WPA implementation which assume
|
||||
* encryption when Key Type = 0. In Wi-SUN, the EAPOL-Key frame has
|
||||
* Key Type = 0 and Encrypted Key Data = 0, but the Key Data is not
|
||||
* encrypted. To differentiate this case from non standard WPA, we
|
||||
* check the Key Length, which is 0 for Wi-SUN.
|
||||
* Let decryption engine try to decrypt this and if successful it's
|
||||
* stored in EAPOL_KEY proto data.
|
||||
*/
|
||||
|
@ -36598,6 +36726,11 @@ proto_register_ieee80211(void)
|
|||
FT_UINT8, BASE_HEX, NULL, 0,
|
||||
NULL, HFILL }},
|
||||
|
||||
{&hf_ieee80211_fc_flags_str,
|
||||
{"WLAN Flags", "wlan.flags.str",
|
||||
FT_STRING, BASE_NONE, NULL, 0,
|
||||
NULL, HFILL }},
|
||||
|
||||
{&hf_ieee80211_fc_data_ds,
|
||||
{"DS status", "wlan.fc.ds",
|
||||
FT_UINT8, BASE_HEX, VALS(tofrom_ds), (FLAG_FROM_DS|FLAG_TO_DS),
|
||||
|
@ -48319,6 +48452,55 @@ proto_register_ieee80211(void)
|
|||
FT_BYTES, BASE_NONE, NULL, 0,
|
||||
NULL, HFILL }},
|
||||
|
||||
/* Vendor Specific : Wi-SUN */
|
||||
{&hf_ieee80211_vs_wisun_type,
|
||||
{"Data Type", "wlan.vs.wisun.type",
|
||||
FT_UINT8, BASE_DEC, VALS(ieee80211_vs_wisun_type_vals), 0,
|
||||
NULL, HFILL }},
|
||||
{&hf_ieee80211_vs_wisun_ptkid,
|
||||
{"PTK ID", "wlan.vs.wisun.ptkid",
|
||||
FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
|
||||
{&hf_ieee80211_vs_wisun_gtkl,
|
||||
{"GTK Liveness", "wlan.vs.wisun.gtkl",
|
||||
FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }},
|
||||
{&hf_ieee80211_vs_wisun_gtkl_gtk0,
|
||||
{"GTK[0]", "wlan.vs.wisun.gtkl.gtk0",
|
||||
FT_UINT8, BASE_HEX, NULL, WISUN_GTKL_GTK0, NULL, HFILL }},
|
||||
{&hf_ieee80211_vs_wisun_gtkl_gtk1,
|
||||
{"GTK[1]", "wlan.vs.wisun.gtkl.gtk1",
|
||||
FT_UINT8, BASE_HEX, NULL, WISUN_GTKL_GTK1, NULL, HFILL }},
|
||||
{&hf_ieee80211_vs_wisun_gtkl_gtk2,
|
||||
{"GTK[2]", "wlan.vs.wisun.gtkl.gtk2",
|
||||
FT_UINT8, BASE_HEX, NULL, WISUN_GTKL_GTK2, NULL, HFILL }},
|
||||
{&hf_ieee80211_vs_wisun_gtkl_gtk3,
|
||||
{"GTK[3]", "wlan.vs.wisun.gtkl.gtk3",
|
||||
FT_UINT8, BASE_HEX, NULL, WISUN_GTKL_GTK3, NULL, HFILL }},
|
||||
{&hf_ieee80211_vs_wisun_nr,
|
||||
{"Node Role", "wlan.vs.wisun.nr",
|
||||
FT_UINT8, BASE_DEC, VALS(ieee80211_vs_wisun_nr_vals), 0,
|
||||
NULL, HFILL }},
|
||||
{&hf_ieee80211_vs_wisun_lgtkl,
|
||||
{"LGTK Liveness", "wlan.vs.wisun.lgtkl",
|
||||
FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }},
|
||||
{&hf_ieee80211_vs_wisun_lgtkl_lgtk0,
|
||||
{"LGTK[0]", "wlan.vs.wisun.lgtkl.lgtk0",
|
||||
FT_UINT8, BASE_HEX, NULL, WISUN_LGTKL_LGTK0, NULL, HFILL }},
|
||||
{&hf_ieee80211_vs_wisun_lgtkl_lgtk1,
|
||||
{"LGTK[1]", "wlan.vs.wisun.lgtkl.lgtk1",
|
||||
FT_UINT8, BASE_HEX, NULL, WISUN_LGTKL_LGTK1, NULL, HFILL }},
|
||||
{&hf_ieee80211_vs_wisun_lgtkl_lgtk2,
|
||||
{"LGTK[2]", "wlan.vs.wisun.lgtkl.lgtk2",
|
||||
FT_UINT8, BASE_HEX, NULL, WISUN_LGTKL_LGTK2, NULL, HFILL }},
|
||||
{&hf_ieee80211_vs_wisun_lgtk_key_id,
|
||||
{"Key ID", "wlan.vs.wisun.lgtk.key_id",
|
||||
FT_UINT8, BASE_HEX, NULL, 0x03, NULL, HFILL }},
|
||||
{&hf_ieee80211_vs_wisun_lgtk_lgtk,
|
||||
{"LGTK", "wlan.vs.wisun.lgtk.lgtk",
|
||||
FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL }},
|
||||
{&hf_ieee80211_vs_wisun_data,
|
||||
{"Data", "wlan.vs.wisun.data",
|
||||
FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
|
||||
|
||||
{&hf_ieee80211_tsinfo,
|
||||
{"Traffic Stream (TS) Info", "wlan.ts_info",
|
||||
FT_UINT24, BASE_HEX, NULL, 0,
|
||||
|
@ -52340,6 +52522,9 @@ proto_register_ieee80211(void)
|
|||
|
||||
&ett_meru,
|
||||
|
||||
&ett_wisun_gtkl,
|
||||
&ett_wisun_lgtkl,
|
||||
|
||||
&ett_qos_map_set_exception,
|
||||
&ett_qos_map_set_range,
|
||||
|
||||
|
|
|
@ -5176,8 +5176,8 @@ dissect_ieee802154_command(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
|
|||
case IEEE802154_CMD_VENDOR_SPECIFIC:
|
||||
{
|
||||
guint32 oui = tvb_get_ntoh24(tvb, 0);
|
||||
if (!dissector_try_uint_new(cmd_vendor_dissector_table, oui, tvb, pinfo, tree, FALSE, packet)) {
|
||||
proto_tree_add_item(tree, hf_ieee802154_cmd_vendor_oui, tvb, 0, 3, ENC_BIG_ENDIAN);
|
||||
proto_tree_add_item(tree, hf_ieee802154_cmd_vendor_oui, tvb, 0, 3, ENC_BIG_ENDIAN);
|
||||
if (!dissector_try_uint_new(cmd_vendor_dissector_table, oui, tvb_new_subset_remaining(tvb, 3), pinfo, tree, FALSE, packet)) {
|
||||
call_data_dissector(tvb_new_subset_remaining(tvb, 3), pinfo, tree);
|
||||
}
|
||||
break;
|
||||
|
|
|
@ -47,7 +47,9 @@ enum {
|
|||
WS_CTRL_CMD_NEWMCAST_GRP,
|
||||
WS_CTRL_CMD_DELMCAST_GRP,
|
||||
WS_CTRL_CMD_GETMCAST_GRP,
|
||||
WS_CTRL_CMD_GETPOLICY,
|
||||
};
|
||||
|
||||
enum ws_genl_ctrl_attr {
|
||||
WS_CTRL_ATTR_UNSPEC,
|
||||
WS_CTRL_ATTR_FAMILY_ID,
|
||||
|
@ -57,6 +59,9 @@ enum ws_genl_ctrl_attr {
|
|||
WS_CTRL_ATTR_MAXATTR,
|
||||
WS_CTRL_ATTR_OPS,
|
||||
WS_CTRL_ATTR_MCAST_GROUPS,
|
||||
WS_CTRL_ATTR_POLICY,
|
||||
WS_CTRL_ATTR_OP_POLICY,
|
||||
WS_CTRL_ATTR_OP,
|
||||
};
|
||||
|
||||
enum ws_genl_ctrl_op_attr {
|
||||
|
@ -85,6 +90,7 @@ static const value_string genl_ctrl_cmds[] = {
|
|||
{ WS_CTRL_CMD_NEWMCAST_GRP, "CTRL_CMD_NEWMCAST_GRP" },
|
||||
{ WS_CTRL_CMD_DELMCAST_GRP, "CTRL_CMD_DELMCAST_GRP" },
|
||||
{ WS_CTRL_CMD_GETMCAST_GRP, "CTRL_CMD_GETMCAST_GRP" },
|
||||
{ WS_CTRL_CMD_GETPOLICY, "CTRL_CMD_GETPOLICY" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
|
@ -97,6 +103,9 @@ static const value_string genl_ctrl_attr_vals[] = {
|
|||
{ WS_CTRL_ATTR_MAXATTR, "CTRL_ATTR_MAXATTR" },
|
||||
{ WS_CTRL_ATTR_OPS, "CTRL_ATTR_OPS" },
|
||||
{ WS_CTRL_ATTR_MCAST_GROUPS, "CTRL_ATTR_MCAST_GROUPS" },
|
||||
{ WS_CTRL_ATTR_POLICY, "CTRL_ATTR_POLICY" },
|
||||
{ WS_CTRL_ATTR_OP_POLICY, "CTRL_ATTR_OP_POLICY" },
|
||||
{ WS_CTRL_ATTR_OP, "CTRL_ATTR_OP" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
|
@ -280,6 +289,10 @@ dissect_genl_ctrl_attrs(tvbuff_t *tvb, void *data, struct packet_netlink_data *n
|
|||
case WS_CTRL_ATTR_MCAST_GROUPS:
|
||||
offset = dissect_netlink_attributes_array(tvb, hf_genl_ctrl_groups_attr, ett_genl_ctrl_groups, ett_genl_ctrl_groups_attr, info, nl_data, tree, offset, len, dissect_genl_ctrl_groups_attrs);
|
||||
break;
|
||||
case WS_CTRL_ATTR_POLICY:
|
||||
case WS_CTRL_ATTR_OP_POLICY:
|
||||
case WS_CTRL_ATTR_OP:
|
||||
break;
|
||||
}
|
||||
|
||||
return offset;
|
||||
|
|
|
@ -41,7 +41,8 @@ enum {
|
|||
WS_NFNL_SUBSYS_CTHELPER = 9,
|
||||
WS_NFNL_SUBSYS_NFTABLES = 10,
|
||||
WS_NFNL_SUBSYS_NFT_COMPAT = 11,
|
||||
WS_NFNL_SUBSYS_COUNT = 12,
|
||||
WS_NFNL_SUBSYS_HOOK = 12,
|
||||
WS_NFNL_SUBSYS_COUNT = 13,
|
||||
};
|
||||
|
||||
/* nfnetlink ULOG subsystem types from <include/uapi/linux/netfilter/nfnetlink_log.h> */
|
||||
|
@ -66,6 +67,7 @@ enum ws_nf_inet_hooks {
|
|||
WS_NF_INET_FORWARD = 2,
|
||||
WS_NF_INET_LOCAL_OUT = 3,
|
||||
WS_NF_INET_POST_ROUTING = 4,
|
||||
WS_NF_INET_NUMHOOKS = 5,
|
||||
};
|
||||
|
||||
/* from <include/uapi/linux/netfilter/nf_conntrack_common.h> */
|
||||
|
@ -110,6 +112,8 @@ enum ws_ip_conntrack_status {
|
|||
WS_IPS_HELPER = (1 << WS_IPS_HELPER_BIT),
|
||||
WS_IPS_OFFLOAD_BIT = 14,
|
||||
WS_IPS_OFFLOAD = (1 << WS_IPS_OFFLOAD_BIT),
|
||||
WS_IPS_HW_OFFLOAD_BIT = 15,
|
||||
WS_IPS_HW_OFFLOAD = (1 << WS_IPS_HW_OFFLOAD_BIT),
|
||||
};
|
||||
|
||||
enum nfexp_flags {
|
||||
|
@ -154,6 +158,7 @@ enum ws_nfqnl_attr_type {
|
|||
WS_NFQA_SECCTX = 18,
|
||||
WS_NFQA_VLAN = 19,
|
||||
WS_NFQA_L2HDR = 20,
|
||||
WS_NFQA_PRIORITY = 21,
|
||||
};
|
||||
|
||||
enum ws_nfqnl_msg_config_cmds {
|
||||
|
@ -262,6 +267,8 @@ enum ws_ctattr_type {
|
|||
WS_CTA_LABELS = 22,
|
||||
WS_CTA_LABELS_MASK = 23,
|
||||
WS_CTA_SYNPROXY = 24,
|
||||
WS_CTA_FILTER = 25,
|
||||
WS_CTA_STATUS_MASK = 26,
|
||||
};
|
||||
|
||||
enum ws_ctattr_help {
|
||||
|
@ -325,13 +332,14 @@ enum ws_ipset_cadt_attr {
|
|||
WS_IPSET_ATTR_CADT_LINENO = 9,
|
||||
WS_IPSET_ATTR_MARK = 10,
|
||||
WS_IPSET_ATTR_MARKMASK = 11,
|
||||
WS_IPSET_ATTR_BITMASK = 12,
|
||||
/* (reserved up to 16) */
|
||||
#define WS_IPSET_ATTR_CADT_MAX 16
|
||||
WS_IPSET_ATTR_GC = 17,
|
||||
WS_IPSET_ATTR_INITVAL = 17,
|
||||
WS_IPSET_ATTR_HASHSIZE = 18,
|
||||
WS_IPSET_ATTR_MAXELEM = 19,
|
||||
WS_IPSET_ATTR_NETMASK = 20,
|
||||
WS_IPSET_ATTR_PROBES = 21,
|
||||
WS_IPSET_ATTR_BUCKETSIZE = 21,
|
||||
WS_IPSET_ATTR_RESIZE = 22,
|
||||
WS_IPSET_ATTR_SIZE = 23,
|
||||
WS_IPSET_ATTR_ELEMENTS = 24,
|
||||
|
@ -397,6 +405,7 @@ static int hf_nfct_attr_status_flag_dying = -1;
|
|||
static int hf_nfct_attr_status_flag_expected = -1;
|
||||
static int hf_nfct_attr_status_flag_fixed_timeout = -1;
|
||||
static int hf_nfct_attr_status_flag_helper = -1;
|
||||
static int hf_nfct_attr_status_flag_hw_offload = -1;
|
||||
static int hf_nfct_attr_status_flag_offload = -1;
|
||||
static int hf_nfct_attr_status_flag_seen_reply = -1;
|
||||
static int hf_nfct_attr_status_flag_seq_adjust = -1;
|
||||
|
@ -622,6 +631,8 @@ static const value_string nfct_attr_vals[] = {
|
|||
{ WS_CTA_LABELS, "LABELS" },
|
||||
{ WS_CTA_LABELS_MASK, "LABELS_MASK" },
|
||||
{ WS_CTA_SYNPROXY, "SYNPROXY" },
|
||||
{ WS_CTA_FILTER, "FILTER" },
|
||||
{ WS_CTA_STATUS_MASK, "STATUS_MASK" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
|
@ -640,6 +651,7 @@ static const value_string nfct_seqadj_attr_vals[] = {
|
|||
};
|
||||
|
||||
static int * const hf_nfct_attr_status_flags[] = {
|
||||
&hf_nfct_attr_status_flag_hw_offload,
|
||||
&hf_nfct_attr_status_flag_offload,
|
||||
&hf_nfct_attr_status_flag_helper,
|
||||
&hf_nfct_attr_status_flag_untracked,
|
||||
|
@ -1002,6 +1014,7 @@ static const value_string nfq_attr_vals[] = {
|
|||
{ WS_NFQA_SECCTX, "Security context string" },
|
||||
{ WS_NFQA_VLAN, "Packet VLAN info" },
|
||||
{ WS_NFQA_L2HDR, "Full L2 header" },
|
||||
{ WS_NFQA_PRIORITY, "Priority" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
|
@ -1021,6 +1034,7 @@ const value_string netfilter_hooks_vals[] = {
|
|||
{ WS_NF_INET_FORWARD, "Forward" },
|
||||
{ WS_NF_INET_LOCAL_OUT, "Local out" },
|
||||
{ WS_NF_INET_POST_ROUTING, "Post-routing" },
|
||||
{ WS_NF_INET_NUMHOOKS, "Number of hooks" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
|
@ -1191,6 +1205,7 @@ dissect_nfq_attrs(tvbuff_t *tvb, void *data, struct packet_netlink_data *nl_data
|
|||
case WS_NFQA_SECCTX:
|
||||
case WS_NFQA_VLAN:
|
||||
case WS_NFQA_L2HDR:
|
||||
case WS_NFQA_PRIORITY:
|
||||
/* TODO */
|
||||
break;
|
||||
}
|
||||
|
@ -1301,12 +1316,13 @@ static const value_string ipset_cadt_attr_vals[] = {
|
|||
{ WS_IPSET_ATTR_CADT_LINENO, "CADT_LINENO" },
|
||||
{ WS_IPSET_ATTR_MARK, "MARK" },
|
||||
{ WS_IPSET_ATTR_MARKMASK, "MARKMASK" },
|
||||
{ WS_IPSET_ATTR_BITMASK, "BITMASK" },
|
||||
/* up to 16 is reserved. */
|
||||
{ WS_IPSET_ATTR_GC, "GC" },
|
||||
{ WS_IPSET_ATTR_INITVAL, "INITVAL" },
|
||||
{ WS_IPSET_ATTR_HASHSIZE, "HASHSIZE" },
|
||||
{ WS_IPSET_ATTR_MAXELEM, "MAXELEM" },
|
||||
{ WS_IPSET_ATTR_NETMASK, "NETMASK" },
|
||||
{ WS_IPSET_ATTR_PROBES, "PROBES" },
|
||||
{ WS_IPSET_ATTR_BUCKETSIZE, "BUCKETSIZE" },
|
||||
{ WS_IPSET_ATTR_RESIZE, "RESIZE" },
|
||||
{ WS_IPSET_ATTR_SIZE, "SIZE" },
|
||||
{ WS_IPSET_ATTR_ELEMENTS, "ELEMENTS" },
|
||||
|
@ -1417,11 +1433,12 @@ dissect_ipset_cadt_attrs(tvbuff_t *tvb, void *data, struct packet_netlink_data *
|
|||
case WS_IPSET_ATTR_CADT_LINENO:
|
||||
case WS_IPSET_ATTR_MARK:
|
||||
case WS_IPSET_ATTR_MARKMASK:
|
||||
case WS_IPSET_ATTR_GC:
|
||||
case WS_IPSET_ATTR_BITMASK:
|
||||
case WS_IPSET_ATTR_INITVAL:
|
||||
case WS_IPSET_ATTR_HASHSIZE:
|
||||
case WS_IPSET_ATTR_MAXELEM:
|
||||
case WS_IPSET_ATTR_NETMASK:
|
||||
case WS_IPSET_ATTR_PROBES:
|
||||
case WS_IPSET_ATTR_BUCKETSIZE:
|
||||
case WS_IPSET_ATTR_RESIZE:
|
||||
case WS_IPSET_ATTR_SIZE:
|
||||
case WS_IPSET_ATTR_ELEMENTS:
|
||||
|
@ -1550,6 +1567,7 @@ static const value_string netlink_netfilter_subsystem_vals[] = {
|
|||
{ WS_NFNL_SUBSYS_CTHELPER, "Connection Tracking Helpers" },
|
||||
{ WS_NFNL_SUBSYS_NFTABLES, "Netfilter tables" },
|
||||
{ WS_NFNL_SUBSYS_NFT_COMPAT, "x_tables compatibility layer for nf_tables" },
|
||||
{ WS_NFNL_SUBSYS_HOOK, "Hook" },
|
||||
{ WS_NFNL_SUBSYS_COUNT, "Count" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
@ -1774,6 +1792,11 @@ proto_register_netlink_netfilter(void)
|
|||
FT_UINT32, BASE_DEC, NULL, WS_IPS_OFFLOAD,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_nfct_attr_status_flag_hw_offload,
|
||||
{ "HW offload", "netlink-netfilter.ct_attr.status.hw_offload",
|
||||
FT_UINT32, BASE_DEC, NULL, WS_IPS_HW_OFFLOAD,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_nfct_attr_status,
|
||||
{ "Status", "netlink-netfilter.ct_attr.status",
|
||||
FT_UINT32, BASE_HEX, NULL, 0x00,
|
||||
|
|
|
@ -167,6 +167,22 @@ enum ws_nl80211_commands {
|
|||
WS_NL80211_CMD_NOTIFY_RADAR,
|
||||
WS_NL80211_CMD_UPDATE_OWE_INFO,
|
||||
WS_NL80211_CMD_PROBE_MESH_LINK,
|
||||
WS_NL80211_CMD_SET_TID_CONFIG,
|
||||
WS_NL80211_CMD_UNPROT_BEACON,
|
||||
WS_NL80211_CMD_CONTROL_PORT_FRAME_TX_STATUS,
|
||||
WS_NL80211_CMD_SET_SAR_SPECS,
|
||||
WS_NL80211_CMD_OBSS_COLOR_COLLISION,
|
||||
WS_NL80211_CMD_COLOR_CHANGE_REQUEST,
|
||||
WS_NL80211_CMD_COLOR_CHANGE_STARTED,
|
||||
WS_NL80211_CMD_COLOR_CHANGE_ABORTED,
|
||||
WS_NL80211_CMD_COLOR_CHANGE_COMPLETED,
|
||||
WS_NL80211_CMD_SET_FILS_AAD,
|
||||
WS_NL80211_CMD_ASSOC_COMEBACK,
|
||||
WS_NL80211_CMD_ADD_LINK,
|
||||
WS_NL80211_CMD_REMOVE_LINK,
|
||||
WS_NL80211_CMD_ADD_LINK_STA,
|
||||
WS_NL80211_CMD_MODIFY_LINK_STA,
|
||||
WS_NL80211_CMD_REMOVE_LINK_STA,
|
||||
};
|
||||
|
||||
enum ws_nl80211_attrs {
|
||||
|
@ -356,8 +372,8 @@ enum ws_nl80211_attrs {
|
|||
WS_NL80211_ATTR_CH_SWITCH_COUNT,
|
||||
WS_NL80211_ATTR_CH_SWITCH_BLOCK_TX,
|
||||
WS_NL80211_ATTR_CSA_IES,
|
||||
WS_NL80211_ATTR_CSA_C_OFF_BEACON,
|
||||
WS_NL80211_ATTR_CSA_C_OFF_PRESP,
|
||||
WS_NL80211_ATTR_CNTDWN_OFFS_BEACON,
|
||||
WS_NL80211_ATTR_CNTDWN_OFFS_PRESP,
|
||||
WS_NL80211_ATTR_RXMGMT_FLAGS,
|
||||
WS_NL80211_ATTR_STA_SUPPORTED_CHANNELS,
|
||||
WS_NL80211_ATTR_STA_SUPPORTED_OPER_CLASSES,
|
||||
|
@ -452,6 +468,47 @@ enum ws_nl80211_attrs {
|
|||
WS_NL80211_ATTR_HE_OBSS_PD,
|
||||
WS_NL80211_ATTR_WIPHY_EDMG_CHANNELS,
|
||||
WS_NL80211_ATTR_WIPHY_EDMG_BW_CONFIG,
|
||||
WS_NL80211_ATTR_VLAN_ID,
|
||||
WS_NL80211_ATTR_HE_BSS_COLOR,
|
||||
WS_NL80211_ATTR_IFTYPE_AKM_SUITES,
|
||||
WS_NL80211_ATTR_TID_CONFIG,
|
||||
WS_NL80211_ATTR_CONTROL_PORT_NO_PREAUTH,
|
||||
WS_NL80211_ATTR_PMK_LIFETIME,
|
||||
WS_NL80211_ATTR_PMK_REAUTH_THRESHOLD,
|
||||
WS_NL80211_ATTR_RECEIVE_MULTICAST,
|
||||
WS_NL80211_ATTR_WIPHY_FREQ_OFFSET,
|
||||
WS_NL80211_ATTR_CENTER_FREQ1_OFFSET,
|
||||
WS_NL80211_ATTR_SCAN_FREQ_KHZ,
|
||||
WS_NL80211_ATTR_HE_6GHZ_CAPABILITY,
|
||||
WS_NL80211_ATTR_FILS_DISCOVERY,
|
||||
WS_NL80211_ATTR_UNSOL_BCAST_PROBE_RESP,
|
||||
WS_NL80211_ATTR_S1G_CAPABILITY,
|
||||
WS_NL80211_ATTR_S1G_CAPABILITY_MASK,
|
||||
WS_NL80211_ATTR_SAE_PWE,
|
||||
WS_NL80211_ATTR_RECONNECT_REQUESTED,
|
||||
WS_NL80211_ATTR_SAR_SPEC,
|
||||
WS_NL80211_ATTR_DISABLE_HE,
|
||||
WS_NL80211_ATTR_OBSS_COLOR_BITMAP,
|
||||
WS_NL80211_ATTR_COLOR_CHANGE_COUNT,
|
||||
WS_NL80211_ATTR_COLOR_CHANGE_COLOR,
|
||||
WS_NL80211_ATTR_COLOR_CHANGE_ELEMS,
|
||||
WS_NL80211_ATTR_MBSSID_CONFIG,
|
||||
WS_NL80211_ATTR_MBSSID_ELEMS,
|
||||
WS_NL80211_ATTR_RADAR_BACKGROUND,
|
||||
WS_NL80211_ATTR_AP_SETTINGS_FLAGS,
|
||||
WS_NL80211_ATTR_EHT_CAPABILITY,
|
||||
WS_NL80211_ATTR_DISABLE_EHT,
|
||||
WS_NL80211_ATTR_MLO_LINKS,
|
||||
WS_NL80211_ATTR_MLO_LINK_ID,
|
||||
WS_NL80211_ATTR_MLD_ADDR,
|
||||
WS_NL80211_ATTR_MLO_SUPPORT,
|
||||
WS_NL80211_ATTR_MAX_NUM_AKM_SUITES,
|
||||
WS_NL80211_ATTR_EML_CAPABILITY,
|
||||
WS_NL80211_ATTR_MLD_CAPA_AND_OPS,
|
||||
WS_NL80211_ATTR_TX_HW_TIMESTAMP,
|
||||
WS_NL80211_ATTR_RX_HW_TIMESTAMP,
|
||||
WS_NL80211_ATTR_TD_BITMAP,
|
||||
WS_NL80211_ATTR_PUNCT_BITMAP,
|
||||
};
|
||||
|
||||
enum ws_nl80211_iftype {
|
||||
|
@ -521,6 +578,11 @@ enum ws_nl80211_rate_info {
|
|||
WS_NL80211_RATE_INFO_HE_GI,
|
||||
WS_NL80211_RATE_INFO_HE_DCM,
|
||||
WS_NL80211_RATE_INFO_HE_RU_ALLOC,
|
||||
WS_NL80211_RATE_INFO_320_MHZ_WIDTH,
|
||||
WS_NL80211_RATE_INFO_EHT_MCS,
|
||||
WS_NL80211_RATE_INFO_EHT_NSS,
|
||||
WS_NL80211_RATE_INFO_EHT_GI,
|
||||
WS_NL80211_RATE_INFO_EHT_RU_ALLOC,
|
||||
};
|
||||
|
||||
enum ws_nl80211_sta_bss_param {
|
||||
|
@ -576,6 +638,7 @@ enum ws_nl80211_sta_info {
|
|||
WS_NL80211_STA_INFO_AIRTIME_WEIGHT,
|
||||
WS_NL80211_STA_INFO_AIRTIME_LINK_METRIC,
|
||||
WS_NL80211_STA_INFO_ASSOC_AT_BOOTTIME,
|
||||
WS_NL80211_STA_INFO_CONNECTED_TO_AS,
|
||||
};
|
||||
|
||||
enum ws_nl80211_tid_stats {
|
||||
|
@ -631,6 +694,12 @@ enum ws_nl80211_band_iftype_attr {
|
|||
WS_NL80211_BAND_IFTYPE_ATTR_HE_CAP_PHY,
|
||||
WS_NL80211_BAND_IFTYPE_ATTR_HE_CAP_MCS_SET,
|
||||
WS_NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE,
|
||||
WS_NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA,
|
||||
WS_NL80211_BAND_IFTYPE_ATTR_VENDOR_ELEMS,
|
||||
WS_NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MAC,
|
||||
WS_NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PHY,
|
||||
WS_NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MCS_SET,
|
||||
WS_NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PPE,
|
||||
};
|
||||
|
||||
enum ws_nl80211_band_attr {
|
||||
|
@ -676,6 +745,15 @@ enum ws_nl80211_frequency_attr {
|
|||
WS_NL80211_FREQUENCY_ATTR_NO_20MHZ,
|
||||
WS_NL80211_FREQUENCY_ATTR_NO_10MHZ,
|
||||
WS_NL80211_FREQUENCY_ATTR_WMM,
|
||||
WS_NL80211_FREQUENCY_ATTR_NO_HE,
|
||||
WS_NL80211_FREQUENCY_ATTR_OFFSET,
|
||||
WS_NL80211_FREQUENCY_ATTR_1MHZ,
|
||||
WS_NL80211_FREQUENCY_ATTR_2MHZ,
|
||||
WS_NL80211_FREQUENCY_ATTR_4MHZ,
|
||||
WS_NL80211_FREQUENCY_ATTR_8MHZ,
|
||||
WS_NL80211_FREQUENCY_ATTR_16MHZ,
|
||||
WS_NL80211_FREQUENCY_ATTR_NO_320MHZ,
|
||||
WS_NL80211_FREQUENCY_ATTR_NO_EHT,
|
||||
};
|
||||
|
||||
enum ws_nl80211_bitrate_attr {
|
||||
|
@ -735,6 +813,8 @@ enum ws_nl80211_reg_rule_flags {
|
|||
WS_NL80211_RRF_NO_HT40PLUS = 1<<14,
|
||||
WS_NL80211_RRF_NO_80MHZ = 1<<15,
|
||||
WS_NL80211_RRF_NO_160MHZ = 1<<16,
|
||||
WS_NL80211_RRF_NO_HE = 1<<17,
|
||||
WS_NL80211_RRF_NO_320MHZ = 1<<18,
|
||||
};
|
||||
|
||||
enum ws_nl80211_dfs_regions {
|
||||
|
@ -763,6 +843,7 @@ enum ws_nl80211_survey_info {
|
|||
WS_NL80211_SURVEY_INFO_TIME_SCAN,
|
||||
WS_NL80211_SURVEY_INFO_PAD,
|
||||
WS_NL80211_SURVEY_INFO_TIME_BSS_RX,
|
||||
WS_NL80211_SURVEY_INFO_FREQUENCY_OFFSET,
|
||||
};
|
||||
|
||||
enum ws_nl80211_mntr_flags {
|
||||
|
@ -813,6 +894,8 @@ enum ws_nl80211_meshconf_params {
|
|||
WS_NL80211_MESHCONF_AWAKE_WINDOW,
|
||||
WS_NL80211_MESHCONF_PLINK_TIMEOUT,
|
||||
WS_NL80211_MESHCONF_CONNECTED_TO_GATE,
|
||||
WS_NL80211_MESHCONF_NOLEARN,
|
||||
WS_NL80211_MESHCONF_CONNECTED_TO_AS,
|
||||
};
|
||||
|
||||
enum ws_nl80211_mesh_setup_params {
|
||||
|
@ -866,12 +949,20 @@ enum ws_nl80211_chan_width {
|
|||
WS_NL80211_CHAN_WIDTH_160,
|
||||
WS_NL80211_CHAN_WIDTH_5,
|
||||
WS_NL80211_CHAN_WIDTH_10,
|
||||
WS_NL80211_CHAN_WIDTH_1,
|
||||
WS_NL80211_CHAN_WIDTH_2,
|
||||
WS_NL80211_CHAN_WIDTH_4,
|
||||
WS_NL80211_CHAN_WIDTH_8,
|
||||
WS_NL80211_CHAN_WIDTH_16,
|
||||
WS_NL80211_CHAN_WIDTH_320,
|
||||
};
|
||||
|
||||
enum ws_nl80211_bss_scan_width {
|
||||
WS_NL80211_BSS_CHAN_WIDTH_20,
|
||||
WS_NL80211_BSS_CHAN_WIDTH_10,
|
||||
WS_NL80211_BSS_CHAN_WIDTH_5,
|
||||
WS_NL80211_BSS_CHAN_WIDTH_1,
|
||||
WS_NL80211_BSS_CHAN_WIDTH_2,
|
||||
};
|
||||
|
||||
enum ws_nl80211_bss {
|
||||
|
@ -895,6 +986,9 @@ enum ws_nl80211_bss {
|
|||
WS_NL80211_BSS_PARENT_TSF,
|
||||
WS_NL80211_BSS_PARENT_BSSID,
|
||||
WS_NL80211_BSS_CHAIN_SIGNAL,
|
||||
WS_NL80211_BSS_FREQUENCY_OFFSET,
|
||||
WS_NL80211_BSS_MLO_LINK_ID,
|
||||
WS_NL80211_BSS_MLD_ADDR,
|
||||
};
|
||||
|
||||
enum ws_nl80211_bss_status {
|
||||
|
@ -949,6 +1043,7 @@ enum ws_nl80211_key_attributes {
|
|||
WS_NL80211_KEY_TYPE,
|
||||
WS_NL80211_KEY_DEFAULT_TYPES,
|
||||
WS_NL80211_KEY_MODE,
|
||||
WS_NL80211_KEY_DEFAULT_BEACON,
|
||||
};
|
||||
|
||||
enum ws_nl80211_tx_rate_attributes {
|
||||
|
@ -957,6 +1052,9 @@ enum ws_nl80211_tx_rate_attributes {
|
|||
WS_NL80211_TXRATE_HT,
|
||||
WS_NL80211_TXRATE_VHT,
|
||||
WS_NL80211_TXRATE_GI,
|
||||
WS_NL80211_TXRATE_HE,
|
||||
WS_NL80211_TXRATE_HE_GI,
|
||||
WS_NL80211_TXRATE_HE_LTF,
|
||||
};
|
||||
|
||||
enum ws_nl80211_txrate_gi {
|
||||
|
@ -970,6 +1068,8 @@ enum ws_nl80211_band {
|
|||
WS_NL80211_BAND_5GHZ,
|
||||
WS_NL80211_BAND_60GHZ,
|
||||
WS_NL80211_BAND_6GHZ,
|
||||
WS_NL80211_BAND_S1GHZ,
|
||||
WS_NL80211_BAND_LC,
|
||||
};
|
||||
|
||||
enum ws_nl80211_ps_state {
|
||||
|
@ -1097,6 +1197,7 @@ enum ws_nl80211_rekey_data {
|
|||
WS_NL80211_REKEY_DATA_KEK,
|
||||
WS_NL80211_REKEY_DATA_KCK,
|
||||
WS_NL80211_REKEY_DATA_REPLAY_CTR,
|
||||
WS_NL80211_REKEY_DATA_AKM,
|
||||
};
|
||||
|
||||
enum ws_nl80211_hidden_ssid {
|
||||
|
@ -1200,6 +1301,31 @@ enum ws_nl80211_ext_feature_index {
|
|||
WS_NL80211_EXT_FEATURE_EXT_KEY_ID,
|
||||
WS_NL80211_EXT_FEATURE_STA_TX_PWR,
|
||||
WS_NL80211_EXT_FEATURE_SAE_OFFLOAD,
|
||||
WS_NL80211_EXT_FEATURE_VLAN_OFFLOAD,
|
||||
WS_NL80211_EXT_FEATURE_AQL,
|
||||
WS_NL80211_EXT_FEATURE_BEACON_PROTECTION,
|
||||
WS_NL80211_EXT_FEATURE_CONTROL_PORT_NO_PREAUTH,
|
||||
WS_NL80211_EXT_FEATURE_PROTECTED_TWT,
|
||||
WS_NL80211_EXT_FEATURE_DEL_IBSS_STA,
|
||||
WS_NL80211_EXT_FEATURE_MULTICAST_REGISTRATIONS,
|
||||
WS_NL80211_EXT_FEATURE_BEACON_PROTECTION_CLIENT,
|
||||
WS_NL80211_EXT_FEATURE_SCAN_FREQ_KHZ,
|
||||
WS_NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211_TX_STATUS,
|
||||
WS_NL80211_EXT_FEATURE_OPERATING_CHANNEL_VALIDATION,
|
||||
WS_NL80211_EXT_FEATURE_4WAY_HANDSHAKE_AP_PSK,
|
||||
WS_NL80211_EXT_FEATURE_SAE_OFFLOAD_AP,
|
||||
WS_NL80211_EXT_FEATURE_FILS_DISCOVERY,
|
||||
WS_NL80211_EXT_FEATURE_UNSOL_BCAST_PROBE_RESP,
|
||||
WS_NL80211_EXT_FEATURE_BEACON_RATE_HE,
|
||||
WS_NL80211_EXT_FEATURE_SECURE_LTF,
|
||||
WS_NL80211_EXT_FEATURE_SECURE_RTT,
|
||||
WS_NL80211_EXT_FEATURE_PROT_RANGE_NEGO_AND_MEASURE,
|
||||
WS_NL80211_EXT_FEATURE_BSS_COLOR,
|
||||
WS_NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD,
|
||||
WS_NL80211_EXT_FEATURE_RADAR_BACKGROUND,
|
||||
WS_NL80211_EXT_FEATURE_POWERED_ADDR_CHANGE,
|
||||
WS_NL80211_EXT_FEATURE_PUNCT,
|
||||
WS_NL80211_EXT_FEATURE_SECURE_NAN,
|
||||
};
|
||||
|
||||
enum ws_nl80211_probe_resp_offload_support_attr {
|
||||
|
@ -1235,6 +1361,8 @@ enum ws_nl80211_scan_flags {
|
|||
WS_NL80211_SCAN_FLAG_HIGH_ACCURACY = 1<<10,
|
||||
WS_NL80211_SCAN_FLAG_RANDOM_SN = 1<<11,
|
||||
WS_NL80211_SCAN_FLAG_MIN_PREQ_CONTENT = 1<<12,
|
||||
WS_NL80211_SCAN_FLAG_FREQ_KHZ = 1<<13,
|
||||
WS_NL80211_SCAN_FLAG_COLOCATED_6GHZ = 1<<14,
|
||||
};
|
||||
|
||||
enum ws_nl80211_acl_policy {
|
||||
|
@ -1283,6 +1411,7 @@ enum ws_nl80211_tdls_peer_capability {
|
|||
WS_NL80211_TDLS_PEER_HT = 1<<0,
|
||||
WS_NL80211_TDLS_PEER_VHT = 1<<1,
|
||||
WS_NL80211_TDLS_PEER_WMM = 1<<2,
|
||||
WS_NL80211_TDLS_PEER_HE = 1<<3,
|
||||
};
|
||||
|
||||
enum ws_nl80211_sched_scan_plan {
|
||||
|
@ -1380,6 +1509,7 @@ enum ws_nl80211_preamble {
|
|||
WS_NL80211_PREAMBLE_HT,
|
||||
WS_NL80211_PREAMBLE_VHT,
|
||||
WS_NL80211_PREAMBLE_DMG,
|
||||
WS_NL80211_PREAMBLE_HE,
|
||||
};
|
||||
|
||||
enum ws_nl80211_peer_measurement_type {
|
||||
|
@ -1437,6 +1567,8 @@ enum ws_nl80211_peer_measurement_ftm_capa {
|
|||
WS_NL80211_PMSR_FTM_CAPA_ATTR_BANDWIDTHS,
|
||||
WS_NL80211_PMSR_FTM_CAPA_ATTR_MAX_BURSTS_EXPONENT,
|
||||
WS_NL80211_PMSR_FTM_CAPA_ATTR_MAX_FTMS_PER_BURST,
|
||||
WS_NL80211_PMSR_FTM_CAPA_ATTR_TRIGGER_BASED,
|
||||
WS_NL80211_PMSR_FTM_CAPA_ATTR_NON_TRIGGER_BASED,
|
||||
};
|
||||
|
||||
enum ws_nl80211_peer_measurement_ftm_req {
|
||||
|
@ -1450,6 +1582,10 @@ enum ws_nl80211_peer_measurement_ftm_req {
|
|||
WS_NL80211_PMSR_FTM_REQ_ATTR_NUM_FTMR_RETRIES,
|
||||
WS_NL80211_PMSR_FTM_REQ_ATTR_REQUEST_LCI,
|
||||
WS_NL80211_PMSR_FTM_REQ_ATTR_REQUEST_CIVICLOC,
|
||||
WS_NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED,
|
||||
WS_NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED,
|
||||
WS_NL80211_PMSR_FTM_REQ_ATTR_LMR_FEEDBACK,
|
||||
WS_NL80211_PMSR_FTM_REQ_ATTR_BSS_COLOR,
|
||||
};
|
||||
|
||||
enum ws_nl80211_peer_measurement_ftm_failure_reasons {
|
||||
|
@ -1492,6 +1628,10 @@ enum ws_nl80211_obss_pd_attributes {
|
|||
WS___NL80211_HE_OBSS_PD_ATTR_INVALID,
|
||||
WS_NL80211_HE_OBSS_PD_ATTR_MIN_OFFSET,
|
||||
WS_NL80211_HE_OBSS_PD_ATTR_MAX_OFFSET,
|
||||
WS_NL80211_HE_OBSS_PD_ATTR_NON_SRG_MAX_OFFSET,
|
||||
WS_NL80211_HE_OBSS_PD_ATTR_BSS_COLOR_BITMAP,
|
||||
WS_NL80211_HE_OBSS_PD_ATTR_PARTIAL_BSSID_BITMAP,
|
||||
WS_NL80211_HE_OBSS_PD_ATTR_SR_CTRL,
|
||||
};
|
||||
|
||||
static const value_string ws_nl80211_commands_vals[] = {
|
||||
|
@ -1632,6 +1772,22 @@ static const value_string ws_nl80211_commands_vals[] = {
|
|||
{ WS_NL80211_CMD_NOTIFY_RADAR, "NL80211_CMD_NOTIFY_RADAR" },
|
||||
{ WS_NL80211_CMD_UPDATE_OWE_INFO, "NL80211_CMD_UPDATE_OWE_INFO" },
|
||||
{ WS_NL80211_CMD_PROBE_MESH_LINK, "NL80211_CMD_PROBE_MESH_LINK" },
|
||||
{ WS_NL80211_CMD_SET_TID_CONFIG, "NL80211_CMD_SET_TID_CONFIG" },
|
||||
{ WS_NL80211_CMD_UNPROT_BEACON, "NL80211_CMD_UNPROT_BEACON" },
|
||||
{ WS_NL80211_CMD_CONTROL_PORT_FRAME_TX_STATUS, "NL80211_CMD_CONTROL_PORT_FRAME_TX_STATUS" },
|
||||
{ WS_NL80211_CMD_SET_SAR_SPECS, "NL80211_CMD_SET_SAR_SPECS" },
|
||||
{ WS_NL80211_CMD_OBSS_COLOR_COLLISION, "NL80211_CMD_OBSS_COLOR_COLLISION" },
|
||||
{ WS_NL80211_CMD_COLOR_CHANGE_REQUEST, "NL80211_CMD_COLOR_CHANGE_REQUEST" },
|
||||
{ WS_NL80211_CMD_COLOR_CHANGE_STARTED, "NL80211_CMD_COLOR_CHANGE_STARTED" },
|
||||
{ WS_NL80211_CMD_COLOR_CHANGE_ABORTED, "NL80211_CMD_COLOR_CHANGE_ABORTED" },
|
||||
{ WS_NL80211_CMD_COLOR_CHANGE_COMPLETED, "NL80211_CMD_COLOR_CHANGE_COMPLETED" },
|
||||
{ WS_NL80211_CMD_SET_FILS_AAD, "NL80211_CMD_SET_FILS_AAD" },
|
||||
{ WS_NL80211_CMD_ASSOC_COMEBACK, "NL80211_CMD_ASSOC_COMEBACK" },
|
||||
{ WS_NL80211_CMD_ADD_LINK, "NL80211_CMD_ADD_LINK" },
|
||||
{ WS_NL80211_CMD_REMOVE_LINK, "NL80211_CMD_REMOVE_LINK" },
|
||||
{ WS_NL80211_CMD_ADD_LINK_STA, "NL80211_CMD_ADD_LINK_STA" },
|
||||
{ WS_NL80211_CMD_MODIFY_LINK_STA, "NL80211_CMD_MODIFY_LINK_STA" },
|
||||
{ WS_NL80211_CMD_REMOVE_LINK_STA, "NL80211_CMD_REMOVE_LINK_STA" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
static value_string_ext ws_nl80211_commands_vals_ext = VALUE_STRING_EXT_INIT(ws_nl80211_commands_vals);
|
||||
|
@ -1823,8 +1979,8 @@ static const value_string ws_nl80211_attrs_vals[] = {
|
|||
{ WS_NL80211_ATTR_CH_SWITCH_COUNT, "NL80211_ATTR_CH_SWITCH_COUNT" },
|
||||
{ WS_NL80211_ATTR_CH_SWITCH_BLOCK_TX, "NL80211_ATTR_CH_SWITCH_BLOCK_TX" },
|
||||
{ WS_NL80211_ATTR_CSA_IES, "NL80211_ATTR_CSA_IES" },
|
||||
{ WS_NL80211_ATTR_CSA_C_OFF_BEACON, "NL80211_ATTR_CSA_C_OFF_BEACON" },
|
||||
{ WS_NL80211_ATTR_CSA_C_OFF_PRESP, "NL80211_ATTR_CSA_C_OFF_PRESP" },
|
||||
{ WS_NL80211_ATTR_CNTDWN_OFFS_BEACON, "NL80211_ATTR_CNTDWN_OFFS_BEACON" },
|
||||
{ WS_NL80211_ATTR_CNTDWN_OFFS_PRESP, "NL80211_ATTR_CNTDWN_OFFS_PRESP" },
|
||||
{ WS_NL80211_ATTR_RXMGMT_FLAGS, "NL80211_ATTR_RXMGMT_FLAGS" },
|
||||
{ WS_NL80211_ATTR_STA_SUPPORTED_CHANNELS, "NL80211_ATTR_STA_SUPPORTED_CHANNELS" },
|
||||
{ WS_NL80211_ATTR_STA_SUPPORTED_OPER_CLASSES, "NL80211_ATTR_STA_SUPPORTED_OPER_CLASSES" },
|
||||
|
@ -1919,6 +2075,47 @@ static const value_string ws_nl80211_attrs_vals[] = {
|
|||
{ WS_NL80211_ATTR_HE_OBSS_PD, "NL80211_ATTR_HE_OBSS_PD" },
|
||||
{ WS_NL80211_ATTR_WIPHY_EDMG_CHANNELS, "NL80211_ATTR_WIPHY_EDMG_CHANNELS" },
|
||||
{ WS_NL80211_ATTR_WIPHY_EDMG_BW_CONFIG, "NL80211_ATTR_WIPHY_EDMG_BW_CONFIG" },
|
||||
{ WS_NL80211_ATTR_VLAN_ID, "NL80211_ATTR_VLAN_ID" },
|
||||
{ WS_NL80211_ATTR_HE_BSS_COLOR, "NL80211_ATTR_HE_BSS_COLOR" },
|
||||
{ WS_NL80211_ATTR_IFTYPE_AKM_SUITES, "NL80211_ATTR_IFTYPE_AKM_SUITES" },
|
||||
{ WS_NL80211_ATTR_TID_CONFIG, "NL80211_ATTR_TID_CONFIG" },
|
||||
{ WS_NL80211_ATTR_CONTROL_PORT_NO_PREAUTH, "NL80211_ATTR_CONTROL_PORT_NO_PREAUTH" },
|
||||
{ WS_NL80211_ATTR_PMK_LIFETIME, "NL80211_ATTR_PMK_LIFETIME" },
|
||||
{ WS_NL80211_ATTR_PMK_REAUTH_THRESHOLD, "NL80211_ATTR_PMK_REAUTH_THRESHOLD" },
|
||||
{ WS_NL80211_ATTR_RECEIVE_MULTICAST, "NL80211_ATTR_RECEIVE_MULTICAST" },
|
||||
{ WS_NL80211_ATTR_WIPHY_FREQ_OFFSET, "NL80211_ATTR_WIPHY_FREQ_OFFSET" },
|
||||
{ WS_NL80211_ATTR_CENTER_FREQ1_OFFSET, "NL80211_ATTR_CENTER_FREQ1_OFFSET" },
|
||||
{ WS_NL80211_ATTR_SCAN_FREQ_KHZ, "NL80211_ATTR_SCAN_FREQ_KHZ" },
|
||||
{ WS_NL80211_ATTR_HE_6GHZ_CAPABILITY, "NL80211_ATTR_HE_6GHZ_CAPABILITY" },
|
||||
{ WS_NL80211_ATTR_FILS_DISCOVERY, "NL80211_ATTR_FILS_DISCOVERY" },
|
||||
{ WS_NL80211_ATTR_UNSOL_BCAST_PROBE_RESP, "NL80211_ATTR_UNSOL_BCAST_PROBE_RESP" },
|
||||
{ WS_NL80211_ATTR_S1G_CAPABILITY, "NL80211_ATTR_S1G_CAPABILITY" },
|
||||
{ WS_NL80211_ATTR_S1G_CAPABILITY_MASK, "NL80211_ATTR_S1G_CAPABILITY_MASK" },
|
||||
{ WS_NL80211_ATTR_SAE_PWE, "NL80211_ATTR_SAE_PWE" },
|
||||
{ WS_NL80211_ATTR_RECONNECT_REQUESTED, "NL80211_ATTR_RECONNECT_REQUESTED" },
|
||||
{ WS_NL80211_ATTR_SAR_SPEC, "NL80211_ATTR_SAR_SPEC" },
|
||||
{ WS_NL80211_ATTR_DISABLE_HE, "NL80211_ATTR_DISABLE_HE" },
|
||||
{ WS_NL80211_ATTR_OBSS_COLOR_BITMAP, "NL80211_ATTR_OBSS_COLOR_BITMAP" },
|
||||
{ WS_NL80211_ATTR_COLOR_CHANGE_COUNT, "NL80211_ATTR_COLOR_CHANGE_COUNT" },
|
||||
{ WS_NL80211_ATTR_COLOR_CHANGE_COLOR, "NL80211_ATTR_COLOR_CHANGE_COLOR" },
|
||||
{ WS_NL80211_ATTR_COLOR_CHANGE_ELEMS, "NL80211_ATTR_COLOR_CHANGE_ELEMS" },
|
||||
{ WS_NL80211_ATTR_MBSSID_CONFIG, "NL80211_ATTR_MBSSID_CONFIG" },
|
||||
{ WS_NL80211_ATTR_MBSSID_ELEMS, "NL80211_ATTR_MBSSID_ELEMS" },
|
||||
{ WS_NL80211_ATTR_RADAR_BACKGROUND, "NL80211_ATTR_RADAR_BACKGROUND" },
|
||||
{ WS_NL80211_ATTR_AP_SETTINGS_FLAGS, "NL80211_ATTR_AP_SETTINGS_FLAGS" },
|
||||
{ WS_NL80211_ATTR_EHT_CAPABILITY, "NL80211_ATTR_EHT_CAPABILITY" },
|
||||
{ WS_NL80211_ATTR_DISABLE_EHT, "NL80211_ATTR_DISABLE_EHT" },
|
||||
{ WS_NL80211_ATTR_MLO_LINKS, "NL80211_ATTR_MLO_LINKS" },
|
||||
{ WS_NL80211_ATTR_MLO_LINK_ID, "NL80211_ATTR_MLO_LINK_ID" },
|
||||
{ WS_NL80211_ATTR_MLD_ADDR, "NL80211_ATTR_MLD_ADDR" },
|
||||
{ WS_NL80211_ATTR_MLO_SUPPORT, "NL80211_ATTR_MLO_SUPPORT" },
|
||||
{ WS_NL80211_ATTR_MAX_NUM_AKM_SUITES, "NL80211_ATTR_MAX_NUM_AKM_SUITES" },
|
||||
{ WS_NL80211_ATTR_EML_CAPABILITY, "NL80211_ATTR_EML_CAPABILITY" },
|
||||
{ WS_NL80211_ATTR_MLD_CAPA_AND_OPS, "NL80211_ATTR_MLD_CAPA_AND_OPS" },
|
||||
{ WS_NL80211_ATTR_TX_HW_TIMESTAMP, "NL80211_ATTR_TX_HW_TIMESTAMP" },
|
||||
{ WS_NL80211_ATTR_RX_HW_TIMESTAMP, "NL80211_ATTR_RX_HW_TIMESTAMP" },
|
||||
{ WS_NL80211_ATTR_TD_BITMAP, "NL80211_ATTR_TD_BITMAP" },
|
||||
{ WS_NL80211_ATTR_PUNCT_BITMAP, "NL80211_ATTR_PUNCT_BITMAP" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
static value_string_ext ws_nl80211_attrs_vals_ext = VALUE_STRING_EXT_INIT(ws_nl80211_attrs_vals);
|
||||
|
@ -2000,6 +2197,11 @@ static const value_string ws_nl80211_rate_info_vals[] = {
|
|||
{ WS_NL80211_RATE_INFO_HE_GI, "NL80211_RATE_INFO_HE_GI" },
|
||||
{ WS_NL80211_RATE_INFO_HE_DCM, "NL80211_RATE_INFO_HE_DCM" },
|
||||
{ WS_NL80211_RATE_INFO_HE_RU_ALLOC, "NL80211_RATE_INFO_HE_RU_ALLOC" },
|
||||
{ WS_NL80211_RATE_INFO_320_MHZ_WIDTH, "NL80211_RATE_INFO_320_MHZ_WIDTH" },
|
||||
{ WS_NL80211_RATE_INFO_EHT_MCS, "NL80211_RATE_INFO_EHT_MCS" },
|
||||
{ WS_NL80211_RATE_INFO_EHT_NSS, "NL80211_RATE_INFO_EHT_NSS" },
|
||||
{ WS_NL80211_RATE_INFO_EHT_GI, "NL80211_RATE_INFO_EHT_GI" },
|
||||
{ WS_NL80211_RATE_INFO_EHT_RU_ALLOC, "NL80211_RATE_INFO_EHT_RU_ALLOC" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
static value_string_ext ws_nl80211_rate_info_vals_ext = VALUE_STRING_EXT_INIT(ws_nl80211_rate_info_vals);
|
||||
|
@ -2059,6 +2261,7 @@ static const value_string ws_nl80211_sta_info_vals[] = {
|
|||
{ WS_NL80211_STA_INFO_AIRTIME_WEIGHT, "NL80211_STA_INFO_AIRTIME_WEIGHT" },
|
||||
{ WS_NL80211_STA_INFO_AIRTIME_LINK_METRIC, "NL80211_STA_INFO_AIRTIME_LINK_METRIC" },
|
||||
{ WS_NL80211_STA_INFO_ASSOC_AT_BOOTTIME, "NL80211_STA_INFO_ASSOC_AT_BOOTTIME" },
|
||||
{ WS_NL80211_STA_INFO_CONNECTED_TO_AS, "NL80211_STA_INFO_CONNECTED_TO_AS" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
static value_string_ext ws_nl80211_sta_info_vals_ext = VALUE_STRING_EXT_INIT(ws_nl80211_sta_info_vals);
|
||||
|
@ -2124,6 +2327,12 @@ static const value_string ws_nl80211_band_iftype_attr_vals[] = {
|
|||
{ WS_NL80211_BAND_IFTYPE_ATTR_HE_CAP_PHY, "NL80211_BAND_IFTYPE_ATTR_HE_CAP_PHY" },
|
||||
{ WS_NL80211_BAND_IFTYPE_ATTR_HE_CAP_MCS_SET, "NL80211_BAND_IFTYPE_ATTR_HE_CAP_MCS_SET" },
|
||||
{ WS_NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE, "NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE" },
|
||||
{ WS_NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA, "NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA" },
|
||||
{ WS_NL80211_BAND_IFTYPE_ATTR_VENDOR_ELEMS, "NL80211_BAND_IFTYPE_ATTR_VENDOR_ELEMS" },
|
||||
{ WS_NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MAC, "NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MAC" },
|
||||
{ WS_NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PHY, "NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PHY" },
|
||||
{ WS_NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MCS_SET, "NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MCS_SET" },
|
||||
{ WS_NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PPE, "NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PPE" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
static value_string_ext ws_nl80211_band_iftype_attr_vals_ext = VALUE_STRING_EXT_INIT(ws_nl80211_band_iftype_attr_vals);
|
||||
|
@ -2175,6 +2384,15 @@ static const value_string ws_nl80211_frequency_attr_vals[] = {
|
|||
{ WS_NL80211_FREQUENCY_ATTR_NO_20MHZ, "NL80211_FREQUENCY_ATTR_NO_20MHZ" },
|
||||
{ WS_NL80211_FREQUENCY_ATTR_NO_10MHZ, "NL80211_FREQUENCY_ATTR_NO_10MHZ" },
|
||||
{ WS_NL80211_FREQUENCY_ATTR_WMM, "NL80211_FREQUENCY_ATTR_WMM" },
|
||||
{ WS_NL80211_FREQUENCY_ATTR_NO_HE, "NL80211_FREQUENCY_ATTR_NO_HE" },
|
||||
{ WS_NL80211_FREQUENCY_ATTR_OFFSET, "NL80211_FREQUENCY_ATTR_OFFSET" },
|
||||
{ WS_NL80211_FREQUENCY_ATTR_1MHZ, "NL80211_FREQUENCY_ATTR_1MHZ" },
|
||||
{ WS_NL80211_FREQUENCY_ATTR_2MHZ, "NL80211_FREQUENCY_ATTR_2MHZ" },
|
||||
{ WS_NL80211_FREQUENCY_ATTR_4MHZ, "NL80211_FREQUENCY_ATTR_4MHZ" },
|
||||
{ WS_NL80211_FREQUENCY_ATTR_8MHZ, "NL80211_FREQUENCY_ATTR_8MHZ" },
|
||||
{ WS_NL80211_FREQUENCY_ATTR_16MHZ, "NL80211_FREQUENCY_ATTR_16MHZ" },
|
||||
{ WS_NL80211_FREQUENCY_ATTR_NO_320MHZ, "NL80211_FREQUENCY_ATTR_NO_320MHZ" },
|
||||
{ WS_NL80211_FREQUENCY_ATTR_NO_EHT, "NL80211_FREQUENCY_ATTR_NO_EHT" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
static value_string_ext ws_nl80211_frequency_attr_vals_ext = VALUE_STRING_EXT_INIT(ws_nl80211_frequency_attr_vals);
|
||||
|
@ -2246,6 +2464,8 @@ static const value_string ws_nl80211_reg_rule_flags_vals[] = {
|
|||
{ WS_NL80211_RRF_NO_HT40PLUS, "NL80211_RRF_NO_HT40PLUS" },
|
||||
{ WS_NL80211_RRF_NO_80MHZ, "NL80211_RRF_NO_80MHZ" },
|
||||
{ WS_NL80211_RRF_NO_160MHZ, "NL80211_RRF_NO_160MHZ" },
|
||||
{ WS_NL80211_RRF_NO_HE, "NL80211_RRF_NO_HE" },
|
||||
{ WS_NL80211_RRF_NO_320MHZ, "NL80211_RRF_NO_320MHZ" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
static value_string_ext ws_nl80211_reg_rule_flags_vals_ext = VALUE_STRING_EXT_INIT(ws_nl80211_reg_rule_flags_vals);
|
||||
|
@ -2280,6 +2500,7 @@ static const value_string ws_nl80211_survey_info_vals[] = {
|
|||
{ WS_NL80211_SURVEY_INFO_TIME_SCAN, "NL80211_SURVEY_INFO_TIME_SCAN" },
|
||||
{ WS_NL80211_SURVEY_INFO_PAD, "NL80211_SURVEY_INFO_PAD" },
|
||||
{ WS_NL80211_SURVEY_INFO_TIME_BSS_RX, "NL80211_SURVEY_INFO_TIME_BSS_RX" },
|
||||
{ WS_NL80211_SURVEY_INFO_FREQUENCY_OFFSET, "NL80211_SURVEY_INFO_FREQUENCY_OFFSET" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
static value_string_ext ws_nl80211_survey_info_vals_ext = VALUE_STRING_EXT_INIT(ws_nl80211_survey_info_vals);
|
||||
|
@ -2336,6 +2557,8 @@ static const value_string ws_nl80211_meshconf_params_vals[] = {
|
|||
{ WS_NL80211_MESHCONF_AWAKE_WINDOW, "NL80211_MESHCONF_AWAKE_WINDOW" },
|
||||
{ WS_NL80211_MESHCONF_PLINK_TIMEOUT, "NL80211_MESHCONF_PLINK_TIMEOUT" },
|
||||
{ WS_NL80211_MESHCONF_CONNECTED_TO_GATE, "NL80211_MESHCONF_CONNECTED_TO_GATE" },
|
||||
{ WS_NL80211_MESHCONF_NOLEARN, "NL80211_MESHCONF_NOLEARN" },
|
||||
{ WS_NL80211_MESHCONF_CONNECTED_TO_AS, "NL80211_MESHCONF_CONNECTED_TO_AS" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
static value_string_ext ws_nl80211_meshconf_params_vals_ext = VALUE_STRING_EXT_INIT(ws_nl80211_meshconf_params_vals);
|
||||
|
@ -2401,6 +2624,12 @@ static const value_string ws_nl80211_chan_width_vals[] = {
|
|||
{ WS_NL80211_CHAN_WIDTH_160, "NL80211_CHAN_WIDTH_160" },
|
||||
{ WS_NL80211_CHAN_WIDTH_5, "NL80211_CHAN_WIDTH_5" },
|
||||
{ WS_NL80211_CHAN_WIDTH_10, "NL80211_CHAN_WIDTH_10" },
|
||||
{ WS_NL80211_CHAN_WIDTH_1, "NL80211_CHAN_WIDTH_1" },
|
||||
{ WS_NL80211_CHAN_WIDTH_2, "NL80211_CHAN_WIDTH_2" },
|
||||
{ WS_NL80211_CHAN_WIDTH_4, "NL80211_CHAN_WIDTH_4" },
|
||||
{ WS_NL80211_CHAN_WIDTH_8, "NL80211_CHAN_WIDTH_8" },
|
||||
{ WS_NL80211_CHAN_WIDTH_16, "NL80211_CHAN_WIDTH_16" },
|
||||
{ WS_NL80211_CHAN_WIDTH_320, "NL80211_CHAN_WIDTH_320" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
static value_string_ext ws_nl80211_chan_width_vals_ext = VALUE_STRING_EXT_INIT(ws_nl80211_chan_width_vals);
|
||||
|
@ -2409,6 +2638,8 @@ static const value_string ws_nl80211_bss_scan_width_vals[] = {
|
|||
{ WS_NL80211_BSS_CHAN_WIDTH_20, "NL80211_BSS_CHAN_WIDTH_20" },
|
||||
{ WS_NL80211_BSS_CHAN_WIDTH_10, "NL80211_BSS_CHAN_WIDTH_10" },
|
||||
{ WS_NL80211_BSS_CHAN_WIDTH_5, "NL80211_BSS_CHAN_WIDTH_5" },
|
||||
{ WS_NL80211_BSS_CHAN_WIDTH_1, "NL80211_BSS_CHAN_WIDTH_1" },
|
||||
{ WS_NL80211_BSS_CHAN_WIDTH_2, "NL80211_BSS_CHAN_WIDTH_2" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
static value_string_ext ws_nl80211_bss_scan_width_vals_ext = VALUE_STRING_EXT_INIT(ws_nl80211_bss_scan_width_vals);
|
||||
|
@ -2434,6 +2665,9 @@ static const value_string ws_nl80211_bss_vals[] = {
|
|||
{ WS_NL80211_BSS_PARENT_TSF, "NL80211_BSS_PARENT_TSF" },
|
||||
{ WS_NL80211_BSS_PARENT_BSSID, "NL80211_BSS_PARENT_BSSID" },
|
||||
{ WS_NL80211_BSS_CHAIN_SIGNAL, "NL80211_BSS_CHAIN_SIGNAL" },
|
||||
{ WS_NL80211_BSS_FREQUENCY_OFFSET, "NL80211_BSS_FREQUENCY_OFFSET" },
|
||||
{ WS_NL80211_BSS_MLO_LINK_ID, "NL80211_BSS_MLO_LINK_ID" },
|
||||
{ WS_NL80211_BSS_MLD_ADDR, "NL80211_BSS_MLD_ADDR" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
static value_string_ext ws_nl80211_bss_vals_ext = VALUE_STRING_EXT_INIT(ws_nl80211_bss_vals);
|
||||
|
@ -2502,6 +2736,7 @@ static const value_string ws_nl80211_key_attributes_vals[] = {
|
|||
{ WS_NL80211_KEY_TYPE, "NL80211_KEY_TYPE" },
|
||||
{ WS_NL80211_KEY_DEFAULT_TYPES, "NL80211_KEY_DEFAULT_TYPES" },
|
||||
{ WS_NL80211_KEY_MODE, "NL80211_KEY_MODE" },
|
||||
{ WS_NL80211_KEY_DEFAULT_BEACON, "NL80211_KEY_DEFAULT_BEACON" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
static value_string_ext ws_nl80211_key_attributes_vals_ext = VALUE_STRING_EXT_INIT(ws_nl80211_key_attributes_vals);
|
||||
|
@ -2512,6 +2747,9 @@ static const value_string ws_nl80211_tx_rate_attributes_vals[] = {
|
|||
{ WS_NL80211_TXRATE_HT, "NL80211_TXRATE_HT" },
|
||||
{ WS_NL80211_TXRATE_VHT, "NL80211_TXRATE_VHT" },
|
||||
{ WS_NL80211_TXRATE_GI, "NL80211_TXRATE_GI" },
|
||||
{ WS_NL80211_TXRATE_HE, "NL80211_TXRATE_HE" },
|
||||
{ WS_NL80211_TXRATE_HE_GI, "NL80211_TXRATE_HE_GI" },
|
||||
{ WS_NL80211_TXRATE_HE_LTF, "NL80211_TXRATE_HE_LTF" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
static value_string_ext ws_nl80211_tx_rate_attributes_vals_ext = VALUE_STRING_EXT_INIT(ws_nl80211_tx_rate_attributes_vals);
|
||||
|
@ -2529,6 +2767,8 @@ static const value_string ws_nl80211_band_vals[] = {
|
|||
{ WS_NL80211_BAND_5GHZ, "NL80211_BAND_5GHZ" },
|
||||
{ WS_NL80211_BAND_60GHZ, "NL80211_BAND_60GHZ" },
|
||||
{ WS_NL80211_BAND_6GHZ, "NL80211_BAND_6GHZ" },
|
||||
{ WS_NL80211_BAND_S1GHZ, "NL80211_BAND_S1GHZ" },
|
||||
{ WS_NL80211_BAND_LC, "NL80211_BAND_LC" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
static value_string_ext ws_nl80211_band_vals_ext = VALUE_STRING_EXT_INIT(ws_nl80211_band_vals);
|
||||
|
@ -2684,6 +2924,7 @@ static const value_string ws_nl80211_rekey_data_vals[] = {
|
|||
{ WS_NL80211_REKEY_DATA_KEK, "NL80211_REKEY_DATA_KEK" },
|
||||
{ WS_NL80211_REKEY_DATA_KCK, "NL80211_REKEY_DATA_KCK" },
|
||||
{ WS_NL80211_REKEY_DATA_REPLAY_CTR, "NL80211_REKEY_DATA_REPLAY_CTR" },
|
||||
{ WS_NL80211_REKEY_DATA_AKM, "NL80211_REKEY_DATA_AKM" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
static value_string_ext ws_nl80211_rekey_data_vals_ext = VALUE_STRING_EXT_INIT(ws_nl80211_rekey_data_vals);
|
||||
|
@ -2799,6 +3040,31 @@ static const value_string ws_nl80211_ext_feature_index_vals[] = {
|
|||
{ WS_NL80211_EXT_FEATURE_EXT_KEY_ID, "NL80211_EXT_FEATURE_EXT_KEY_ID" },
|
||||
{ WS_NL80211_EXT_FEATURE_STA_TX_PWR, "NL80211_EXT_FEATURE_STA_TX_PWR" },
|
||||
{ WS_NL80211_EXT_FEATURE_SAE_OFFLOAD, "NL80211_EXT_FEATURE_SAE_OFFLOAD" },
|
||||
{ WS_NL80211_EXT_FEATURE_VLAN_OFFLOAD, "NL80211_EXT_FEATURE_VLAN_OFFLOAD" },
|
||||
{ WS_NL80211_EXT_FEATURE_AQL, "NL80211_EXT_FEATURE_AQL" },
|
||||
{ WS_NL80211_EXT_FEATURE_BEACON_PROTECTION, "NL80211_EXT_FEATURE_BEACON_PROTECTION" },
|
||||
{ WS_NL80211_EXT_FEATURE_CONTROL_PORT_NO_PREAUTH, "NL80211_EXT_FEATURE_CONTROL_PORT_NO_PREAUTH" },
|
||||
{ WS_NL80211_EXT_FEATURE_PROTECTED_TWT, "NL80211_EXT_FEATURE_PROTECTED_TWT" },
|
||||
{ WS_NL80211_EXT_FEATURE_DEL_IBSS_STA, "NL80211_EXT_FEATURE_DEL_IBSS_STA" },
|
||||
{ WS_NL80211_EXT_FEATURE_MULTICAST_REGISTRATIONS, "NL80211_EXT_FEATURE_MULTICAST_REGISTRATIONS" },
|
||||
{ WS_NL80211_EXT_FEATURE_BEACON_PROTECTION_CLIENT, "NL80211_EXT_FEATURE_BEACON_PROTECTION_CLIENT" },
|
||||
{ WS_NL80211_EXT_FEATURE_SCAN_FREQ_KHZ, "NL80211_EXT_FEATURE_SCAN_FREQ_KHZ" },
|
||||
{ WS_NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211_TX_STATUS, "NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211_TX_STATUS" },
|
||||
{ WS_NL80211_EXT_FEATURE_OPERATING_CHANNEL_VALIDATION, "NL80211_EXT_FEATURE_OPERATING_CHANNEL_VALIDATION" },
|
||||
{ WS_NL80211_EXT_FEATURE_4WAY_HANDSHAKE_AP_PSK, "NL80211_EXT_FEATURE_4WAY_HANDSHAKE_AP_PSK" },
|
||||
{ WS_NL80211_EXT_FEATURE_SAE_OFFLOAD_AP, "NL80211_EXT_FEATURE_SAE_OFFLOAD_AP" },
|
||||
{ WS_NL80211_EXT_FEATURE_FILS_DISCOVERY, "NL80211_EXT_FEATURE_FILS_DISCOVERY" },
|
||||
{ WS_NL80211_EXT_FEATURE_UNSOL_BCAST_PROBE_RESP, "NL80211_EXT_FEATURE_UNSOL_BCAST_PROBE_RESP" },
|
||||
{ WS_NL80211_EXT_FEATURE_BEACON_RATE_HE, "NL80211_EXT_FEATURE_BEACON_RATE_HE" },
|
||||
{ WS_NL80211_EXT_FEATURE_SECURE_LTF, "NL80211_EXT_FEATURE_SECURE_LTF" },
|
||||
{ WS_NL80211_EXT_FEATURE_SECURE_RTT, "NL80211_EXT_FEATURE_SECURE_RTT" },
|
||||
{ WS_NL80211_EXT_FEATURE_PROT_RANGE_NEGO_AND_MEASURE, "NL80211_EXT_FEATURE_PROT_RANGE_NEGO_AND_MEASURE" },
|
||||
{ WS_NL80211_EXT_FEATURE_BSS_COLOR, "NL80211_EXT_FEATURE_BSS_COLOR" },
|
||||
{ WS_NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD, "NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD" },
|
||||
{ WS_NL80211_EXT_FEATURE_RADAR_BACKGROUND, "NL80211_EXT_FEATURE_RADAR_BACKGROUND" },
|
||||
{ WS_NL80211_EXT_FEATURE_POWERED_ADDR_CHANGE, "NL80211_EXT_FEATURE_POWERED_ADDR_CHANGE" },
|
||||
{ WS_NL80211_EXT_FEATURE_PUNCT, "NL80211_EXT_FEATURE_PUNCT" },
|
||||
{ WS_NL80211_EXT_FEATURE_SECURE_NAN, "NL80211_EXT_FEATURE_SECURE_NAN" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
static value_string_ext ws_nl80211_ext_feature_index_vals_ext = VALUE_STRING_EXT_INIT(ws_nl80211_ext_feature_index_vals);
|
||||
|
@ -2842,6 +3108,8 @@ static const value_string ws_nl80211_scan_flags_vals[] = {
|
|||
{ WS_NL80211_SCAN_FLAG_HIGH_ACCURACY, "NL80211_SCAN_FLAG_HIGH_ACCURACY" },
|
||||
{ WS_NL80211_SCAN_FLAG_RANDOM_SN, "NL80211_SCAN_FLAG_RANDOM_SN" },
|
||||
{ WS_NL80211_SCAN_FLAG_MIN_PREQ_CONTENT, "NL80211_SCAN_FLAG_MIN_PREQ_CONTENT" },
|
||||
{ WS_NL80211_SCAN_FLAG_FREQ_KHZ, "NL80211_SCAN_FLAG_FREQ_KHZ" },
|
||||
{ WS_NL80211_SCAN_FLAG_COLOCATED_6GHZ, "NL80211_SCAN_FLAG_COLOCATED_6GHZ" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
static value_string_ext ws_nl80211_scan_flags_vals_ext = VALUE_STRING_EXT_INIT(ws_nl80211_scan_flags_vals);
|
||||
|
@ -2906,6 +3174,7 @@ static const value_string ws_nl80211_tdls_peer_capability_vals[] = {
|
|||
{ WS_NL80211_TDLS_PEER_HT, "NL80211_TDLS_PEER_HT" },
|
||||
{ WS_NL80211_TDLS_PEER_VHT, "NL80211_TDLS_PEER_VHT" },
|
||||
{ WS_NL80211_TDLS_PEER_WMM, "NL80211_TDLS_PEER_WMM" },
|
||||
{ WS_NL80211_TDLS_PEER_HE, "NL80211_TDLS_PEER_HE" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
static value_string_ext ws_nl80211_tdls_peer_capability_vals_ext = VALUE_STRING_EXT_INIT(ws_nl80211_tdls_peer_capability_vals);
|
||||
|
@ -3027,6 +3296,7 @@ static const value_string ws_nl80211_preamble_vals[] = {
|
|||
{ WS_NL80211_PREAMBLE_HT, "NL80211_PREAMBLE_HT" },
|
||||
{ WS_NL80211_PREAMBLE_VHT, "NL80211_PREAMBLE_VHT" },
|
||||
{ WS_NL80211_PREAMBLE_DMG, "NL80211_PREAMBLE_DMG" },
|
||||
{ WS_NL80211_PREAMBLE_HE, "NL80211_PREAMBLE_HE" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
static value_string_ext ws_nl80211_preamble_vals_ext = VALUE_STRING_EXT_INIT(ws_nl80211_preamble_vals);
|
||||
|
@ -3098,6 +3368,8 @@ static const value_string ws_nl80211_peer_measurement_ftm_capa_vals[] = {
|
|||
{ WS_NL80211_PMSR_FTM_CAPA_ATTR_BANDWIDTHS, "NL80211_PMSR_FTM_CAPA_ATTR_BANDWIDTHS" },
|
||||
{ WS_NL80211_PMSR_FTM_CAPA_ATTR_MAX_BURSTS_EXPONENT, "NL80211_PMSR_FTM_CAPA_ATTR_MAX_BURSTS_EXPONENT" },
|
||||
{ WS_NL80211_PMSR_FTM_CAPA_ATTR_MAX_FTMS_PER_BURST, "NL80211_PMSR_FTM_CAPA_ATTR_MAX_FTMS_PER_BURST" },
|
||||
{ WS_NL80211_PMSR_FTM_CAPA_ATTR_TRIGGER_BASED, "NL80211_PMSR_FTM_CAPA_ATTR_TRIGGER_BASED" },
|
||||
{ WS_NL80211_PMSR_FTM_CAPA_ATTR_NON_TRIGGER_BASED, "NL80211_PMSR_FTM_CAPA_ATTR_NON_TRIGGER_BASED" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
static value_string_ext ws_nl80211_peer_measurement_ftm_capa_vals_ext = VALUE_STRING_EXT_INIT(ws_nl80211_peer_measurement_ftm_capa_vals);
|
||||
|
@ -3113,6 +3385,10 @@ static const value_string ws_nl80211_peer_measurement_ftm_req_vals[] = {
|
|||
{ WS_NL80211_PMSR_FTM_REQ_ATTR_NUM_FTMR_RETRIES, "NL80211_PMSR_FTM_REQ_ATTR_NUM_FTMR_RETRIES" },
|
||||
{ WS_NL80211_PMSR_FTM_REQ_ATTR_REQUEST_LCI, "NL80211_PMSR_FTM_REQ_ATTR_REQUEST_LCI" },
|
||||
{ WS_NL80211_PMSR_FTM_REQ_ATTR_REQUEST_CIVICLOC, "NL80211_PMSR_FTM_REQ_ATTR_REQUEST_CIVICLOC" },
|
||||
{ WS_NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED, "NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED" },
|
||||
{ WS_NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED, "NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED" },
|
||||
{ WS_NL80211_PMSR_FTM_REQ_ATTR_LMR_FEEDBACK, "NL80211_PMSR_FTM_REQ_ATTR_LMR_FEEDBACK" },
|
||||
{ WS_NL80211_PMSR_FTM_REQ_ATTR_BSS_COLOR, "NL80211_PMSR_FTM_REQ_ATTR_BSS_COLOR" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
static value_string_ext ws_nl80211_peer_measurement_ftm_req_vals_ext = VALUE_STRING_EXT_INIT(ws_nl80211_peer_measurement_ftm_req_vals);
|
||||
|
@ -3161,6 +3437,10 @@ static const value_string ws_nl80211_obss_pd_attributes_vals[] = {
|
|||
{ WS___NL80211_HE_OBSS_PD_ATTR_INVALID, "__NL80211_HE_OBSS_PD_ATTR_INVALID" },
|
||||
{ WS_NL80211_HE_OBSS_PD_ATTR_MIN_OFFSET, "NL80211_HE_OBSS_PD_ATTR_MIN_OFFSET" },
|
||||
{ WS_NL80211_HE_OBSS_PD_ATTR_MAX_OFFSET, "NL80211_HE_OBSS_PD_ATTR_MAX_OFFSET" },
|
||||
{ WS_NL80211_HE_OBSS_PD_ATTR_NON_SRG_MAX_OFFSET, "NL80211_HE_OBSS_PD_ATTR_NON_SRG_MAX_OFFSET" },
|
||||
{ WS_NL80211_HE_OBSS_PD_ATTR_BSS_COLOR_BITMAP, "NL80211_HE_OBSS_PD_ATTR_BSS_COLOR_BITMAP" },
|
||||
{ WS_NL80211_HE_OBSS_PD_ATTR_PARTIAL_BSSID_BITMAP, "NL80211_HE_OBSS_PD_ATTR_PARTIAL_BSSID_BITMAP" },
|
||||
{ WS_NL80211_HE_OBSS_PD_ATTR_SR_CTRL, "NL80211_HE_OBSS_PD_ATTR_SR_CTRL" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
static value_string_ext ws_nl80211_obss_pd_attributes_vals_ext = VALUE_STRING_EXT_INIT(ws_nl80211_obss_pd_attributes_vals);
|
||||
|
|
|
@ -128,6 +128,18 @@ enum {
|
|||
WS_RTM_NEWNEXTHOP = 104,
|
||||
WS_RTM_DELNEXTHOP = 105,
|
||||
WS_RTM_GETNEXTHOP = 106,
|
||||
WS_RTM_NEWLINKPROP = 108,
|
||||
WS_RTM_DELLINKPROP = 109,
|
||||
WS_RTM_GETLINKPROP = 110,
|
||||
WS_RTM_NEWVLAN = 112,
|
||||
WS_RTM_DELVLAN = 113,
|
||||
WS_RTM_GETVLAN = 114,
|
||||
WS_RTM_NEWNEXTHOPBUCKET = 116,
|
||||
WS_RTM_DELNEXTHOPBUCKET = 117,
|
||||
WS_RTM_GETNEXTHOPBUCKET = 118,
|
||||
WS_RTM_NEWTUNNEL = 120,
|
||||
WS_RTM_DELTUNNEL = 121,
|
||||
WS_RTM_GETTUNNEL = 122,
|
||||
};
|
||||
|
||||
/* values for rta_type (network interface) from </include/uapi/linux/if_link.h> */
|
||||
|
@ -184,6 +196,16 @@ enum ws_ifla_attr_type {
|
|||
WS_IFLA_NEW_IFINDEX = 49,
|
||||
WS_IFLA_MIN_MTU = 50,
|
||||
WS_IFLA_MAX_MTU = 51,
|
||||
WS_IFLA_PROP_LIST = 52,
|
||||
WS_IFLA_ALT_IFNAME = 53,
|
||||
WS_IFLA_PERM_ADDRESS = 54,
|
||||
WS_IFLA_PROTO_DOWN_REASON = 55,
|
||||
WS_IFLA_PARENT_DEV_NAME = 56,
|
||||
WS_IFLA_PARENT_DEV_BUS_NAME = 57,
|
||||
WS_IFLA_GRO_MAX_SIZE = 58,
|
||||
WS_IFLA_TSO_MAX_SIZE = 59,
|
||||
WS_IFLA_TSO_MAX_SEGS = 60,
|
||||
WS_IFLA_ALLMULTI = 61,
|
||||
};
|
||||
|
||||
/* values for rta_type (ip address) from <include/uapi/linux/if_addr.h> */
|
||||
|
@ -199,6 +221,7 @@ enum ws_ifa_attr_type {
|
|||
WS_IFA_FLAGS = 8,
|
||||
WS_IFA_RT_PRIORITY = 9,
|
||||
WS_IFA_TARGET_NETNSID = 10,
|
||||
WS_IFA_PROTO = 11,
|
||||
};
|
||||
|
||||
/* values for rta_type (route) from <include/uapi/linux/rtnetlink.h> */
|
||||
|
@ -620,6 +643,16 @@ static const value_string netlink_route_ifla_attr_vals[] = {
|
|||
{ WS_IFLA_NEW_IFINDEX, "IFLA_NEW_IFINDEX" },
|
||||
{ WS_IFLA_MIN_MTU, "Minimum MTU" },
|
||||
{ WS_IFLA_MAX_MTU, "Maximum MTU" },
|
||||
{ WS_IFLA_PROP_LIST, "Property list" },
|
||||
{ WS_IFLA_ALT_IFNAME, "Alternative ifname" },
|
||||
{ WS_IFLA_PERM_ADDRESS, "Permanent address" },
|
||||
{ WS_IFLA_PROTO_DOWN_REASON, "Protocol down reason" },
|
||||
{ WS_IFLA_PARENT_DEV_NAME, "Parent device name" },
|
||||
{ WS_IFLA_PARENT_DEV_BUS_NAME, "Parent device bus name" },
|
||||
{ WS_IFLA_GRO_MAX_SIZE, "GRO maximum size" },
|
||||
{ WS_IFLA_TSO_MAX_SIZE, "TSO maximum size" },
|
||||
{ WS_IFLA_TSO_MAX_SEGS, "TSO maximum number of segments" },
|
||||
{ WS_IFLA_ALLMULTI, "Allmulti count" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
|
@ -873,6 +906,7 @@ static const value_string netlink_route_ifa_attr_vals[] = {
|
|||
{ WS_IFA_FLAGS, "Address flags" },
|
||||
{ WS_IFA_RT_PRIORITY, "IFA_RT_PRIORITY" },
|
||||
{ WS_IFA_TARGET_NETNSID, "IFA_TARGET_NETNSID" },
|
||||
{ WS_IFA_PROTO, "IFA_PROTO" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
|
@ -1184,6 +1218,18 @@ static const value_string netlink_route_type_vals[] = {
|
|||
{ WS_RTM_NEWNEXTHOP, "New next hop" },
|
||||
{ WS_RTM_DELNEXTHOP, "Delete next hop" },
|
||||
{ WS_RTM_GETNEXTHOP, "Get next hop" },
|
||||
{ WS_RTM_NEWLINKPROP, "New link property" },
|
||||
{ WS_RTM_DELLINKPROP, "Delete link property" },
|
||||
{ WS_RTM_GETLINKPROP, "Get link property" },
|
||||
{ WS_RTM_NEWVLAN, "New VLAN" },
|
||||
{ WS_RTM_DELVLAN, "Delete VLAN" },
|
||||
{ WS_RTM_GETVLAN, "Get VLAN" },
|
||||
{ WS_RTM_NEWNEXTHOPBUCKET, "New next hop bucket" },
|
||||
{ WS_RTM_DELNEXTHOPBUCKET, "Delete next hop bucket" },
|
||||
{ WS_RTM_GETNEXTHOPBUCKET, "Get next hop bucket" },
|
||||
{ WS_RTM_NEWTUNNEL, "New tunnel" },
|
||||
{ WS_RTM_DELTUNNEL, "Delete tunnel" },
|
||||
{ WS_RTM_GETTUNNEL, "Get tunnel" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
static value_string_ext netlink_route_type_vals_ext = VALUE_STRING_EXT_INIT(netlink_route_type_vals);
|
||||
|
@ -1214,6 +1260,7 @@ dissect_netlink_route(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void
|
|||
case WS_RTM_NEWLINK:
|
||||
case WS_RTM_DELLINK:
|
||||
case WS_RTM_GETLINK:
|
||||
case WS_RTM_SETLINK:
|
||||
/*
|
||||
* Backward compatibility with legacy tools; 16 is
|
||||
* sizeof(struct ifinfomsg).
|
||||
|
|
|
@ -98,6 +98,9 @@ enum ws_inet_diag_attr_type {
|
|||
WS_INET_DIAG_CLASS_ID = 17,
|
||||
WS_INET_DIAG_MD5SIG = 18,
|
||||
WS_INET_DIAG_ULP_INFO = 19,
|
||||
WS_INET_DIAG_SK_BPF_STORAGES = 20,
|
||||
WS_INET_DIAG_CGROUP_ID = 21,
|
||||
WS_INET_DIAG_SOCKOPT = 22,
|
||||
};
|
||||
|
||||
enum ws_netlink_diag_show_type {
|
||||
|
@ -502,6 +505,12 @@ static const value_string netlink_sock_diag_inet_attr_vals[] = {
|
|||
{ WS_INET_DIAG_PAD, "pad" },
|
||||
{ WS_INET_DIAG_MARK, "mark" },
|
||||
{ WS_INET_DIAG_BBRINFO, "bbrinfo" },
|
||||
{ WS_INET_DIAG_CLASS_ID, "class_id" },
|
||||
{ WS_INET_DIAG_MD5SIG, "md5sig" },
|
||||
{ WS_INET_DIAG_ULP_INFO, "ulp_info" },
|
||||
{ WS_INET_DIAG_SK_BPF_STORAGES, "sk_bpf_storages" },
|
||||
{ WS_INET_DIAG_CGROUP_ID, "cgroup_id" },
|
||||
{ WS_INET_DIAG_SOCKOPT, "sockopt" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
|
|
|
@ -40307,11 +40307,11 @@ dissect_nr_rrc_SN_FieldLengthAM(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a
|
|||
nr_drb_mac_rlc_mapping_t *mapping = &nr_rrc_get_private_data(actx)->drb_rlc_mapping;
|
||||
if (mapping->tempDirection == DIRECTION_UPLINK) {
|
||||
mapping->rlcUlSnLength_present = TRUE;
|
||||
mapping->rlcUlSnLength = (value=0) ? 12 : 18;
|
||||
mapping->rlcUlSnLength = (value==0) ? 12 : 18;
|
||||
}
|
||||
else {
|
||||
mapping->rlcDlSnLength_present = TRUE;
|
||||
mapping->rlcDlSnLength = (value=0) ? 12 : 18;
|
||||
mapping->rlcDlSnLength = (value==0) ? 12 : 18;
|
||||
}
|
||||
|
||||
|
||||
|
@ -40584,11 +40584,11 @@ dissect_nr_rrc_SN_FieldLengthUM(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a
|
|||
nr_drb_mac_rlc_mapping_t *mapping = &nr_rrc_get_private_data(actx)->drb_rlc_mapping;
|
||||
if (mapping->tempDirection == DIRECTION_UPLINK) {
|
||||
mapping->rlcUlSnLength_present = TRUE;
|
||||
mapping->rlcUlSnLength = (value=0) ? 6 : 12;
|
||||
mapping->rlcUlSnLength = (value==0) ? 6 : 12;
|
||||
}
|
||||
else {
|
||||
mapping->rlcDlSnLength_present = TRUE;
|
||||
mapping->rlcDlSnLength = (value=0) ? 6 : 12;
|
||||
mapping->rlcDlSnLength = (value==0) ? 6 : 12;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -915,6 +915,9 @@ static int hf_pfcp_qer_indications_flags_b0_iqfis = -1;
|
|||
|
||||
/* Enterprise IEs */
|
||||
/* BBF */
|
||||
static int hf_pfcp_bbf_up_function_features_o7_b7_nat_up = -1;
|
||||
static int hf_pfcp_bbf_up_function_features_o7_b6_nat_cp = -1;
|
||||
static int hf_pfcp_bbf_up_function_features_o7_b5_iptv = -1;
|
||||
static int hf_pfcp_bbf_up_function_features_o7_b4_lcp_keepalive_offload = -1;
|
||||
static int hf_pfcp_bbf_up_function_features_o7_b3_lns = -1;
|
||||
static int hf_pfcp_bbf_up_function_features_o7_b2_lac = -1;
|
||||
|
@ -959,6 +962,35 @@ static int hf_pfcp_bbf_l2tp_session_id = -1;
|
|||
static int hf_pfcp_bbf_l2tp_type_flags = -1;
|
||||
static int hf_pfcp_bbf_l2tp_type_flags_b0_t = -1;
|
||||
|
||||
static int hf_pfcp_bbf_multicast_flags_o7_b1_routeralertoff = -1;
|
||||
static int hf_pfcp_bbf_multicast_flags_o7_b0_fastleave = -1;
|
||||
|
||||
static int hf_pfcp_bbf_multicast_query_param_robustness = -1;
|
||||
static int hf_pfcp_bbf_multicast_query_param_query_interval = -1;
|
||||
static int hf_pfcp_bbf_multicast_query_param_query_response_interval = -1;
|
||||
static int hf_pfcp_bbf_multicast_query_param_group_query_interval = -1;
|
||||
|
||||
static int hf_pfcp_bbf_multicast_group_limit_max_joins = -1;
|
||||
|
||||
static int hf_pfcp_bbf_apply_action_flags_b0_nat = -1;
|
||||
|
||||
static int hf_pfcp_bbf_nat_external_port_range = -1;
|
||||
static int hf_pfcp_bbf_nat_external_port_range_start = -1;
|
||||
static int hf_pfcp_bbf_nat_external_port_range_end = -1;
|
||||
|
||||
static int hf_pfcp_bbf_nat_port_forward = -1;
|
||||
static int hf_pfcp_bbf_nat_port_forward_inside_ip = -1;
|
||||
static int hf_pfcp_bbf_nat_port_forward_inside_port = -1;
|
||||
static int hf_pfcp_bbf_nat_port_forward_outside_port = -1;
|
||||
static int hf_pfcp_bbf_nat_port_forward_protocol = -1;
|
||||
|
||||
static int hf_pfcp_bbf_reporting_trigger = -1;
|
||||
|
||||
static int hf_pfcp_bbf_dynamic_nat_block_port_range_start_port = -1;
|
||||
static int hf_pfcp_bbf_dynamic_nat_block_port_range_end_port = -1;
|
||||
|
||||
static int hf_pfcp_bbf_event_time_stamp = -1;
|
||||
|
||||
/* Travelping */
|
||||
static int hf_pfcp_enterprise_travelping_packet_measurement = -1;
|
||||
static int hf_pfcp_enterprise_travelping_packet_measurement_b2_dlnop = -1;
|
||||
|
@ -1121,6 +1153,7 @@ static int ett_pfcp_bbf_l2tp_endp_flags = -1;
|
|||
static int ett_pfcp_bbf_l2tp_type_flags = -1;
|
||||
static int ett_pfcp_bbf_ppp_lcp_connectivity = -1;
|
||||
static int ett_pfcp_bbf_l2tp_tunnel = -1;
|
||||
static int ett_pfcp_bbf_nat_port_forward_list = -1;
|
||||
|
||||
static int ett_pfcp_nokia_detailed_stats_key = -1;
|
||||
static int ett_pfcp_nokia_detailed_stats_bitmap = -1;
|
||||
|
@ -10072,13 +10105,20 @@ dissect_pfcp(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, void *data
|
|||
* TR-459: Control and User Plane Separation for a disaggregated BNG
|
||||
*/
|
||||
|
||||
/*
|
||||
* TR-459: 6.6.1 BBF UP Function Features
|
||||
* TR-459.2: 6.5.1 BBF UP Function Features
|
||||
* TR-459.3: Table 1: BBF UP Function Features for Multicast
|
||||
*/
|
||||
static int
|
||||
dissect_pfcp_enterprise_bbf_up_function_features(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void* data _U_)
|
||||
{
|
||||
int offset = 0;
|
||||
|
||||
static int * const pfcp_bbf_up_function_features_o7_flags[] = {
|
||||
&hf_pfcp_spare_b7_b5,
|
||||
&hf_pfcp_bbf_up_function_features_o7_b7_nat_up,
|
||||
&hf_pfcp_bbf_up_function_features_o7_b6_nat_cp,
|
||||
&hf_pfcp_bbf_up_function_features_o7_b5_iptv,
|
||||
&hf_pfcp_bbf_up_function_features_o7_b4_lcp_keepalive_offload,
|
||||
&hf_pfcp_bbf_up_function_features_o7_b3_lns,
|
||||
&hf_pfcp_bbf_up_function_features_o7_b2_lac,
|
||||
|
@ -10360,7 +10400,203 @@ dissect_pfcp_enterprise_bbf_l2tp_type(tvbuff_t *tvb, packet_info *pinfo _U_, pro
|
|||
return offset;
|
||||
}
|
||||
|
||||
/*
|
||||
* TR-459.3: Figure 6: BBF Multicast Flags Information Element
|
||||
*/
|
||||
static int
|
||||
dissect_pfcp_enterprise_bbf_multicast_flags(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void* data _U_)
|
||||
{
|
||||
int offset = 0;
|
||||
|
||||
static int * const pfcp_bbf_multicast_flags[] = {
|
||||
&hf_pfcp_spare_b7_b2,
|
||||
&hf_pfcp_bbf_multicast_flags_o7_b1_routeralertoff,
|
||||
&hf_pfcp_bbf_multicast_flags_o7_b0_fastleave,
|
||||
NULL
|
||||
};
|
||||
|
||||
proto_tree_add_bitmask_list(tree, tvb, offset, 1, pfcp_bbf_multicast_flags, ENC_BIG_ENDIAN);
|
||||
offset += 1;
|
||||
|
||||
return offset;
|
||||
}
|
||||
|
||||
/*
|
||||
* TR-459.3: Figure 7: BBF Multicast Query Parameters Information Element
|
||||
*/
|
||||
static int
|
||||
dissect_pfcp_enterprise_bbf_multicast_query_parameters(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void* data _U_)
|
||||
{
|
||||
int offset = 0;
|
||||
|
||||
proto_tree_add_item(tree, hf_pfcp_bbf_multicast_query_param_robustness, tvb, offset, 1, ENC_BIG_ENDIAN);
|
||||
offset += 1;
|
||||
|
||||
proto_tree_add_item(tree, hf_pfcp_bbf_multicast_query_param_query_interval, tvb, offset, 2, ENC_BIG_ENDIAN);
|
||||
offset += 2;
|
||||
|
||||
proto_tree_add_item(tree, hf_pfcp_bbf_multicast_query_param_query_response_interval, tvb, offset, 2, ENC_BIG_ENDIAN);
|
||||
offset += 2;
|
||||
|
||||
proto_tree_add_item(tree, hf_pfcp_bbf_multicast_query_param_group_query_interval, tvb, offset, 2, ENC_BIG_ENDIAN);
|
||||
offset += 2;
|
||||
|
||||
return offset;
|
||||
}
|
||||
|
||||
/*
|
||||
* TR-459.3: Figure 8: BBF Multicast Group Limit Information Element
|
||||
*/
|
||||
static int
|
||||
dissect_pfcp_enterprise_bbf_multicast_group_limit(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void* data _U_)
|
||||
{
|
||||
int offset = 0;
|
||||
guint32 value;
|
||||
|
||||
proto_tree_add_item_ret_uint(tree, hf_pfcp_bbf_multicast_group_limit_max_joins, tvb, offset, 2, ENC_BIG_ENDIAN, &value);
|
||||
offset += 2;
|
||||
proto_item_append_text(proto_tree_get_parent(tree), "%u", value);
|
||||
|
||||
return offset;
|
||||
}
|
||||
|
||||
/*
|
||||
* TR-459.2: 6.5.5 BBF Apply Action IE
|
||||
*/
|
||||
static int
|
||||
dissect_pfcp_enterprise_bbf_apply_action(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void* data _U_)
|
||||
{
|
||||
int offset = 0;
|
||||
|
||||
static int * const pfcp_bbf_apply_action_flags[] = {
|
||||
&hf_pfcp_spare_b7_b1,
|
||||
&hf_pfcp_bbf_apply_action_flags_b0_nat,
|
||||
NULL
|
||||
};
|
||||
|
||||
proto_tree_add_bitmask_list(tree, tvb, offset, 1, pfcp_bbf_apply_action_flags, ENC_BIG_ENDIAN);
|
||||
offset += 1;
|
||||
|
||||
return offset;
|
||||
}
|
||||
|
||||
/*
|
||||
* TR-459.2: 6.5.6 BBF NAT External Port Range
|
||||
*/
|
||||
static int
|
||||
dissect_pfcp_enterprise_bbf_nat_external_port_range(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void* data _U_)
|
||||
{
|
||||
int offset = 0;
|
||||
guint32 start, end;
|
||||
|
||||
proto_tree_add_item_ret_uint(tree, hf_pfcp_bbf_nat_external_port_range_start, tvb, offset, 2, ENC_BIG_ENDIAN, &start);
|
||||
offset += 2;
|
||||
|
||||
proto_tree_add_item_ret_uint(tree, hf_pfcp_bbf_nat_external_port_range_end, tvb, offset, 2, ENC_BIG_ENDIAN, &end);
|
||||
offset += 2;
|
||||
|
||||
proto_item_append_text(proto_tree_get_parent(tree), ": %u:%u", start, end);
|
||||
|
||||
return offset;
|
||||
}
|
||||
|
||||
/*
|
||||
* TR-459.2: 6.5.7 BBF NAT port forward
|
||||
*/
|
||||
static int
|
||||
dissect_pfcp_enterprise_bbf_nat_port_forward(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
|
||||
{
|
||||
int offset = 0;
|
||||
guint length = tvb_reported_length(tvb);
|
||||
|
||||
while ((guint)offset < length) {
|
||||
guint32 in, out, protocol;
|
||||
proto_item *li;
|
||||
proto_tree *lt;
|
||||
|
||||
li = proto_tree_add_item(tree, hf_pfcp_bbf_nat_port_forward, tvb, offset, 9, ENC_NA);
|
||||
lt = proto_item_add_subtree(li, ett_pfcp_bbf_nat_port_forward_list);
|
||||
|
||||
proto_tree_add_item(lt, hf_pfcp_bbf_nat_port_forward_inside_ip, tvb, offset, 4, ENC_BIG_ENDIAN);
|
||||
offset += 4;
|
||||
|
||||
proto_tree_add_item_ret_uint(lt, hf_pfcp_bbf_nat_port_forward_inside_port, tvb, offset, 2, ENC_BIG_ENDIAN, &in);
|
||||
offset += 2;
|
||||
|
||||
proto_tree_add_item_ret_uint(lt, hf_pfcp_bbf_nat_port_forward_outside_port, tvb, offset, 2, ENC_BIG_ENDIAN, &out);
|
||||
offset += 2;
|
||||
|
||||
proto_tree_add_item_ret_uint(lt, hf_pfcp_bbf_nat_port_forward_protocol, tvb, offset, 1, ENC_BIG_ENDIAN, &protocol);
|
||||
offset += 1;
|
||||
|
||||
proto_item_append_text(li, ": proto=%s: %s:%u -> %u", val_to_str_ext_const(protocol, &ipproto_val_ext, "Unknown"),
|
||||
tvb_ip_to_str(pinfo->pool, tvb, 0), in, out);
|
||||
}
|
||||
|
||||
return offset;
|
||||
}
|
||||
|
||||
/*
|
||||
* TR 459.2: 6.5.3 BBF Report Trigger
|
||||
*/
|
||||
static const value_string pfcp_bbf_reporting_trigger_vals[] = {
|
||||
|
||||
{ 0, "reserved" },
|
||||
{ 1, "DBNG-UP allocated NAT blocks" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
static int
|
||||
dissect_pfcp_enterprise_bbf_reporting_trigger(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void* data _U_)
|
||||
{
|
||||
int offset = 0;
|
||||
guint32 value;
|
||||
|
||||
proto_tree_add_item_ret_uint(tree, hf_pfcp_bbf_reporting_trigger, tvb, offset, 1, ENC_BIG_ENDIAN, &value);
|
||||
offset += 1;
|
||||
proto_item_append_text(proto_tree_get_parent(tree), "%s", val_to_str_const(value, pfcp_bbf_reporting_trigger_vals, "Unknown"));
|
||||
|
||||
return offset;
|
||||
}
|
||||
|
||||
/*
|
||||
* TR 459.2: 6.5.8 BBF Dynamic NAT Block Port Range
|
||||
*/
|
||||
static int
|
||||
dissect_pfcp_enterprise_bbf_dynamic_nat_block_port_range(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void* data _U_)
|
||||
{
|
||||
int offset = 0;
|
||||
guint32 start, end;
|
||||
|
||||
proto_tree_add_item_ret_uint(tree, hf_pfcp_bbf_dynamic_nat_block_port_range_start_port, tvb, offset, 2, ENC_BIG_ENDIAN, &start);
|
||||
offset += 2;
|
||||
|
||||
proto_tree_add_item_ret_uint(tree, hf_pfcp_bbf_dynamic_nat_block_port_range_end_port, tvb, offset, 2, ENC_BIG_ENDIAN, &end);
|
||||
offset += 2;
|
||||
|
||||
proto_item_append_text(proto_tree_get_parent(tree), "%u:%u", start, end);
|
||||
|
||||
return offset;
|
||||
}
|
||||
|
||||
/*
|
||||
* TR 459.2: 6.5.9 BBF Event Time Stamp
|
||||
*/
|
||||
static int
|
||||
dissect_pfcp_enterprise_bbf_event_time_stamp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
|
||||
{
|
||||
int offset = 0;
|
||||
char *time_str;
|
||||
|
||||
proto_tree_add_item_ret_time_string(tree, hf_pfcp_bbf_event_time_stamp, tvb, 0, 8, ENC_TIME_NTP | ENC_BIG_ENDIAN, pinfo->pool, &time_str);
|
||||
offset += 8;
|
||||
proto_item_append_text(proto_tree_get_parent(tree), "%s", time_str);
|
||||
|
||||
return offset;
|
||||
}
|
||||
|
||||
static pfcp_generic_ie_t pfcp_bbf_ies[] = {
|
||||
/* TR-459 */
|
||||
{ VENDOR_BROADBAND_FORUM, 32768 , "UP Function Features" , dissect_pfcp_enterprise_bbf_up_function_features , -1} ,
|
||||
{ VENDOR_BROADBAND_FORUM, 32769 , "Logical Port" , dissect_pfcp_enterprise_bbf_logical_port , -1} ,
|
||||
{ VENDOR_BROADBAND_FORUM, 32770 , "Outer Header Creation" , dissect_pfcp_enterprise_bbf_outer_header_creation , -1} ,
|
||||
|
@ -10375,6 +10611,18 @@ static pfcp_generic_ie_t pfcp_bbf_ies[] = {
|
|||
{ VENDOR_BROADBAND_FORUM, 32779 , "L2TP Type" , dissect_pfcp_enterprise_bbf_l2tp_type , -1} ,
|
||||
{ VENDOR_BROADBAND_FORUM, 32780 , "PPP LCP Connectivity" , dissect_pfcp_grouped_ie_wrapper , -1} ,
|
||||
{ VENDOR_BROADBAND_FORUM, 32781 , "L2TP Tunnel" , dissect_pfcp_grouped_ie_wrapper , -1} ,
|
||||
/* TR-459.3 */
|
||||
{ VENDOR_BROADBAND_FORUM, 32782 , "BBF Multicast Flags" , dissect_pfcp_enterprise_bbf_multicast_flags , -1} ,
|
||||
{ VENDOR_BROADBAND_FORUM, 32783 , "BBF Multicast Query Parameters" , dissect_pfcp_enterprise_bbf_multicast_query_parameters , -1} ,
|
||||
{ VENDOR_BROADBAND_FORUM, 32784 , "BBF Multicast Group Limit" , dissect_pfcp_enterprise_bbf_multicast_group_limit , -1} ,
|
||||
{ VENDOR_BROADBAND_FORUM, 32785 , "BBF Multicast Protocol Control" , dissect_pfcp_grouped_ie_wrapper , -1} ,
|
||||
/* TR-459.2 */
|
||||
{ VENDOR_BROADBAND_FORUM, 32787 , "BBF Apply Action" , dissect_pfcp_enterprise_bbf_apply_action , -1} ,
|
||||
{ VENDOR_BROADBAND_FORUM, 32788 , "BBF NAT External Port Range" , dissect_pfcp_enterprise_bbf_nat_external_port_range , -1} ,
|
||||
{ VENDOR_BROADBAND_FORUM, 32789 , "BBF NAT Port Forward" , dissect_pfcp_enterprise_bbf_nat_port_forward , -1} ,
|
||||
{ VENDOR_BROADBAND_FORUM, 32790 , "BBF Report Trigger" , dissect_pfcp_enterprise_bbf_reporting_trigger , -1} ,
|
||||
{ VENDOR_BROADBAND_FORUM, 32791 , "BBF Dynamic NAT Block Port Range" , dissect_pfcp_enterprise_bbf_dynamic_nat_block_port_range , -1} ,
|
||||
{ VENDOR_BROADBAND_FORUM, 32792 , "BBF Event Time Stamp" , dissect_pfcp_enterprise_bbf_event_time_stamp , -1} ,
|
||||
};
|
||||
|
||||
/* Enterprise IE decoding Travelping */
|
||||
|
@ -10589,6 +10837,7 @@ static pfcp_generic_ie_t pfcp_travelping_ies[] = {
|
|||
{ VENDOR_TRAVELPING, 32775 , "Error Message" , dissect_pfcp_enterprise_travelping_error_message , -1} ,
|
||||
{ VENDOR_TRAVELPING, 32776 , "File Name" , dissect_pfcp_enterprise_travelping_file_name , -1} ,
|
||||
{ VENDOR_TRAVELPING, 32777 , "Line Number" , dissect_pfcp_enterprise_travelping_line_number , -1} ,
|
||||
{ VENDOR_TRAVELPING, 32778 , "Created NAT Binding" , dissect_pfcp_grouped_ie_wrapper , -1} ,
|
||||
{ VENDOR_TRAVELPING, 32779 , "IPFIX Policy" , dissect_pfcp_enterprise_travelping_ipfix_policy , -1} ,
|
||||
{ VENDOR_TRAVELPING, 32780 , "Trace Information" , dissect_pfcp_grouped_ie_wrapper , -1} ,
|
||||
{ VENDOR_TRAVELPING, 32781 , "Trace Parent" , dissect_pfcp_enterprise_travelping_trace_parent , -1} ,
|
||||
|
@ -14978,6 +15227,21 @@ proto_register_pfcp(void)
|
|||
FT_BOOLEAN, 8, TFS(&tfs_supported_not_supported), 0x10,
|
||||
"PPP LCP echo supported in DBNG-UP function", HFILL }
|
||||
},
|
||||
{ &hf_pfcp_bbf_up_function_features_o7_b5_iptv,
|
||||
{ "IPTV", "pfcp.bbf.up_function_features.iptv",
|
||||
FT_BOOLEAN, 8, TFS(&tfs_supported_not_supported), 0x20,
|
||||
"DBNG-UP support of IP Multicast", HFILL }
|
||||
},
|
||||
{ &hf_pfcp_bbf_up_function_features_o7_b6_nat_cp,
|
||||
{ "NAT-CP", "pfcp.bbf.up_function_features.nat_cp",
|
||||
FT_BOOLEAN, 8, TFS(&tfs_supported_not_supported), 0x40,
|
||||
"NAT function supported in DBNG-CP function", HFILL }
|
||||
},
|
||||
{ &hf_pfcp_bbf_up_function_features_o7_b7_nat_up,
|
||||
{ "NAT-UP", "pfcp.bbf.up_function_features.nat_up",
|
||||
FT_BOOLEAN, 8, TFS(&tfs_supported_not_supported), 0x80,
|
||||
"NAT function supported in DBNG-UP function", HFILL }
|
||||
},
|
||||
|
||||
{ &hf_pfcp_bbf_logical_port_id,
|
||||
{ "Logical Port", "pfcp.bbf.logical_port_id",
|
||||
|
@ -15125,6 +15389,116 @@ proto_register_pfcp(void)
|
|||
NULL, HFILL }
|
||||
},
|
||||
|
||||
{ &hf_pfcp_bbf_multicast_flags_o7_b1_routeralertoff,
|
||||
{ "ROUTERALERTOFF", "pfcp.bbf.multicast_flags.routeralertoff",
|
||||
FT_BOOLEAN, 8, NULL, 0x01,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_pfcp_bbf_multicast_flags_o7_b0_fastleave,
|
||||
{ "FASTLEAVE", "pfcp.bbf.multicast_flags.fastleave",
|
||||
FT_BOOLEAN, 8, NULL, 0x02,
|
||||
NULL, HFILL }
|
||||
},
|
||||
|
||||
{ &hf_pfcp_bbf_multicast_query_param_robustness,
|
||||
{ "Robustness count", "pfcp.bbf.multicast_query_parameters.robustness_count",
|
||||
FT_UINT8, BASE_DEC, NULL, 0x0,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_pfcp_bbf_multicast_query_param_query_interval,
|
||||
{ "Query interval", "pfcp.bbf.multicast_query_parameters.query_interval",
|
||||
FT_UINT16, BASE_DEC, NULL, 0x0,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_pfcp_bbf_multicast_query_param_query_response_interval,
|
||||
{ "Query response interval", "pfcp.bbf.multicast_query_parameters.query_response_interval",
|
||||
FT_UINT16, BASE_DEC, NULL, 0x0,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_pfcp_bbf_multicast_query_param_group_query_interval,
|
||||
{ "Group-specific query interval", "pfcp.bbf.multicast_query_parameters.group_specific_query_interval",
|
||||
FT_UINT16, BASE_DEC, NULL, 0x0,
|
||||
NULL, HFILL }
|
||||
},
|
||||
|
||||
{ &hf_pfcp_bbf_multicast_group_limit_max_joins,
|
||||
{ "Maximum number of concurrent (S,G) joins allowed", "pfcp.bbf.multicast_group_limit.max_joins",
|
||||
FT_UINT16, BASE_DEC, NULL, 0x0,
|
||||
NULL, HFILL }
|
||||
},
|
||||
|
||||
{ &hf_pfcp_bbf_apply_action_flags_b0_nat,
|
||||
{ "NAT", "pfcp.bbf.apply_action_flags.nat",
|
||||
FT_BOOLEAN, 8, NULL, 0x01,
|
||||
NULL, HFILL }
|
||||
},
|
||||
|
||||
{ &hf_pfcp_bbf_nat_external_port_range,
|
||||
{ "Port Range", "pfcp.bbf.nat_external_port_range",
|
||||
FT_NONE, BASE_NONE, NULL, 0x0,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_pfcp_bbf_nat_external_port_range_start,
|
||||
{ "Start", "pfcp.bbf.nat_external_port_range.start",
|
||||
FT_UINT16, BASE_DEC, NULL, 0x0,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_pfcp_bbf_nat_external_port_range_end,
|
||||
{ "End", "pfcp.bbf.nat_external_port_range.end",
|
||||
FT_UINT16, BASE_DEC, NULL, 0x0,
|
||||
NULL, HFILL }
|
||||
},
|
||||
|
||||
{ &hf_pfcp_bbf_nat_port_forward,
|
||||
{ "NAT Port Forward", "pfcp.bbf.nat_port_forward",
|
||||
FT_NONE, BASE_NONE, NULL, 0x0,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_pfcp_bbf_nat_port_forward_inside_ip,
|
||||
{ "Inside Address", "pfcp.bbf.nat_port_forward.inside_address",
|
||||
FT_IPv4, BASE_NONE, NULL, 0x0,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_pfcp_bbf_nat_port_forward_inside_port,
|
||||
{ "Inside Port", "pfcp.bbf.nat_port_forward.inside_port",
|
||||
FT_UINT16, BASE_DEC, NULL, 0x0,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_pfcp_bbf_nat_port_forward_outside_port,
|
||||
{ "Outside Port", "pfcp.bbf.nat_port_forward.outside_port",
|
||||
FT_UINT16, BASE_DEC, NULL, 0x0,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_pfcp_bbf_nat_port_forward_protocol,
|
||||
{ "Protocol", "pfcp.bbf.nat_port_forward.protocol",
|
||||
FT_UINT8, BASE_DEC|BASE_EXT_STRING, &ipproto_val_ext, 0x0,
|
||||
NULL , HFILL
|
||||
}
|
||||
},
|
||||
|
||||
{ &hf_pfcp_bbf_reporting_trigger,
|
||||
{ "Reporting Trigger", "pfcp.bbf.reporting_trigger",
|
||||
FT_UINT8, BASE_DEC, VALS(pfcp_bbf_reporting_trigger_vals), 0x0,
|
||||
NULL, HFILL }
|
||||
},
|
||||
|
||||
{ &hf_pfcp_bbf_dynamic_nat_block_port_range_start_port,
|
||||
{ "Start", "pfcp.dynamic_nat_block_port_range.start",
|
||||
FT_UINT16, BASE_DEC, NULL, 0x0,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_pfcp_bbf_dynamic_nat_block_port_range_end_port,
|
||||
{ "End", "pfcp.dynamic_nat_block_port_range.end",
|
||||
FT_UINT16, BASE_DEC, NULL, 0x0,
|
||||
NULL, HFILL }
|
||||
},
|
||||
|
||||
{ &hf_pfcp_bbf_event_time_stamp,
|
||||
{ "Event Time Stamp", "pfcp.bbf.event_time_stamp",
|
||||
FT_ABSOLUTE_TIME, ABSOLUTE_TIME_NTP_UTC, NULL, 0x0,
|
||||
NULL, HFILL }
|
||||
},
|
||||
|
||||
/* Travelping */
|
||||
{ &hf_pfcp_enterprise_travelping_packet_measurement,
|
||||
{ "Flags", "pfcp.travelping.volume_measurement",
|
||||
|
@ -15800,7 +16174,8 @@ proto_register_pfcp(void)
|
|||
&ett_pfcp_bbf_l2tp_type_flags,
|
||||
&ett_pfcp_bbf_ppp_lcp_connectivity,
|
||||
&ett_pfcp_bbf_l2tp_tunnel,
|
||||
/* Nokia */
|
||||
&ett_pfcp_bbf_nat_port_forward_list,
|
||||
/* Nokia */
|
||||
&ett_pfcp_nokia_detailed_stats_key,
|
||||
&ett_pfcp_nokia_detailed_stats_bitmap,
|
||||
&ett_pfcp_nokia_measurement_info,
|
||||
|
|
|
@ -5996,7 +5996,28 @@ dissect_ppp_raw_hdlc( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void*
|
|||
call_data_dissector(ppp_tvb, pinfo, tree);
|
||||
}
|
||||
}
|
||||
|
||||
/* These frames within the byte stream need to be treated like independent
|
||||
* frames / PDUs, not encapsulated in each other, which means that much of
|
||||
* the various information stored in the packet_info struct should be reset
|
||||
* with each frame.
|
||||
* In particular, the "most recent conservation" elements should be reset
|
||||
* at the start of a new frame, if that frame is dissected, and possibly
|
||||
* for fragments that are put on a reassembly table (if the reassembly
|
||||
* functions use elements from the pinfo struct for matching). (#18278)
|
||||
* On the other hand, we do want to keep the last set information for use
|
||||
* in displaying the address of the packet, conversation filtering, etc.
|
||||
*/
|
||||
gboolean save_use_conv_addr_port_endpoints;
|
||||
struct conversation_addr_port_endpoints *save_conv_addr_port_endpoints;
|
||||
struct conversation_element *save_conv_elements;
|
||||
|
||||
save_use_conv_addr_port_endpoints = pinfo->use_conv_addr_port_endpoints;
|
||||
save_conv_addr_port_endpoints = pinfo->conv_addr_port_endpoints;
|
||||
save_conv_elements = pinfo->conv_elements;
|
||||
|
||||
while (tvb_reported_length_remaining(tvb, offset) > 0) {
|
||||
|
||||
/*
|
||||
* Look for the next frame delimiter.
|
||||
*/
|
||||
|
@ -6051,6 +6072,9 @@ dissect_ppp_raw_hdlc( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void*
|
|||
if (length > 1) {
|
||||
ppp_tvb = remove_escape_chars(tvb, pinfo, data_offset, data_length);
|
||||
if (ppp_tvb != NULL) {
|
||||
pinfo->use_conv_addr_port_endpoints = save_use_conv_addr_port_endpoints;
|
||||
pinfo->conv_addr_port_endpoints = save_conv_addr_port_endpoints;
|
||||
pinfo->conv_elements = save_conv_elements;
|
||||
add_new_data_source(pinfo, ppp_tvb, "PPP Message");
|
||||
dissect_ppp_hdlc_common(ppp_tvb, pinfo, tree);
|
||||
first = FALSE;
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
/* Do not modify this file. Changes will be overwritten. */
|
||||
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
|
||||
/* packet-rspro.h */
|
||||
/* asn2wrs.py -p rspro -c ./rspro.cnf -s ./packet-rspro-template -D . -O ../.. RSPRO.asn */
|
||||
|
||||
/* Input file: packet-rspro-template.h */
|
||||
|
||||
#line 1 "./asn1/rspro/packet-rspro-template.h"
|
||||
/* packet-rspro.h
|
||||
* Routines for RSPRO (remote SIM protocol) packet dissection
|
||||
* (C) 2019 by Harald Welte <laforge@gnumonks.org>
|
||||
*
|
||||
* Wireshark - Network traffic analyzer
|
||||
* By Gerald Combs <gerald@wireshark.org>
|
||||
* Copyright 1998 Gerald Combs
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
|
||||
#ifndef PACKET_RSPRO_H
|
||||
#define PACKET_RSPRO_H
|
||||
|
||||
|
||||
#endif /* PACKET_RSPRO_H */
|
|
@ -13663,6 +13663,7 @@ static gboolean dissect_rtps(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
|
|||
|
||||
} /* dissect_rtps(...) */
|
||||
|
||||
static
|
||||
void append_submessage_col_info(packet_info* pinfo, submessage_col_info* current_submessage_col_info) {
|
||||
gboolean* is_data_session_intermediate = NULL;
|
||||
|
||||
|
|
|
@ -74,6 +74,8 @@ static int st_smpp_res = -1;
|
|||
static int st_smpp_res_status = -1;
|
||||
|
||||
static int hf_smpp_command_id = -1;
|
||||
static int hf_smpp_command_request = -1;
|
||||
static int hf_smpp_command_response = -1;
|
||||
static int hf_smpp_command_length = -1;
|
||||
static int hf_smpp_command_status = -1;
|
||||
static int hf_smpp_sequence_number = -1;
|
||||
|
@ -2497,18 +2499,25 @@ dissect_smpp_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data
|
|||
* Create display subtree for the PDU
|
||||
*/
|
||||
proto_tree_add_uint(smpp_tree, hf_smpp_command_length, tvb, 0, 4, command_length);
|
||||
if (command_id & SMPP_COMMAND_ID_RESPONSE_MASK) {
|
||||
ti = proto_tree_add_boolean(smpp_tree, hf_smpp_command_response, tvb, 4, 4, TRUE);
|
||||
}
|
||||
else {
|
||||
ti = proto_tree_add_boolean(smpp_tree, hf_smpp_command_request, tvb, 4, 4, TRUE);
|
||||
}
|
||||
proto_item_set_generated(ti);
|
||||
proto_tree_add_uint(smpp_tree, hf_smpp_command_id, tvb, 4, 4, command_id);
|
||||
proto_item_append_text(ti, ", Command: %s", command_str);
|
||||
proto_item_append_text(smpp_tree, ", Command: %s", command_str);
|
||||
|
||||
/*
|
||||
* Status is only meaningful with responses
|
||||
*/
|
||||
if (command_id & SMPP_COMMAND_ID_RESPONSE_MASK) {
|
||||
proto_tree_add_uint(smpp_tree, hf_smpp_command_status, tvb, 8, 4, command_status);
|
||||
proto_item_append_text (ti, ", Status: \"%s\"", command_status_str);
|
||||
proto_item_append_text (smpp_tree, ", Status: \"%s\"", command_status_str);
|
||||
}
|
||||
proto_tree_add_uint(smpp_tree, hf_smpp_sequence_number, tvb, 12, 4, sequence_number);
|
||||
proto_item_append_text(ti, ", Seq: %u, Len: %u", sequence_number, command_length);
|
||||
proto_item_append_text(smpp_tree, ", Seq: %u, Len: %u", sequence_number, command_length);
|
||||
|
||||
if (command_length <= tvb_reported_length(tvb))
|
||||
{
|
||||
|
@ -2766,6 +2775,20 @@ proto_register_smpp(void)
|
|||
HFILL
|
||||
}
|
||||
},
|
||||
{ &hf_smpp_command_request,
|
||||
{ "Request", "smpp.request",
|
||||
FT_BOOLEAN, BASE_NONE, NULL, 0x00,
|
||||
"TRUE if this is a SMPP request.",
|
||||
HFILL
|
||||
}
|
||||
},
|
||||
{ &hf_smpp_command_response,
|
||||
{ "Response", "smpp.response",
|
||||
FT_BOOLEAN, BASE_NONE, NULL, 0x00,
|
||||
"TRUE if this is a SMPP response.",
|
||||
HFILL
|
||||
}
|
||||
},
|
||||
{ &hf_smpp_command_status,
|
||||
{ "Result", "smpp.command_status",
|
||||
FT_UINT32, BASE_HEX | BASE_RANGE_STRING, RVALS(rvals_command_status), 0x00,
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/* packet-someip.c
|
||||
* SOME/IP dissector.
|
||||
* By Dr. Lars Voelker <lars.voelker@technica-engineering.de> / <lars.voelker@bmw.de>
|
||||
* Copyright 2012-2022 Dr. Lars Voelker
|
||||
* Copyright 2012-2023 Dr. Lars Voelker
|
||||
* Copyright 2019 Ana Pantar
|
||||
* Copyright 2019 Guenter Ebermann
|
||||
*
|
||||
|
@ -3661,8 +3661,7 @@ dissect_someip_udp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *da
|
|||
}
|
||||
|
||||
static gboolean
|
||||
test_someip(packet_info *pinfo _U_, tvbuff_t *tvb, int offset _U_, void *data _U_)
|
||||
{
|
||||
test_someip(packet_info *pinfo _U_, tvbuff_t *tvb, int offset _U_, void *data _U_) {
|
||||
if (tvb_captured_length(tvb) < SOMEIP_HDR_LEN) {
|
||||
return FALSE;
|
||||
}
|
||||
|
@ -3683,8 +3682,7 @@ test_someip(packet_info *pinfo _U_, tvbuff_t *tvb, int offset _U_, void *data _U
|
|||
}
|
||||
|
||||
static gboolean
|
||||
dissect_some_ip_heur_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
|
||||
{
|
||||
dissect_some_ip_heur_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data) {
|
||||
if (test_someip(pinfo, tvb, 0, data)) {
|
||||
tcp_dissect_pdus(tvb, pinfo, tree, TRUE, SOMEIP_HDR_PART1_LEN, get_someip_message_len, dissect_someip_message, data);
|
||||
return TRUE;
|
||||
|
@ -3693,10 +3691,8 @@ dissect_some_ip_heur_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, vo
|
|||
}
|
||||
|
||||
static gboolean
|
||||
dissect_some_ip_heur_udp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
|
||||
{
|
||||
udp_dissect_pdus(tvb, pinfo, tree, SOMEIP_HDR_PART1_LEN, test_someip, get_someip_message_len, dissect_someip_message, data);
|
||||
return TRUE;
|
||||
dissect_some_ip_heur_udp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data) {
|
||||
return (udp_dissect_pdus(tvb, pinfo, tree, SOMEIP_HDR_PART1_LEN, test_someip, get_someip_message_len, dissect_someip_message, data) != 0);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -1000,9 +1000,8 @@ dissect_tecmp_entry_header(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
|
|||
timestamp.nsecs = (int)(ns % 1000000000);
|
||||
ti = proto_tree_add_time(tree, hf_tecmp_payload_timestamp, tvb, offset + 4, 8, ×tamp);
|
||||
subtree = proto_item_add_subtree(ti, ett_tecmp_payload_timestamp);
|
||||
proto_tree_add_item_ret_boolean(subtree, hf_tecmp_payload_timestamp_async, tvb, offset + 4, 1,ENC_BIG_ENDIAN,
|
||||
&async);
|
||||
proto_tree_add_item(subtree, hf_tecmp_payload_timestamp_res, tvb, offset + 4, 1, ENC_BIG_ENDIAN);
|
||||
proto_tree_add_item_ret_boolean(subtree, hf_tecmp_payload_timestamp_async, tvb, offset + 4, 1, ENC_NA, &async);
|
||||
proto_tree_add_item(subtree, hf_tecmp_payload_timestamp_res, tvb, offset + 4, 1, ENC_NA);
|
||||
|
||||
if (async) {
|
||||
proto_item_append_text(ti, " (not synchronized)");
|
||||
|
@ -1240,12 +1239,12 @@ dissect_tecmp_status_device_vendor_data(tvbuff_t *tvb, packet_info *pinfo _U_, p
|
|||
tmp = tvb_get_guint16(tvb, offset, ENC_BIG_ENDIAN);
|
||||
|
||||
double voltage_value = (double)((tmp & 0x0000ff00) >> 8) + (tmp & 0x000000ff) / 100.0;
|
||||
proto_tree_add_double(tree, hf_tecmp_payload_status_dev_vendor_technica_voltage, tvb, offset, 2, voltage_value);
|
||||
/* we are adding the base unit manually since currently proto.c does not do this for doubles */
|
||||
proto_tree_add_double_format_value(tree, hf_tecmp_payload_status_dev_vendor_technica_voltage, tvb, offset, 2, voltage_value, "%g %s", voltage_value, unit_name_string_get_double(voltage_value, &units_volt));
|
||||
offset += 2;
|
||||
|
||||
if (tvb_captured_length_remaining(tvb, offset) == 1) {
|
||||
ti = proto_tree_add_item(tree, hf_tecmp_payload_status_dev_vendor_technica_temperature, tvb, offset, 1, ENC_NA);
|
||||
proto_item_append_text(ti, "%s", UTF8_DEGREE_SIGN "C");
|
||||
proto_tree_add_item(tree, hf_tecmp_payload_status_dev_vendor_technica_temperature, tvb, offset, 1, ENC_NA);
|
||||
} else if (tvb_captured_length_remaining(tvb, offset) > 1) {
|
||||
/* TECMP 1.5 and later */
|
||||
temperature = tvb_get_gint8(tvb, offset);
|
||||
|
@ -1253,7 +1252,6 @@ dissect_tecmp_status_device_vendor_data(tvbuff_t *tvb, packet_info *pinfo _U_, p
|
|||
proto_tree_add_int_format_value(tree, hf_tecmp_payload_status_dev_vendor_technica_temperature_chassis, tvb, offset, 1, temperature, "%s", "Not Available");
|
||||
} else {
|
||||
ti = proto_tree_add_item(tree, hf_tecmp_payload_status_dev_vendor_technica_temperature_chassis, tvb, offset, 1, ENC_NA);
|
||||
proto_item_append_text(ti, "%s", UTF8_DEGREE_SIGN "C");
|
||||
if (temperature == VENDOR_TECHNICA_TEMP_MAX) {
|
||||
proto_item_append_text(ti, " %s", "or more");
|
||||
}
|
||||
|
@ -1265,7 +1263,6 @@ dissect_tecmp_status_device_vendor_data(tvbuff_t *tvb, packet_info *pinfo _U_, p
|
|||
proto_tree_add_int_format_value(tree, hf_tecmp_payload_status_dev_vendor_technica_temperature_silicon, tvb, offset, 1, temperature, "%s", "Not Available");
|
||||
} else {
|
||||
ti = proto_tree_add_item(tree, hf_tecmp_payload_status_dev_vendor_technica_temperature_silicon, tvb, offset, 1, ENC_NA);
|
||||
proto_item_append_text(ti, "%s", UTF8_DEGREE_SIGN "C");
|
||||
if (temperature == VENDOR_TECHNICA_TEMP_MAX) {
|
||||
proto_item_append_text(ti, " %s", "or more");
|
||||
}
|
||||
|
@ -2069,16 +2066,16 @@ proto_register_tecmp_payload(void) {
|
|||
FT_ABSOLUTE_TIME, ABSOLUTE_TIME_UTC, NULL, 0x0, NULL, HFILL } },
|
||||
{ &hf_tecmp_payload_status_dev_vendor_technica_voltage,
|
||||
{ "Voltage", "tecmp.payload.status_dev.vendor_technica.voltage",
|
||||
FT_DOUBLE, BASE_NONE | BASE_UNIT_STRING, &units_volt, 0x0, NULL, HFILL } },
|
||||
FT_DOUBLE, BASE_NONE, NULL, 0x0, NULL, HFILL } },
|
||||
{ &hf_tecmp_payload_status_dev_vendor_technica_temperature,
|
||||
{ "Temperature", "tecmp.payload.status_dev.vendor_technica.temperature",
|
||||
FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL }},
|
||||
FT_UINT8, BASE_DEC | BASE_UNIT_STRING, &units_degree_celsius, 0x0, NULL, HFILL }},
|
||||
{ &hf_tecmp_payload_status_dev_vendor_technica_temperature_chassis,
|
||||
{ "Temperature Chassis", "tecmp.payload.status_dev.vendor_technica.temperature_chassis",
|
||||
FT_INT8, BASE_DEC, NULL, 0x0, NULL, HFILL }},
|
||||
FT_INT8, BASE_DEC | BASE_UNIT_STRING, &units_degree_celsius, 0x0, NULL, HFILL }},
|
||||
{ &hf_tecmp_payload_status_dev_vendor_technica_temperature_silicon,
|
||||
{ "Temperature Silicon", "tecmp.payload.status_dev.vendor_technica.temperature_silicon",
|
||||
FT_INT8, BASE_DEC, NULL, 0x0, NULL, HFILL }},
|
||||
FT_INT8, BASE_DEC | BASE_UNIT_STRING, &units_degree_celsius, 0x0, NULL, HFILL }},
|
||||
|
||||
/* Status Bus Vendor Data */
|
||||
{ &hf_tecmp_payload_status_bus_vendor_technica_link_status,
|
||||
|
|
|
@ -10773,7 +10773,7 @@ ssl_calculate_handshake_hash(SslDecryptSession *ssl_session, tvbuff_t *tvb, guin
|
|||
guint32 old_length = ssl_session->handshake_data.data_len;
|
||||
ssl_debug_printf("Calculating hash with offset %d %d\n", offset, length);
|
||||
ssl_session->handshake_data.data = (guchar *)wmem_realloc(wmem_file_scope(), ssl_session->handshake_data.data, old_length + length);
|
||||
if (tvb) {
|
||||
if (tvb && tvb_bytes_exist(tvb, offset, length)) {
|
||||
tvb_memcpy(tvb, ssl_session->handshake_data.data + old_length, offset, length);
|
||||
} else {
|
||||
memset(ssl_session->handshake_data.data + old_length, 0, length);
|
||||
|
|
|
@ -1166,7 +1166,7 @@ decrypt_ssl3_record(tvbuff_t *tvb, packet_info *pinfo, guint32 offset, SslDecryp
|
|||
gboolean success;
|
||||
gint direction;
|
||||
StringInfo *data_for_iv;
|
||||
gint data_for_iv_len;
|
||||
gint data_for_iv_len, data_for_iv_offset;
|
||||
SslDecoder *decoder;
|
||||
|
||||
/* if we can decrypt and decryption was a success
|
||||
|
@ -1188,7 +1188,12 @@ decrypt_ssl3_record(tvbuff_t *tvb, packet_info *pinfo, guint32 offset, SslDecryp
|
|||
/* save data to update IV if decoder is available or updated later */
|
||||
data_for_iv = (direction != 0) ? &ssl->server_data_for_iv : &ssl->client_data_for_iv;
|
||||
data_for_iv_len = (record_length < 24) ? record_length : 24;
|
||||
ssl_data_set(data_for_iv, (const guchar*)tvb_get_ptr(tvb, offset + record_length - data_for_iv_len, data_for_iv_len), data_for_iv_len);
|
||||
data_for_iv_offset = offset + record_length - data_for_iv_len;
|
||||
if (!tvb_bytes_exist(tvb, data_for_iv_offset, data_for_iv_len)) {
|
||||
ssl_debug_printf("decrypt_ssl3_record: record truncated\n");
|
||||
return FALSE;
|
||||
}
|
||||
ssl_data_set(data_for_iv, (const guchar*)tvb_get_ptr(tvb, data_for_iv_offset, data_for_iv_len), data_for_iv_len);
|
||||
|
||||
if (!decoder) {
|
||||
ssl_debug_printf("decrypt_ssl3_record: no decoder available\n");
|
||||
|
|
|
@ -0,0 +1,294 @@
|
|||
/* packet-trdp.c
|
||||
* Routines for TRDP dissection
|
||||
* Copyright 2020, EKE-Electronics Ltd, Kalle Pokki <kalle.pokki@eke.fi>
|
||||
*
|
||||
* Wireshark - Network traffic analyzer
|
||||
* By Gerald Combs <gerald@wireshark.org>
|
||||
* Copyright 1998 Gerald Combs
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
|
||||
/*
|
||||
* The Train Real-Time Data Protocol (TRDP) is defined in IEC 61375-2-3. The
|
||||
* protocol is used to exchange Train Communication Network (TCN) process data
|
||||
* and message data.
|
||||
*
|
||||
* NOTE: Message data support incomplete.
|
||||
*/
|
||||
|
||||
#include <config.h>
|
||||
#include <epan/packet.h>
|
||||
|
||||
void proto_reg_handoff_trdp(void);
|
||||
void proto_register_trdp(void);
|
||||
|
||||
/* Initialize the protocol and registered fields */
|
||||
static int proto_trdp = -1;
|
||||
static int hf_trdp_seq = -1;
|
||||
static int hf_trdp_ver = -1;
|
||||
static int hf_trdp_msgtype = -1;
|
||||
static int hf_trdp_comid = -1;
|
||||
static int hf_trdp_etb_topo = -1;
|
||||
static int hf_trdp_oper_topo = -1;
|
||||
static int hf_trdp_len = -1;
|
||||
static int hf_trdp_res = -1;
|
||||
static int hf_trdp_reply_comid = -1;
|
||||
static int hf_trdp_reply_ipaddr = -1;
|
||||
static int hf_trdp_header_fcs = -1;
|
||||
static int hf_trdp_padding = -1;
|
||||
static int hf_trdp_reply_status = -1;
|
||||
static int hf_trdp_session_id = -1;
|
||||
static int hf_trdp_reply_timeout = -1;
|
||||
static int hf_trdp_source_uri = -1;
|
||||
static int hf_trdp_dest_uri = -1;
|
||||
|
||||
#define TRDP_PD_UDP_PORT 17224
|
||||
#define TRDP_MD_TCP_UDP_PORT 17225
|
||||
#define TRDP_PD_HEADER_LEN 40
|
||||
#define TRDP_MD_HEADER_LEN 116
|
||||
|
||||
/* Initialize the subtree pointers */
|
||||
static gint ett_trdp = -1;
|
||||
|
||||
/* Initialize dissector table */
|
||||
static dissector_table_t trdp_dissector_table;
|
||||
static dissector_handle_t data_handle;
|
||||
|
||||
/* Message type names */
|
||||
static const value_string msgtype_names[] = {
|
||||
{ 0x4d63, "Message Data Confirm" },
|
||||
{ 0x4d65, "Message Data Error" },
|
||||
{ 0x4d6e, "Message Data Notification (request without reply)" },
|
||||
{ 0x4d70, "Message Data Reply without Confirmation" },
|
||||
{ 0x4d71, "Message Data Reply with Confirmation" },
|
||||
{ 0x4d72, "Message Data Request" },
|
||||
{ 0x5064, "Process Data" },
|
||||
{ 0x5065, "Process Data Error" },
|
||||
{ 0x5070, "Process Data Reply" },
|
||||
{ 0x5072, "Process Data Request" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
static const value_string msgtype_names_short[] = {
|
||||
{ 0x4d63, "Mc" },
|
||||
{ 0x4d65, "Me" },
|
||||
{ 0x4d6e, "Mn" },
|
||||
{ 0x4d70, "Mp" },
|
||||
{ 0x4d71, "Mq" },
|
||||
{ 0x4d72, "Mr" },
|
||||
{ 0x5064, "Pd" },
|
||||
{ 0x5065, "Pe" },
|
||||
{ 0x5070, "Pp" },
|
||||
{ 0x5072, "Pr" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
|
||||
/* Communication identifier names */
|
||||
static const value_string comid_names[] = {
|
||||
{ 100, "Operational train directory status" },
|
||||
{ 101, "Operational train directory notification" },
|
||||
{ 106, "Train network directory information request" },
|
||||
{ 107, "Train network directory information reply" },
|
||||
{ 108, "Operational train directory information request" },
|
||||
{ 109, "Operational train directory information reply" },
|
||||
{ 120, "ECSP control telegram" },
|
||||
{ 121, "ECSP status telegram" },
|
||||
{ 132, "ETBN - Train network directory request" },
|
||||
{ 133, "ETBN - Train network directory reply" },
|
||||
{ 2204160, "EKE Modular I/O state" },
|
||||
{ 2204161, "EKE Modular I/O control" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
/* Reply status indication names
|
||||
* Signed int: <0: NOK; 0: OK; >0: user reply status */
|
||||
static const value_string reply_status_names[] = {
|
||||
{ -1, "Reserved" },
|
||||
{ -2, "Session abort" },
|
||||
{ -3, "No replier instance (at replier side)" },
|
||||
{ -4, "No memory (at replier side)" },
|
||||
{ -5, "No memory (local)" },
|
||||
{ -6, "No reply" },
|
||||
{ -7, "Not all replies" },
|
||||
{ -8, "No confirm" },
|
||||
{ -9, "Reserved" },
|
||||
{ -10, "Sending failed" },
|
||||
{ 0, "Ok" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
static inline int is_pd(guint16 msgtype)
|
||||
{
|
||||
return (msgtype & 0xff00) == 0x5000; // 'P'
|
||||
}
|
||||
|
||||
static int dissect_trdp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
|
||||
{
|
||||
proto_item *ti;
|
||||
proto_tree *trdp_tree;
|
||||
guint16 ver;
|
||||
guint32 remaining, datalen, seq, comid, etb_topo, opr_topo, msgtype, header_len;
|
||||
tvbuff_t *next_tvb;
|
||||
|
||||
if (tvb_reported_length(tvb) < TRDP_PD_HEADER_LEN)
|
||||
return 0;
|
||||
|
||||
col_set_str(pinfo->cinfo, COL_PROTOCOL, "TRDP");
|
||||
col_clear(pinfo->cinfo, COL_INFO);
|
||||
|
||||
header_len = is_pd(tvb_get_guint16(tvb, 6, ENC_BIG_ENDIAN)) ? TRDP_PD_HEADER_LEN : TRDP_MD_HEADER_LEN;
|
||||
|
||||
/* Create display subtree for the protocol */
|
||||
ti = proto_tree_add_item(tree, proto_trdp, tvb, 0, header_len, ENC_NA);
|
||||
trdp_tree = proto_item_add_subtree(ti, ett_trdp);
|
||||
|
||||
/* Add items to the subtree */
|
||||
proto_tree_add_item_ret_uint(trdp_tree, hf_trdp_seq, tvb, 0, 4, ENC_BIG_ENDIAN, &seq);
|
||||
ver = tvb_get_guint16(tvb, 4, ENC_BIG_ENDIAN);
|
||||
proto_tree_add_uint_format_value(trdp_tree, hf_trdp_ver, tvb, 4, 2, 0, "%d.%d", ver >> 8, ver & 0xff);
|
||||
proto_tree_add_item_ret_uint(trdp_tree, hf_trdp_msgtype, tvb, 6, 2, ENC_BIG_ENDIAN, &msgtype);
|
||||
proto_tree_add_item_ret_uint(trdp_tree, hf_trdp_comid, tvb, 8, 4, ENC_BIG_ENDIAN, &comid);
|
||||
proto_tree_add_item_ret_uint(trdp_tree, hf_trdp_etb_topo, tvb, 12, 4, ENC_BIG_ENDIAN, &etb_topo);
|
||||
proto_tree_add_item_ret_uint(trdp_tree, hf_trdp_oper_topo, tvb, 16, 4, ENC_BIG_ENDIAN, &opr_topo);
|
||||
proto_tree_add_item_ret_uint(trdp_tree, hf_trdp_len, tvb, 20, 4, ENC_BIG_ENDIAN, &datalen);
|
||||
|
||||
if ( is_pd(msgtype) ) {
|
||||
proto_tree_add_item(trdp_tree, hf_trdp_res, tvb, 24, 4, ENC_BIG_ENDIAN);
|
||||
proto_tree_add_item(trdp_tree, hf_trdp_reply_comid, tvb, 28, 4, ENC_BIG_ENDIAN);
|
||||
proto_tree_add_item(trdp_tree, hf_trdp_reply_ipaddr, tvb, 32, 4, ENC_BIG_ENDIAN);
|
||||
proto_tree_add_item(trdp_tree, hf_trdp_header_fcs, tvb, 36, 4, ENC_BIG_ENDIAN);
|
||||
} else {
|
||||
proto_tree_add_item(trdp_tree, hf_trdp_reply_status, tvb, 24, 4, ENC_BIG_ENDIAN);
|
||||
proto_tree_add_item(trdp_tree, hf_trdp_session_id, tvb, 28, 16, ENC_BIG_ENDIAN);
|
||||
guint32 reply_timeout = tvb_get_guint32(tvb, 44, ENC_BIG_ENDIAN);
|
||||
proto_tree_add_uint_format_value(trdp_tree, hf_trdp_reply_timeout, tvb, 44, 4, 0, "%d usec", reply_timeout);
|
||||
proto_tree_add_item(trdp_tree, hf_trdp_source_uri, tvb, 48, 32, ENC_ASCII);
|
||||
proto_tree_add_item(trdp_tree, hf_trdp_dest_uri, tvb, 80, 32, ENC_ASCII);
|
||||
proto_tree_add_item(trdp_tree, hf_trdp_header_fcs, tvb, 112, 4, ENC_BIG_ENDIAN);
|
||||
}
|
||||
/* Append descriptions */
|
||||
proto_item_append_text(ti, ", Type: %s, Comid: %d, Seq: %d, ETB Topo: 0x%08x, Opr Topo: 0x%08x", val_to_str(msgtype, msgtype_names_short, "0x%x"), comid, seq, etb_topo, opr_topo);
|
||||
col_add_fstr(pinfo->cinfo, COL_INFO, "Type=%s Comid=%d Seq=%d", val_to_str(msgtype, msgtype_names_short, "0x%x"), comid, seq);
|
||||
|
||||
/* Extract possible padding */
|
||||
remaining = tvb_captured_length_remaining(tvb, header_len);
|
||||
if (remaining - datalen > 0)
|
||||
{
|
||||
proto_tree_add_item(trdp_tree, hf_trdp_padding, tvb, header_len+datalen, -1, ENC_NA);
|
||||
proto_tree_set_appendix(trdp_tree, tvb, header_len+datalen, remaining-datalen);
|
||||
}
|
||||
|
||||
/* If this protocol has a sub-dissector call it here, see section 1.8 of
|
||||
* README.dissector for more information. */
|
||||
|
||||
next_tvb = tvb_new_subset_length(tvb, header_len, datalen);
|
||||
if (!dissector_try_uint(trdp_dissector_table, comid, next_tvb, pinfo, tree))
|
||||
{
|
||||
call_dissector(data_handle, next_tvb, pinfo, tree);
|
||||
}
|
||||
|
||||
/* Return the amount of data this dissector was able to dissect (which may
|
||||
* or may not be the total captured packet as we return here). */
|
||||
return tvb_captured_length(tvb);
|
||||
}
|
||||
|
||||
void proto_register_trdp(void)
|
||||
{
|
||||
static hf_register_info hf[] = {
|
||||
/* PD header */
|
||||
{ &hf_trdp_seq,
|
||||
{ "Sequence Counter", "trdp.seq", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }
|
||||
},
|
||||
{ &hf_trdp_ver,
|
||||
{ "Protocol Version", "trdp.ver", FT_UINT16, BASE_HEX, NULL, 0, NULL, HFILL }
|
||||
},
|
||||
{ &hf_trdp_msgtype,
|
||||
{ "Message Type", "trdp.msgtype", FT_UINT16, BASE_HEX, VALS(msgtype_names), 0, NULL, HFILL }
|
||||
},
|
||||
{ &hf_trdp_comid,
|
||||
{ "Communication Identifier", "trdp.comid", FT_UINT32, BASE_DEC, VALS(comid_names), 0, NULL, HFILL }
|
||||
},
|
||||
{ &hf_trdp_etb_topo,
|
||||
{ "ETB Topography Counter", "trdp.etb_topo", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }
|
||||
},
|
||||
{ &hf_trdp_oper_topo,
|
||||
{ "Operational Topography Counter", "trdp.oper_topo", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }
|
||||
},
|
||||
{ &hf_trdp_len,
|
||||
{ "Dataset Length", "trdp.len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }
|
||||
},
|
||||
{ &hf_trdp_res,
|
||||
{ "Reserved", "trdp.res", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }
|
||||
},
|
||||
{ &hf_trdp_reply_comid,
|
||||
{ "Reply Communication Identifier", "trdp.reply_comid", FT_UINT32, BASE_DEC, VALS(comid_names), 0, NULL, HFILL }
|
||||
},
|
||||
{ &hf_trdp_reply_ipaddr,
|
||||
{ "Reply IP address", "trdp.reply_ipaddr", FT_IPv4, BASE_NONE, NULL, 0, NULL, HFILL }
|
||||
},
|
||||
{ &hf_trdp_header_fcs,
|
||||
{ "Header FCS", "trdp.fcs", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }
|
||||
},
|
||||
{ &hf_trdp_padding,
|
||||
{ "Padding", "trdp.padding", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }
|
||||
},
|
||||
|
||||
/* MD Header */
|
||||
{ &hf_trdp_reply_status,
|
||||
{ "Reply Status Indication", "trdp.reply_status", FT_INT32, BASE_DEC, VALS(reply_status_names), 0, NULL, HFILL }
|
||||
},
|
||||
{ &hf_trdp_session_id,
|
||||
{ "Session UUID", "trdp.session_id", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }
|
||||
},
|
||||
{ &hf_trdp_reply_timeout,
|
||||
{ "Reply Timeout", "trdp.reply_timeout", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }
|
||||
},
|
||||
{ &hf_trdp_source_uri,
|
||||
{ "Source URI", "trdp.source_uri", FT_STRINGZ, BASE_NONE, NULL, 0x0, NULL, HFILL }
|
||||
},
|
||||
{ &hf_trdp_dest_uri,
|
||||
{ "Destination URI", "trdp.dest_uri", FT_STRINGZ, BASE_NONE, NULL, 0x0, NULL, HFILL }
|
||||
}
|
||||
};
|
||||
|
||||
/* Setup protocol subtree array */
|
||||
static gint *ett[] = {
|
||||
&ett_trdp
|
||||
};
|
||||
|
||||
/* Register the protocol name and description */
|
||||
proto_trdp = proto_register_protocol("Train Realtime Data Protocol", "TRDP", "trdp");
|
||||
|
||||
/* Required function calls to register the header fields and subtrees */
|
||||
proto_register_field_array(proto_trdp, hf, array_length(hf));
|
||||
proto_register_subtree_array(ett, array_length(ett));
|
||||
|
||||
/* Register next dissector */
|
||||
trdp_dissector_table = register_dissector_table("trdp.comid", "comid", proto_trdp, FT_UINT32, BASE_DEC);
|
||||
}
|
||||
|
||||
void proto_reg_handoff_trdp(void)
|
||||
{
|
||||
static dissector_handle_t trdp_handle;
|
||||
|
||||
trdp_handle = create_dissector_handle(dissect_trdp, proto_trdp);
|
||||
dissector_add_uint("udp.port", TRDP_PD_UDP_PORT, trdp_handle);
|
||||
dissector_add_uint("udp.port", TRDP_MD_TCP_UDP_PORT, trdp_handle);
|
||||
|
||||
data_handle = find_dissector_add_dependency("data", proto_trdp);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Editor modelines - https://www.wireshark.org/tools/modelines.html
|
||||
*
|
||||
* Local variables:
|
||||
* c-basic-offset: 4
|
||||
* tab-width: 8
|
||||
* indent-tabs-mode: nil
|
||||
* End:
|
||||
*
|
||||
* vi: set shiftwidth=4 tabstop=8 expandtab:
|
||||
* :indentSize=4:tabSize=8:noTabs=true:
|
||||
*/
|
|
@ -2229,15 +2229,14 @@ dissect_usbll_handshake(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *t
|
|||
usbll_transfer_info_t *transfer;
|
||||
guint32 last_offset;
|
||||
gboolean from_host;
|
||||
gboolean reassembled;
|
||||
|
||||
from_host = usbll_is_stalled_data_from_host(data->transaction_state);
|
||||
ep_info = usbll_get_endpoint_info(pinfo, data->transaction->address, data->transaction->endpoint, from_host);
|
||||
|
||||
last_offset = ep_info->transfer_offset - ep_info->last_data_len;
|
||||
reassembled = packet_ends_transfer(ep_info, last_offset, ep_info->last_data_len);
|
||||
|
||||
if (ep_info->active_transfer_key && !reassembled)
|
||||
if (ep_info->active_transfer_key &&
|
||||
!packet_ends_transfer(ep_info, last_offset, ep_info->last_data_len))
|
||||
{
|
||||
/* STALL terminates ongoing transfer. While the STALL packet is
|
||||
* always sent by device, the transfer can be either IN or OUT.
|
||||
|
|
|
@ -2358,7 +2358,6 @@ vnc_rre_encoding(tvbuff_t *tvb, packet_info *pinfo, gint *offset,
|
|||
return(0);
|
||||
}
|
||||
|
||||
*offset += 2;
|
||||
VNC_BYTES_NEEDED(bytes_per_pixel);
|
||||
proto_tree_add_item(tree, hf_vnc_rre_bg_pixel, tvb, *offset,
|
||||
bytes_per_pixel, ENC_NA);
|
||||
|
|
|
@ -0,0 +1,171 @@
|
|||
/* packet-vsmartcard.c
|
||||
* Routines for packet dissection of vsmartcard VPCD/VPICC protocol
|
||||
* Copyright 2019 by Harald Welte <laforge@gnumonks.org>
|
||||
*
|
||||
* Wireshark - Network traffic analyzer
|
||||
* By Gerald Combs <gerald@wireshark.org>
|
||||
* Copyright 1998 Gerald Combs
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include <epan/packet.h>
|
||||
#include <epan/prefs.h>
|
||||
|
||||
void proto_register_vsmartcard(void);
|
||||
void proto_reg_handoff_vsmartcard(void);
|
||||
|
||||
/*
|
||||
* Protocol used by Frank Morgners vsmartcard VPICC + VPCD
|
||||
*
|
||||
* https://frankmorgner.github.io/vsmartcard/virtualsmartcard/README.html
|
||||
*/
|
||||
|
||||
/*
|
||||
* These ports are not registered for other protocols, as per
|
||||
* http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xml
|
||||
*
|
||||
* But, as that document says:
|
||||
*
|
||||
************************************************************************
|
||||
* PLEASE NOTE THE FOLLOWING: *
|
||||
* *
|
||||
* ASSIGNMENT OF A PORT NUMBER DOES NOT IN ANY WAY IMPLY AN *
|
||||
* ENDORSEMENT OF AN APPLICATION OR PRODUCT, AND THE FACT THAT NETWORK *
|
||||
* TRAFFIC IS FLOWING TO OR FROM A REGISTERED PORT DOES NOT MEAN THAT *
|
||||
* IT IS "GOOD" TRAFFIC, NOR THAT IT NECESSARILY CORRESPONDS TO THE *
|
||||
* ASSIGNED SERVICE. FIREWALL AND SYSTEM ADMINISTRATORS SHOULD *
|
||||
* CHOOSE HOW TO CONFIGURE THEIR SYSTEMS BASED ON THEIR KNOWLEDGE OF *
|
||||
* THE TRAFFIC IN QUESTION, NOT WHETHER THERE IS A PORT NUMBER *
|
||||
* REGISTERED OR NOT. *
|
||||
************************************************************************
|
||||
*/
|
||||
#define VSMARTCARD_TCP_PORTS "35963,35964"
|
||||
|
||||
static dissector_handle_t vsmartcard_tcp_handle;
|
||||
//static gboolean global_ipa_in_root = FALSE;
|
||||
//static gboolean global_ipa_in_info = FALSE;
|
||||
|
||||
/* Initialize the protocol and registered fields */
|
||||
static int proto_vsmartcard = -1;
|
||||
|
||||
static int hf_vsmartcard_len = -1;
|
||||
static int hf_vsmartcard_cmd = -1;
|
||||
static int hf_vsmartcard_data = -1;
|
||||
|
||||
/* Initialize the subtree pointers */
|
||||
static gint ett_vsmartcard = -1;
|
||||
|
||||
static dissector_handle_t sub_handle_simcard;
|
||||
|
||||
static const value_string vsmartcard_cmd_vals[] = {
|
||||
{ 0x00, "OFF" },
|
||||
{ 0x01, "ON" },
|
||||
{ 0x02, "RESET" },
|
||||
{ 0x04, "ATR" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
/* Code to actually dissect the packets */
|
||||
static int
|
||||
dissect_vsmartcard(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
|
||||
{
|
||||
gint remaining;
|
||||
const gint header_length = 2;
|
||||
int offset = 0;
|
||||
guint16 len;
|
||||
|
||||
if (tvb_reported_length(tvb) < 3)
|
||||
return 0;
|
||||
|
||||
col_set_str(pinfo->cinfo, COL_PROTOCOL, "vsmartcard");
|
||||
col_clear(pinfo->cinfo, COL_INFO);
|
||||
|
||||
while ((remaining = tvb_reported_length_remaining(tvb, offset)) > 0) {
|
||||
proto_item *ti;
|
||||
proto_tree *vsmartcard_tree = NULL;
|
||||
tvbuff_t *next_tvb;
|
||||
|
||||
len = tvb_get_ntohs(tvb, offset);
|
||||
if ((guint) tvb_reported_length(tvb) < (guint) len + header_length)
|
||||
return 0;
|
||||
|
||||
ti = proto_tree_add_protocol_format(tree, proto_vsmartcard,
|
||||
tvb, offset, len+header_length, "vsmartcard protocol");
|
||||
vsmartcard_tree = proto_item_add_subtree(ti, ett_vsmartcard);
|
||||
proto_tree_add_item(vsmartcard_tree, hf_vsmartcard_len,
|
||||
tvb, offset, 2, ENC_BIG_ENDIAN);
|
||||
if (len == 1) {
|
||||
proto_tree_add_item(vsmartcard_tree, hf_vsmartcard_cmd,
|
||||
tvb, offset, 1, ENC_NA);
|
||||
} else {
|
||||
next_tvb = tvb_new_subset_length(tvb, offset+header_length, len);
|
||||
call_dissector(sub_handle_simcard, next_tvb, pinfo, tree);
|
||||
}
|
||||
offset += len + header_length;
|
||||
}
|
||||
|
||||
return tvb_captured_length(tvb);
|
||||
}
|
||||
|
||||
void proto_register_vsmartcard(void)
|
||||
{
|
||||
//module_t *vsmartcard_module;
|
||||
|
||||
static hf_register_info hf[] = {
|
||||
{&hf_vsmartcard_len,
|
||||
{"Length", "vsmartcard.length",
|
||||
FT_UINT16, BASE_DEC, NULL, 0x0,
|
||||
"The length of the data (in bytes)", HFILL}
|
||||
},
|
||||
{&hf_vsmartcard_cmd,
|
||||
{"Command", "vsmartcard.command",
|
||||
FT_UINT8, BASE_HEX, VALS(vsmartcard_cmd_vals), 0x0,
|
||||
NULL, HFILL}
|
||||
},
|
||||
{&hf_vsmartcard_data,
|
||||
{"Data", "vsmartcard.data",
|
||||
FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL}
|
||||
},
|
||||
};
|
||||
|
||||
static gint *ett[] = {
|
||||
&ett_vsmartcard,
|
||||
};
|
||||
|
||||
proto_vsmartcard = proto_register_protocol("Smartcard (ISO7816) over TCP", "vsmartcard", "vsmartcard");
|
||||
proto_register_field_array(proto_vsmartcard, hf, array_length(hf));
|
||||
proto_register_subtree_array(ett, array_length(ett));
|
||||
|
||||
#if 0
|
||||
vsmartcard_module = prefs_register_protocol(proto_vsmartcard, NULL);
|
||||
prefs_register_bool_preference(vsmartcard_module, "hsl_debug_in_root_tree",
|
||||
"HSL Debug messages in root protocol tree",
|
||||
NULL, &global_ipa_in_root);
|
||||
prefs_register_bool_preference(vsmartcard_module, "hsl_debug_in_info",
|
||||
"HSL Debug messages in INFO column",
|
||||
NULL, &global_ipa_in_info);
|
||||
#endif
|
||||
}
|
||||
|
||||
void proto_reg_handoff_vsmartcard(void)
|
||||
{
|
||||
sub_handle_simcard = find_dissector_add_dependency("gsm_sim", proto_vsmartcard);
|
||||
vsmartcard_tcp_handle = create_dissector_handle(dissect_vsmartcard, proto_vsmartcard);
|
||||
dissector_add_uint_range_with_preference("tcp.port", VSMARTCARD_TCP_PORTS, vsmartcard_tcp_handle);
|
||||
}
|
||||
|
||||
/*
|
||||
* Editor modelines - https://www.wireshark.org/tools/modelines.html
|
||||
*
|
||||
* Local variables:
|
||||
* c-basic-offset: 8
|
||||
* tab-width: 8
|
||||
* indent-tabs-mode: t
|
||||
* End:
|
||||
*
|
||||
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
|
||||
* :indentSize=8:tabSize=8:noTabs=false:
|
||||
*/
|
|
@ -3,6 +3,7 @@
|
|||
* Wi-SUN IE Dissectors for Wireshark
|
||||
* By Owen Kirby <osk@exegin.com>
|
||||
* Copyright 2007 Exegin Technologies Limited
|
||||
* Copyright 2022-2023 Silicon Laboratories Inc.
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*------------------------------------------------------------
|
||||
|
@ -13,6 +14,8 @@
|
|||
#include <epan/proto_data.h>
|
||||
#include <wsutil/pint.h>
|
||||
#include <epan/reassemble.h>
|
||||
#include <epan/oids.h>
|
||||
#include <epan/oui.h>
|
||||
|
||||
#include "packet-ieee802154.h"
|
||||
|
||||
|
@ -75,6 +78,8 @@ static reassembly_table netricity_reassembly_table;
|
|||
#define WISUN_PIE_SUBID_LCP 0x04
|
||||
#define WISUN_PIE_SUBID_LFNVER 0x40
|
||||
#define WISUN_PIE_SUBID_LGTKHASH 0x41
|
||||
#define WISUN_PIE_SUBID_LBATS 0x09
|
||||
#define WISUN_PIE_SUBID_JM 0x0a
|
||||
|
||||
#define WISUN_LGTKHASH_LGTK0_INCLUDED_MASK 0x01
|
||||
#define WISUN_LGTKHASH_LGTK1_INCLUDED_MASK 0x02
|
||||
|
@ -109,6 +114,12 @@ static reassembly_table netricity_reassembly_table;
|
|||
#define WISUN_PIE_PHY_OPERATING_MODES_MASK 0x0F
|
||||
#define WISUN_PIE_PHY_TYPE 0xF0
|
||||
|
||||
#define WISUN_PIE_JM_ID_PLF 1
|
||||
#define WISUN_PIE_JM_ID_MASK 0xfc
|
||||
#define WISUN_PIE_JM_LEN_MASK 0x03
|
||||
|
||||
#define WISUN_CMD_MDR 0x03
|
||||
|
||||
static int proto_wisun = -1;
|
||||
static int hf_wisun_subid = -1;
|
||||
static int hf_wisun_unknown_ie = -1;
|
||||
|
@ -139,7 +150,6 @@ static int hf_wisun_lbtie_slot = -1;
|
|||
static int hf_wisun_lbtie_bio = -1;
|
||||
static int hf_wisun_nrie = -1;
|
||||
static int hf_wisun_nrie_nr_id = -1;
|
||||
static int hf_wisun_nrie_listening_type = -1;
|
||||
static int hf_wisun_nrie_timing_accuracy = -1;
|
||||
static int hf_wisun_nrie_listening_interval_min = -1;
|
||||
static int hf_wisun_nrie_listening_interval_max = -1;
|
||||
|
@ -244,6 +254,17 @@ static int hf_wisun_lgtkhashie_flag_active_lgtk_index = -1;
|
|||
static int hf_wisun_lgtkhashie_gtk0 = -1;
|
||||
static int hf_wisun_lgtkhashie_gtk1 = -1;
|
||||
static int hf_wisun_lgtkhashie_gtk2 = -1;
|
||||
static int hf_wisun_lbatsie = -1;
|
||||
static int hf_wisun_lbatsie_additional_tx = -1;
|
||||
static int hf_wisun_lbatsie_next_tx_delay = -1;
|
||||
static int hf_wisun_jmie = -1;
|
||||
static int hf_wisun_jmie_version = -1;
|
||||
static int hf_wisun_jmie_metric_hdr = -1;
|
||||
static int hf_wisun_jmie_metric_id = -1;
|
||||
static int hf_wisun_jmie_metric_len = -1;
|
||||
static int hf_wisun_jmie_metric_plf = -1;
|
||||
static int hf_wisun_jmie_metric_plf_data = -1;
|
||||
static int hf_wisun_jmie_metric_unknown = -1;
|
||||
|
||||
static int proto_wisun_sec = -1;
|
||||
static int hf_wisun_sec_function = -1;
|
||||
|
@ -257,6 +278,12 @@ static int hf_wisun_eapol_relay_sup = -1;
|
|||
static int hf_wisun_eapol_relay_kmp_id = -1;
|
||||
static int hf_wisun_eapol_relay_direction = -1;
|
||||
|
||||
static int hf_wisun_cmd_subid = -1;
|
||||
static int hf_wisun_cmd_mdr_phy_mode_id = -1;
|
||||
static int hf_wisun_cmd_mdr_phy_type = -1;
|
||||
static int hf_wisun_cmd_mdr_phy_mode_fsk = -1;
|
||||
static int hf_wisun_cmd_mdr_phy_mode_ofdm = -1;
|
||||
|
||||
// Netricity
|
||||
static int proto_wisun_netricity_sc;
|
||||
static int hf_wisun_netricity_nftie = -1;
|
||||
|
@ -283,6 +310,7 @@ static int hf_wisun_netricity_scr_segment_count = -1;
|
|||
static int hf_wisun_netricity_scr_reassembled_in = -1;
|
||||
static int hf_wisun_netricity_scr_reassembled_length = -1;
|
||||
|
||||
static gint ett_wisun_phy_mode_id = -1;
|
||||
static gint ett_wisun_unknown_ie = -1;
|
||||
static gint ett_wisun_uttie = -1;
|
||||
static gint ett_wisun_btie = -1;
|
||||
|
@ -315,10 +343,14 @@ static gint ett_wisun_panverie = -1;
|
|||
static gint ett_wisun_gtkhashie = -1;
|
||||
static gint ett_wisun_pomie = -1;
|
||||
static gint ett_wisun_pomie_hdr = -1;
|
||||
static gint ett_wisun_pomie_phy_mode_id = -1;
|
||||
static gint ett_wisun_lfnverie = -1;
|
||||
static gint ett_wisun_lgtkhashie = -1;
|
||||
static gint ett_wisun_lgtkhashie_flags = -1;
|
||||
static gint ett_wisun_lbatsie = -1;
|
||||
static gint ett_wisun_jmie = -1;
|
||||
static gint ett_wisun_jmie_metric_hdr = -1;
|
||||
static gint ett_wisun_jmie_metric_plf = -1;
|
||||
static gint ett_wisun_jmie_metric_unknown = -1;
|
||||
static gint ett_wisun_sec = -1;
|
||||
static gint ett_wisun_eapol_relay = -1;
|
||||
// Netricity
|
||||
|
@ -402,6 +434,8 @@ static const value_string wisun_wsie_names_short[] = {
|
|||
{ WISUN_PIE_SUBID_POM, "PHY Operating Modes IE" },
|
||||
{ WISUN_PIE_SUBID_LFNVER, "LFN Version IE" },
|
||||
{ WISUN_PIE_SUBID_LGTKHASH, "LFN GTK Hash IE" },
|
||||
{ WISUN_PIE_SUBID_LBATS, "LFN Broadcast Additional Transmit Schedule IE" },
|
||||
{ WISUN_PIE_SUBID_JM, "Join Metrics IE" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
|
@ -520,6 +554,19 @@ static const value_string wisun_window_style[] = {
|
|||
{ 0, NULL }
|
||||
};
|
||||
|
||||
static const value_string wisun_metric_id[] = {
|
||||
{ WISUN_PIE_JM_ID_PLF, "PAN Load Factor" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
static const value_string wisun_metric_len[] = {
|
||||
{ 0, "0" },
|
||||
{ 1, "1" },
|
||||
{ 2, "2" },
|
||||
{ 3, "4" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
static const value_string wisun_sec_functions[] = {
|
||||
{ 0x01, "SM Error" },
|
||||
{ 0, NULL }
|
||||
|
@ -582,9 +629,9 @@ static const range_string wisun_phy_mode_ofdm_vals[] = {
|
|||
{ 0, 0, NULL }
|
||||
};
|
||||
|
||||
static const true_false_string wisun_wsie_listening_type_tfs = {
|
||||
"Semi-synchronized Listening Type",
|
||||
"Coordinated Sample Listening"
|
||||
static const value_string wisun_cmd_vals[] = {
|
||||
{ 3, "MDR Command" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
static const true_false_string wisun_netricity_sc_contention_control_tfs = {
|
||||
|
@ -611,6 +658,7 @@ static expert_field ei_wisun_wsie_unsupported = EI_INIT;
|
|||
static expert_field ei_wisun_usie_channel_plan_invalid = EI_INIT;
|
||||
static expert_field ei_wisun_edfe_start_not_found = EI_INIT;
|
||||
static expert_field ei_wisun_usie_explicit_reserved_bits_not_zero = EI_INIT;
|
||||
static expert_field ei_wisun_jmie_metric_unsupported = EI_INIT;
|
||||
|
||||
static guint
|
||||
wisun_add_wbxml_uint(tvbuff_t *tvb, proto_tree *tree, int hf, guint offset)
|
||||
|
@ -626,6 +674,33 @@ wisun_add_wbxml_uint(tvbuff_t *tvb, proto_tree *tree, int hf, guint offset)
|
|||
return len;
|
||||
}
|
||||
|
||||
static void
|
||||
wisun_add_phy_mode_id(tvbuff_t *tvb, proto_tree *tree,
|
||||
const guint offset, const int hf, int *const hf_type,
|
||||
int *const hf_fsk, int *const hf_ofdm)
|
||||
{
|
||||
guint8 phy_type = (tvb_get_guint8(tvb, offset) & WISUN_PIE_PHY_TYPE) >> 4;
|
||||
int *const wisun_phy_mode_fsk_fields[] = {
|
||||
hf_type,
|
||||
hf_fsk,
|
||||
NULL
|
||||
};
|
||||
int *const wisun_phy_mode_ofdm_fields[] = {
|
||||
hf_type,
|
||||
hf_ofdm,
|
||||
NULL
|
||||
};
|
||||
|
||||
if (phy_type < 2) {
|
||||
// 0 and 1 are FSK modes
|
||||
proto_tree_add_bitmask(tree, tvb, offset, hf, ett_wisun_phy_mode_id, wisun_phy_mode_fsk_fields, ENC_NA);
|
||||
} else {
|
||||
// The rest are OFDM modes
|
||||
proto_tree_add_bitmask(tree, tvb, offset, hf, ett_wisun_phy_mode_id, wisun_phy_mode_ofdm_fields, ENC_NA);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*-----------------------------------------------
|
||||
* Wi-SUN Header IE Dissection
|
||||
*---------------------------------------------*/
|
||||
|
@ -776,10 +851,6 @@ dissect_wisun_nrie(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guin
|
|||
guint8 node_role = tvb_get_guint8(tvb, offset) & WISUN_WSIE_NODE_ROLE_MASK;
|
||||
|
||||
proto_tree_add_item(tree, hf_wisun_nrie_nr_id, tvb, offset, 1, ENC_LITTLE_ENDIAN);
|
||||
|
||||
if (node_role == WISUN_WSIE_NODE_ROLE_ID_LFN) {
|
||||
proto_tree_add_item(tree, hf_wisun_nrie_listening_type, tvb, offset, 1, ENC_LITTLE_ENDIAN);
|
||||
}
|
||||
offset++;
|
||||
|
||||
proto_tree_add_item(tree, hf_wisun_usie_clock_drift, tvb, offset, 1, ENC_LITTLE_ENDIAN);
|
||||
|
@ -1319,18 +1390,6 @@ dissect_wisun_pomie(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, voi
|
|||
NULL
|
||||
};
|
||||
|
||||
static int* const wisun_pomie_phy_mode_fsk_fields[] = {
|
||||
&hf_wisun_pomie_phy_type,
|
||||
&hf_wisun_pomie_phy_mode_fsk,
|
||||
NULL
|
||||
};
|
||||
|
||||
static int* const wisun_pomie_phy_mode_ofdm_fields[] = {
|
||||
&hf_wisun_pomie_phy_type,
|
||||
&hf_wisun_pomie_phy_mode_ofdm,
|
||||
NULL
|
||||
};
|
||||
|
||||
item = proto_tree_add_item(tree, hf_wisun_pomie, tvb, 0, tvb_reported_length(tvb), ENC_NA);
|
||||
subtree = proto_item_add_subtree(item, ett_wisun_pomie);
|
||||
|
||||
|
@ -1342,15 +1401,8 @@ dissect_wisun_pomie(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, voi
|
|||
|
||||
offset++;
|
||||
for (guint8 i = 0; i < number_operating_modes; i++) {
|
||||
guint8 phy_type = (tvb_get_guint8(tvb, offset) & WISUN_PIE_PHY_TYPE) >> 4;
|
||||
|
||||
if (phy_type < 2) {
|
||||
// 0 and 1 are FSK modes
|
||||
proto_tree_add_bitmask(subtree, tvb, offset, hf_wisun_pomie_phy_mode_id, ett_wisun_pomie_phy_mode_id, wisun_pomie_phy_mode_fsk_fields, ENC_NA);
|
||||
} else {
|
||||
// The rest are OFDM modes
|
||||
proto_tree_add_bitmask(subtree, tvb, offset, hf_wisun_pomie_phy_mode_id, ett_wisun_pomie_phy_mode_id, wisun_pomie_phy_mode_ofdm_fields, ENC_NA);
|
||||
}
|
||||
wisun_add_phy_mode_id(tvb, tree, offset, hf_wisun_pomie_phy_mode_id, &hf_wisun_pomie_phy_type,
|
||||
&hf_wisun_pomie_phy_mode_fsk, &hf_wisun_pomie_phy_mode_ofdm);
|
||||
offset++;
|
||||
}
|
||||
|
||||
|
@ -1419,6 +1471,74 @@ dissect_wisun_lgtkhashie(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree
|
|||
return offset;
|
||||
}
|
||||
|
||||
static int
|
||||
dissect_wisun_lbatsie(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void *data _U_)
|
||||
{
|
||||
guint8 offset = 0;
|
||||
proto_item *item;
|
||||
proto_tree *subtree;
|
||||
|
||||
item = proto_tree_add_item(tree, hf_wisun_lbatsie, tvb, 0, tvb_reported_length(tvb), ENC_NA);
|
||||
subtree = proto_item_add_subtree(item, ett_wisun_lbatsie);
|
||||
|
||||
proto_tree_add_bitmask(subtree, tvb, offset, hf_wisun_wsie, ett_wisun_wsie_bitmap, wisun_format_nested_ie_short, ENC_LITTLE_ENDIAN);
|
||||
offset += 2;
|
||||
proto_tree_add_item(subtree, hf_wisun_lbatsie_additional_tx, tvb, offset, 1, ENC_LITTLE_ENDIAN);
|
||||
offset += 1;
|
||||
proto_tree_add_item(subtree, hf_wisun_lbatsie_next_tx_delay, tvb, offset, 2, ENC_LITTLE_ENDIAN);
|
||||
offset += 2;
|
||||
return offset;
|
||||
}
|
||||
|
||||
static int
|
||||
dissect_wisun_jmie(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void *data _U_)
|
||||
{
|
||||
static int * const fields_jmie_metric_hdr[] = {
|
||||
&hf_wisun_jmie_metric_id,
|
||||
&hf_wisun_jmie_metric_len,
|
||||
NULL
|
||||
};
|
||||
guint8 offset = 0;
|
||||
proto_item *item;
|
||||
proto_tree *subtree;
|
||||
|
||||
item = proto_tree_add_item(tree, hf_wisun_jmie, tvb, 0, tvb_reported_length(tvb), ENC_NA);
|
||||
subtree = proto_item_add_subtree(item, ett_wisun_jmie);
|
||||
|
||||
proto_tree_add_bitmask(subtree, tvb, offset, hf_wisun_wsie, ett_wisun_wsie_bitmap, wisun_format_nested_ie_short, ENC_LITTLE_ENDIAN);
|
||||
offset += 2;
|
||||
proto_tree_add_item(subtree, hf_wisun_jmie_version, tvb, offset, 1, ENC_LITTLE_ENDIAN);
|
||||
offset += 1;
|
||||
while (tvb_reported_length_remaining(tvb, offset) > 0) {
|
||||
guint8 metric_hdr = tvb_get_guint8(tvb, offset);
|
||||
guint8 metric_len = metric_hdr & WISUN_PIE_JM_LEN_MASK;
|
||||
proto_tree *metric_subtree;
|
||||
|
||||
if (metric_len == 3)
|
||||
metric_len = 4;
|
||||
|
||||
switch ((metric_hdr & WISUN_PIE_JM_ID_MASK) >> 2) {
|
||||
case WISUN_PIE_JM_ID_PLF:
|
||||
item = proto_tree_add_item(subtree, hf_wisun_jmie_metric_plf, tvb, offset, 1 + metric_len, ENC_NA);
|
||||
metric_subtree = proto_item_add_subtree(item, ett_wisun_jmie_metric_plf);
|
||||
proto_tree_add_bitmask(metric_subtree, tvb, offset, hf_wisun_jmie_metric_hdr, ett_wisun_jmie_metric_hdr, fields_jmie_metric_hdr, ENC_NA);
|
||||
offset += 1;
|
||||
proto_tree_add_item(metric_subtree, hf_wisun_jmie_metric_plf_data, tvb, offset, 1, ENC_LITTLE_ENDIAN);
|
||||
break;
|
||||
default:
|
||||
item = proto_tree_add_item(subtree, hf_wisun_jmie_metric_unknown, tvb, offset, 1 + metric_len, ENC_NA);
|
||||
metric_subtree = proto_item_add_subtree(item, ett_wisun_jmie_metric_unknown);
|
||||
proto_tree_add_bitmask(metric_subtree, tvb, offset, hf_wisun_jmie_metric_hdr, ett_wisun_jmie_metric_hdr, fields_jmie_metric_hdr, ENC_NA);
|
||||
offset += 1;
|
||||
expert_add_info(pinfo, metric_subtree, &ei_wisun_jmie_metric_unsupported);
|
||||
call_data_dissector(tvb_new_subset_length(tvb, offset, metric_len), pinfo, metric_subtree);
|
||||
break;
|
||||
}
|
||||
offset += metric_len;
|
||||
}
|
||||
return offset;
|
||||
}
|
||||
|
||||
static int
|
||||
dissect_wisun_pie(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ies_tree, void *data)
|
||||
{
|
||||
|
@ -1482,6 +1602,12 @@ dissect_wisun_pie(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ies_tree, void
|
|||
case WISUN_PIE_SUBID_LGTKHASH:
|
||||
dissect_wisun_lgtkhashie(wsie_tvb, pinfo, tree, data);
|
||||
break;
|
||||
case WISUN_PIE_SUBID_LBATS:
|
||||
dissect_wisun_lbatsie(wsie_tvb, pinfo, tree, data);
|
||||
break;
|
||||
case WISUN_PIE_SUBID_JM:
|
||||
dissect_wisun_jmie(wsie_tvb, pinfo, tree, data);
|
||||
break;
|
||||
default:{
|
||||
proto_item *item = proto_tree_add_item(tree, hf_wisun_unknown_ie, wsie_tvb, 0, tvb_reported_length(wsie_tvb), ENC_NA);
|
||||
proto_tree *subtree = proto_item_add_subtree(item, ett_wisun_unknown_ie);
|
||||
|
@ -1497,6 +1623,30 @@ dissect_wisun_pie(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ies_tree, void
|
|||
return offset;
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
dissect_wisun_cmd(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
|
||||
{
|
||||
guint8 offset = 0;
|
||||
guint8 cmd_subid;
|
||||
|
||||
cmd_subid = tvb_get_guint8(tvb, offset);
|
||||
col_set_str(pinfo->cinfo, COL_PROTOCOL, "Wi-SUN");
|
||||
col_set_str(pinfo->cinfo, COL_INFO, val_to_str_const(cmd_subid, wisun_cmd_vals, "Unknown Wi-SUN MAC Command"));
|
||||
proto_tree_add_item(tree, hf_wisun_cmd_subid, tvb, offset, 1, ENC_LITTLE_ENDIAN);
|
||||
offset += 1;
|
||||
switch (cmd_subid) {
|
||||
case WISUN_CMD_MDR:
|
||||
wisun_add_phy_mode_id(tvb, tree, offset, hf_wisun_cmd_mdr_phy_mode_id, &hf_wisun_cmd_mdr_phy_type,
|
||||
&hf_wisun_cmd_mdr_phy_mode_fsk, &hf_wisun_cmd_mdr_phy_mode_ofdm);
|
||||
break;
|
||||
default:
|
||||
call_data_dissector(tvb_new_subset_remaining(tvb, offset), pinfo, tree);
|
||||
break;
|
||||
}
|
||||
return offset;
|
||||
}
|
||||
|
||||
/*-----------------------------------------------
|
||||
* Wi-SUN FAN Security Extensions Dissection
|
||||
*---------------------------------------------*/
|
||||
|
@ -1790,10 +1940,6 @@ void proto_register_wisun(void)
|
|||
NULL, HFILL }
|
||||
},
|
||||
|
||||
{ &hf_wisun_nrie_listening_type,
|
||||
{ "Listening Type", "wisun.nrie.listening_type", FT_BOOLEAN, BASE_NONE, TFS(&wisun_wsie_listening_type_tfs), 1>>7,
|
||||
NULL, HFILL }},
|
||||
|
||||
{ &hf_wisun_nrie_timing_accuracy,
|
||||
{ "Timing Accuracy", "wisun.nrie.timing_accuracy", FT_UINT8, BASE_DEC|BASE_UNIT_STRING, &units_milliseconds, 0x0,
|
||||
NULL, HFILL }
|
||||
|
@ -2310,6 +2456,61 @@ void proto_register_wisun(void)
|
|||
NULL, HFILL }
|
||||
},
|
||||
|
||||
{ &hf_wisun_lbatsie,
|
||||
{ "LBATS-IE", "wisun.lbatsie", FT_NONE, BASE_NONE, NULL, 0x0,
|
||||
"LFN Broadcast Additional Transmit Schedule IE", HFILL }
|
||||
},
|
||||
|
||||
{ &hf_wisun_lbatsie_additional_tx,
|
||||
{ "Additional Transmissions", "wisun.lbatsie.additional_tx", FT_UINT8, BASE_DEC, NULL, 0x0,
|
||||
NULL, HFILL }
|
||||
},
|
||||
|
||||
{ &hf_wisun_lbatsie_next_tx_delay,
|
||||
{ "Next Transmit Delay", "wisun.lbatsie.next_tx_delay", FT_UINT16, BASE_DEC|BASE_UNIT_STRING, &units_milliseconds, 0x0,
|
||||
NULL, HFILL }
|
||||
},
|
||||
|
||||
{ &hf_wisun_jmie,
|
||||
{ "JM-IE", "wisun.jmie", FT_NONE, BASE_NONE, NULL, 0x0,
|
||||
"Join Metrics IE", HFILL }
|
||||
},
|
||||
|
||||
{ &hf_wisun_jmie_version,
|
||||
{ "Content Version", "wisun.jmie.version", FT_UINT8, BASE_DEC, NULL, 0x0,
|
||||
NULL, HFILL }
|
||||
},
|
||||
|
||||
{ &hf_wisun_jmie_metric_hdr,
|
||||
{ "Metric Header", "wisun.jmie.metric.hdr", FT_UINT8, BASE_HEX, NULL, 0x0,
|
||||
NULL, HFILL }
|
||||
},
|
||||
|
||||
{ &hf_wisun_jmie_metric_id,
|
||||
{ "Metric ID", "wisun.jmie.metric.id", FT_UINT8, BASE_DEC, VALS(wisun_metric_id), WISUN_PIE_JM_ID_MASK,
|
||||
NULL, HFILL }
|
||||
},
|
||||
|
||||
{ &hf_wisun_jmie_metric_len,
|
||||
{ "Metric Length", "wisun.jmie.metric.len", FT_UINT8, BASE_DEC, VALS(wisun_metric_len), WISUN_PIE_JM_LEN_MASK,
|
||||
NULL, HFILL }
|
||||
},
|
||||
|
||||
{ &hf_wisun_jmie_metric_plf,
|
||||
{ "JM-PLF", "wisun.jmie.metric.plf", FT_NONE, BASE_NONE, NULL, 0x0,
|
||||
NULL, HFILL }
|
||||
},
|
||||
|
||||
{ &hf_wisun_jmie_metric_plf_data,
|
||||
{ "PAN Load Factor", "wisun.jmie.metric.plf.data", FT_UINT8, BASE_DEC|BASE_UNIT_STRING, &units_percent, 0x0,
|
||||
NULL, HFILL }
|
||||
},
|
||||
|
||||
{ &hf_wisun_jmie_metric_unknown,
|
||||
{ "Unknown Metric", "wisun.jmie.metric.unknown", FT_NONE, BASE_NONE, NULL, 0x0,
|
||||
NULL, HFILL }
|
||||
},
|
||||
|
||||
/* Wi-SUN FAN Security Extension */
|
||||
{ &hf_wisun_sec_function,
|
||||
{ "Function Code", "wisun.sec.function", FT_UINT8, BASE_HEX, VALS(wisun_sec_functions), 0x0,
|
||||
|
@ -2339,6 +2540,29 @@ void proto_register_wisun(void)
|
|||
{ "Direction", "wisun.eapol_relay.direction", FT_BOOLEAN, BASE_NONE, TFS(&tfs_up_down), 0x0,
|
||||
NULL, HFILL }},
|
||||
|
||||
{ &hf_wisun_cmd_subid,
|
||||
{ "Command Sub-ID", "wisun.cmd", FT_UINT8, BASE_DEC, VALS(wisun_cmd_vals), 0x0,
|
||||
"Wi-SUN MAC Command Sub-ID", HFILL }},
|
||||
|
||||
{ &hf_wisun_cmd_mdr_phy_mode_id,
|
||||
{ "PHY Mode ID", "wisun.cmd.mdr.phy_mode_id", FT_UINT8, BASE_DEC, NULL, 0x0,
|
||||
NULL, HFILL }},
|
||||
|
||||
{ &hf_wisun_cmd_mdr_phy_type,
|
||||
{ "PHY Type", "wisun.cmd.mdr.phy_type", FT_UINT8, BASE_HEX, VALS(wisun_phy_type_vals), WISUN_PIE_PHY_TYPE,
|
||||
NULL, HFILL }
|
||||
},
|
||||
|
||||
{ &hf_wisun_cmd_mdr_phy_mode_fsk,
|
||||
{ "PHY Mode FSK", "wisun.cmd.mdr.phy_mode_fsk", FT_UINT8, BASE_HEX|BASE_RANGE_STRING, RVALS(wisun_phy_mode_fsk_vals), WISUN_PIE_PHY_OPERATING_MODES_MASK,
|
||||
NULL, HFILL }
|
||||
},
|
||||
|
||||
{ &hf_wisun_cmd_mdr_phy_mode_ofdm,
|
||||
{ "PHY Mode OFDM", "wisun.cmd.mdr.phy_mode_ofdm", FT_UINT8, BASE_HEX|BASE_RANGE_STRING, RVALS(wisun_phy_mode_ofdm_vals), WISUN_PIE_PHY_OPERATING_MODES_MASK,
|
||||
NULL, HFILL }
|
||||
},
|
||||
|
||||
/* Wi-SUN Netricity */
|
||||
{ &hf_wisun_netricity_nftie,
|
||||
{ "Netricity Frame Type IE", "wisun.netricity.nftie", FT_NONE, BASE_NONE, NULL, 0x0,
|
||||
|
@ -2440,6 +2664,7 @@ void proto_register_wisun(void)
|
|||
|
||||
/* Subtrees */
|
||||
static gint *ett[] = {
|
||||
&ett_wisun_phy_mode_id,
|
||||
&ett_wisun_unknown_ie,
|
||||
&ett_wisun_uttie,
|
||||
&ett_wisun_btie,
|
||||
|
@ -2459,11 +2684,15 @@ void proto_register_wisun(void)
|
|||
&ett_wisun_panverie,
|
||||
&ett_wisun_pomie,
|
||||
&ett_wisun_pomie_hdr,
|
||||
&ett_wisun_pomie_phy_mode_id,
|
||||
&ett_wisun_gtkhashie,
|
||||
&ett_wisun_lfnverie,
|
||||
&ett_wisun_lgtkhashie,
|
||||
&ett_wisun_lgtkhashie_flags,
|
||||
&ett_wisun_lbatsie,
|
||||
&ett_wisun_jmie,
|
||||
&ett_wisun_jmie_metric_hdr,
|
||||
&ett_wisun_jmie_metric_plf,
|
||||
&ett_wisun_jmie_metric_unknown,
|
||||
&ett_wisun_sec,
|
||||
&ett_wisun_eapol_relay,
|
||||
&ett_wisun_netricity_nftie,
|
||||
|
@ -2495,6 +2724,8 @@ void proto_register_wisun(void)
|
|||
"EDFE Transfer: start frame not found", EXPFILL }},
|
||||
{ &ei_wisun_usie_explicit_reserved_bits_not_zero, { "wisun.usie.explicit.reserved.invalid", PI_MALFORMED, PI_ERROR,
|
||||
"Reserved bits not zero", EXPFILL }},
|
||||
{ &ei_wisun_jmie_metric_unsupported, { "wisun.jmie.metric.unsupported", PI_PROTOCOL, PI_WARN,
|
||||
"Unsupported Metric ID", EXPFILL }},
|
||||
};
|
||||
|
||||
expert_module_t* expert_wisun;
|
||||
|
@ -2524,6 +2755,9 @@ void proto_reg_handoff_wisun(void)
|
|||
{
|
||||
dissector_add_uint(IEEE802154_HEADER_IE_DTABLE, IEEE802154_HEADER_IE_WISUN, create_dissector_handle(dissect_wisun_hie, proto_wisun));
|
||||
dissector_add_uint(IEEE802154_PAYLOAD_IE_DTABLE, IEEE802154_PAYLOAD_IE_WISUN, create_dissector_handle(dissect_wisun_pie, proto_wisun));
|
||||
dissector_add_uint(IEEE802154_CMD_VENDOR_DTABLE, OUI_WISUN, create_dissector_handle(dissect_wisun_cmd, proto_wisun));
|
||||
|
||||
oid_add_from_string("id-kp-wisun-fan-device", "1.3.6.1.4.1.45605.1");
|
||||
|
||||
// For EAPOL relay
|
||||
dissector_add_uint("udp.port", WISUN_EAPOL_RELAY_UDP_PORT, wisun_eapol_relay_handle);
|
||||
|
|
|
@ -6,16 +6,20 @@ MANUAL srvsvc_dissect_element_NetGetFileSecurity_sd_buf_
|
|||
MANUAL srvsvc_dissect_element_NetSetFileSecurity_sd_buf
|
||||
MANUAL srvsvc_dissect_element_NetShareCtr1501_array__
|
||||
MANUAL srvsvc_dissect_element_NetShareInfo502_sd_
|
||||
NOEMIT srvsvc_dissect_element_NetShareInfo502_sd__
|
||||
# we wont need to manually define servertype once svcctl is autogenerated
|
||||
MANUAL srvsvc_dissect_element_NetSrvInfo101_server_type
|
||||
MANUAL srvsvc_dissect_element_NetSrvInfo102_server_type
|
||||
# until we get secinfo
|
||||
MANUAL srvsvc_dissect_element_NetGetFileSecurity_securityinformation
|
||||
MANUAL srvsvc_dissect_element_NetSetFileSecurity_securityinformation
|
||||
MANUAL srvsvc_dissect_element_NetShareInfo502_sd_buf
|
||||
MANUAL srvsvc_dissect_element_NetShareInfoCtr_ctr
|
||||
NOEMIT srvsvc_dissect_element_NetGetFileSecurity_sd_buf__
|
||||
NOEMIT srvsvc_dissect_element_NetSetFileSecurity_sd_buf_
|
||||
|
||||
HF_FIELD hf_srvsvc_sec_desc_buf_len "Sec Desc Buf Len" "srvsvc.sec_desc_buf_len" FT_UINT32 BASE_DEC NULL 0 "" "" ""
|
||||
|
||||
|
||||
#
|
||||
#
|
||||
# Prettifications
|
||||
|
@ -39,7 +43,21 @@ CODE START
|
|||
#include "packet-smb-browse.h"
|
||||
|
||||
static int
|
||||
srvsvc_dissect_sec_desc_buf(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, dcerpc_info* di, guint8 *drep)
|
||||
srvsvc_dissect_NetShareCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
|
||||
static int
|
||||
srvsvc_dissect_element_NetShareInfoCtr_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint32 *level)
|
||||
{
|
||||
ALIGN_TO_5_BYTES
|
||||
offset = srvsvc_dissect_NetShareCtr(tvb, offset, pinfo, tree, di, drep, hf_srvsvc_srvsvc_NetShareInfoCtr_ctr, *level);
|
||||
|
||||
return offset;
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
srvsvc_dissect_sec_desc_buf(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, dcerpc_info* di, guint8 *drep, int hf_index);
|
||||
static int
|
||||
srvsvc_dissect_sec_desc_buf(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, dcerpc_info* di, guint8 *drep, int hf_index _U_)
|
||||
{
|
||||
guint32 len;
|
||||
|
||||
|
@ -61,31 +79,28 @@ srvsvc_dissect_sec_desc_buf(tvbuff_t *tvb, int offset, packet_info *pinfo, proto
|
|||
static int
|
||||
srvsvc_dissect_element_NetShareInfo_info1501_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, dcerpc_info* di, guint8 *drep)
|
||||
{
|
||||
return srvsvc_dissect_sec_desc_buf(tvb, offset, pinfo, tree, di, drep);
|
||||
return srvsvc_dissect_sec_desc_buf(tvb, offset, pinfo, tree, di, drep, hf_srvsvc_srvsvc_NetShareInfo_info1501);
|
||||
}
|
||||
static int
|
||||
srvsvc_dissect_element_NetGetFileSecurity_sd_buf_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, dcerpc_info* di, guint8 *drep)
|
||||
{
|
||||
return srvsvc_dissect_sec_desc_buf(tvb, offset, pinfo, tree, di, drep);
|
||||
return srvsvc_dissect_sec_desc_buf(tvb, offset, pinfo, tree, di, drep, hf_srvsvc_srvsvc_NetGetFileSecurity_sd_buf);
|
||||
}
|
||||
static int
|
||||
srvsvc_dissect_element_NetSetFileSecurity_sd_buf(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, dcerpc_info* di, guint8 *drep)
|
||||
{
|
||||
return srvsvc_dissect_sec_desc_buf(tvb, offset, pinfo, tree, di, drep);
|
||||
return srvsvc_dissect_sec_desc_buf(tvb, offset, pinfo, tree, di, drep, hf_srvsvc_srvsvc_NetSetFileSecurity_sd_buf);
|
||||
}
|
||||
static int
|
||||
srvsvc_dissect_element_NetShareCtr1501_array__(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, dcerpc_info* di, guint8 *drep)
|
||||
{
|
||||
return srvsvc_dissect_sec_desc_buf(tvb, offset, pinfo, tree, di, drep);
|
||||
return srvsvc_dissect_sec_desc_buf(tvb, offset, pinfo, tree, di, drep, hf_srvsvc_srvsvc_NetShareCtr1501_array);
|
||||
}
|
||||
static int
|
||||
srvsvc_dissect_element_NetShareInfo502_sd_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, dcerpc_info* di, guint8 *drep)
|
||||
srvsvc_dissect_element_NetShareInfo502_sd_buf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
|
||||
{
|
||||
return srvsvc_dissect_sec_desc_buf(tvb, offset, pinfo, tree, di, drep);
|
||||
return srvsvc_dissect_sec_desc_buf(tvb,offset,pinfo,tree,di,drep, hf_srvsvc_srvsvc_NetShareInfo502_sd_buf);
|
||||
}
|
||||
|
||||
|
||||
|
||||
static int
|
||||
srvsvc_dissect_ServerType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, dcerpc_info* di, guint8 *drep)
|
||||
{
|
||||
|
@ -94,8 +109,7 @@ srvsvc_dissect_ServerType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_t
|
|||
return offset;
|
||||
}
|
||||
|
||||
offset=dissect_smb_server_type_flags(tvb, offset, pinfo, tree,
|
||||
drep, 0);
|
||||
offset=dissect_smb_server_type_flags(tvb, offset, pinfo, tree, drep, 0);
|
||||
|
||||
return offset;
|
||||
}
|
||||
|
@ -104,15 +118,14 @@ srvsvc_dissect_element_NetSrvInfo101_server_type(tvbuff_t *tvb, int offset, pack
|
|||
{
|
||||
return srvsvc_dissect_ServerType(tvb, offset, pinfo, tree, di, drep);
|
||||
}
|
||||
|
||||
static int
|
||||
srvsvc_dissect_element_NetSrvInfo102_server_type(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, dcerpc_info* di, guint8 *drep)
|
||||
{
|
||||
return srvsvc_dissect_ServerType(tvb, offset, pinfo, tree, di, drep);
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
srvsvc_dissect_secinfo(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, dcerpc_info* di, guint8 *drep _U_)
|
||||
srvsvc_dissect_secinfo(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, dcerpc_info* di, guint8 *drep _U_, int hf_index _U_)
|
||||
{
|
||||
if(di->conformant_run){
|
||||
/*just a run to handle conformant arrays, nothing to dissect */
|
||||
|
@ -126,12 +139,12 @@ srvsvc_dissect_secinfo(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_
|
|||
static int
|
||||
srvsvc_dissect_element_NetGetFileSecurity_securityinformation(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, dcerpc_info* di, guint8 *drep)
|
||||
{
|
||||
return srvsvc_dissect_secinfo(tvb, offset, pinfo, tree, di, drep);
|
||||
return srvsvc_dissect_secinfo(tvb, offset, pinfo, tree, di, drep, hf_srvsvc_srvsvc_NetGetFileSecurity_securityinformation);
|
||||
}
|
||||
static int
|
||||
srvsvc_dissect_element_NetSetFileSecurity_securityinformation(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, dcerpc_info* di, guint8 *drep)
|
||||
{
|
||||
return srvsvc_dissect_secinfo(tvb, offset, pinfo, tree, di, drep);
|
||||
return srvsvc_dissect_secinfo(tvb, offset, pinfo, tree, di, drep, hf_srvsvc_srvsvc_NetSetFileSecurity_securityinformation);
|
||||
}
|
||||
|
||||
CODE END
|
||||
|
|
|
@ -1,16 +1,14 @@
|
|||
#include "idl_types.h"
|
||||
|
||||
/*import "security.idl", "svcctl.idl";*/
|
||||
|
||||
/*
|
||||
srvsvc interface definitions
|
||||
*/
|
||||
/* import "misc.idl", "security.idl", "svcctl.idl"; */
|
||||
|
||||
[ uuid("4b324fc8-1670-01d3-1278-5a47bf6ee188"),
|
||||
version(3.0),
|
||||
endpoint("ncacn_np:[\\pipe\\srvsvc]", "ncacn_ip_tcp:", "ncalrpc:"),
|
||||
pointer_default(unique),
|
||||
pointer_default_top(unique),
|
||||
helpstring("Server Service")
|
||||
] interface srvsvc
|
||||
{
|
||||
|
@ -53,30 +51,34 @@
|
|||
[default] ;
|
||||
} srvsvc_NetCharDevCtr;
|
||||
|
||||
typedef struct {
|
||||
uint32 level;
|
||||
[switch_is(level)] srvsvc_NetCharDevCtr ctr;
|
||||
} srvsvc_NetCharDevInfoCtr;
|
||||
|
||||
/******************/
|
||||
/* Function: 0x00 */
|
||||
WERROR srvsvc_NetCharDevEnum(
|
||||
[in] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in,out,ref] uint32 *level,
|
||||
[in,out,switch_is(level),ref] srvsvc_NetCharDevCtr *ctr,
|
||||
[in,unique] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in,out,ref] srvsvc_NetCharDevInfoCtr *info_ctr,
|
||||
[in] uint32 max_buffer,
|
||||
[out,ref] uint32 *totalentries,
|
||||
[in,out] uint32 *resume_handle
|
||||
[out,ref] uint32 *totalentries,
|
||||
[in,out,unique] uint32 *resume_handle
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x01 */
|
||||
WERROR srvsvc_NetCharDevGetInfo(
|
||||
[in] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in,unique] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in] [string,charset(UTF16)] uint16 device_name[],
|
||||
[in] uint32 level,
|
||||
[out,switch_is(level),ref] srvsvc_NetCharDevInfo *info
|
||||
[out,ref,switch_is(level)] srvsvc_NetCharDevInfo *info
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x02 */
|
||||
WERROR srvsvc_NetCharDevControl(
|
||||
[in] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in,unique] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in] [string,charset(UTF16)] uint16 device_name[],
|
||||
[in] uint32 opcode
|
||||
);
|
||||
|
@ -118,22 +120,26 @@
|
|||
[default] ;
|
||||
} srvsvc_NetCharDevQCtr;
|
||||
|
||||
typedef struct {
|
||||
uint32 level;
|
||||
[switch_is(level)] srvsvc_NetCharDevQCtr ctr;
|
||||
} srvsvc_NetCharDevQInfoCtr;
|
||||
|
||||
/******************/
|
||||
/* Function: 0x03 */
|
||||
WERROR srvsvc_NetCharDevQEnum(
|
||||
[in] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in] [string,charset(UTF16)] uint16 *user,
|
||||
[in,out,ref] uint32 *level,
|
||||
[in,out,switch_is(level),ref] srvsvc_NetCharDevQCtr *ctr,
|
||||
[in,unique] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in,unique] [string,charset(UTF16)] uint16 *user,
|
||||
[in,out,ref] srvsvc_NetCharDevQInfoCtr *info_ctr,
|
||||
[in] uint32 max_buffer,
|
||||
[out,ref] uint32 *totalentries,
|
||||
[in,out] uint32 *resume_handle
|
||||
[out,ref] uint32 *totalentries,
|
||||
[in,out,unique] uint32 *resume_handle
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x04 */
|
||||
WERROR srvsvc_NetCharDevQGetInfo(
|
||||
[in] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in,unique] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in] [string,charset(UTF16)] uint16 queue_name[],
|
||||
[in] [string,charset(UTF16)] uint16 user[],
|
||||
[in] uint32 level,
|
||||
|
@ -143,24 +149,24 @@
|
|||
/******************/
|
||||
/* Function: 0x05 */
|
||||
WERROR srvsvc_NetCharDevQSetInfo(
|
||||
[in] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in,unique] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in] [string,charset(UTF16)] uint16 queue_name[],
|
||||
[in] uint32 level,
|
||||
[in,switch_is(level)] srvsvc_NetCharDevQInfo info,
|
||||
[in,out] uint32 *parm_error
|
||||
[in,out,unique] uint32 *parm_error
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x06 */
|
||||
WERROR srvsvc_NetCharDevQPurge(
|
||||
[in] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in,unique] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in] [string,charset(UTF16)] uint16 queue_name[]
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x07 */
|
||||
WERROR srvsvc_NetCharDevQPurgeSelf(
|
||||
[in] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in,unique] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in] [string,charset(UTF16)] uint16 queue_name[],
|
||||
[in] [string,charset(UTF16)] uint16 computer_name[]
|
||||
);
|
||||
|
@ -198,16 +204,20 @@
|
|||
[default] ;
|
||||
} srvsvc_NetConnCtr;
|
||||
|
||||
typedef struct {
|
||||
uint32 level;
|
||||
[switch_is(level)] srvsvc_NetConnCtr ctr;
|
||||
} srvsvc_NetConnInfoCtr;
|
||||
|
||||
/******************/
|
||||
/* Function: 0x08 */
|
||||
WERROR srvsvc_NetConnEnum(
|
||||
[in] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in] [string,charset(UTF16)] uint16 *path,
|
||||
[in,out,ref] uint32 *level,
|
||||
[in,out,switch_is(level),ref] srvsvc_NetConnCtr *ctr,
|
||||
[in,unique] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in,unique] [string,charset(UTF16)] uint16 *path,
|
||||
[in,out,ref] srvsvc_NetConnInfoCtr *info_ctr,
|
||||
[in] uint32 max_buffer,
|
||||
[out,ref] uint32 *totalentries,
|
||||
[in,out] uint32 *resume_handle
|
||||
[out,ref] uint32 *totalentries,
|
||||
[in,out,unique] uint32 *resume_handle
|
||||
);
|
||||
|
||||
/**************************/
|
||||
|
@ -247,23 +257,27 @@
|
|||
[default] ;
|
||||
} srvsvc_NetFileCtr;
|
||||
|
||||
typedef struct {
|
||||
uint32 level;
|
||||
[switch_is(level)] srvsvc_NetFileCtr ctr;
|
||||
} srvsvc_NetFileInfoCtr;
|
||||
|
||||
/******************/
|
||||
/* Function: 0x09 */
|
||||
WERROR srvsvc_NetFileEnum(
|
||||
[in] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in] [string,charset(UTF16)] uint16 *path,
|
||||
[in] [string,charset(UTF16)] uint16 *user,
|
||||
[in,out,ref] uint32 *level,
|
||||
[in,out,switch_is(level),ref] srvsvc_NetFileCtr *ctr,
|
||||
[in,unique] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in,unique] [string,charset(UTF16)] uint16 *path,
|
||||
[in,unique] [string,charset(UTF16)] uint16 *user,
|
||||
[in,out,ref] srvsvc_NetFileInfoCtr *info_ctr,
|
||||
[in] uint32 max_buffer,
|
||||
[out,ref] uint32 *totalentries,
|
||||
[in,out] uint32 *resume_handle
|
||||
[out,ref] uint32 *totalentries,
|
||||
[in,out,unique] uint32 *resume_handle
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x0a */
|
||||
WERROR srvsvc_NetFileGetInfo(
|
||||
[in] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in,unique] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in] uint32 fid,
|
||||
[in] uint32 level,
|
||||
[out,switch_is(level),ref] srvsvc_NetFileInfo *info
|
||||
|
@ -272,18 +286,13 @@
|
|||
/******************/
|
||||
/* Function: 0x0b */
|
||||
WERROR srvsvc_NetFileClose(
|
||||
[in] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in] uint32 fid
|
||||
[in,unique] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in] uint32 fid
|
||||
);
|
||||
|
||||
/**************************/
|
||||
/* srvsvc_NetSess */
|
||||
/**************************/
|
||||
typedef [bitmap32bit] bitmap {
|
||||
SESS_GUEST = 0x00000001,
|
||||
SESS_NOENCRYPTION = 0x00000002
|
||||
} srvsvc_SessionUserFlags;
|
||||
|
||||
typedef struct {
|
||||
[string,charset(UTF16)] uint16 *client;
|
||||
} srvsvc_NetSessInfo0;
|
||||
|
@ -299,7 +308,7 @@
|
|||
uint32 num_open;
|
||||
uint32 time;
|
||||
uint32 idle_time;
|
||||
srvsvc_SessionUserFlags user_flags;
|
||||
uint32 user_flags;
|
||||
} srvsvc_NetSessInfo1;
|
||||
|
||||
typedef struct {
|
||||
|
@ -313,7 +322,7 @@
|
|||
uint32 num_open;
|
||||
uint32 time;
|
||||
uint32 idle_time;
|
||||
srvsvc_SessionUserFlags user_flags;
|
||||
uint32 user_flags;
|
||||
[string,charset(UTF16)] uint16 *client_type;
|
||||
} srvsvc_NetSessInfo2;
|
||||
|
||||
|
@ -340,7 +349,7 @@
|
|||
uint32 num_open;
|
||||
uint32 time;
|
||||
uint32 idle_time;
|
||||
srvsvc_SessionUserFlags user_flags;
|
||||
uint32 user_flags;
|
||||
[string,charset(UTF16)] uint16 *client_type;
|
||||
[string,charset(UTF16)] uint16 *transport;
|
||||
} srvsvc_NetSessInfo502;
|
||||
|
@ -361,23 +370,28 @@
|
|||
|
||||
/******************/
|
||||
/* Function: 0x0c */
|
||||
|
||||
typedef struct {
|
||||
uint32 level;
|
||||
[switch_is(level)] srvsvc_NetSessCtr ctr;
|
||||
} srvsvc_NetSessInfoCtr;
|
||||
|
||||
WERROR srvsvc_NetSessEnum(
|
||||
[in] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in] [string,charset(UTF16)] uint16 *client,
|
||||
[in] [string,charset(UTF16)] uint16 *user,
|
||||
[in,out,ref] uint32 *level,
|
||||
[in,out,switch_is(level),ref] srvsvc_NetSessCtr *ctr,
|
||||
[in,unique] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in,unique] [string,charset(UTF16)] uint16 *client,
|
||||
[in,unique] [string,charset(UTF16)] uint16 *user,
|
||||
[in,out,ref] srvsvc_NetSessInfoCtr *info_ctr,
|
||||
[in] uint32 max_buffer,
|
||||
[out,ref] uint32 *totalentries,
|
||||
[in,out] uint32 *resume_handle
|
||||
[out,ref] uint32 *totalentries,
|
||||
[in,out,unique] uint32 *resume_handle
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x0d */
|
||||
WERROR srvsvc_NetSessDel(
|
||||
[in] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in] [string,charset(UTF16)] uint16 *client,
|
||||
[in] [string,charset(UTF16)] uint16 *user
|
||||
[in,unique] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in,unique] [string,charset(UTF16)] uint16 *client,
|
||||
[in,unique] [string,charset(UTF16)] uint16 *user
|
||||
);
|
||||
|
||||
/**************************/
|
||||
|
@ -400,19 +414,38 @@
|
|||
STYPE_DEVICE_HIDDEN = STYPE_DEVICE|STYPE_HIDDEN,
|
||||
STYPE_IPC = 3, /* Interprocess communication (IPC) */
|
||||
STYPE_IPC_TEMPORARY = STYPE_IPC|STYPE_TEMPORARY,
|
||||
STYPE_IPC_HIDDEN = STYPE_IPC|STYPE_HIDDEN
|
||||
STYPE_IPC_HIDDEN = STYPE_IPC|STYPE_HIDDEN,
|
||||
STYPE_CLUSTER_FS = 0x02000000, /* A cluster share */
|
||||
STYPE_CLUSTER_FS_TEMPORARY = STYPE_CLUSTER_FS|STYPE_TEMPORARY,
|
||||
STYPE_CLUSTER_FS_HIDDEN = STYPE_CLUSTER_FS|STYPE_HIDDEN,
|
||||
STYPE_CLUSTER_SOFS = 0x04000000, /* A Scale-Out cluster share */
|
||||
STYPE_CLUSTER_SOFS_TEMPORARY = STYPE_CLUSTER_SOFS|STYPE_TEMPORARY,
|
||||
STYPE_CLUSTER_SOFS_HIDDEN = STYPE_CLUSTER_SOFS|STYPE_HIDDEN,
|
||||
STYPE_CLUSTER_DFS = 0x08000000, /* A DFS share in a cluster */
|
||||
STYPE_CLUSTER_DFS_TEMPORARY = STYPE_CLUSTER_DFS|STYPE_TEMPORARY,
|
||||
STYPE_CLUSTER_DFS_HIDDEN = STYPE_CLUSTER_DFS|STYPE_HIDDEN
|
||||
} srvsvc_ShareType;
|
||||
|
||||
typedef struct {
|
||||
[string,charset(UTF16)] uint16 *name;
|
||||
} srvsvc_NetShareInfo0;
|
||||
|
||||
typedef struct {
|
||||
uint32 count;
|
||||
[size_is(count)] srvsvc_NetShareInfo0 *array;
|
||||
} srvsvc_NetShareCtr0;
|
||||
|
||||
typedef struct {
|
||||
[string,charset(UTF16)] uint16 *name;
|
||||
srvsvc_ShareType type;
|
||||
[string,charset(UTF16)] uint16 *comment;
|
||||
} srvsvc_NetShareInfo1;
|
||||
|
||||
typedef struct {
|
||||
uint32 count;
|
||||
[size_is(count)] srvsvc_NetShareInfo1 *array;
|
||||
} srvsvc_NetShareCtr1;
|
||||
|
||||
typedef struct {
|
||||
[string,charset(UTF16)] uint16 *name;
|
||||
srvsvc_ShareType type;
|
||||
|
@ -424,6 +457,11 @@
|
|||
[string,charset(UTF16)] uint16 *password;
|
||||
} srvsvc_NetShareInfo2;
|
||||
|
||||
typedef struct {
|
||||
uint32 count;
|
||||
[size_is(count)] srvsvc_NetShareInfo2 *array;
|
||||
} srvsvc_NetShareCtr2;
|
||||
|
||||
typedef struct {
|
||||
[string,charset(UTF16)] uint16 *name;
|
||||
srvsvc_ShareType type;
|
||||
|
@ -431,74 +469,60 @@
|
|||
uint32 csc_policy;
|
||||
} srvsvc_NetShareInfo501;
|
||||
|
||||
typedef struct {
|
||||
uint32 count;
|
||||
[size_is(count)] srvsvc_NetShareInfo501 *array;
|
||||
} srvsvc_NetShareCtr501;
|
||||
|
||||
typedef struct {
|
||||
[string,charset(UTF16)] uint16 *name;
|
||||
srvsvc_ShareType type;
|
||||
[string,charset(UTF16)] uint16 *comment;
|
||||
uint32 permissions;
|
||||
int32 max_users;
|
||||
uint32 max_users;
|
||||
uint32 current_users;
|
||||
[string,charset(UTF16)] uint16 *path;
|
||||
[string,charset(UTF16)] uint16 *password;
|
||||
/* maybe here is a struct sec_desc_buf following */
|
||||
uint32 unknown;
|
||||
[subcontext(4)] security_descriptor *sd;
|
||||
sec_desc_buf sd_buf;
|
||||
} srvsvc_NetShareInfo502;
|
||||
|
||||
typedef struct {
|
||||
[string,charset(UTF16)] uint16 *comment;
|
||||
} srvsvc_NetShareInfo1004;
|
||||
|
||||
typedef struct {
|
||||
int32 max_users;
|
||||
} srvsvc_NetShareInfo1006;
|
||||
|
||||
typedef [bitmap32bit] bitmap {
|
||||
SHARE_1005_FLAGS_IN_DFS = 0x00000001,
|
||||
SHARE_1005_FLAGS_DFS_ROOT = 0x00000002,
|
||||
CSC_CACHE_AUTO_REINT = 0x00000010,
|
||||
CSC_CACHE_VDO = 0x00000020,
|
||||
FLAGS_RESTRICT_EXCLUSIVE_OPENS = 0x00000100,
|
||||
FLAGS_FORCE_SHARED_DELETE = 0x00000200,
|
||||
FLAGS_ALLOW_NAMESPACE_CACHING = 0x00000400,
|
||||
FLAGS_ACCESS_BASED_DIRECTORY_ENUM = 0x00000800
|
||||
} srvsvc_DFSFlags;
|
||||
|
||||
const uint32 SHARE_1005_CSC_POLICY_MASK = 0x00000030;
|
||||
const uint32 SHARE_1005_CSC_POLICY_SHIFT = 4;
|
||||
|
||||
typedef struct {
|
||||
uint32 count;
|
||||
[size_is(count)] srvsvc_NetShareInfo0 *array;
|
||||
} srvsvc_NetShareCtr0;
|
||||
|
||||
typedef struct {
|
||||
uint32 count;
|
||||
[size_is(count)] srvsvc_NetShareInfo1 *array;
|
||||
} srvsvc_NetShareCtr1;
|
||||
|
||||
typedef struct {
|
||||
uint32 count;
|
||||
[size_is(count)] srvsvc_NetShareInfo2 *array;
|
||||
} srvsvc_NetShareCtr2;
|
||||
|
||||
typedef struct {
|
||||
uint32 count;
|
||||
[size_is(count)] srvsvc_NetShareInfo501 *array;
|
||||
} srvsvc_NetShareCtr501;
|
||||
|
||||
typedef struct {
|
||||
uint32 count;
|
||||
[size_is(count)] srvsvc_NetShareInfo502 *array;
|
||||
} srvsvc_NetShareCtr502;
|
||||
|
||||
typedef struct {
|
||||
[string,charset(UTF16)] uint16 *comment;
|
||||
} srvsvc_NetShareInfo1004;
|
||||
|
||||
typedef struct {
|
||||
uint32 count;
|
||||
[size_is(count)] srvsvc_NetShareInfo1004 *array;
|
||||
} srvsvc_NetShareCtr1004;
|
||||
|
||||
const uint32 SHARE_1005_CSC_CACHE_MANUAL_REINT = 0x00000000;
|
||||
|
||||
typedef bitmap {
|
||||
SHARE_1005_IN_DFS = 0x00000001,
|
||||
SHARE_1005_DFS_ROOT = 0x00000002,
|
||||
SHARE_1005_CSC_CACHE_AUTO_REINT = 0x00000010,
|
||||
SHARE_1005_CSC_CACHE_VDO = 0x00000020,
|
||||
SHARE_1005_CSC_CACHE_NONE = 0x00000030,
|
||||
SHARE_1005_RESTRICT_EXCLUSIVE_OPENS = 0x00000100,
|
||||
SHARE_1005_FORCE_SHARED_DELETE = 0x00000200,
|
||||
SHARE_1005_ALLOW_NAMESPACE_CACHING = 0x00000400,
|
||||
SHARE_1005_ACCESS_BASED_DIRECTORY_ENUM = 0x00000800,
|
||||
SHARE_1005_FORCE_LEVELII_OPLOCK = 0x00001000,
|
||||
SHARE_1005_ENABLE_HASH = 0x00002000,
|
||||
SHARE_1005_ENABLE_CA = 0x00004000,
|
||||
SHARE_1005_ENCRYPT_DATA = 0x00008000
|
||||
} NetShareInfo1005Flags;
|
||||
|
||||
const uint32 SHARE_1005_CSC_POLICY_MASK = 0x00000030;
|
||||
const uint32 SHARE_1005_CSC_POLICY_SHIFT = 4;
|
||||
|
||||
typedef struct {
|
||||
srvsvc_DFSFlags dfs_flags;
|
||||
NetShareInfo1005Flags dfs_flags;
|
||||
} srvsvc_NetShareInfo1005;
|
||||
|
||||
typedef struct {
|
||||
|
@ -506,6 +530,10 @@
|
|||
[size_is(count)] srvsvc_NetShareInfo1005 *array;
|
||||
} srvsvc_NetShareCtr1005;
|
||||
|
||||
typedef struct {
|
||||
uint32 max_users;
|
||||
} srvsvc_NetShareInfo1006;
|
||||
|
||||
typedef struct {
|
||||
uint32 count;
|
||||
[size_is(count)] srvsvc_NetShareInfo1006 *array;
|
||||
|
@ -554,49 +582,53 @@
|
|||
[default] ;
|
||||
} srvsvc_NetShareCtr;
|
||||
|
||||
typedef struct {
|
||||
uint32 level;
|
||||
[switch_is(level)] srvsvc_NetShareCtr ctr;
|
||||
} srvsvc_NetShareInfoCtr;
|
||||
|
||||
/******************/
|
||||
/* Function: 0x0e */
|
||||
WERROR srvsvc_NetShareAdd(
|
||||
[in] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in,unique] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in] uint32 level,
|
||||
[in,switch_is(level)] srvsvc_NetShareInfo info,
|
||||
[in,out] uint32 *parm_error
|
||||
[in,ref,switch_is(level)] srvsvc_NetShareInfo *info,
|
||||
[in,out,unique] uint32 *parm_error
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x0f */
|
||||
WERROR srvsvc_NetShareEnumAll (
|
||||
[in] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in,out,ref] uint32 *level,
|
||||
[in,out,switch_is(level),ref] srvsvc_NetShareCtr *ctr,
|
||||
[in,unique] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in,out,ref] srvsvc_NetShareInfoCtr *info_ctr,
|
||||
[in] uint32 max_buffer,
|
||||
[out,ref] uint32 *totalentries,
|
||||
[in,out] uint32 *resume_handle
|
||||
[in,out,unique] uint32 *resume_handle
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x10 */
|
||||
WERROR srvsvc_NetShareGetInfo(
|
||||
[in] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in,unique] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in] [string,charset(UTF16)] uint16 share_name[],
|
||||
[in] uint32 level,
|
||||
[out,switch_is(level),ref] srvsvc_NetShareInfo *info
|
||||
[out,ref,switch_is(level)] srvsvc_NetShareInfo *info
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x11 */
|
||||
WERROR srvsvc_NetShareSetInfo(
|
||||
[in] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in,unique] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in] [string,charset(UTF16)] uint16 share_name[],
|
||||
[in] uint32 level,
|
||||
[in,switch_is(level)] srvsvc_NetShareInfo info,
|
||||
[in,out] uint32 *parm_error
|
||||
[in,ref,switch_is(level)] srvsvc_NetShareInfo *info,
|
||||
[in,out,unique] uint32 *parm_error
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x12 */
|
||||
WERROR srvsvc_NetShareDel(
|
||||
[in] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in,unique] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in] [string,charset(UTF16)] uint16 share_name[],
|
||||
[in] uint32 reserved
|
||||
);
|
||||
|
@ -604,15 +636,15 @@
|
|||
/******************/
|
||||
/* Function: 0x13 */
|
||||
WERROR srvsvc_NetShareDelSticky(
|
||||
[in] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in,unique] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in] [string,charset(UTF16)] uint16 share_name[],
|
||||
[in] uint32 reserved
|
||||
);
|
||||
|
||||
|
||||
/******************/
|
||||
/* Function: 0x14 */
|
||||
WERROR srvsvc_NetShareCheck(
|
||||
[in] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in,unique] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in] [string,charset(UTF16)] uint16 device_name[],
|
||||
[out,ref] srvsvc_ShareType *type
|
||||
);
|
||||
|
@ -628,12 +660,12 @@
|
|||
PLATFORM_ID_VMS = 700
|
||||
} srvsvc_PlatformId;
|
||||
|
||||
typedef struct {
|
||||
typedef [public] struct {
|
||||
srvsvc_PlatformId platform_id;
|
||||
[string,charset(UTF16)] uint16 *server_name;
|
||||
} srvsvc_NetSrvInfo100;
|
||||
|
||||
typedef struct {
|
||||
typedef [public] struct {
|
||||
srvsvc_PlatformId platform_id;
|
||||
[string,charset(UTF16)] uint16 *server_name;
|
||||
uint32 version_major;
|
||||
|
@ -678,6 +710,7 @@
|
|||
uint32 sessreqs;
|
||||
uint32 opensearch;
|
||||
uint32 activelocks;
|
||||
uint32 numreqbufs;
|
||||
uint32 sizereqbufs;
|
||||
uint32 numbigbufs;
|
||||
uint32 numfiletasks;
|
||||
|
@ -711,11 +744,12 @@
|
|||
uint32 sessreqs;
|
||||
uint32 opensearch;
|
||||
uint32 activelocks;
|
||||
uint32 numreqbufs;
|
||||
uint32 sizereqbufs;
|
||||
uint32 numbigbufs;
|
||||
uint32 numfiletasks;
|
||||
uint32 alertsched;
|
||||
uint32 eroralert;
|
||||
uint32 erroralert;
|
||||
uint32 logonalert;
|
||||
uint32 accessalert;
|
||||
uint32 diskalert;
|
||||
|
@ -1122,25 +1156,25 @@
|
|||
/******************/
|
||||
/* Function: 0x15 */
|
||||
WERROR srvsvc_NetSrvGetInfo(
|
||||
[in] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in,unique] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in] uint32 level,
|
||||
[out,switch_is(level),ref] srvsvc_NetSrvInfo *info
|
||||
[out,ref,switch_is(level)] srvsvc_NetSrvInfo *info
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x16 */
|
||||
WERROR srvsvc_NetSrvSetInfo(
|
||||
[in] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in,unique] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in] uint32 level,
|
||||
[in,switch_is(level)] srvsvc_NetSrvInfo info,
|
||||
[in,out] uint32 *parm_error
|
||||
[in,ref,switch_is(level)] srvsvc_NetSrvInfo *info,
|
||||
[in,out,unique] uint32 *parm_error
|
||||
);
|
||||
|
||||
/**************************/
|
||||
/* srvsvc_NetDisk */
|
||||
/**************************/
|
||||
typedef struct {
|
||||
[flag(STR_LEN4)] string disk;
|
||||
[charset(UTF16),string] uint16 disk[3];
|
||||
} srvsvc_NetDiskInfo0;
|
||||
|
||||
typedef struct {
|
||||
|
@ -1151,12 +1185,12 @@
|
|||
/******************/
|
||||
/* Function: 0x17 */
|
||||
WERROR srvsvc_NetDiskEnum(
|
||||
[in] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in,unique] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in] uint32 level,
|
||||
[in,out,ref] srvsvc_NetDiskInfo *info,
|
||||
[in] uint32 maxlen,
|
||||
[out,ref] uint32 *totalentries,
|
||||
[in,out] uint32 *resume_handle
|
||||
[out,ref] uint32 *totalentries,
|
||||
[in,out,unique] uint32 *resume_handle
|
||||
);
|
||||
|
||||
/**************************/
|
||||
|
@ -1185,11 +1219,11 @@
|
|||
/******************/
|
||||
/* Function: 0x18 */
|
||||
WERROR srvsvc_NetServerStatisticsGet(
|
||||
[in] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in] [string,charset(UTF16)] uint16 *service,
|
||||
[in,unique] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in,unique] [string,charset(UTF16)] uint16 *service,
|
||||
[in] uint32 level,
|
||||
[in] uint32 options,
|
||||
[out,ref] srvsvc_Statistics *stat
|
||||
[out,ref] srvsvc_Statistics **stats
|
||||
);
|
||||
|
||||
/**************************/
|
||||
|
@ -1206,7 +1240,7 @@
|
|||
/******************/
|
||||
/* Function: 0x19 */
|
||||
WERROR srvsvc_NetTransportAdd(
|
||||
[in] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in,unique] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in] uint32 level,
|
||||
[in,switch_is(level)] srvsvc_NetTransportInfo info
|
||||
);
|
||||
|
@ -1230,11 +1264,6 @@
|
|||
[size_is(count)] srvsvc_NetTransportInfo1 *array;
|
||||
} srvsvc_NetTransportCtr1;
|
||||
|
||||
typedef [bitmap32bit] bitmap {
|
||||
SVTI2_REMAP_PIPE_NAMES = 0x00000001
|
||||
} srvsvc_TransportFlags;
|
||||
|
||||
|
||||
typedef struct {
|
||||
uint32 vcs;
|
||||
[string,charset(UTF16)] uint16 *name;
|
||||
|
@ -1242,7 +1271,7 @@
|
|||
uint32 addr_len;
|
||||
[string,charset(UTF16)] uint16 *net_addr;
|
||||
[string,charset(UTF16)] uint16 *domain;
|
||||
srvsvc_TransportFlags transport_flags;
|
||||
uint32 unknown;
|
||||
} srvsvc_NetTransportInfo2;
|
||||
|
||||
typedef struct {
|
||||
|
@ -1257,9 +1286,9 @@
|
|||
uint32 addr_len;
|
||||
[string,charset(UTF16)] uint16 *net_addr;
|
||||
[string,charset(UTF16)] uint16 *domain;
|
||||
srvsvc_TransportFlags transport_flags;
|
||||
uint32 password_len;
|
||||
uint8 password[256];
|
||||
uint32 unknown1;
|
||||
uint32 unknown2;
|
||||
uint8 unknown3[256];
|
||||
} srvsvc_NetTransportInfo3;
|
||||
|
||||
typedef struct {
|
||||
|
@ -1275,23 +1304,27 @@
|
|||
[default];
|
||||
} srvsvc_NetTransportCtr;
|
||||
|
||||
typedef struct {
|
||||
uint32 level;
|
||||
[switch_is(level)] srvsvc_NetTransportCtr ctr;
|
||||
} srvsvc_NetTransportInfoCtr;
|
||||
|
||||
/******************/
|
||||
/* Function: 0x1a */
|
||||
WERROR srvsvc_NetTransportEnum(
|
||||
[in] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in,out,ref] uint32 *level,
|
||||
[in,out,switch_is(level),ref] srvsvc_NetTransportCtr *transports,
|
||||
[in,unique] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in,out,ref] srvsvc_NetTransportInfoCtr *transports,
|
||||
[in] uint32 max_buffer,
|
||||
[out,ref] uint32 *totalentries,
|
||||
[in,out] uint32 *resume_handle
|
||||
[out,ref] uint32 *totalentries,
|
||||
[in,out,unique] uint32 *resume_handle
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x1b */
|
||||
WERROR srvsvc_NetTransportDel(
|
||||
[in] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in] uint32 unknown,
|
||||
[in] srvsvc_NetTransportInfo0 transport
|
||||
[in,unique] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in] uint32 level,
|
||||
[in] srvsvc_NetTransportInfo0 *info0
|
||||
);
|
||||
|
||||
/**************************/
|
||||
|
@ -1315,8 +1348,8 @@
|
|||
/******************/
|
||||
/* Function: 0x1c */
|
||||
WERROR srvsvc_NetRemoteTOD(
|
||||
[in] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[out,unique] srvsvc_NetRemoteTODInfo *info
|
||||
[in,unique] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[out,ref] srvsvc_NetRemoteTODInfo **info
|
||||
);
|
||||
|
||||
/**************************/
|
||||
|
@ -1325,8 +1358,8 @@
|
|||
/******************/
|
||||
/* Function: 0x1d */
|
||||
WERROR srvsvc_NetSetServiceBits(
|
||||
[in] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in] [string,charset(UTF16)] uint16 *transport,
|
||||
[in,unique] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in,unique] [string,charset(UTF16)] uint16 *transport,
|
||||
[in] uint32 servicebits,
|
||||
[in] uint32 updateimmediately
|
||||
);
|
||||
|
@ -1337,7 +1370,7 @@
|
|||
/******************/
|
||||
/* Function: 0x1e */
|
||||
WERROR srvsvc_NetPathType(
|
||||
[in] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in,unique] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in] [string,charset(UTF16)] uint16 path[],
|
||||
[in] uint32 pathflags,
|
||||
[out,ref] uint32 *pathtype
|
||||
|
@ -1346,7 +1379,7 @@
|
|||
/******************/
|
||||
/* Function: 0x1f */
|
||||
WERROR srvsvc_NetPathCanonicalize(
|
||||
[in] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in,unique] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in] [string,charset(UTF16)] uint16 path[],
|
||||
[out] [size_is(maxbuf)] uint8 can_path[],
|
||||
[in] uint32 maxbuf,
|
||||
|
@ -1358,7 +1391,7 @@
|
|||
/******************/
|
||||
/* Function: 0x20 */
|
||||
WERROR srvsvc_NetPathCompare(
|
||||
[in] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in,unique] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in] [string,charset(UTF16)] uint16 path1[],
|
||||
[in] [string,charset(UTF16)] uint16 path2[],
|
||||
[in] uint32 pathtype,
|
||||
|
@ -1371,7 +1404,7 @@
|
|||
/******************/
|
||||
/* Function: 0x21 */
|
||||
WERROR srvsvc_NetNameValidate(
|
||||
[in] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in,unique] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in] [string,charset(UTF16)] uint16 name[],
|
||||
[in] uint32 name_type,
|
||||
[in] uint32 flags
|
||||
|
@ -1385,7 +1418,7 @@
|
|||
/******************/
|
||||
/* Function: 0x23 */
|
||||
WERROR srvsvc_NetPRNameCompare(
|
||||
[in] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in,unique] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in] [string,charset(UTF16)] uint16 name1[],
|
||||
[in] [string,charset(UTF16)] uint16 name2[],
|
||||
[in] uint32 name_type,
|
||||
|
@ -1397,22 +1430,21 @@
|
|||
/**************************/
|
||||
/******************/
|
||||
/* Function: 0x24 */
|
||||
/* Note, there must be some way to return entries read vs
|
||||
/* Note, there must be some way to return entries read vs
|
||||
total entries ... */
|
||||
WERROR srvsvc_NetShareEnum(
|
||||
[in] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in,out,ref] uint32 *level,
|
||||
[in,out,switch_is(level),ref] srvsvc_NetShareCtr *ctr,
|
||||
[in,unique] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in,out,ref] srvsvc_NetShareInfoCtr *info_ctr,
|
||||
[in] uint32 max_buffer,
|
||||
[out,ref] uint32 *totalentries,
|
||||
[in,out] uint32 *resume_handle
|
||||
[out,ref] uint32 *totalentries,
|
||||
[in,out,unique] uint32 *resume_handle
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x25 */
|
||||
WERROR srvsvc_NetShareDelStart(
|
||||
[in] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in] [string,charset(UTF16)] uint16 share[],
|
||||
[in,unique] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in,unique] [string,charset(UTF16)] uint16 *share,
|
||||
[in] uint32 reserved,
|
||||
[out,unique] policy_handle *hnd
|
||||
);
|
||||
|
@ -1420,27 +1452,27 @@
|
|||
/******************/
|
||||
/* Function: 0x26 */
|
||||
WERROR srvsvc_NetShareDelCommit(
|
||||
[in, out] policy_handle *hnd
|
||||
[in, out,unique] policy_handle *hnd
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x27 */
|
||||
WERROR srvsvc_NetGetFileSecurity(
|
||||
[in] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in] [string,charset(UTF16)] uint16 *share,
|
||||
[in,unique] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in,unique] [string,charset(UTF16)] uint16 *share,
|
||||
[in] [string,charset(UTF16)] uint16 file[],
|
||||
[in] security_secinfo securityinformation,
|
||||
[out,unique] sec_desc_buf *sd_buf
|
||||
[out,ref] sec_desc_buf **sd_buf
|
||||
);
|
||||
|
||||
/******************/
|
||||
/* Function: 0x28 */
|
||||
WERROR srvsvc_NetSetFileSecurity(
|
||||
[in] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in] [string,charset(UTF16)] uint16 *share,
|
||||
[in,unique] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in,unique] [string,charset(UTF16)] uint16 *share,
|
||||
[in] [string,charset(UTF16)] uint16 file[],
|
||||
[in] security_secinfo securityinformation,
|
||||
[in] sec_desc_buf sd_buf
|
||||
[in,ref] sec_desc_buf *sd_buf
|
||||
);
|
||||
|
||||
|
||||
|
@ -1455,7 +1487,7 @@
|
|||
/******************/
|
||||
/* Function: 0x29 */
|
||||
WERROR srvsvc_NetServerTransportAddEx(
|
||||
[in] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in,unique] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in] uint32 level,
|
||||
[in,switch_is(level)] srvsvc_NetTransportInfo info
|
||||
);
|
||||
|
@ -1463,9 +1495,9 @@
|
|||
/******************/
|
||||
/* Function: 0x2a */
|
||||
WERROR srvsvc_NetServerSetServiceBitsEx(
|
||||
[in] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in] [string,charset(UTF16)] uint16 *emulated_server_unc,
|
||||
[in] [string,charset(UTF16)] uint16 *transport,
|
||||
[in,unique] [string,charset(UTF16)] uint16 *server_unc,
|
||||
[in,unique] [string,charset(UTF16)] uint16 *emulated_server_unc,
|
||||
[in,unique] [string,charset(UTF16)] uint16 *transport,
|
||||
[in] uint32 servicebitsofinterest,
|
||||
[in] uint32 servicebits,
|
||||
[in] uint32 updateimmediately
|
||||
|
|
|
@ -24,12 +24,6 @@
|
|||
extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
|
||||
typedef enum {
|
||||
TCP_STREAM = 0,
|
||||
UDP_STREAM,
|
||||
MAX_STREAM
|
||||
} stream_type;
|
||||
|
||||
typedef enum {
|
||||
FRS_OK,
|
||||
FRS_OPEN_ERROR,
|
||||
|
@ -77,7 +71,6 @@ typedef union _stream_addr {
|
|||
struct _follow_info;
|
||||
|
||||
typedef gboolean (*follow_print_line_func)(char *, size_t, gboolean, void *);
|
||||
typedef frs_return_t (*follow_read_stream_func)(struct _follow_info *follow_info, follow_print_line_func follow_print, void *arg);
|
||||
|
||||
#define SUBSTREAM_UNUSED G_GUINT64_CONSTANT(0xFFFFFFFFFFFFFFFF)
|
||||
|
||||
|
|
|
@ -867,9 +867,6 @@ call_dissector_work(dissector_handle_t handle, tvbuff_t *tvb, packet_info *pinfo
|
|||
int len;
|
||||
guint saved_layers_len = 0;
|
||||
guint saved_tree_count = tree ? tree->tree_data->count : 0;
|
||||
gboolean saved_use_conv_addr_port_endpoints;
|
||||
struct conversation_addr_port_endpoints *saved_conv_addr_port_endpoints;
|
||||
struct conversation_element *saved_conv_elements;
|
||||
|
||||
if (handle->protocol != NULL &&
|
||||
!proto_is_protocol_enabled(handle->protocol)) {
|
||||
|
@ -884,10 +881,6 @@ call_dissector_work(dissector_handle_t handle, tvbuff_t *tvb, packet_info *pinfo
|
|||
saved_layers_len = wmem_list_count(pinfo->layers);
|
||||
DISSECTOR_ASSERT(saved_layers_len < PINFO_LAYER_MAX_RECURSION_DEPTH);
|
||||
|
||||
saved_use_conv_addr_port_endpoints = pinfo->use_conv_addr_port_endpoints;
|
||||
saved_conv_addr_port_endpoints = pinfo->conv_addr_port_endpoints;
|
||||
saved_conv_elements = pinfo->conv_elements;
|
||||
|
||||
/*
|
||||
* can_desegment is set to 2 by anyone which offers the
|
||||
* desegmentation api/service.
|
||||
|
@ -944,9 +937,6 @@ call_dissector_work(dissector_handle_t handle, tvbuff_t *tvb, packet_info *pinfo
|
|||
}
|
||||
pinfo->current_proto = saved_proto;
|
||||
pinfo->can_desegment = saved_can_desegment;
|
||||
pinfo->use_conv_addr_port_endpoints = saved_use_conv_addr_port_endpoints;
|
||||
pinfo->conv_addr_port_endpoints = saved_conv_addr_port_endpoints;
|
||||
pinfo->conv_elements = saved_conv_elements;
|
||||
return len;
|
||||
}
|
||||
|
||||
|
|
162
epan/pci-ids.c
|
@ -6,8 +6,8 @@
|
|||
*
|
||||
* List of PCI ID's
|
||||
*
|
||||
* Version: 2023.02.11
|
||||
* Date: 2023-02-11 03:15:01
|
||||
* Version: 2023.02.23
|
||||
* Date: 2023-02-23 03:15:02
|
||||
*
|
||||
* Maintained by Albert Pool, Martin Mares, and other volunteers from
|
||||
* the PCI ID Project at https://pci-ids.ucw.cz/.
|
||||
|
@ -147,6 +147,7 @@ pci_id_t pci_vid_021B[] = {
|
|||
|
||||
pci_id_t pci_vid_025E[] = {
|
||||
{0x025E, 0xFFFF, 0xFFFF, 0xFFFF, "Solidigm(0x025E)"},
|
||||
{0x025E, 0x0B60, 0xFFFF, 0xFFFF, "NVMe DC SSD [Sentinel Rock Plus controller](0x0B60)"},
|
||||
{0x025E, 0x0B70, 0xFFFF, 0xFFFF, "NVMe DC SSD [Yorktown controller](0x0B70)"},
|
||||
}; /* pci_vid_025E[] */
|
||||
|
||||
|
@ -1097,6 +1098,7 @@ pci_id_t pci_vid_1000[] = {
|
|||
{0x1000, 0x10E2, 0x1000, 0x4000, "MegaRAID 9560-16i(0x1000-0x4000)"},
|
||||
{0x1000, 0x10E2, 0x1000, 0x4002, "MegaRAID 9561-16i(0x1000-0x4002)"},
|
||||
{0x1000, 0x10E2, 0x1000, 0x4010, "MegaRAID 9560-8i(0x1000-0x4010)"},
|
||||
{0x1000, 0x10E2, 0x1000, 0x4015, "MegaRAID 9550-8i(0x1000-0x4015)"},
|
||||
{0x1000, 0x10E2, 0x1000, 0x4020, "MegaRAID 9580-8i8e(0x1000-0x4020)"},
|
||||
{0x1000, 0x10E2, 0x1000, 0x40B0, "MegaRAID 9562-16i(0x1000-0x40B0)"},
|
||||
{0x1000, 0x10E2, 0x1028, 0x1AE0, "PERC H755 Adapter(0x1028-0x1AE0)"},
|
||||
|
@ -1241,7 +1243,8 @@ pci_id_t pci_vid_1002[] = {
|
|||
{0x1002, 0x1551, 0xFFFF, 0xFFFF, "Arlene(0x1551)"},
|
||||
{0x1002, 0x1552, 0xFFFF, 0xFFFF, "Pooky(0x1552)"},
|
||||
{0x1002, 0x1561, 0xFFFF, 0xFFFF, "Anubis(0x1561)"},
|
||||
{0x1002, 0x15BF, 0xFFFF, 0xFFFF, "Phoenix(0x15BF)"},
|
||||
{0x1002, 0x15BF, 0xFFFF, 0xFFFF, "Phoenix1(0x15BF)"},
|
||||
{0x1002, 0x15C8, 0xFFFF, 0xFFFF, "Phoenix2(0x15C8)"},
|
||||
{0x1002, 0x15D8, 0xFFFF, 0xFFFF, "Picasso/Raven 2 [Radeon Vega Series / Radeon Vega Mobile Series](0x15D8)"},
|
||||
{0x1002, 0x15D8, 0x103C, 0x8615, "Pavilion Laptop 15-cw1xxx(0x103C-0x8615)"},
|
||||
{0x1002, 0x15D8, 0x17AA, 0x3181, "ThinkCentre M75n IoT(0x17AA-0x3181)"},
|
||||
|
@ -2591,8 +2594,8 @@ pci_id_t pci_vid_1002[] = {
|
|||
{0x1002, 0x6760, 0x1028, 0x0506, "Radeon HD 6470M(0x1028-0x0506)"},
|
||||
{0x1002, 0x6760, 0x1028, 0x0507, "Radeon HD 6470M(0x1028-0x0507)"},
|
||||
{0x1002, 0x6760, 0x1028, 0x0514, "Radeon HD 6470M(0x1028-0x0514)"},
|
||||
{0x1002, 0x6760, 0x1028, 0x051C, "Radeon HD 6450M(0x1028-0x051C)"},
|
||||
{0x1002, 0x6760, 0x1028, 0x051D, "Radeon HD 6450M(0x1028-0x051D)"},
|
||||
{0x1002, 0x6760, 0x1028, 0x051C, "Radeon HD 6450M / 7430M(0x1028-0x051C)"},
|
||||
{0x1002, 0x6760, 0x1028, 0x051D, "Radeon HD 6450M / 7430M(0x1028-0x051D)"},
|
||||
{0x1002, 0x6760, 0x103C, 0x161A, "Radeon HD 6470M(0x103C-0x161A)"},
|
||||
{0x1002, 0x6760, 0x103C, 0x161B, "Radeon HD 6470M(0x103C-0x161B)"},
|
||||
{0x1002, 0x6760, 0x103C, 0x161E, "Radeon HD 6470M(0x103C-0x161E)"},
|
||||
|
@ -3922,6 +3925,8 @@ pci_id_t pci_vid_1002[] = {
|
|||
{0x1002, 0x7310, 0xFFFF, 0xFFFF, "Navi 10 [Radeon Pro W5700X](0x7310)"},
|
||||
{0x1002, 0x7312, 0xFFFF, 0xFFFF, "Navi 10 [Radeon Pro W5700](0x7312)"},
|
||||
{0x1002, 0x7314, 0xFFFF, 0xFFFF, "Navi 10 USB(0x7314)"},
|
||||
{0x1002, 0x7319, 0xFFFF, 0xFFFF, "Navi 10 [Radeon Pro 5700 XT](0x7319)"},
|
||||
{0x1002, 0x731B, 0xFFFF, 0xFFFF, "Navi 10 [Radeon Pro 5700](0x731B)"},
|
||||
{0x1002, 0x731E, 0xFFFF, 0xFFFF, "TDC-150(0x731E)"},
|
||||
{0x1002, 0x731F, 0xFFFF, 0xFFFF, "Navi 10 [Radeon RX 5600 OEM/5600 XT / 5700/5700 XT](0x731F)"},
|
||||
{0x1002, 0x731F, 0x1002, 0x0B36, "Reference RX 5700 XT(0x1002-0x0B36)"},
|
||||
|
@ -3972,8 +3977,7 @@ pci_id_t pci_vid_1002[] = {
|
|||
{0x1002, 0x73E1, 0xFFFF, 0xFFFF, "Navi 23 WKS-XM [Radeon PRO W6600M](0x73E1)"},
|
||||
{0x1002, 0x73E3, 0xFFFF, 0xFFFF, "Navi 23 WKS-XL [Radeon PRO W6600](0x73E3)"},
|
||||
{0x1002, 0x73E4, 0xFFFF, 0xFFFF, "Navi 23 USB(0x73E4)"},
|
||||
{0x1002, 0x73EF, 0xFFFF, 0xFFFF, "Navi 23 [Radeon RX 6650 XT](0x73EF)"},
|
||||
{0x1002, 0x73EF, 0x1002, 0x73EF, "Navi 23 [Radeon RX 6700S / 6800S / 6650 XT](0x1002-0x73EF)"},
|
||||
{0x1002, 0x73EF, 0xFFFF, 0xFFFF, "Navi 23 [Radeon RX 6650 XT / 6700S / 6800S](0x73EF)"},
|
||||
{0x1002, 0x73EF, 0x1458, 0x2405, "Navi 23 [Radeon RX 6650 XT](0x1458-0x2405)"},
|
||||
{0x1002, 0x73FF, 0xFFFF, 0xFFFF, "Navi 23 [Radeon RX 6600/6600 XT/6600M](0x73FF)"},
|
||||
{0x1002, 0x73FF, 0x1462, 0x5022, "RX 6600 MECH 2X(0x1462-0x5022)"},
|
||||
|
@ -3990,6 +3994,9 @@ pci_id_t pci_vid_1002[] = {
|
|||
{0x1002, 0x743F, 0x1DA2, 0xE457, "PULSE AMD Radeon RX 6500 XT(0x1DA2-0xE457)"},
|
||||
{0x1002, 0x744C, 0xFFFF, 0xFFFF, "Navi 31 [Radeon RX 7900 XT/7900 XTX](0x744C)"},
|
||||
{0x1002, 0x744C, 0x1DA2, 0xE471, "NITRO+ RX 7900 XTX Vapor-X(0x1DA2-0xE471)"},
|
||||
{0x1002, 0x744C, 0x1EAE, 0x7901, "RX-79XMERCB9 [SPEEDSTER MERC 310 RX 7900 XTX](0x1EAE-0x7901)"},
|
||||
{0x1002, 0x7480, 0xFFFF, 0xFFFF, "Navi 33 [Radeon RX 7600S](0x7480)"},
|
||||
{0x1002, 0x7483, 0xFFFF, 0xFFFF, "Navi 33 [Radeon RX 7600M/7600M XT](0x7483)"},
|
||||
{0x1002, 0x7833, 0xFFFF, 0xFFFF, "RS350 Host Bridge(0x7833)"},
|
||||
{0x1002, 0x7834, 0xFFFF, 0xFFFF, "RS350 [Radeon 9100 PRO/XT IGP](0x7834)"},
|
||||
{0x1002, 0x7835, 0xFFFF, 0xFFFF, "RS350M [Mobility Radeon 9000 IGP](0x7835)"},
|
||||
|
@ -13397,7 +13404,7 @@ pci_id_t pci_vid_10DE[] = {
|
|||
{0x10DE, 0x25B9, 0xFFFF, 0xFFFF, "GA107GLM [RTX A1000 Laptop GPU](0x25B9)"},
|
||||
{0x10DE, 0x25BA, 0xFFFF, 0xFFFF, "GA107GLM [RTX A2000 8GB Laptop GPU](0x25BA)"},
|
||||
{0x10DE, 0x25BB, 0xFFFF, 0xFFFF, "GA107GLM [RTX A500 Laptop GPU](0x25BB)"},
|
||||
{0x10DE, 0x25BC, 0xFFFF, 0xFFFF, "GA107(0x25BC)"},
|
||||
{0x10DE, 0x25BC, 0xFFFF, 0xFFFF, "GA107GLM [RTX A1000 6GB Laptop GPU](0x25BC)"},
|
||||
{0x10DE, 0x25E0, 0xFFFF, 0xFFFF, "GA107BM [GeForce RTX 3050 Ti Mobile](0x25E0)"},
|
||||
{0x10DE, 0x25E2, 0xFFFF, 0xFFFF, "GA107BM [GeForce RTX 3050 Mobile](0x25E2)"},
|
||||
{0x10DE, 0x25E5, 0xFFFF, 0xFFFF, "GA107BM [GeForce RTX 3050 Mobile](0x25E5)"},
|
||||
|
@ -13419,19 +13426,19 @@ pci_id_t pci_vid_10DE[] = {
|
|||
{0x10DE, 0x2782, 0xFFFF, 0xFFFF, "AD104 [GeForce RTX 4070 Ti](0x2782)"},
|
||||
{0x10DE, 0x2785, 0xFFFF, 0xFFFF, "AD104(0x2785)"},
|
||||
{0x10DE, 0x2786, 0xFFFF, 0xFFFF, "AD104 [GeForce RTX 4070](0x2786)"},
|
||||
{0x10DE, 0x27A0, 0xFFFF, 0xFFFF, "GN21-X9(0x27A0)"},
|
||||
{0x10DE, 0x27A0, 0xFFFF, 0xFFFF, "AD104M [GeForce RTX 4080 Max-Q / Mobile](0x27A0)"},
|
||||
{0x10DE, 0x27B8, 0xFFFF, 0xFFFF, "AD104GL [L4](0x27B8)"},
|
||||
{0x10DE, 0x27BA, 0xFFFF, 0xFFFF, "AD104(0x27BA)"},
|
||||
{0x10DE, 0x27BB, 0xFFFF, 0xFFFF, "AD104GLM [RTX 3500 Ada Generation Laptop GPU](0x27BB)"},
|
||||
{0x10DE, 0x27E0, 0xFFFF, 0xFFFF, "GN21-X9(0x27E0)"},
|
||||
{0x10DE, 0x2820, 0xFFFF, 0xFFFF, "GN21-X6(0x2820)"},
|
||||
{0x10DE, 0x27E0, 0xFFFF, 0xFFFF, "AD104M [GeForce RTX 4080 Max-Q / Mobile](0x27E0)"},
|
||||
{0x10DE, 0x2820, 0xFFFF, 0xFFFF, "AD106M [GeForce RTX 4070 Max-Q / Mobile](0x2820)"},
|
||||
{0x10DE, 0x2838, 0xFFFF, 0xFFFF, "AD106GLM [RTX 3000 Ada Generation Laptop GPU](0x2838)"},
|
||||
{0x10DE, 0x2860, 0xFFFF, 0xFFFF, "GN21-X6(0x2860)"},
|
||||
{0x10DE, 0x28A0, 0xFFFF, 0xFFFF, "GN21-X4(0x28A0)"},
|
||||
{0x10DE, 0x28A1, 0xFFFF, 0xFFFF, "GN21-X2(0x28A1)"},
|
||||
{0x10DE, 0x2860, 0xFFFF, 0xFFFF, "AD106M [GeForce RTX 4070 Max-Q / Mobile](0x2860)"},
|
||||
{0x10DE, 0x28A0, 0xFFFF, 0xFFFF, "AD107M [GeForce RTX 4060 Max-Q / Mobile](0x28A0)"},
|
||||
{0x10DE, 0x28A1, 0xFFFF, 0xFFFF, "AD107M [GeForce RTX 4050 Max-Q / Mobile](0x28A1)"},
|
||||
{0x10DE, 0x28B8, 0xFFFF, 0xFFFF, "AD107GLM [RTX 2000 Ada Generation Laptop GPU](0x28B8)"},
|
||||
{0x10DE, 0x28E0, 0xFFFF, 0xFFFF, "GN21-X4(0x28E0)"},
|
||||
{0x10DE, 0x28E1, 0xFFFF, 0xFFFF, "GN21-X2(0x28E1)"},
|
||||
{0x10DE, 0x28E0, 0xFFFF, 0xFFFF, "AD107M [GeForce RTX 4060 Max-Q / Mobile](0x28E0)"},
|
||||
{0x10DE, 0x28E1, 0xFFFF, 0xFFFF, "AD107M [GeForce RTX 4050 Max-Q / Mobile](0x28E1)"},
|
||||
}; /* pci_vid_10DE[] */
|
||||
|
||||
pci_id_t pci_vid_10DF[] = {
|
||||
|
@ -22361,6 +22368,16 @@ pci_id_t pci_vid_144D[] = {
|
|||
{0x144D, 0xA80A, 0x0128, 0x2167, "DC NVMe PM9A3 RI 110M.2 1.92TB(0x0128-0x2167)"},
|
||||
{0x144D, 0xA80A, 0x0128, 0x2168, "DC NVMe PM9A3 RI 80M.2 480GB(0x0128-0x2168)"},
|
||||
{0x144D, 0xA80A, 0x0128, 0x2169, "DC NVMe PM9A3 RI 80M.2 960GB(0x0128-0x2169)"},
|
||||
{0x144D, 0xA80A, 0x1028, 0x215A, "DC NVMe PM9A3 RI U.2 960GB(0x1028-0x215A)"},
|
||||
{0x144D, 0xA80A, 0x1028, 0x215B, "DC NVMe PM9A3 RI U.2 1.92TB(0x1028-0x215B)"},
|
||||
{0x144D, 0xA80A, 0x1028, 0x215C, "DC NVMe PM9A3 RI U.2 3.84TB(0x1028-0x215C)"},
|
||||
{0x144D, 0xA80A, 0x1028, 0x2166, "DC NVMe PM9A3 RI 110M.2 960GB(0x1028-0x2166)"},
|
||||
{0x144D, 0xA80A, 0x1028, 0x2167, "DC NVMe PM9A3 RI 110M.2 1.92TB(0x1028-0x2167)"},
|
||||
{0x144D, 0xA80A, 0x1028, 0x2168, "DC NVMe PM9A3 RI 80M.2 480GB(0x1028-0x2168)"},
|
||||
{0x144D, 0xA80A, 0x1028, 0x2169, "DC NVMe PM9A3 RI 80M.2 960GB(0x1028-0x2169)"},
|
||||
{0x144D, 0xA80A, 0x1028, 0x2276, "DC NVMe PM9A3 RI 110M.2 960GB(0x1028-0x2276)"},
|
||||
{0x144D, 0xA80A, 0x1028, 0x2277, "DC NVMe PM9A3 RI 110M.2 1.92TB(0x1028-0x2277)"},
|
||||
{0x144D, 0xA80A, 0x1028, 0x512D, "DC NVMe PM9A3 RI U.2 7.68TB(0x1028-0x512D)"},
|
||||
{0x144D, 0xA80A, 0x144D, 0xA813, "General DC NVMe PM9A3(0x144D-0xA813)"},
|
||||
{0x144D, 0xA80B, 0xFFFF, 0xFFFF, "NVMe SSD Controller PM9B1(0xA80B)"},
|
||||
{0x144D, 0xA820, 0xFFFF, 0xFFFF, "NVMe SSD Controller 171X(0xA820)"},
|
||||
|
@ -22443,7 +22460,48 @@ pci_id_t pci_vid_144D[] = {
|
|||
{0x144D, 0xA824, 0x1028, 0x2132, "Ent NVMe v2 AGN FIPS RI U.2 15.36TB(0x1028-0x2132)"},
|
||||
{0x144D, 0xA824, 0x1028, 0x2133, "Ent NVMe v2 AGN RI U.2 15.36TB(0x1028-0x2133)"},
|
||||
{0x144D, 0xA825, 0xFFFF, 0xFFFF, "NVMe SSD Controller PM173Xa(0xA825)"},
|
||||
{0x144D, 0xA825, 0x1028, 0x2178, "Ent NVMe FIPS PM1733a RI 1.92TB(0x1028-0x2178)"},
|
||||
{0x144D, 0xA825, 0x1028, 0x2179, "Ent NVMe PM1733a RI 1.92TB(0x1028-0x2179)"},
|
||||
{0x144D, 0xA825, 0x1028, 0x217A, "Ent NVMe FIPS PM1733a RI 3.84TB(0x1028-0x217A)"},
|
||||
{0x144D, 0xA825, 0x1028, 0x217B, "Ent NVMe PM1733a RI 3.84TB(0x1028-0x217B)"},
|
||||
{0x144D, 0xA825, 0x1028, 0x217C, "Ent NVMe FIPS PM1733a RI 7.68TB(0x1028-0x217C)"},
|
||||
{0x144D, 0xA825, 0x1028, 0x217D, "Ent NVMe PM1733a RI 7.68TB(0x1028-0x217D)"},
|
||||
{0x144D, 0xA825, 0x1028, 0x217E, "Ent NVMe FIPS PM1733a RI 15.36TB(0x1028-0x217E)"},
|
||||
{0x144D, 0xA825, 0x1028, 0x217F, "Ent NVMe PM1733a RI 15.36TB(0x1028-0x217F)"},
|
||||
{0x144D, 0xA825, 0x1028, 0x2180, "Ent NVMe FIPS PM1735a MU 1.6TB(0x1028-0x2180)"},
|
||||
{0x144D, 0xA825, 0x1028, 0x2181, "Ent NVMe PM1735a MU 1.6TB(0x1028-0x2181)"},
|
||||
{0x144D, 0xA825, 0x1028, 0x2182, "Ent NVMe FIPS PM1735a MU 3.2TB(0x1028-0x2182)"},
|
||||
{0x144D, 0xA825, 0x1028, 0x2183, "Ent NVMe PM1735a MU 3.2TB(0x1028-0x2183)"},
|
||||
{0x144D, 0xA825, 0x1028, 0x2184, "Ent NVMe FIPS PM1735a MU 6.4TB(0x1028-0x2184)"},
|
||||
{0x144D, 0xA825, 0x1028, 0x2185, "Ent NVMe PM1735a MU 6.4TB(0x1028-0x2185)"},
|
||||
{0x144D, 0xA825, 0x1028, 0x2186, "Ent NVMe FIPS PM1735a MU 12.8TB(0x1028-0x2186)"},
|
||||
{0x144D, 0xA825, 0x1028, 0x2187, "Ent NVMe PM1735a MU 12.8TB(0x1028-0x2187)"},
|
||||
{0x144D, 0xA825, 0x1028, 0x226A, "Ent NVMe FIPS PM1733a RI 30.72TB(0x1028-0x226A)"},
|
||||
{0x144D, 0xA826, 0xFFFF, 0xFFFF, "NVMe SSD Controller PM174X(0xA826)"},
|
||||
{0x144D, 0xA826, 0x1028, 0x2214, "NVMe PM1743 RI E3.S 1.92TB(0x1028-0x2214)"},
|
||||
{0x144D, 0xA826, 0x1028, 0x2216, "NVMe PM1743 RI E3.S 3.84TB(0x1028-0x2216)"},
|
||||
{0x144D, 0xA826, 0x1028, 0x2218, "NVMe PM1743 RI E3.S 7.68TB(0x1028-0x2218)"},
|
||||
{0x144D, 0xA826, 0x1028, 0x221A, "NVMe PM1743 RI E3.S 15.36TB(0x1028-0x221A)"},
|
||||
{0x144D, 0xA826, 0x1028, 0x221C, "NVMe PM1745 MU E3.S 1.6TB(0x1028-0x221C)"},
|
||||
{0x144D, 0xA826, 0x1028, 0x221E, "NVMe PM1745 MU E3.S 3.2TB(0x1028-0x221E)"},
|
||||
{0x144D, 0xA826, 0x1028, 0x2220, "NVMe PM1745 MU E3.S 6.4TB(0x1028-0x2220)"},
|
||||
{0x144D, 0xA826, 0x1028, 0x2222, "NVMe PM1745 MU E3.S 12.8TB(0x1028-0x2222)"},
|
||||
{0x144D, 0xA826, 0x1028, 0x224E, "NVMe FIPS PM1743 RI U.2 1.92TB(0x1028-0x224E)"},
|
||||
{0x144D, 0xA826, 0x1028, 0x224F, "NVMe PM1743 RI U.2 1.92TB(0x1028-0x224F)"},
|
||||
{0x144D, 0xA826, 0x1028, 0x2250, "NVMe FIPS PM1743 RI U.2 3.84TB(0x1028-0x2250)"},
|
||||
{0x144D, 0xA826, 0x1028, 0x2251, "NVMe PM1743 RI U.2 3.84TB(0x1028-0x2251)"},
|
||||
{0x144D, 0xA826, 0x1028, 0x2252, "NVMe FIPS PM1743 RI U.2 7.68TB(0x1028-0x2252)"},
|
||||
{0x144D, 0xA826, 0x1028, 0x2253, "NVMe PM1743 RI U.2 7.68TB(0x1028-0x2253)"},
|
||||
{0x144D, 0xA826, 0x1028, 0x2254, "NVMe FIPS PM1743 RI U.2 15.36TB(0x1028-0x2254)"},
|
||||
{0x144D, 0xA826, 0x1028, 0x2255, "NVMe PM1743 RI U.2 15.36TB(0x1028-0x2255)"},
|
||||
{0x144D, 0xA826, 0x1028, 0x2258, "NVMe FIPS PM1745 MU U.2 1.6TB(0x1028-0x2258)"},
|
||||
{0x144D, 0xA826, 0x1028, 0x2259, "NVMe PM1745 MU U.2 1.6TB(0x1028-0x2259)"},
|
||||
{0x144D, 0xA826, 0x1028, 0x225A, "NVMe FIPS PM1745 MU U.2 3.2TB(0x1028-0x225A)"},
|
||||
{0x144D, 0xA826, 0x1028, 0x225B, "NVMe PM1745 MU U.2 3.2TB(0x1028-0x225B)"},
|
||||
{0x144D, 0xA826, 0x1028, 0x225C, "NVMe FIPS PM1745 MU U.2 6.4TB(0x1028-0x225C)"},
|
||||
{0x144D, 0xA826, 0x1028, 0x225D, "NVMe PM1745 MU U.2 6.4TB(0x1028-0x225D)"},
|
||||
{0x144D, 0xA826, 0x1028, 0x225E, "NVMe FIPS PM1745 MU U.2 12.8TB(0x1028-0x225E)"},
|
||||
{0x144D, 0xA826, 0x1028, 0x225F, "NVMe PM1745 MU U.2 12.8TB(0x1028-0x225F)"},
|
||||
{0x144D, 0xECEC, 0xFFFF, 0xFFFF, "Exynos 8895 PCIe Root Complex(0xECEC)"},
|
||||
}; /* pci_vid_144D[] */
|
||||
|
||||
|
@ -25300,6 +25358,8 @@ pci_id_t pci_vid_15B3[] = {
|
|||
{0x15B3, 0x0281, 0xFFFF, 0xFFFF, "NPS-600 Flash Recovery(0x0281)"},
|
||||
{0x15B3, 0x0282, 0xFFFF, 0xFFFF, "ArcusE Flash recovery(0x0282)"},
|
||||
{0x15B3, 0x0283, 0xFFFF, 0xFFFF, "ArcusE RMA(0x0283)"},
|
||||
{0x15B3, 0x0284, 0xFFFF, 0xFFFF, "Sagitta(0x0284)"},
|
||||
{0x15B3, 0x0285, 0xFFFF, 0xFFFF, "Sagitta RMA(0x0285)"},
|
||||
{0x15B3, 0x1002, 0xFFFF, 0xFFFF, "MT25400 Family [ConnectX-2 Virtual Function](0x1002)"},
|
||||
{0x15B3, 0x1003, 0xFFFF, 0xFFFF, "MT27500 Family [ConnectX-3](0x1003)"},
|
||||
{0x15B3, 0x1003, 0x1014, 0x04B5, "PCIe3 40GbE RoCE Converged Host Bus Adapter for Power(0x1014-0x04B5)"},
|
||||
|
@ -26656,6 +26716,7 @@ pci_id_t pci_vid_16E2[] = {
|
|||
{0x16E2, 0x5050, 0xFFFF, 0xFFFF, "GC5050 Dynamic Digital I/O with Algorithmic Sequencer PCI Board(0x5050)"},
|
||||
{0x16E2, 0x5055, 0xFFFF, 0xFFFF, "GX5055 Dynamic Digital I/O with Pin Electronics PXI Board(0x5055)"},
|
||||
{0x16E2, 0x5083, 0xFFFF, 0xFFFF, "GX5083 Dynamic Digital I/O with Algorithmic Sequencer PXI Board(0x5083)"},
|
||||
{0x16E2, 0x5105, 0xFFFF, 0xFFFF, "GX5105 High-Speed Digital I/O Timing (Master) Module PXI Board(0x5105)"},
|
||||
{0x16E2, 0x5106, 0xFFFF, 0xFFFF, "GX5106 High-Speed Digital I/O Cycle Timing (Master) Module PXI Board(0x5106)"},
|
||||
{0x16E2, 0x5151, 0xFFFF, 0xFFFF, "GX5150/1 High Speed Digital I/O (50/100MHz) PXI Board(0x5151)"},
|
||||
{0x16E2, 0x5152, 0xFFFF, 0xFFFF, "GX5152/3 DSR High Speed Digital Stimulus/Response PXI Board(0x5152)"},
|
||||
|
@ -27208,6 +27269,9 @@ pci_id_t pci_vid_17D3[] = {
|
|||
{0x17D3, 0x1880, 0x17D3, 0x1882, "ARC-1882 8/12/16/24 Port PCIe 3.0 to SAS/SATA 6Gb RAID Controller(0x17D3-0x1882)"},
|
||||
{0x17D3, 0x1880, 0x17D3, 0x1883, "ARC-1883 8/12/16/24 Port PCIe 3.0 to SAS/SATA 12Gb RAID Controller(0x17D3-0x1883)"},
|
||||
{0x17D3, 0x1884, 0xFFFF, 0xFFFF, "ARC-1884 series PCIe 3.0 to SAS/SATA 12/6Gb RAID Controller(0x1884)"},
|
||||
{0x17D3, 0x1886, 0xFFFF, 0xFFFF, "ARC-1886 series PCIe 4.0 to NVMe/SAS/SATA 16/12/6Gb RAID Controller(0x1886)"},
|
||||
{0x17D3, 0x1886, 0x17D3, 0x1686, "ARC-1686 PCIe 4.0 to NVMe/SAS/SATA 16/12/6Gb RAID Controller(0x17D3-0x1686)"},
|
||||
{0x17D3, 0x1886, 0x17D3, 0x1886, "ARC-1886 PCIe 4.0 to NVMe/SAS/SATA 16/12/6Gb RAID Controller(0x17D3-0x1886)"},
|
||||
{0x17D3, 0x188A, 0xFFFF, 0xFFFF, "ARC-1886 series PCIe 4.0 to NVMe/SAS/SATA 16/12/6Gb RAID Controller(0x188A)"},
|
||||
{0x17D3, 0x188A, 0x17D3, 0x1217, "ARC-1217 4-Port PCIe 4.0 to SAS/SATA 12/6Gb RAID Controller(0x17D3-0x1217)"},
|
||||
{0x17D3, 0x188A, 0x17D3, 0x1227, "ARC-1227 8-Port PCIe 4.0 to SAS/SATA 12/6Gb RAID Controller(0x17D3-0x1227)"},
|
||||
|
@ -29634,7 +29698,7 @@ pci_id_t pci_vid_1C5F[] = {
|
|||
{0x1C5F, 0x000D, 0x1C5F, 0x4221, "NVMe SSD PBlaze5 526 1600G 2.5\" U.2(0x1C5F-0x4221)"},
|
||||
{0x1C5F, 0x000D, 0x1C5F, 0x4230, "NVMe SSD PBlaze5 526 3200G AIC(0x1C5F-0x4230)"},
|
||||
{0x1C5F, 0x000D, 0x1C5F, 0x4231, "NVMe SSD PBlaze5 526 3200G 2.5\" U.2(0x1C5F-0x4231)"},
|
||||
{0x1C5F, 0x000E, 0xFFFF, 0xFFFF, "PBlaze6 6530(0x000E)"},
|
||||
{0x1C5F, 0x000E, 0xFFFF, 0xFFFF, "PBlaze6 6530/6531/6541/6630(0x000E)"},
|
||||
{0x1C5F, 0x000E, 0x1C5F, 0x0B20, "NVMe SSD PBlaze6 6530 1920G AIC(0x1C5F-0x0B20)"},
|
||||
{0x1C5F, 0x000E, 0x1C5F, 0x0B21, "NVMe SSD PBlaze6 6530 1920G 2.5\" U.2(0x1C5F-0x0B21)"},
|
||||
{0x1C5F, 0x000E, 0x1C5F, 0x0B25, "NVMe SSD PBlaze6 6530 1920G E1.S(0x1C5F-0x0B25)"},
|
||||
|
@ -29646,6 +29710,7 @@ pci_id_t pci_vid_1C5F[] = {
|
|||
{0x1C5F, 0x000E, 0x1C5F, 0x0B40, "NVMe SSD PBlaze6 6530 7680G AIC(0x1C5F-0x0B40)"},
|
||||
{0x1C5F, 0x000E, 0x1C5F, 0x0B41, "NVMe SSD PBlaze6 6530 7680G 2.5\" U.2(0x1C5F-0x0B41)"},
|
||||
{0x1C5F, 0x000E, 0x1C5F, 0x0B47, "NVMe SSD PBlaze6 6630 7680G 2.5\" U.2(0x1C5F-0x0B47)"},
|
||||
{0x1C5F, 0x000E, 0x1C5F, 0x1321, "NVMe SSD PBlaze6 6531 1920G 2.5\" U.2(0x1C5F-0x1321)"},
|
||||
{0x1C5F, 0x000E, 0x1C5F, 0x1331, "NVMe SSD PBlaze6 6531 3840G 2.5\" U.2(0x1C5F-0x1331)"},
|
||||
{0x1C5F, 0x000E, 0x1C5F, 0x1341, "NVMe SSD PBlaze6 6531 7680G 2.5\" U.2(0x1C5F-0x1341)"},
|
||||
{0x1C5F, 0x000E, 0x1C5F, 0x1431, "NVMe SSD PBlaze6 6541 3840G 2.5\" U.2(0x1C5F-0x1431)"},
|
||||
|
@ -29661,6 +29726,7 @@ pci_id_t pci_vid_1C5F[] = {
|
|||
{0x1C5F, 0x000E, 0x1C5F, 0x4B40, "NVMe SSD PBlaze6 6536 6400G AIC(0x1C5F-0x4B40)"},
|
||||
{0x1C5F, 0x000E, 0x1C5F, 0x4B41, "NVMe SSD PBlaze6 6536 6400G 2.5\" U.2(0x1C5F-0x4B41)"},
|
||||
{0x1C5F, 0x000E, 0x1C5F, 0x4B47, "NVMe SSD PBlaze6 6636 6400G 2.5\" U.2(0x1C5F-0x4B47)"},
|
||||
{0x1C5F, 0x000E, 0x1C5F, 0x5321, "NVMe SSD PBlaze6 6537 1600G 2.5\" U.2(0x1C5F-0x5321)"},
|
||||
{0x1C5F, 0x000E, 0x1C5F, 0x5331, "NVMe SSD PBlaze6 6537 3200G 2.5\" U.2(0x1C5F-0x5331)"},
|
||||
{0x1C5F, 0x000E, 0x1C5F, 0x5341, "NVMe SSD PBlaze6 6537 6400G 2.5\" U.2(0x1C5F-0x5341)"},
|
||||
{0x1C5F, 0x000E, 0x1C5F, 0x5431, "NVMe SSD PBlaze6 6547 3200G 2.5\" U.2(0x1C5F-0x5431)"},
|
||||
|
@ -30177,6 +30243,7 @@ pci_id_t pci_vid_1D87[] = {
|
|||
{0x1D87, 0x0100, 0xFFFF, 0xFFFF, "RK3399 PCI Express Root Port(0x0100)"},
|
||||
{0x1D87, 0x1808, 0xFFFF, 0xFFFF, "RK1808 Neural Network Processor Card(0x1808)"},
|
||||
{0x1D87, 0x3528, 0xFFFF, 0xFFFF, "RK3528 PCI Express Root Port(0x3528)"},
|
||||
{0x1D87, 0x3562, 0xFFFF, 0xFFFF, "RK3562 PCI Express Root Port(0x3562)"},
|
||||
{0x1D87, 0x3566, 0xFFFF, 0xFFFF, "RK3568 Remote Signal Processor(0x3566)"},
|
||||
{0x1D87, 0x3588, 0xFFFF, 0xFFFF, "RK3588(0x3588)"},
|
||||
}; /* pci_vid_1D87[] */
|
||||
|
@ -30592,6 +30659,8 @@ pci_id_t pci_vid_1DF7[] = {
|
|||
|
||||
pci_id_t pci_vid_1DF8[] = {
|
||||
{0x1DF8, 0xFFFF, 0xFFFF, 0xFFFF, "V&G Information System Co.,Ltd(0x1DF8)"},
|
||||
{0x1DF8, 0x3000, 0xFFFF, 0xFFFF, "PC NVMe SSD(0x3000)"},
|
||||
{0x1DF8, 0x3000, 0x1DF8, 0x3100, "M.2 NVMe Gen3*4 SSD(0x1DF8-0x3100)"},
|
||||
{0x1DF8, 0xC000, 0xFFFF, 0xFFFF, "DC NVMe SSD(0xC000)"},
|
||||
{0x1DF8, 0xC000, 0x1DF8, 0xC600, "Enterprise U.2 NVMe SSD(0x1DF8-0xC600)"},
|
||||
{0x1DF8, 0xD000, 0xFFFF, 0xFFFF, "PC NVMe SSD(0xD000)"},
|
||||
|
@ -30645,6 +30714,17 @@ pci_id_t pci_vid_1E0F[] = {
|
|||
{0x1E0F, 0x0011, 0x1028, 0x2193, "NVMe CD7 E3.S 1.92TB(0x1028-0x2193)"},
|
||||
{0x1E0F, 0x0011, 0x1028, 0x2194, "NVMe CD7 E3.S 3.84TB(0x1028-0x2194)"},
|
||||
{0x1E0F, 0x0011, 0x1028, 0x2195, "NVMe CD7 E3.S 7.68TB(0x1028-0x2195)"},
|
||||
{0x1E0F, 0x001F, 0xFFFF, 0xFFFF, "NVMe SSD Controller CD8(0x001F)"},
|
||||
{0x1E0F, 0x001F, 0x1028, 0x2223, "DC NVMe CD8 U.2 SED 15.36TB(0x1028-0x2223)"},
|
||||
{0x1E0F, 0x001F, 0x1028, 0x2224, "DC NVMe CD8 U.2 SED 7.68TB(0x1028-0x2224)"},
|
||||
{0x1E0F, 0x001F, 0x1028, 0x2225, "DC NVMe CD8 U.2 SED 3.84TB(0x1028-0x2225)"},
|
||||
{0x1E0F, 0x001F, 0x1028, 0x2226, "DC NVMe CD8 U.2 SED 1.92TB(0x1028-0x2226)"},
|
||||
{0x1E0F, 0x001F, 0x1028, 0x2227, "DC NVMe CD8 U.2 SED 960GB(0x1028-0x2227)"},
|
||||
{0x1E0F, 0x001F, 0x1028, 0x2228, "DC NVMe CD8 U.2 15.36TB(0x1028-0x2228)"},
|
||||
{0x1E0F, 0x001F, 0x1028, 0x2229, "DC NVMe CD8 U.2 7.68TB(0x1028-0x2229)"},
|
||||
{0x1E0F, 0x001F, 0x1028, 0x222A, "DC NVMe CD8 U.2 3.84TB(0x1028-0x222A)"},
|
||||
{0x1E0F, 0x001F, 0x1028, 0x222B, "DC NVMe CD8 U.2 1.92TB(0x1028-0x222B)"},
|
||||
{0x1E0F, 0x001F, 0x1028, 0x222C, "DC NVMe CD8 U.2 960GB(0x1028-0x222C)"},
|
||||
}; /* pci_vid_1E0F[] */
|
||||
|
||||
pci_id_t pci_vid_1E17[] = {
|
||||
|
@ -31088,7 +31168,13 @@ pci_id_t pci_vid_1F0F[] = {
|
|||
{0x1F0F, 0x1222, 0xFFFF, 0xFFFF, "D1055AS Ethernet Controller(0x1222)"},
|
||||
{0x1F0F, 0x1223, 0xFFFF, 0xFFFF, "D1055AS Ethernet Controller(0x1223)"},
|
||||
{0x1F0F, 0x1600, 0xFFFF, 0xFFFF, "M16104 Family(0x1600)"},
|
||||
{0x1F0F, 0x1600, 0x1F0F, 0x0001, "M16104 Family(0x1F0F-0x0001)"},
|
||||
{0x1F0F, 0x1601, 0xFFFF, 0xFFFF, "M16104 Family Virtual Function(0x1601)"},
|
||||
{0x1F0F, 0x1601, 0x1F0F, 0x0001, "M16104 Family Virtual Function(0x1F0F-0x0001)"},
|
||||
{0x1F0F, 0x1A00, 0xFFFF, 0xFFFF, "M16104 Family(0x1A00)"},
|
||||
{0x1F0F, 0x1A00, 0x1F0F, 0x0001, "M16104 Family(0x1F0F-0x0001)"},
|
||||
{0x1F0F, 0x1A01, 0xFFFF, 0xFFFF, "M16104 Family Virtual Function(0x1A01)"},
|
||||
{0x1F0F, 0x1A01, 0x1F0F, 0x0001, "M16104 Family Virtual Function(0x1F0F-0x0001)"},
|
||||
{0x1F0F, 0x2022, 0xFFFF, 0xFFFF, "D1055AS PCI Express Switch Upstream Port(0x2022)"},
|
||||
{0x1F0F, 0x9088, 0xFFFF, 0xFFFF, "D1055AS PCI Express Switch Downstream Port(0x9088)"},
|
||||
}; /* pci_vid_1F0F[] */
|
||||
|
@ -32649,6 +32735,7 @@ pci_id_t pci_vid_8086[] = {
|
|||
{0x8086, 0x06BA, 0xFFFF, 0xFFFF, "Comet Lake PCI Express Root Port #1(0x06BA)"},
|
||||
{0x8086, 0x06BB, 0xFFFF, 0xFFFF, "Comet Lake PCI Express Root Port #4(0x06BB)"},
|
||||
{0x8086, 0x06BD, 0xFFFF, 0xFFFF, "Comet Lake PCIe Port #6(0x06BD)"},
|
||||
{0x8086, 0x06BF, 0xFFFF, 0xFFFF, "Comet Lake PCIe Port #8(0x06BF)"},
|
||||
{0x8086, 0x06C0, 0xFFFF, 0xFFFF, "Comet Lake PCI Express Root Port #17(0x06C0)"},
|
||||
{0x8086, 0x06C8, 0xFFFF, 0xFFFF, "Comet Lake PCH cAVS(0x06C8)"},
|
||||
{0x8086, 0x06D2, 0xFFFF, 0xFFFF, "Comet Lake SATA AHCI Controller(0x06D2)"},
|
||||
|
@ -34518,6 +34605,7 @@ pci_id_t pci_vid_8086[] = {
|
|||
{0x8086, 0x1592, 0x8086, 0x0010, "Ethernet 100G 2P E810-C-stg Adapter(0x8086-0x0010)"},
|
||||
{0x8086, 0x1592, 0x8086, 0x0011, "Ethernet Network Adapter E810-C-Q1 for OCP3.0(0x8086-0x0011)"},
|
||||
{0x8086, 0x1592, 0x8086, 0x0012, "Ethernet 100G 2P E810-C-st Adapter(0x8086-0x0012)"},
|
||||
{0x8086, 0x1592, 0x8086, 0x0013, "Ethernet Network Adapter E810-C-Q1 for OCP 3.0(0x8086-0x0013)"},
|
||||
{0x8086, 0x1593, 0xFFFF, 0xFFFF, "Ethernet Controller E810-C for SFP(0x1593)"},
|
||||
{0x8086, 0x1593, 0x1137, 0x02C3, "E810XXVDA4 4x25/10 GbE SFP28 PCIe NIC(0x1137-0x02C3)"},
|
||||
{0x8086, 0x1593, 0x1137, 0x02E9, "E810XXVDA4TG 4x25/10 GbE SFP28 PCIe NIC(0x1137-0x02E9)"},
|
||||
|
@ -41737,6 +41825,16 @@ pci_id_t pci_vid_C0FE[] = {
|
|||
{0xC0FE, 0xFFFF, 0xFFFF, 0xFFFF, "Motion Engineering, Inc.(0xC0FE)"},
|
||||
}; /* pci_vid_C0FE[] */
|
||||
|
||||
pci_id_t pci_vid_CA01[] = {
|
||||
{0xCA01, 0xFFFF, 0xFFFF, 0xFFFF, "I-TEK OptoElectronics Co., LTD.(0xCA01)"},
|
||||
{0xCA01, 0x0212, 0xFFFF, 0xFFFF, "Vulcan-CL(0x0212)"},
|
||||
}; /* pci_vid_CA01[] */
|
||||
|
||||
pci_id_t pci_vid_CA02[] = {
|
||||
{0xCA02, 0xFFFF, 0xFFFF, 0xFFFF, "I-TEK OptoElectronics Co., LTD.(0xCA02)"},
|
||||
{0xCA02, 0x0213, 0xFFFF, 0xFFFF, "Vulcan-CXP(0x0213)"},
|
||||
}; /* pci_vid_CA02[] */
|
||||
|
||||
pci_id_t pci_vid_CA3B[] = {
|
||||
{0xCA3B, 0xFFFF, 0xFFFF, 0xFFFF, "Cambrionix Ltd.(0xCA3B)"},
|
||||
}; /* pci_vid_CA3B[] */
|
||||
|
@ -42197,7 +42295,7 @@ pci_vid_index_t pci_vid_index[] = {
|
|||
{0x01DE, 4, pci_vid_01DE },
|
||||
{0x0200, 1, pci_vid_0200 },
|
||||
{0x021B, 2, pci_vid_021B },
|
||||
{0x025E, 2, pci_vid_025E },
|
||||
{0x025E, 3, pci_vid_025E },
|
||||
{0x0270, 1, pci_vid_0270 },
|
||||
{0x0291, 1, pci_vid_0291 },
|
||||
{0x02AC, 2, pci_vid_02AC },
|
||||
|
@ -42225,9 +42323,9 @@ pci_vid_index_t pci_vid_index[] = {
|
|||
{0x0E55, 1, pci_vid_0E55 },
|
||||
{0x0EAC, 2, pci_vid_0EAC },
|
||||
{0x0F62, 1, pci_vid_0F62 },
|
||||
{0x1000, 756, pci_vid_1000 },
|
||||
{0x1000, 757, pci_vid_1000 },
|
||||
{0x1001, 10, pci_vid_1001 },
|
||||
{0x1002, 3204, pci_vid_1002 },
|
||||
{0x1002, 3209, pci_vid_1002 },
|
||||
{0x1003, 2, pci_vid_1003 },
|
||||
{0x1004, 34, pci_vid_1004 },
|
||||
{0x1005, 8, pci_vid_1005 },
|
||||
|
@ -43292,7 +43390,7 @@ pci_vid_index_t pci_vid_index[] = {
|
|||
{0x144A, 15, pci_vid_144A },
|
||||
{0x144B, 1, pci_vid_144B },
|
||||
{0x144C, 1, pci_vid_144C },
|
||||
{0x144D, 107, pci_vid_144D },
|
||||
{0x144D, 158, pci_vid_144D },
|
||||
{0x144E, 1, pci_vid_144E },
|
||||
{0x144F, 1, pci_vid_144F },
|
||||
{0x1450, 1, pci_vid_1450 },
|
||||
|
@ -43644,7 +43742,7 @@ pci_vid_index_t pci_vid_index[] = {
|
|||
{0x15B0, 1, pci_vid_15B0 },
|
||||
{0x15B1, 1, pci_vid_15B1 },
|
||||
{0x15B2, 1, pci_vid_15B2 },
|
||||
{0x15B3, 245, pci_vid_15B3 },
|
||||
{0x15B3, 247, pci_vid_15B3 },
|
||||
{0x15B4, 1, pci_vid_15B4 },
|
||||
{0x15B5, 1, pci_vid_15B5 },
|
||||
{0x15B6, 17, pci_vid_15B6 },
|
||||
|
@ -43781,7 +43879,7 @@ pci_vid_index_t pci_vid_index[] = {
|
|||
{0x16D5, 98, pci_vid_16D5 },
|
||||
{0x16DA, 2, pci_vid_16DA },
|
||||
{0x16DF, 1, pci_vid_16DF },
|
||||
{0x16E2, 60, pci_vid_16E2 },
|
||||
{0x16E2, 61, pci_vid_16E2 },
|
||||
{0x16E3, 2, pci_vid_16E3 },
|
||||
{0x16E5, 3, pci_vid_16E5 },
|
||||
{0x16EC, 7, pci_vid_16EC },
|
||||
|
@ -43833,7 +43931,7 @@ pci_vid_index_t pci_vid_index[] = {
|
|||
{0x17CC, 2, pci_vid_17CC },
|
||||
{0x17CD, 1, pci_vid_17CD },
|
||||
{0x17CF, 1, pci_vid_17CF },
|
||||
{0x17D3, 43, pci_vid_17D3 },
|
||||
{0x17D3, 46, pci_vid_17D3 },
|
||||
{0x17D5, 30, pci_vid_17D5 },
|
||||
{0x17DB, 2, pci_vid_17DB },
|
||||
{0x17DE, 1, pci_vid_17DE },
|
||||
|
@ -44084,7 +44182,7 @@ pci_vid_index_t pci_vid_index[] = {
|
|||
{0x1C44, 2, pci_vid_1C44 },
|
||||
{0x1C58, 7, pci_vid_1C58 },
|
||||
{0x1C5C, 25, pci_vid_1C5C },
|
||||
{0x1C5F, 67, pci_vid_1C5F },
|
||||
{0x1C5F, 69, pci_vid_1C5F },
|
||||
{0x1C63, 2, pci_vid_1C63 },
|
||||
{0x1C7E, 2, pci_vid_1C7E },
|
||||
{0x1C7F, 2, pci_vid_1C7F },
|
||||
|
@ -44133,7 +44231,7 @@ pci_vid_index_t pci_vid_index[] = {
|
|||
{0x1D79, 1, pci_vid_1D79 },
|
||||
{0x1D7C, 2, pci_vid_1D7C },
|
||||
{0x1D82, 5, pci_vid_1D82 },
|
||||
{0x1D87, 6, pci_vid_1D87 },
|
||||
{0x1D87, 7, pci_vid_1D87 },
|
||||
{0x1D89, 2, pci_vid_1D89 },
|
||||
{0x1D8F, 1, pci_vid_1D8F },
|
||||
{0x1D92, 1, pci_vid_1D92 },
|
||||
|
@ -44168,9 +44266,9 @@ pci_vid_index_t pci_vid_index[] = {
|
|||
{0x1DEF, 27, pci_vid_1DEF },
|
||||
{0x1DF3, 29, pci_vid_1DF3 },
|
||||
{0x1DF7, 4, pci_vid_1DF7 },
|
||||
{0x1DF8, 7, pci_vid_1DF8 },
|
||||
{0x1DF8, 9, pci_vid_1DF8 },
|
||||
{0x1DFC, 2, pci_vid_1DFC },
|
||||
{0x1E0F, 39, pci_vid_1E0F },
|
||||
{0x1E0F, 50, pci_vid_1E0F },
|
||||
{0x1E17, 1, pci_vid_1E17 },
|
||||
{0x1E24, 8, pci_vid_1E24 },
|
||||
{0x1E26, 1, pci_vid_1E26 },
|
||||
|
@ -44229,7 +44327,7 @@ pci_vid_index_t pci_vid_index[] = {
|
|||
{0x1EFB, 1, pci_vid_1EFB },
|
||||
{0x1F02, 1, pci_vid_1F02 },
|
||||
{0x1F03, 8, pci_vid_1F03 },
|
||||
{0x1F0F, 13, pci_vid_1F0F },
|
||||
{0x1F0F, 19, pci_vid_1F0F },
|
||||
{0x1F24, 4, pci_vid_1F24 },
|
||||
{0x1F2F, 7, pci_vid_1F2F },
|
||||
{0x1F3F, 38, pci_vid_1F3F },
|
||||
|
@ -44373,7 +44471,7 @@ pci_vid_index_t pci_vid_index[] = {
|
|||
{0x7FED, 1, pci_vid_7FED },
|
||||
{0x8008, 4, pci_vid_8008 },
|
||||
{0x807D, 1, pci_vid_807D },
|
||||
{0x8086, 8446, pci_vid_8086 },
|
||||
{0x8086, 8448, pci_vid_8086 },
|
||||
{0x8088, 53, pci_vid_8088 },
|
||||
{0x80EE, 3, pci_vid_80EE },
|
||||
{0x8322, 1, pci_vid_8322 },
|
||||
|
@ -44445,6 +44543,8 @@ pci_vid_index_t pci_vid_index[] = {
|
|||
{0xC0A9, 4, pci_vid_C0A9 },
|
||||
{0xC0DE, 1, pci_vid_C0DE },
|
||||
{0xC0FE, 1, pci_vid_C0FE },
|
||||
{0xCA01, 2, pci_vid_CA01 },
|
||||
{0xCA02, 2, pci_vid_CA02 },
|
||||
{0xCA3B, 1, pci_vid_CA3B },
|
||||
{0xCA50, 1, pci_vid_CA50 },
|
||||
{0xCACE, 4, pci_vid_CACE },
|
||||
|
@ -44498,7 +44598,7 @@ pci_vid_index_t pci_vid_index[] = {
|
|||
{0xFFFD, 2, pci_vid_FFFD },
|
||||
{0xFFFE, 2, pci_vid_FFFE },
|
||||
{0xFFFF, 1, pci_vid_FFFF },
|
||||
}; /* We have 2318 VIDs */
|
||||
}; /* We have 2320 VIDs */
|
||||
|
||||
static pci_vid_index_t *get_vid_index(guint16 vid)
|
||||
{
|
||||
|
|
|
@ -211,7 +211,6 @@ typedef struct _e_prefs {
|
|||
gint gui_debounce_timer;
|
||||
gchar *saved_at_version;
|
||||
gboolean unknown_prefs; /* unknown or obsolete pref(s) */
|
||||
gboolean unknown_colorfilters; /* Warn when saving unknown or obsolete color filters. */
|
||||
gboolean gui_qt_packet_list_separator;
|
||||
gboolean gui_qt_packet_header_column_definition;
|
||||
gboolean gui_qt_packet_list_hover_style; /* Enable/Disable mouse-over colorization */
|
||||
|
|
11
epan/proto.c
|
@ -12254,6 +12254,9 @@ proto_tree_add_bits_item(proto_tree *tree, const int hfindex, tvbuff_t *tvb,
|
|||
|
||||
PROTO_REGISTRAR_GET_NTH(hfindex, hfinfo);
|
||||
|
||||
if (no_of_bits < 0) {
|
||||
THROW(ReportedBoundsError);
|
||||
}
|
||||
octet_length = (no_of_bits + 7) >> 3;
|
||||
octet_offset = bit_offset >> 3;
|
||||
test_length(hfinfo, tvb, octet_offset, octet_length, encoding);
|
||||
|
@ -12302,7 +12305,9 @@ _proto_tree_add_bits_ret_val(proto_tree *tree, const int hfindex, tvbuff_t *tvb,
|
|||
hf_field->abbrev, hf_field->name);
|
||||
}
|
||||
|
||||
if (no_of_bits == 0) {
|
||||
if (no_of_bits < 0) {
|
||||
THROW(ReportedBoundsError);
|
||||
} else if (no_of_bits == 0) {
|
||||
REPORT_DISSECTOR_BUG("field %s passed to proto_tree_add_bits_ret_val() has a bit width of 0",
|
||||
hf_field->abbrev);
|
||||
}
|
||||
|
@ -12674,7 +12679,9 @@ _proto_tree_add_bits_format_value(proto_tree *tree, const int hfindex,
|
|||
hf_field->abbrev, hf_field->name);
|
||||
}
|
||||
|
||||
if (no_of_bits == 0) {
|
||||
if (no_of_bits < 0) {
|
||||
THROW(ReportedBoundsError);
|
||||
} else if (no_of_bits == 0) {
|
||||
REPORT_DISSECTOR_BUG("field %s passed to proto_tree_add_bits_format_value() has a bit width of 0",
|
||||
hf_field->abbrev);
|
||||
}
|
||||
|
|
|
@ -18,8 +18,9 @@
|
|||
#include "epan/dissectors/dissectors.h"
|
||||
|
||||
static const char *cur_cb_name = NULL;
|
||||
// We could use g_atomic_pointer_set/get instead of a mutex, but that's
|
||||
// currently (early 2018) invisible to TSAN.
|
||||
// We could use g_atomic_pointer_set/get instead of a mutex, but that causes
|
||||
// a false positive with Clang and TSAN for GLib < 2.64.0 (Issue #17753):
|
||||
// https://gitlab.gnome.org/GNOME/glib/-/issues/1843
|
||||
static GMutex cur_cb_name_mtx;
|
||||
static GAsyncQueue *register_cb_done_q;
|
||||
|
||||
|
|
182
manuf
|
@ -45,23 +45,23 @@
|
|||
|
||||
# https://standards-oui.ieee.org/cid/cid.csv:
|
||||
# Content-Length: 14062
|
||||
# Last-Modified: Sun, 12 Feb 2023 15:00:31 GMT
|
||||
# Last-Modified: Sun, 05 Mar 2023 15:00:39 GMT
|
||||
|
||||
# https://standards-oui.ieee.org/iab/iab.csv:
|
||||
# Content-Length: 381510
|
||||
# Last-Modified: Sun, 12 Feb 2023 15:00:50 GMT
|
||||
# Last-Modified: Sun, 05 Mar 2023 15:01:00 GMT
|
||||
|
||||
# https://standards-oui.ieee.org/oui/oui.csv:
|
||||
# Content-Length: 3101532
|
||||
# Last-Modified: Sun, 12 Feb 2023 15:01:32 GMT
|
||||
# Content-Length: 3112090
|
||||
# Last-Modified: Sun, 05 Mar 2023 15:01:46 GMT
|
||||
|
||||
# https://standards-oui.ieee.org/oui28/mam.csv:
|
||||
# Content-Length: 509141
|
||||
# Last-Modified: Sun, 12 Feb 2023 15:01:00 GMT
|
||||
# Content-Length: 512786
|
||||
# Last-Modified: Sun, 05 Mar 2023 15:01:14 GMT
|
||||
|
||||
# https://standards-oui.ieee.org/oui36/oui36.csv:
|
||||
# Content-Length: 481229
|
||||
# Last-Modified: Sun, 12 Feb 2023 15:01:22 GMT
|
||||
# Content-Length: 483910
|
||||
# Last-Modified: Sun, 05 Mar 2023 15:01:37 GMT
|
||||
|
||||
00:00:00 00:00:00 Officially Xerox, but 0:0:0:0:0:0 is more common
|
||||
00:00:01 Xerox Xerox Corporation
|
||||
|
@ -10537,6 +10537,7 @@
|
|||
00:35:FF TexasIns Texas Instruments
|
||||
00:36:76 ARRISGro ARRIS Group, Inc.
|
||||
00:36:BE Northwes Northwest Towers
|
||||
00:36:D7 KeltronI Keltron IOT Corp.
|
||||
00:36:F8 ContiTem Conti Temic microelectronic GmbH
|
||||
00:36:FE SuperVis SuperVision
|
||||
00:37:6D MurataMa Murata Manufacturing Co., Ltd.
|
||||
|
@ -15726,7 +15727,7 @@
|
|||
00:80:B5 UnitedNe United Networks Inc.
|
||||
00:80:B6 Themis Themis corporation
|
||||
00:80:B7 StellarC Stellar Computer
|
||||
00:80:B8 DmgMoriB Dmg Mori B.U.G. Co., Ltd.
|
||||
00:80:B8 DMGMORID DMG MORI Digital Co., LTD
|
||||
00:80:B9 ArcheTec Arche Technoligies Inc.
|
||||
00:80:BA Speciali Specialix (Asia) Pte, Ltd
|
||||
00:80:BB HughesLa Hughes Lan Systems
|
||||
|
@ -18015,6 +18016,7 @@
|
|||
08:30:CE Fiberhom Fiberhome Telecommunication Technologies Co.,LTD
|
||||
08:31:8B HuaweiTe Huawei Technologies Co.,Ltd
|
||||
08:31:A4 HuaweiDe Huawei Device Co., Ltd.
|
||||
08:33:ED AskeyCom Askey Computer Corp
|
||||
08:35:1B Shenzhen Shenzhen Jialihua Electronic Technology Co., Ltd
|
||||
08:35:71 CASwell CASwell INC.
|
||||
08:35:B2 CoreEdge CoreEdge Networks Co., Ltd
|
||||
|
@ -18283,6 +18285,7 @@
|
|||
08:F8:0D:A0:00:00/28 MickeyIn Mickey Industry,Ltd.
|
||||
08:F8:0D:B0:00:00/28 VontInno Vont Innovations
|
||||
08:F8:BC Apple Apple, Inc.
|
||||
08:F9:E0 Espressi Espressif Inc.
|
||||
08:FA:28 HuaweiTe Huawei Technologies Co.,Ltd
|
||||
08:FA:79 vivoMobi vivo Mobile Communication Co., Ltd.
|
||||
08:FA:E0 FohhnAud Fohhn Audio AG
|
||||
|
@ -18336,6 +18339,7 @@
|
|||
0C:25:76 Longchee Longcheer Telecommunication Limited
|
||||
0C:27:24 Cisco Cisco Systems, Inc
|
||||
0C:27:55 Valuable Valuable Techologies Limited
|
||||
0C:29:8F Tesla Tesla,Inc.
|
||||
0C:29:EF Dell Dell Inc.
|
||||
0C:2A:69 electric electric imp, incorporated
|
||||
0C:2A:86 Fiberhom Fiberhome Telecommunication Technologies Co.,LTD
|
||||
|
@ -18507,6 +18511,7 @@
|
|||
0C:86:29:D0:00:00/28 BeijingB Beijing Beibianzhida Technology Co.,Ltd
|
||||
0C:86:29:E0:00:00/28 FxTechno Fx Technology Limited
|
||||
0C:86:C7 JabilCir Jabil Circuit (Guangzhou) Limited
|
||||
0C:87:72 FujianSt Fujian Star-Net Communication Co.,Ltd
|
||||
0C:89:10 SamsungE Samsung Electronics Co.,Ltd
|
||||
0C:8A:87 AgLogica AgLogica Holdings, Inc
|
||||
0C:8B:7D Vizio Vizio, Inc
|
||||
|
@ -18766,6 +18771,8 @@
|
|||
10:12:FB Hangzhou Hangzhou Hikvision Digital Technology Co.,Ltd.
|
||||
10:13:31 Technico Technicolor Delivery Technologies Belgium NV
|
||||
10:13:EE JustecIn Justec International Technology INC.
|
||||
10:15:C1 ZhanzuoB Zhanzuo (Beijing) Technology Co., Ltd.
|
||||
10:18:49 WeifangG Weifang Goertek Electronics Co.,Ltd
|
||||
10:18:9E ElmoMoti Elmo Motion Control
|
||||
10:19:65 NewH3CTe New H3C Technologies Co., Ltd
|
||||
10:1B:54 HuaweiTe Huawei Technologies Co.,Ltd
|
||||
|
@ -19128,6 +19135,7 @@
|
|||
14:16:9D Cisco Cisco Systems, Inc
|
||||
14:16:9E Wingtech Wingtech Group (HongKong)Limited
|
||||
14:17:2A Fiberhom Fiberhome Telecommunication Technologies Co.,LTD
|
||||
14:18:44 XenonSma Xenon Smart Teknoloji Ltd.
|
||||
14:18:77 Dell Dell Inc.
|
||||
14:18:C3 IntelCor Intel Corporate
|
||||
14:19:73 BeijingY Beijing Yunyi Times Technology Co.,Ltd
|
||||
|
@ -19172,6 +19180,7 @@
|
|||
14:2B:D6 Guangdon Guangdong Appscomm Co.,Ltd
|
||||
14:2C:78 GooWiWir GooWi Wireless Technology Co., Limited
|
||||
14:2D:27 HonHaiPr Hon Hai Precision Ind. Co.,Ltd.
|
||||
14:2D:41 SiliconL Silicon Laboratories
|
||||
14:2D:4D Apple Apple, Inc.
|
||||
14:2D:79 Fiberhom Fiberhome Telecommunication Technologies Co.,LTD
|
||||
14:2D:8B IncipioT Incipio Technologies, Inc
|
||||
|
@ -20231,7 +20240,7 @@
|
|||
1C:A0:D3:40:00:00/28 NpoTelec Npo Telecom Jsc
|
||||
1C:A0:D3:50:00:00/28 DynamicC Dynamic Connect (Suzhou) Hi-Tech Electronic Co.,Ltd.
|
||||
1C:A0:D3:60:00:00/28 Intertec Intertecno SRL "NISUTA"
|
||||
1C:A0:D3:70:00:00/28 Private
|
||||
1C:A0:D3:70:00:00/28 U-TXTech U-TX Technologies Ltd
|
||||
1C:A0:D3:80:00:00/28 Desarrol Desarrollos y Soluciones Guinea I+D S.L.
|
||||
1C:A0:D3:90:00:00/28 CirqueAu Cirque Audio Technology Co., Ltd
|
||||
1C:A0:D3:A0:00:00/28 DSMMesst DSM Messtechnik GmbH
|
||||
|
@ -20669,6 +20678,7 @@
|
|||
20:B7:30 TeconGro TeconGroup, Inc
|
||||
20:B7:80 ToshibaV Toshiba Visual Solutions Corporation Co.,Ltd
|
||||
20:B7:C0 OMICRONe OMICRON electronics GmbH
|
||||
20:B8:2B Sagemcom Sagemcom Broadband SAS
|
||||
20:B8:68 Motorola Motorola Mobility LLC, a Lenovo Company
|
||||
20:BA:36 u-blox u-blox AG
|
||||
20:BB:76 COLGIOVA COL GIOVANNI PAOLO SpA
|
||||
|
@ -20949,6 +20959,7 @@
|
|||
24:69:A5 HuaweiTe Huawei Technologies Co.,Ltd
|
||||
24:6A:AB IT-ISInt IT-IS International
|
||||
24:6C:60 HuaweiDe Huawei Device Co., Ltd.
|
||||
24:6C:84 Cisco Cisco Systems, Inc
|
||||
24:6C:8A YUKAIEng YUKAI Engineering
|
||||
24:6E:96 Dell Dell Inc.
|
||||
24:6F:28 Espressi Espressif Inc.
|
||||
|
@ -21038,7 +21049,7 @@
|
|||
24:BC:F8 HuaweiTe Huawei Technologies Co.,Ltd
|
||||
24:BE:05 HewlettP Hewlett Packard
|
||||
24:BE:18 Dadoutek Dadoutek Company Limited
|
||||
24:BF:74 Private
|
||||
24:BF:74 Hamamats Hamamatsu Photonics K.K.
|
||||
24:C0:B3 Rsf
|
||||
24:C1:7A BeijingI Beijing Iactive Network Co.,Ltd
|
||||
24:C1:BD CrrcDali Crrc Dalian R&D Co.,Ltd.
|
||||
|
@ -21078,6 +21089,7 @@
|
|||
24:DB:AD ShopperT ShopperTrak RCT Corporation
|
||||
24:DB:ED SamsungE Samsung Electronics Co.,Ltd
|
||||
24:DC:0F PhytiumT Phytium Technology Co.,Ltd.
|
||||
24:DC:C3 Espressi Espressif Inc.
|
||||
24:DE:C6 ArubaaHe Aruba, a Hewlett Packard Enterprise Company
|
||||
24:DF:6A HuaweiTe Huawei Technologies Co.,Ltd
|
||||
24:DF:A7 Hangzhou Hangzhou BroadLink Technology Co.,Ltd
|
||||
|
@ -21302,6 +21314,7 @@
|
|||
28:71:84 SpirePay Spire Payments
|
||||
28:72:C5 Smartmat Smartmatic Corp
|
||||
28:72:F0 Athena
|
||||
28:73:F6 AmazonTe Amazon Technologies Inc.
|
||||
28:74:F5 NokiaSol Nokia Solutions and Networks GmbH & Co. KG
|
||||
28:75:D8 FujianSt Fujian Star-Net Communication Co.,Ltd
|
||||
28:76:10 IgniteNe IgniteNet
|
||||
|
@ -21474,6 +21487,7 @@
|
|||
28:EA:0B Microsof Microsoft Corporation
|
||||
28:EA:2D Apple Apple, Inc.
|
||||
28:EB:A6 Nex-T Nex-T LLC
|
||||
28:EC:22 eero eero inc.
|
||||
28:EC:95 Apple Apple, Inc.
|
||||
28:EC:9A TexasIns Texas Instruments
|
||||
28:ED:58 JAGJakob JAG Jakob AG
|
||||
|
@ -21675,6 +21689,7 @@
|
|||
2C:3A:FD AVMAudio AVM Audiovisuelles Marketing und Computersysteme GmbH
|
||||
2C:3B:70 AzureWav AzureWave Technology Inc.
|
||||
2C:3B:FD NetstorT Netstor Technology Co., Ltd.
|
||||
2C:3E:BF HOSINGlo HOSIN Global Electronics Co., Ltd.
|
||||
2C:3E:CF Cisco Cisco Systems, Inc
|
||||
2C:3F:0B CiscoMer Cisco Meraki
|
||||
2C:3F:38 Cisco Cisco Systems, Inc
|
||||
|
@ -22039,6 +22054,7 @@
|
|||
30:1A:30 MakoNetw Mako Networks Ltd
|
||||
30:1A:BA Guangdon Guangdong Oppo Mobile Telecommunications Corp.,Ltd
|
||||
30:1B:97 LierdaSc Lierda Science & Technology Group Co.,Ltd
|
||||
30:1D:49 FirmusTe Firmus Technologies Pty Ltd
|
||||
30:1F:48 zte zte corporation
|
||||
30:1F:9A IEEERegi IEEE Registration Authority
|
||||
30:1F:9A:00:00:00/28 IlsanEle Ilsan Electronics
|
||||
|
@ -22277,6 +22293,7 @@
|
|||
30:B1:B5 Arcadyan Arcadyan Corporation
|
||||
30:B2:16 HitachiE Hitachi Energy Germany AG
|
||||
30:B2:37 GDMideaA GD Midea Air-Conditioning Equipment Co.,Ltd.
|
||||
30:B2:9F Evident Evident Corporation
|
||||
30:B3:46 CjscNors Cjsc Norsi-Trans
|
||||
30:B3:A2 Shenzhen Shenzhen Heguang Measurement & Control Technology Co.,Ltd
|
||||
30:B4:9E Tp-LinkT Tp-Link Technologies Co.,Ltd.
|
||||
|
@ -22584,6 +22601,7 @@
|
|||
34:86:2A HeinzLac Heinz Lackmann GmbH & Co KG
|
||||
34:86:5D Espressi Espressif Inc.
|
||||
34:87:3D QuectelW Quectel Wireless Solutions Co.,Ltd.
|
||||
34:88:18 Cisco Cisco Systems, Inc
|
||||
34:88:5D Logitech Logitech Far East
|
||||
34:8A:12 ArubaaHe Aruba, a Hewlett Packard Enterprise Company
|
||||
34:8A:7B SamsungE Samsung Electronics Co.,Ltd
|
||||
|
@ -22698,6 +22716,7 @@
|
|||
34:D2:62 SzDjiTec Sz Dji Technology Co.,Ltd
|
||||
34:D2:70 AmazonTe Amazon Technologies Inc.
|
||||
34:D2:C4 RENAPrin RENA GmbH Print Systeme
|
||||
34:D4:E3 AtomPowe Atom Power, Inc.
|
||||
34:D6:93 HuaweiDe Huawei Device Co., Ltd.
|
||||
34:D7:12 Smartisa Smartisan Digital Co., Ltd
|
||||
34:D7:37 IBGIndus IBG Industriebeteiligungsgesellschaft mbH &b Co. KG
|
||||
|
@ -22708,6 +22727,7 @@
|
|||
34:DA:C1 SAETechn SAE Technologies Development(Dongguan) Co., Ltd.
|
||||
34:DB:9C Sagemcom Sagemcom Broadband SAS
|
||||
34:DB:FD Cisco Cisco Systems, Inc
|
||||
34:DC:99 NewH3CTe New H3C Technologies Co., Ltd
|
||||
34:DD:04 Minut Minut AB
|
||||
34:DD:7E UmeoxInn Umeox Innovations Co.,Ltd
|
||||
34:DE:1A IntelCor Intel Corporate
|
||||
|
@ -23310,6 +23330,7 @@
|
|||
3C:2C:99 Edgecore Edgecore Networks Corporation
|
||||
3C:2C:A6 BeijingX Beijing Xiaomi Electronics Co.,Ltd
|
||||
3C:2D:B7 TexasIns Texas Instruments
|
||||
3C:2E:F5 SiliconL Silicon Laboratories
|
||||
3C:2E:F9 Apple Apple, Inc.
|
||||
3C:2E:FF Apple Apple, Inc.
|
||||
3C:2F:3A SFORZATO SFORZATO Corp.
|
||||
|
@ -23575,6 +23596,7 @@
|
|||
3C:DF:1E Cisco Cisco Systems, Inc
|
||||
3C:DF:A9 ARRISGro ARRIS Group, Inc.
|
||||
3C:DF:BD HuaweiTe Huawei Technologies Co.,Ltd
|
||||
3C:E0:02 TexasIns Texas Instruments
|
||||
3C:E0:38 Omnifi Omnifi Inc.
|
||||
3C:E0:64 TexasIns Texas Instruments
|
||||
3C:E0:72 Apple Apple, Inc.
|
||||
|
@ -23593,6 +23615,7 @@
|
|||
3C:EA:F9 Jubixcol Jubixcoltd
|
||||
3C:EA:FB Nse Nse Ag
|
||||
3C:EC:EF SuperMic Super Micro Computer, Inc.
|
||||
3C:EF:42 TCTmobil TCT mobile ltd
|
||||
3C:EF:8C Zhejiang Zhejiang Dahua Technology Co., Ltd.
|
||||
3C:F0:11 IntelCor Intel Corporate
|
||||
3C:F3:92 Virtualt Virtualtek. Co. Ltd
|
||||
|
@ -23667,6 +23690,7 @@
|
|||
40:11:DC Sonance
|
||||
40:12:E4 Compass- Compass-EOS
|
||||
40:13:D9 GlobalES Global ES
|
||||
40:14:82 Cisco Cisco Systems, Inc
|
||||
40:14:AD HuaweiDe Huawei Device Co., Ltd.
|
||||
40:15:97 ProtectA Protect America, Inc.
|
||||
40:16:3B SamsungE Samsung Electronics Co.,Ltd
|
||||
|
@ -23691,6 +23715,7 @@
|
|||
40:26:19 Apple Apple, Inc.
|
||||
40:27:0B Mobileec Mobileeco Co., Ltd
|
||||
40:28:14 RFIEngin RFI Engineering
|
||||
40:2A:8F Shanghai Shanghai High-Flying Electronics Technology Co., Ltd
|
||||
40:2B:50 ARRISGro ARRIS Group, Inc.
|
||||
40:2B:69 KumhoEle Kumho Electric Inc.
|
||||
40:2B:A1 Sony Sony Corporation
|
||||
|
@ -23852,6 +23877,7 @@
|
|||
40:98:7B Aisino Aisino Corporation
|
||||
40:98:AD Apple Apple, Inc.
|
||||
40:99:22 AzureWav AzureWave Technology Inc.
|
||||
40:9A:30 TecnoMob Tecno Mobile Limited
|
||||
40:9B:0D Shenzhen Shenzhen Yourf Kwan Industrial Co., Ltd
|
||||
40:9B:21 Nokia
|
||||
40:9B:CD D-LinkIn D-Link International
|
||||
|
@ -23948,7 +23974,9 @@
|
|||
40:D3:AE SamsungE Samsung Electronics Co.,Ltd
|
||||
40:D4:0E Biodata Biodata Ltd
|
||||
40:D4:BD SKNetwor SK Networks Service CO., LTD.
|
||||
40:D4:F6 HonorDev Honor Device Co., Ltd.
|
||||
40:D5:59 MicroSER Micro S.E.R.I.
|
||||
40:D5:63 HANAElec HANA Electronics
|
||||
40:D6:3C Equitech Equitech Industrial(DongGuan)Co.,Ltd
|
||||
40:D8:55 IEEERegi IEEE Registration Authority
|
||||
40:D8:55:00:00:00/36 Xronos Xronos.Inc
|
||||
|
@ -24542,6 +24570,7 @@
|
|||
44:03:77:E0:00:00/28 BolinTec Bolin Technology Co., Ltd
|
||||
44:03:A7 Cisco Cisco Systems, Inc
|
||||
44:04:44 Guangdon Guangdong Oppo Mobile Telecommunications Corp.,Ltd
|
||||
44:05:3F Sagemcom Sagemcom Broadband SAS
|
||||
44:05:E8 twareLAB
|
||||
44:07:0B Google Google, Inc.
|
||||
44:09:B8 SalcompS Salcomp (Shenzhen) CO., LTD.
|
||||
|
@ -24969,6 +24998,7 @@
|
|||
48:2F:6B ArubaaHe Aruba, a Hewlett Packard Enterprise Company
|
||||
48:2F:D7 HuaweiTe Huawei Technologies Co.,Ltd
|
||||
48:31:77 Nintendo Nintendo Co.,Ltd
|
||||
48:31:B7 Espressi Espressif Inc.
|
||||
48:31:DB HuaweiDe Huawei Device Co., Ltd.
|
||||
48:33:DD ZennioAv Zennio Avance Y Tecnologia, S.L.
|
||||
48:34:3D IEP IEP GmbH
|
||||
|
@ -25119,6 +25149,7 @@
|
|||
48:91:53 Weinmann Weinmann Geräte für Medizin GmbH + Co. KG
|
||||
48:91:D5 Cisco Cisco Systems, Inc
|
||||
48:91:F6 Shenzhen Shenzhen Reach software technology CO.,LTD
|
||||
48:93:DC UniwayIn Uniway Infocom Pvt Ltd
|
||||
48:95:07 Guangdon Guangdong Oppo Mobile Telecommunications Corp.,Ltd
|
||||
48:98:CA SichuanA Sichuan AI-Link Technology Co., Ltd.
|
||||
48:9A:42 Technoma Technomate Ltd
|
||||
|
@ -25617,6 +25648,7 @@
|
|||
4C:D0:CB HuaweiTe Huawei Technologies Co.,Ltd
|
||||
4C:D0:DD HuaweiTe Huawei Technologies Co.,Ltd
|
||||
4C:D1:A1 HuaweiTe Huawei Technologies Co.,Ltd
|
||||
4C:D2:FB Unionman Unionman Technology Co.,Ltd
|
||||
4C:D3:AF HMDGloba HMD Global Oy
|
||||
4C:D5:77 Chongqin Chongqing Fugui Electronics Co.,Ltd.
|
||||
4C:D6:29 HuaweiTe Huawei Technologies Co.,Ltd
|
||||
|
@ -25660,6 +25692,7 @@
|
|||
4C:EB:42 IntelCor Intel Corporate
|
||||
4C:EB:BD Chongqin Chongqing Fugui Electronics Co.,Ltd.
|
||||
4C:EB:D6 Espressi Espressif Inc.
|
||||
4C:EC:0F Cisco Cisco Systems, Inc
|
||||
4C:EC:EF Soraa Soraa, Inc.
|
||||
4C:ED:DE AskeyCom Askey Computer Corp
|
||||
4C:ED:FB ASUSTekC ASUSTek COMPUTER INC.
|
||||
|
@ -26199,6 +26232,7 @@
|
|||
54:2F:8A Tellesco Tellescom Industria E Comercio Em Telecomunicacao
|
||||
54:31:31 RasterVi Raster Vision Ltd
|
||||
54:31:D4 TGWMecha TGW Mechanics GmbH
|
||||
54:32:04 Espressi Espressif Inc.
|
||||
54:32:C7 Apple Apple, Inc.
|
||||
54:33:CB Apple Apple, Inc.
|
||||
54:34:EF HuaweiTe Huawei Technologies Co.,Ltd
|
||||
|
@ -26544,6 +26578,7 @@
|
|||
58:40:4E Apple Apple, Inc.
|
||||
58:41:20 Tp-LinkT Tp-Link Technologies Co.,Ltd.
|
||||
58:42:E4 BaxterIn Baxter International Inc
|
||||
58:43:AB Guangdon Guangdong Oppo Mobile Telecommunications Corp.,Ltd
|
||||
58:44:98 XiaomiCo Xiaomi Communications Co Ltd
|
||||
58:45:4C Ericsson Ericsson AB
|
||||
58:46:8F KoncarEl Koncar Electronics and Informatics
|
||||
|
@ -26595,6 +26630,7 @@
|
|||
58:53:C0 BeijingG Beijing Guang Runtong Technology Development Company co.,Ltd
|
||||
58:55:95 Apple Apple, Inc.
|
||||
58:55:CA Apple Apple, Inc.
|
||||
58:56:9F Cisco Cisco Systems, Inc
|
||||
58:56:C2 HuaweiTe Huawei Technologies Co.,Ltd
|
||||
58:56:E8 ARRISGro ARRIS Group, Inc.
|
||||
58:57:0D DanfossS Danfoss Solar Inverters
|
||||
|
@ -26742,6 +26778,7 @@
|
|||
58:C8:76 ChinaMob China Mobile (Hangzhou) Information Technology Co., Ltd.
|
||||
58:C9:35 ChiunMai Chiun Mai Communication System, Inc
|
||||
58:CB:52 Google Google, Inc.
|
||||
58:CD:C9 CloudNet Cloud Network Technology Singapore Pte. Ltd.
|
||||
58:CE:2A IntelCor Intel Corporate
|
||||
58:CF:4B LufkinIn Lufkin Industries
|
||||
58:CF:79 Espressi Espressif Inc.
|
||||
|
@ -27150,11 +27187,13 @@
|
|||
5C:E3:B6 Fiberhom Fiberhome Telecommunication Technologies Co.,LTD
|
||||
5C:E4:2A IntelCor Intel Corporate
|
||||
5C:E5:0C BeijingX Beijing Xiaomi Mobile Software Co., Ltd
|
||||
5C:E6:88 VECOSEur VECOS Europe B.V.
|
||||
5C:E7:47 HuaweiTe Huawei Technologies Co.,Ltd
|
||||
5C:E7:A0 Nokia
|
||||
5C:E7:BF NewSingu New Singularity International Technical Development Co.,Ltd
|
||||
5C:E8:83 HuaweiTe Huawei Technologies Co.,Ltd
|
||||
5C:E8:B7 OraimoTe Oraimo Technology Limited
|
||||
5C:E8:D3 Signalin Signalinks Communication Technology Co., Ltd
|
||||
5C:E8:EB SamsungE Samsung Electronics Co.,Ltd
|
||||
5C:E9:1E Apple Apple, Inc.
|
||||
5C:EA:1D HonHaiPr Hon Hai Precision Ind. Co.,Ltd.
|
||||
|
@ -27401,6 +27440,7 @@
|
|||
60:92:17 Apple Apple, Inc.
|
||||
60:92:F5 ARRISGro ARRIS Group, Inc.
|
||||
60:93:16 Apple Apple, Inc.
|
||||
60:95:32 ZebraTec Zebra Technologies Inc.
|
||||
60:95:BD Apple Apple, Inc.
|
||||
60:95:CE IEEERegi IEEE Registration Authority
|
||||
60:95:CE:00:00:00/28 SiemaApp Siema Applications
|
||||
|
@ -27617,6 +27657,7 @@
|
|||
64:17:59 Intelliv Intellivision Holdings, LLC
|
||||
64:1A:22 Heliospe Heliospectra AB
|
||||
64:1A:BA DryadNet Dryad Networks GmbH
|
||||
64:1C:10 TexasIns Texas Instruments
|
||||
64:1C:67 Digibras Digibras Industria Do Brasils/A
|
||||
64:1C:AE SamsungE Samsung Electronics Co.,Ltd
|
||||
64:1C:B0 SamsungE Samsung Electronics Co.,Ltd
|
||||
|
@ -27986,6 +28027,7 @@
|
|||
68:18:D9 HillAFB- Hill AFB - CAPRE Group
|
||||
68:19:3F DigitalA Digital Airways
|
||||
68:19:AC Guangzho Guangzhou Xianyou Intelligent Technogoly CO., LTD
|
||||
68:1A:7C SichuanT Sichuan Tianyi Comheart Telecom Co.,LTD
|
||||
68:1A:A4 Shenzhen Shenzhen Skyworth Digital Technology CO., Ltd
|
||||
68:1A:B2 zte zte corporation
|
||||
68:1B:EF HuaweiTe Huawei Technologies Co.,Ltd
|
||||
|
@ -28004,6 +28046,7 @@
|
|||
68:27:37 SamsungE Samsung Electronics Co.,Ltd
|
||||
68:27:5F zte zte corporation
|
||||
68:28:BA Dejai
|
||||
68:28:CF ArubaaHe Aruba, a Hewlett Packard Enterprise Company
|
||||
68:28:F6 VubiqNet Vubiq Networks, Inc.
|
||||
68:29:DC FicosaEl Ficosa Electronics S.L.U.
|
||||
68:2C:7B Cisco Cisco Systems, Inc
|
||||
|
@ -28080,6 +28123,7 @@
|
|||
68:6D:BC Hangzhou Hangzhou Hikvision Digital Technology Co.,Ltd.
|
||||
68:6E:23 Wi3 Wi3 Inc.
|
||||
68:6E:48 ProphetE Prophet Electronic Technology Corp.,Ltd
|
||||
68:71:61 Cisco Cisco Systems, Inc
|
||||
68:72:51 Ubiquiti Ubiquiti Inc
|
||||
68:72:C3 SamsungE Samsung Electronics Co.,Ltd
|
||||
68:72:DC CETORYTV CETORY.TV Company Limited
|
||||
|
@ -28266,6 +28310,7 @@
|
|||
68:EF:43 Apple Apple, Inc.
|
||||
68:EF:BD Cisco Cisco Systems, Inc
|
||||
68:F0:6D AlongInd Along Industrial Co., Limited
|
||||
68:F0:B5 HonorDev Honor Device Co., Ltd.
|
||||
68:F0:BC Shenzhen Shenzhen LiWiFi Technology Co., Ltd
|
||||
68:F0:D0 SkyBellT SkyBell Technologies Inc.
|
||||
68:F1:25 DataCont Data Controls Inc.
|
||||
|
@ -28368,6 +28413,22 @@
|
|||
6C:29:95 IntelCor Intel Corporate
|
||||
6C:29:D2 Cisco Cisco Systems, Inc
|
||||
6C:2A:CB PaxtonAc Paxton Access Ltd
|
||||
6C:2A:DF IEEERegi IEEE Registration Authority
|
||||
6C:2A:DF:00:00:00/28 Ademcodb Ademco Inc. dba ADI Global Distribution
|
||||
6C:2A:DF:10:00:00/28 XianXind Xi'an Xindian Equipment Engineering Center Co., Ltd
|
||||
6C:2A:DF:20:00:00/28 DaikoEle Daiko Electric Co.,Ltd
|
||||
6C:2A:DF:30:00:00/28 FodicsSy FodicsSystem
|
||||
6C:2A:DF:40:00:00/28 Zhejiang Zhejiang Eternal Automation Sci-Tec Co., Ltd
|
||||
6C:2A:DF:50:00:00/28 Xinjiang Xinjiang Ying Sheng Information Technology Co., Ltd.
|
||||
6C:2A:DF:60:00:00/28 ITI ITI Limited
|
||||
6C:2A:DF:70:00:00/28 RootV
|
||||
6C:2A:DF:80:00:00/28 BeijingY Beijing Yisheng Chuanqi Technology Co., Ltd.
|
||||
6C:2A:DF:90:00:00/28 Simplewa Simpleway Europe a.s.
|
||||
6C:2A:DF:A0:00:00/28 Jbf
|
||||
6C:2A:DF:B0:00:00/28 MOBAMobi MOBA Mobile Automation AG
|
||||
6C:2A:DF:C0:00:00/28 VnetsInf Vnets Information Technology Ltd.
|
||||
6C:2A:DF:D0:00:00/28 SichuanH Sichuan Huidian Qiming Intelligent Technology Co.,Ltd
|
||||
6C:2A:DF:E0:00:00/28 WeatherF WeatherFlow-Tempest, Inc
|
||||
6C:2B:59 Dell Dell Inc.
|
||||
6C:2C:06 NPPSyste OOO NPP Systemotechnika-NN
|
||||
6C:2C:DC Skyworth Skyworth Digital Technology(Shenzhen) Co.,Ltd
|
||||
|
@ -28684,15 +28745,19 @@
|
|||
70:06:92 IEEERegi IEEE Registration Authority
|
||||
70:06:92:00:00:00/28 Techolog Techology, LLC
|
||||
70:06:92:10:00:00/28 BeijingF Beijing Fortech Microsystems., Co., Ltd.
|
||||
70:06:92:20:00:00/28 ScudFuji Scud (Fujian) Electronics Co.,Ltd
|
||||
70:06:92:30:00:00/28 Bosscctv Bosscctv Co., Ltd
|
||||
70:06:92:40:00:00/28 Fusiosto Fusiostor Technologies Private Limited
|
||||
70:06:92:50:00:00/28 CanaanCr Canaan Creative Co.,Ltd.
|
||||
70:06:92:60:00:00/28 Hangzhou Hangzhou Clounix Technology Limited
|
||||
70:06:92:70:00:00/28 DcnetSol Dcnet Solutions India Pvt Ltd
|
||||
70:06:92:80:00:00/28 JMAWirel JMA Wireless
|
||||
70:06:92:90:00:00/28 Shenzhen Shenzhen Lingwei Technology Co., Ltd
|
||||
70:06:92:A0:00:00/28 Munters
|
||||
70:06:92:B0:00:00/28 SWITElec SWIT Electronics Co.,Ltd
|
||||
70:06:92:C0:00:00/28 ScoreBir ScoreBird, LLC
|
||||
70:06:92:D0:00:00/28 SkywareP Skyware Protech Limited
|
||||
70:06:92:E0:00:00/28 Ganghsan Ganghsan Guanglian
|
||||
70:06:AC Eastcomp Eastcompeace Technology Co., Ltd
|
||||
70:07:77 OnTarget OnTarget Technologies, Inc
|
||||
70:09:71 SamsungE Samsung Electronics Co.,Ltd
|
||||
|
@ -30776,7 +30841,7 @@
|
|||
70:B3:D5:6F:10:00/36 Discover Discover Battery
|
||||
70:B3:D5:6F:20:00/36 P&CMicro P&C Micro's Pty Ltd
|
||||
70:B3:D5:6F:30:00/36 iungo
|
||||
70:B3:D5:6F:40:00/36 Private
|
||||
70:B3:D5:6F:40:00/36 WDIWiseD WDI Wise Device Inc.
|
||||
70:B3:D5:6F:50:00/36 Cominfo Cominfo, Inc.
|
||||
70:B3:D5:6F:60:00/36 AccoBran Acco Brands Europe
|
||||
70:B3:D5:6F:70:00/36 Egicon Egicon Srl
|
||||
|
@ -33303,6 +33368,7 @@
|
|||
74:46:87 Kingsign Kingsignal Technology Co., Ltd.
|
||||
74:46:A0 HewlettP Hewlett Packard
|
||||
74:46:B3 TexasIns Texas Instruments
|
||||
74:49:D2 NewH3CTe New H3C Technologies Co., Ltd
|
||||
74:4A:A4 zte zte corporation
|
||||
74:4B:E9 Explorer Explorer Hypertech Co.,Ltd
|
||||
74:4C:A1 LiteonTe Liteon Technology Corporation
|
||||
|
@ -33314,6 +33380,7 @@
|
|||
74:53:27 Commsen Commsen Co., Limited
|
||||
74:53:A8 ACLAirsh ACL Airshop BV
|
||||
74:54:27 Shenzhen Shenzhen Fast Technologies Co.,Ltd
|
||||
74:54:6B hangzhou hangzhou zhiyi communication co., ltd
|
||||
74:54:7D CiscoSPV Cisco SPVTG
|
||||
74:56:12 ARRISGro ARRIS Group, Inc.
|
||||
74:56:3C Giga-Byt Giga-Byte Technology Co.,Ltd.
|
||||
|
@ -33452,6 +33519,7 @@
|
|||
74:A4:A7 QRSMusic QRS Music Technologies, Inc.
|
||||
74:A4:B5 Powerlea Powerleader Science and Technology Co. Ltd.
|
||||
74:A5:28 HuaweiTe Huawei Technologies Co.,Ltd
|
||||
74:A5:8C TexasIns Texas Instruments
|
||||
74:A6:CD Apple Apple, Inc.
|
||||
74:A7:22 LGElectr LG Electronics (Mobile Communications)
|
||||
74:A7:8E zte zte corporation
|
||||
|
@ -33677,6 +33745,7 @@
|
|||
78:28:CA Sonos Sonos, Inc.
|
||||
78:29:ED AskeyCom Askey Computer Corp
|
||||
78:2A:79 Integrat Integrated Device Technology (Malaysia) Sdn. Bhd.
|
||||
78:2A:F8 IethcomI Iethcom Information Technology Co., Ltd.
|
||||
78:2B:46 IntelCor Intel Corporate
|
||||
78:2B:64 Bose Bose Corporation
|
||||
78:2B:CB Dell Dell Inc.
|
||||
|
@ -34152,6 +34221,7 @@
|
|||
7C:2E:DD SamsungE Samsung Electronics Co.,Ltd
|
||||
7C:2F:80 GigasetC Gigaset Communications GmbH
|
||||
7C:31:0E Cisco Cisco Systems, Inc
|
||||
7C:31:80 SMK SMK corporation
|
||||
7C:33:6E MEGElect MEG Electronics Inc.
|
||||
7C:33:F9 HuaweiTe Huawei Technologies Co.,Ltd
|
||||
7C:35:48 Transcen Transcend Information
|
||||
|
@ -34741,6 +34811,7 @@
|
|||
80:7D:E3 Chongqin Chongqing Sichuan Instrument Microcircuit Co.LTD.
|
||||
80:7E:B4 Shenzhen Shenzhen SuperElectron Technology Co.,Ltd.
|
||||
80:7F:F8 JuniperN Juniper Networks
|
||||
80:80:2C Fortinet Fortinet, Inc.
|
||||
80:81:A5 TONGQING TONGQING COMMUNICATION EQUIPMENT (SHENZHEN) Co.,Ltd
|
||||
80:82:23 Apple Apple, Inc.
|
||||
80:82:87 ATCOMTec ATCOM Technology Co.Ltd.
|
||||
|
@ -35008,6 +35079,7 @@
|
|||
84:3B:10 Lvswitch Lvswitches Inc.
|
||||
84:3C:4C RobertBo Robert Bosch SRL
|
||||
84:3D:C6 Cisco Cisco Systems, Inc
|
||||
84:3E:1D HuiZhouG Hui Zhou Gaoshengda Technology Co.,LTD
|
||||
84:3E:79 Shenzhen Shenzhen Belon Technology CO.,LTD
|
||||
84:3E:92 HuaweiTe Huawei Technologies Co.,Ltd
|
||||
84:3F:4E Tri-Tech Tri-Tech Manufacturing, Inc.
|
||||
|
@ -35060,6 +35132,7 @@
|
|||
84:71:27 SiliconL Silicon Laboratories
|
||||
84:71:6A HuaweiDe Huawei Device Co., Ltd.
|
||||
84:72:07 I&CTechn I&C Technology
|
||||
84:72:93 TexasIns Texas Instruments
|
||||
84:73:03 LetvMobi Letv Mobile and Intelligent Information Technology (Beijing) Corporation Ltd.
|
||||
84:74:2A zte zte corporation
|
||||
84:74:60 zte zte corporation
|
||||
|
@ -35288,6 +35361,7 @@
|
|||
84:F1:17 Newseaso Newseason
|
||||
84:F1:29 Metrasca Metrascale Inc.
|
||||
84:F1:47 Cisco Cisco Systems, Inc
|
||||
84:F1:75 JiangxiX Jiangxi Xunte Intelligent Terminal Co., Ltd
|
||||
84:F1:D0 EhoomeIo Ehoome Iot Private Limited
|
||||
84:F3:EB Espressi Espressif Inc.
|
||||
84:F4:4C Internat International Integrated Systems., Inc.
|
||||
|
@ -35359,6 +35433,7 @@
|
|||
88:2B:D7 Addénerg Addénergie Technologies
|
||||
88:2D:53 BaiduOnl Baidu Online Network Technology (Beijing) Co., Ltd.
|
||||
88:2E:5A storONE
|
||||
88:30:37 JuniperN Juniper Networks
|
||||
88:30:8A MurataMa Murata Manufacturing Co., Ltd.
|
||||
88:32:9B SamsungE Samsung Electro-Mechanics(Thailand)
|
||||
88:33:14 TexasIns Texas Instruments
|
||||
|
@ -35391,6 +35466,7 @@
|
|||
88:3C:C5:E0:00:00/28 myUpTech myUpTech AB
|
||||
88:3D:24 Google Google, Inc.
|
||||
88:3F:0C systemav system a.v. co., ltd.
|
||||
88:3F:37 Uhtek Uhtek Co., Ltd.
|
||||
88:3F:4A TexasIns Texas Instruments
|
||||
88:3F:99 Siemens Siemens AG
|
||||
88:3F:D3 HuaweiTe Huawei Technologies Co.,Ltd
|
||||
|
@ -35811,6 +35887,7 @@
|
|||
8C:1F:64:04:30:00/36 AperNet AperNet, LLC
|
||||
8C:1F:64:04:50:00/36 Veilux Veilux Inc.
|
||||
8C:1F:64:04:60:00/36 American American Fullway Corp.
|
||||
8C:1F:64:05:10:00/36 CPcontec CP contech electronic GmbH
|
||||
8C:1F:64:05:60:00/36 DongGuan Dong Guan Yung Fu Electronics Ltd.
|
||||
8C:1F:64:05:90:00/36 MBconnec MB connect line GmbH Fernwartungssysteme
|
||||
8C:1F:64:05:F0:00/36 ESCADAUT ESCAD AUTOMATION GmbH
|
||||
|
@ -35832,6 +35909,7 @@
|
|||
8C:1F:64:09:80:00/36 Agvoluti Agvolution GmbH
|
||||
8C:1F:64:09:90:00/36 Pantheru Pantherun Technologies Pvt Ltd
|
||||
8C:1F:64:09:B0:00/36 Taiv
|
||||
8C:1F:64:09:E0:00/36 IWSGloba IWS Global Pty Ltd
|
||||
8C:1F:64:09:F0:00/36 MBconnec MB connect line GmbH Fernwartungssysteme
|
||||
8C:1F:64:0A:80:00/36 SamabaNo SamabaNova Systems
|
||||
8C:1F:64:0A:A0:00/36 Di3Infot Di3 Infotech Llp
|
||||
|
@ -35843,10 +35921,12 @@
|
|||
8C:1F:64:0B:80:00/36 Signatro Signatrol Ltd
|
||||
8C:1F:64:0B:B0:00/36 InfraChe InfraChen Technology Co., Ltd.
|
||||
8C:1F:64:0B:E0:00/36 Bnb
|
||||
8C:1F:64:0B:F0:00/36 AuroraCo Aurora Communication Technologies Corp.
|
||||
8C:1F:64:0C:00:00/36 ActiveRe Active Research Limited
|
||||
8C:1F:64:0C:50:00/36 TechnipF TechnipFMC
|
||||
8C:1F:64:0D:50:00/36 RealD RealD, Inc.
|
||||
8C:1F:64:0D:60:00/36 AvdInnov Avd Innovation Limited
|
||||
8C:1F:64:0D:80:00/36 PowerEle Power Electronics Espana, S.L.
|
||||
8C:1F:64:0E:00:00/36 Autophar Autopharma
|
||||
8C:1F:64:0E:60:00/36 Cleanwat Cleanwatts Digital, S.A.
|
||||
8C:1F:64:0E:A0:00/36 SmartSky SmartSky Networks LLC
|
||||
|
@ -35871,6 +35951,7 @@
|
|||
8C:1F:64:13:30:00/36 Vtron Vtron Pty Ltd
|
||||
8C:1F:64:13:50:00/36 YuvalFic Yuval Fichman
|
||||
8C:1F:64:13:80:00/36 Vissavis Vissavi sp. z o.o.
|
||||
8C:1F:64:13:F0:00/36 Elsist Elsist Srl
|
||||
8C:1F:64:14:40:00/36 Langfang Langfang ENN lntelligent Technology Co.,Ltd.
|
||||
8C:1F:64:14:50:00/36 Spectrum Spectrum FiftyNine BV
|
||||
8C:1F:64:14:B0:00/36 PotterEl Potter Electric Signal Company
|
||||
|
@ -35895,6 +35976,7 @@
|
|||
8C:1F:64:19:C0:00/36 Aton Aton srl
|
||||
8C:1F:64:1A:50:00/36 Dialtron Dialtronics Systems Pvt Ltd
|
||||
8C:1F:64:1A:70:00/36 aelettro aelettronica group srl
|
||||
8C:1F:64:1A:D0:00/36 NexxtoSe Nexxto Servicos Em Tecnologia da Informacao SA
|
||||
8C:1F:64:1A:F0:00/36 EnviroNo EnviroNode IoT Solutions
|
||||
8C:1F:64:1B:20:00/36 Rapid-e- Rapid-e-Engineering Steffen Kramer
|
||||
8C:1F:64:1B:50:00/36 Xicato
|
||||
|
@ -35906,6 +35988,7 @@
|
|||
8C:1F:64:1C:00:00/36 INVENTIA INVENTIA Sp. z o.o.
|
||||
8C:1F:64:1C:20:00/36 SolidInv Solid Invent Ltda.
|
||||
8C:1F:64:1C:B0:00/36 SASYSeK SASYS e.K.
|
||||
8C:1F:64:1C:E0:00/36 Eiden Eiden Co.,Ltd.
|
||||
8C:1F:64:1D:00:00/36 MBconnec MB connect line GmbH Fernwartungssysteme
|
||||
8C:1F:64:1D:10:00/36 ASStrömu AS Strömungstechnik GmbH
|
||||
8C:1F:64:1D:80:00/36 Mesomat Mesomat inc.
|
||||
|
@ -35955,17 +36038,21 @@
|
|||
8C:1F:64:2A:50:00/36 Nonet Nonet Inc
|
||||
8C:1F:64:2A:90:00/36 ElbitAme Elbit Systems of America, LLC
|
||||
8C:1F:64:2B:60:00/36 StercomP Stercom Power Solutions GmbH
|
||||
8C:1F:64:2B:80:00/36 Veinland Veinland GmbH
|
||||
8C:1F:64:2B:B0:00/36 ChakraTe Chakra Technology Ltd
|
||||
8C:1F:64:2C:20:00/36 TexCompu Tex Computer Srl
|
||||
8C:1F:64:2C:30:00/36 TeraDiod TeraDiode / Panasonic
|
||||
8C:1F:64:2C:50:00/36 Sysn
|
||||
8C:1F:64:2C:60:00/36 YUYAMAMF YUYAMA MFG Co.,Ltd
|
||||
8C:1F:64:2C:70:00/36 Contralt Contralto Audio Srl
|
||||
8C:1F:64:2C:80:00/36 BRSSiste BRS Sistemas Eletrônicos
|
||||
8C:1F:64:2C:B0:00/36 SmartCom Smart Component Technologies Ltd
|
||||
8C:1F:64:2C:D0:00/36 TaiwanVt Taiwan Vtron
|
||||
8C:1F:64:2D:80:00/36 CONTROL CONTROL SYSTEMS Srl
|
||||
8C:1F:64:2E:20:00/36 MarkRobe Mark Roberts Motion Control
|
||||
8C:1F:64:2E:80:00/36 SonoraNe Sonora Network Solutions
|
||||
8C:1F:64:2E:F0:00/36 Invisens Invisense AB
|
||||
8C:1F:64:2F:00:00/36 SwitchSc Switch Science, Inc.
|
||||
8C:1F:64:2F:50:00/36 FloridaR Florida R&D Associates LLC
|
||||
8C:1F:64:2F:B0:00/36 MBconnec MB connect line GmbH Fernwartungssysteme
|
||||
8C:1F:64:2F:C0:00/36 Unimar Unimar, Inc.
|
||||
|
@ -35981,6 +36068,7 @@
|
|||
8C:1F:64:31:60:00/36 PotterEl Potter Electric Signal Company
|
||||
8C:1F:64:31:70:00/36 BacancyL Bacancy Systems LLP
|
||||
8C:1F:64:31:A0:00/36 Asiga Asiga Pty Ltd
|
||||
8C:1F:64:31:B0:00/36 jointana joint analytical systems GmbH
|
||||
8C:1F:64:32:40:00/36 KineticT Kinetic Technologies
|
||||
8C:1F:64:32:80:00/36 ComVideo Com Video Security Systems Co., Ltd.
|
||||
8C:1F:64:32:90:00/36 YUYAMAMF YUYAMA MFG Co.,Ltd
|
||||
|
@ -36048,6 +36136,7 @@
|
|||
8C:1F:64:41:20:00/36 Comercia Comercial Electronica Studio-2 s.l.
|
||||
8C:1F:64:41:40:00/36 INSEVIS INSEVIS GmbH
|
||||
8C:1F:64:41:70:00/36 Fracarro Fracarro srl
|
||||
8C:1F:64:41:C0:00/36 KSE KSE GmbH
|
||||
8C:1F:64:41:D0:00/36 AspenSpe Aspen Spectra Sdn Bhd
|
||||
8C:1F:64:42:30:00/36 HiwinMik Hiwin Mikrosystem Corp.
|
||||
8C:1F:64:42:60:00/36 eumigind eumig industrie-TV GmbH.
|
||||
|
@ -36073,6 +36162,7 @@
|
|||
8C:1F:64:48:90:00/36 Hupi
|
||||
8C:1F:64:49:30:00/36 Security Security Products International, LLC
|
||||
8C:1F:64:49:80:00/36 YUYAMAMF YUYAMA MFG Co.,Ltd
|
||||
8C:1F:64:4A:00:00/36 Tantec Tantec A/S
|
||||
8C:1F:64:4A:C0:00/36 Vekto
|
||||
8C:1F:64:4A:E0:00/36 KCS KCS Co., Ltd.
|
||||
8C:1F:64:4A:F0:00/36 miniDSP
|
||||
|
@ -36082,6 +36172,7 @@
|
|||
8C:1F:64:4C:70:00/36 SBS SBS SpA
|
||||
8C:1F:64:4C:D0:00/36 GuanShow Guan Show Technologe Co., Ltd.
|
||||
8C:1F:64:4D:60:00/36 DanSmith Dan Smith LLC
|
||||
8C:1F:64:4D:90:00/36 Securico Securico Electronics India Ltd
|
||||
8C:1F:64:4D:A0:00/36 DTDSTech DTDS Technology Pte Ltd
|
||||
8C:1F:64:4D:B0:00/36 Private
|
||||
8C:1F:64:4D:C0:00/36 BESOsp BESO sp. z o.o.
|
||||
|
@ -36106,6 +36197,7 @@
|
|||
8C:1F:64:51:80:00/36 WagnerGr Wagner Group GmbH
|
||||
8C:1F:64:52:10:00/36 MP-SENSO MP-SENSOR GmbH
|
||||
8C:1F:64:52:50:00/36 UnitedSt United States Technologies Inc.
|
||||
8C:1F:64:52:A0:00/36 HiwinMik Hiwin Mikrosystem Corp.
|
||||
8C:1F:64:52:D0:00/36 CubicITS Cubic ITS, Inc. dba GRIDSMART Technologies
|
||||
8C:1F:64:52:E0:00/36 CLOUDTEL CLOUD TELECOM Inc.
|
||||
8C:1F:64:53:40:00/36 SuryaEle Surya Electronics
|
||||
|
@ -36366,6 +36458,7 @@
|
|||
8C:1F:64:8E:20:00/36 ALPHA ALPHA Corporation
|
||||
8C:1F:64:8E:30:00/36 UniTikTe UniTik Technology Co., Limited
|
||||
8C:1F:64:8E:50:00/36 Druck Druck Ltd.
|
||||
8C:1F:64:8E:80:00/36 Cominfo Cominfo, Inc.
|
||||
8C:1F:64:8E:90:00/36 Vesperix Vesperix Corporation
|
||||
8C:1F:64:8E:B0:00/36 NumaProd Numa Products LLC
|
||||
8C:1F:64:8E:E0:00/36 AbbottDi Abbott Diagnostics Technologies AS
|
||||
|
@ -36430,6 +36523,7 @@
|
|||
8C:1F:64:9C:F0:00/36 ASAPElec ASAP Electronics GmbH
|
||||
8C:1F:64:9D:40:00/36 Wolfspyr Wolfspyre Labs
|
||||
8C:1F:64:9D:80:00/36 Integerp Integer.pl S.A.
|
||||
8C:1F:64:9E:00:00/36 Druck Druck Ltd.
|
||||
8C:1F:64:9E:20:00/36 Technolo Technology for Energy Corp
|
||||
8C:1F:64:9E:80:00/36 GHMMesst GHM Messtechnik GmbH
|
||||
8C:1F:64:9F:00:00/36 ePlant ePlant, Inc.
|
||||
|
@ -36467,11 +36561,13 @@
|
|||
8C:1F:64:A6:00:00/36 ActiveOp Active Optical Systems, LLC
|
||||
8C:1F:64:A6:A0:00/36 SphereCo Sphere Com Services Pvt Ltd
|
||||
8C:1F:64:A6:D0:00/36 CyberneX CyberneX Co., Ltd
|
||||
8C:1F:64:A7:00:00/36 V-teknik V-teknik Elektronik AB
|
||||
8C:1F:64:A7:60:00/36 DEUTA-WE DEUTA-WERKE GmbH
|
||||
8C:1F:64:A7:70:00/36 Rax-Tech Rax-Tech International
|
||||
8C:1F:64:A8:10:00/36 3Dpercep 3D perception AS
|
||||
8C:1F:64:A8:30:00/36 EkspertS EkspertStroyProekt
|
||||
8C:1F:64:A8:40:00/36 BeijingW Beijing Wenrise Technology Co., Ltd.
|
||||
8C:1F:64:A9:10:00/36 Infiniti Infinitive Group Limited
|
||||
8C:1F:64:A9:40:00/36 Futurewa Future wave ultra tech Company
|
||||
8C:1F:64:A9:70:00/36 Integerp Integer.pl S.A.
|
||||
8C:1F:64:A9:A0:00/36 Signasys Signasystems Elektronik San. ve Tic. Ltd. Sti.
|
||||
|
@ -36512,6 +36608,7 @@
|
|||
8C:1F:64:B2:20:00/36 Blighter Blighter Surveillance Systems Ltd
|
||||
8C:1F:64:B2:B0:00/36 RhombusE Rhombus Europe
|
||||
8C:1F:64:B2:C0:00/36 SanminaI Sanmina Israel Medical Systems Ltd
|
||||
8C:1F:64:B3:60:00/36 Pneumax Pneumax Spa
|
||||
8C:1F:64:B3:B0:00/36 Sicon Sicon srl
|
||||
8C:1F:64:B3:D0:00/36 RealD RealD, Inc.
|
||||
8C:1F:64:B4:60:00/36 Phygital Phygitall Soluções Em Internet Das Coisas
|
||||
|
@ -36589,6 +36686,7 @@
|
|||
8C:1F:64:C6:10:00/36 BeijingC Beijing Ceresdate Technology Co.,LTD
|
||||
8C:1F:64:C6:40:00/36 Ajeco Ajeco Oy
|
||||
8C:1F:64:C6:80:00/36 FibermeC Fiberme Communications Llc
|
||||
8C:1F:64:C6:A0:00/36 RedPhase Red Phase Technologies Limited
|
||||
8C:1F:64:C6:B0:00/36 Mediana
|
||||
8C:1F:64:C7:C0:00/36 MERKLESc MERKLE Schweissanlagen-Technik GmbH
|
||||
8C:1F:64:C8:00:00/36 VECOSEur VECOS Europe B.V.
|
||||
|
@ -36650,6 +36748,7 @@
|
|||
8C:1F:64:D5:B0:00/36 LocalSec Local Security
|
||||
8C:1F:64:D5:E0:00/36 Integerp Integer.pl S.A.
|
||||
8C:1F:64:D6:90:00/36 ADiCo ADiCo Corporation
|
||||
8C:1F:64:D6:C0:00/36 Packetal Packetalk LLC
|
||||
8C:1F:64:D7:30:00/36 BRSSiste BRS Sistemas Eletrônicos
|
||||
8C:1F:64:D7:80:00/36 HunanOus Hunan Oushi Electronic Technology Co.,Ltd
|
||||
8C:1F:64:D7:C0:00/36 QuercusT Quercus Technologies, S.L.
|
||||
|
@ -36672,6 +36771,7 @@
|
|||
8C:1F:64:DC:20:00/36 ProconEl Procon Electronics Pty Ltd
|
||||
8C:1F:64:DC:90:00/36 PeterHub Peter Huber Kaeltemaschinenbau AG
|
||||
8C:1F:64:DC:A0:00/36 Porschee Porsche engineering
|
||||
8C:1F:64:DD:40:00/36 Midlands Midlands Technical Co., Ltd.
|
||||
8C:1F:64:DD:50:00/36 Cardinal Cardinal Scales Manufacturing Co
|
||||
8C:1F:64:DD:70:00/36 KSTtechn KST technology
|
||||
8C:1F:64:DD:E0:00/36 JemacSwe Jemac Sweden AB
|
||||
|
@ -36684,6 +36784,7 @@
|
|||
8C:1F:64:E1:00:00/36 Scenario Scenario Automation
|
||||
8C:1F:64:E1:20:00/36 PixusTec Pixus Technologies Inc.
|
||||
8C:1F:64:E2:10:00/36 LG-LHTAi LG-LHT Aircraft Solutions GmbH
|
||||
8C:1F:64:E2:40:00/36 CometaSa Cometa Sas
|
||||
8C:1F:64:E2:D0:00/36 Private
|
||||
8C:1F:64:E3:00:00/36 VMuktiSo VMukti Solutions Private Limited
|
||||
8C:1F:64:E4:10:00/36 Grossenb Grossenbacher Systeme AG
|
||||
|
@ -36704,6 +36805,7 @@
|
|||
8C:1F:64:E7:B0:00/36 Dongguan Dongguan Pengchen Earth Instrument CO. LT
|
||||
8C:1F:64:E7:C0:00/36 AshinneT Ashinne Technology Co., Ltd
|
||||
8C:1F:64:E8:60:00/36 ComVetia ComVetia AG
|
||||
8C:1F:64:E8:F0:00/36 JieChuan JieChuang HeYi(Beijing) Technology Co., Ltd.
|
||||
8C:1F:64:E9:00:00/36 MHEElect MHE Electronics
|
||||
8C:1F:64:E9:20:00/36 EAElektr EA Elektro-Automatik
|
||||
8C:1F:64:E9:40:00/36 ZinTechn Zin Technologies
|
||||
|
@ -36764,6 +36866,7 @@
|
|||
8C:1F:64:F5:B0:00/36 SemaConn SemaConnect, Inc
|
||||
8C:1F:64:F5:C0:00/36 Flextron Flextronics International Kft
|
||||
8C:1F:64:F5:F0:00/36 TR7Siber TR7 Siber Savunma A.S.
|
||||
8C:1F:64:F6:30:00/36 QuantumM Quantum Media Systems
|
||||
8C:1F:64:F6:50:00/36 Talleres Talleres de Escoriaza SA
|
||||
8C:1F:64:F7:00:00/36 VisionSa Vision Systems Safety Tech
|
||||
8C:1F:64:F7:20:00/36 Contrade Contrader
|
||||
|
@ -37146,6 +37249,7 @@
|
|||
8C:EC:4B Dell Dell Inc.
|
||||
8C:EC:7B Apple Apple, Inc.
|
||||
8C:EE:C6 Precepsc Precepscion Pty. Ltd.
|
||||
8C:EE:FD zte zte corporation
|
||||
8C:F1:12 Motorola Motorola Mobility LLC, a Lenovo Company
|
||||
8C:F2:28 MercuryC Mercury Communication Technologies Co.,Ltd.
|
||||
8C:F3:19 SiemensI Siemens Industrial Automation Products Ltd., Chengdu
|
||||
|
@ -37181,6 +37285,7 @@
|
|||
90:03:72 LongnanJ Longnan Junya Digital Technology Co. Ltd.
|
||||
90:03:B7 Parrot Parrot Sa
|
||||
90:06:28 SamsungE Samsung Electronics Co.,Ltd
|
||||
90:06:F2 TexasIns Texas Instruments
|
||||
90:09:17 Far-sigh Far-sighted mobile
|
||||
90:09:D0 Synology Synology Incorporated
|
||||
90:09:DF IntelCor Intel Corporate
|
||||
|
@ -37331,6 +37436,7 @@
|
|||
90:6A:EB Microsof Microsoft Corporation
|
||||
90:6C:AC Fortinet Fortinet, Inc.
|
||||
90:6D:05 BxbElect Bxb Electronics Co., Ltd
|
||||
90:6D:62 CambiumN Cambium Networks Limited
|
||||
90:6D:C8 DLGAutom DLG Automação Industrial Ltda
|
||||
90:6E:BB HonHaiPr Hon Hai Precision Ind. Co.,Ltd.
|
||||
90:6F:18 Private
|
||||
|
@ -37371,6 +37477,7 @@
|
|||
90:84:8B HDR10+Te HDR10+ Technologies, LLC
|
||||
90:86:74 SichuanT Sichuan Tianyi Comheart Telecom Co.,LTD
|
||||
90:86:9B zte zte corporation
|
||||
90:88:55 Cisco Cisco Systems, Inc
|
||||
90:88:A2 IonicsTe Ionics Technology Me Ltda
|
||||
90:89:5F WeifangG Weifang Goertek Electronics Co.,Ltd
|
||||
90:8C:09 TotalPha Total Phase
|
||||
|
@ -37524,6 +37631,7 @@
|
|||
90:E9:5E Cisco Cisco Systems, Inc
|
||||
90:EA:60 SPILaser SPI Lasers Ltd
|
||||
90:EB:48 Shanghai Shanghai XinMiaoLink Technology Co., Ltd
|
||||
90:EB:50 Cisco Cisco Systems, Inc
|
||||
90:EC:50 COBO C.O.B.O. Spa
|
||||
90:EC:77 silicom
|
||||
90:EC:EA Apple Apple, Inc.
|
||||
|
@ -37700,6 +37808,7 @@
|
|||
94:76:B7 SamsungE Samsung Electronics Co.,Ltd
|
||||
94:77:2B HuaweiTe Huawei Technologies Co.,Ltd
|
||||
94:78:06 NingboSu Ningbo Sunvot Technology Co.,Ltd
|
||||
94:79:18 ItelMobi Itel Mobile Limited
|
||||
94:7B:AE XiaomiCo Xiaomi Communications Co Ltd
|
||||
94:7B:BE Ubicquia Ubicquia LLC
|
||||
94:7B:E7 SamsungE Samsung Electronics Co.,Ltd
|
||||
|
@ -37963,6 +38072,7 @@
|
|||
98:02:D8:D0:00:00/28 Promicon Promicon Elektronik GmbH + Co.KG
|
||||
98:02:D8:E0:00:00/28 Private
|
||||
98:02:D8:F0:00:00/28 Private
|
||||
98:03:8A TexasIns Texas Instruments
|
||||
98:03:9B Mellanox Mellanox Technologies, Inc.
|
||||
98:03:A0 ABBPower ABB n.v. Power Quality Products
|
||||
98:03:D8 Apple Apple, Inc.
|
||||
|
@ -38962,6 +39072,7 @@ A0:63:91 Netgear
|
|||
A0:64:8F AskeyCom Askey Computer Corp
|
||||
A0:65:18 VnptTech Vnpt Technology
|
||||
A0:66:10 Fujitsu Fujitsu Limited
|
||||
A0:66:36 Intracom Intracom SA Telecom Solutions
|
||||
A0:67:20 ChinaDra China Dragon Technology Limited
|
||||
A0:67:BE Sicon Sicon srl
|
||||
A0:68:1C GDMideaA GD Midea Air-Conditioning Equipment Co.,Ltd.
|
||||
|
@ -39672,6 +39783,7 @@ A8:24:EB NPOIntro ZAO NPO Introtest
|
|||
A8:25:EB Cambridg Cambridge Industries(Group) Co.,Ltd.
|
||||
A8:26:D9 HTC HTC Corporation
|
||||
A8:29:4C Precisio Precision Optical Transceivers, Inc.
|
||||
A8:2A:D6 Arthrex Arthrex Inc.
|
||||
A8:2B:B5 Edgecore Edgecore Networks Corporation
|
||||
A8:2B:B9 SamsungE Samsung Electronics Co.,Ltd
|
||||
A8:2B:CD HuaweiTe Huawei Technologies Co.,Ltd
|
||||
|
@ -39966,6 +40078,7 @@ AA:DC:47 Cachengo Cachengo, Inc.
|
|||
AA:F0:19 Transfer TransferJet Consortium Incorporated Association
|
||||
AC:00:7A Apple Apple, Inc.
|
||||
AC:00:D0 zte zte corporation
|
||||
AC:00:F9 BizLinkT BizLink Technology (S.E.A) Sdn. Bhd.
|
||||
AC:01:42 UrielTec Uriel Technologies SIA
|
||||
AC:02:CA HISoluti HI Solutions, Inc.
|
||||
AC:02:CF RWTecnol RW Tecnologia Industria e Comercio Ltda
|
||||
|
@ -40065,6 +40178,7 @@ AC:3E:B1 Google Google, Inc.
|
|||
AC:3F:A4 TaiyoYud Taiyo Yuden Co.,Ltd
|
||||
AC:40:EA C&TSolut C&T Solution Inc.
|
||||
AC:41:22 EclipseE Eclipse Electronic Systems Inc.
|
||||
AC:41:6A AmazonTe Amazon Technologies Inc.
|
||||
AC:42:28 PartaNet Parta Networks
|
||||
AC:43:30 VersaNet Versa Networks
|
||||
AC:44:F2 Yamaha Yamaha Corporation
|
||||
|
@ -40294,6 +40408,7 @@ AC:D5:64 Chongqin Chongqing Fugui Electronics Co.,Ltd.
|
|||
AC:D6:18 OnePlusT OnePlus Technology (Shenzhen) Co., Ltd
|
||||
AC:D6:57 ShaanxiG Shaanxi GuoLian Digital TV Technology Co.,Ltd.
|
||||
AC:D8:29 Bouffalo Bouffalo Lab (Nanjing) Co., Ltd.
|
||||
AC:D8:A7 BELLDESI BELLDESIGN Inc.
|
||||
AC:D9:D6 tci tci GmbH
|
||||
AC:DB:48 ARRISGro ARRIS Group, Inc.
|
||||
AC:DB:DA Shenzhen Shenzhen Geniatech Inc, Ltd
|
||||
|
@ -40415,7 +40530,7 @@ B0:35:B5 Apple Apple, Inc.
|
|||
B0:37:95 LGElectr LG Electronics
|
||||
B0:38:29 Siliconw Siliconware Precision Industries Co., Ltd.
|
||||
B0:38:50 NanjingC Nanjing CAS-ZDC IOT SYSTEM CO.,LTD
|
||||
B0:38:93 OndaTLC Onda TLC GmbH
|
||||
B0:38:93 OndaTLCI Onda TLC Italia S.r.l.
|
||||
B0:38:E2 WananHon Wanan Hongsheng Electronic Co.Ltd
|
||||
B0:39:56 Netgear
|
||||
B0:3A:CE HuaweiDe Huawei Device Co., Ltd.
|
||||
|
@ -40543,6 +40658,7 @@ B0:9F:BA Apple Apple, Inc.
|
|||
B0:A1:0A Pivotal Pivotal Systems Corporation
|
||||
B0:A2:E7 Shenzhen Shenzhen TINNO Mobile Technology Corp.
|
||||
B0:A3:7E QingDaoH Qing Dao Haier Telecom Co.,Ltd.
|
||||
B0:A3:F2 HuaqinTe Huaqin Technology Co. LTD
|
||||
B0:A4:54 Tripwire Tripwire Inc.
|
||||
B0:A4:60 IntelCor Intel Corporate
|
||||
B0:A4:F0 HuaweiTe Huawei Technologies Co.,Ltd
|
||||
|
@ -40691,6 +40807,7 @@ B0:F7:C4 AmazonTe Amazon Technologies Inc.
|
|||
B0:F8:93 Shanghai Shanghai MXCHIP Information Technology Co., Ltd.
|
||||
B0:F9:63 Hangzhou Hangzhou H3C Technologies Co., Limited
|
||||
B0:FA:EB Cisco Cisco Systems, Inc
|
||||
B0:FB:15 LairdCon Laird Connectivity
|
||||
B0:FB:DD Shenzhen Shenzhen SuperElectron Technology Co.,Ltd.
|
||||
B0:FC:0D AmazonTe Amazon Technologies Inc.
|
||||
B0:FC:36 CyberTAN CyberTAN Technology Inc.
|
||||
|
@ -40835,6 +40952,18 @@ B4:4B:D6:D0:00:00/28 ElletaSo Elleta Solutions Ltd
|
|||
B4:4B:D6:E0:00:00/28 Chunghsi Chunghsin International Electronics Co.,Ltd.
|
||||
B4:4C:3B Zhejiang Zhejiang Dahua Technology Co., Ltd.
|
||||
B4:4C:C2 NrElectr Nr Electric Co., Ltd
|
||||
B4:4D:43 IEEERegi IEEE Registration Authority
|
||||
B4:4D:43:00:00:00/28 Mihoyo
|
||||
B4:4D:43:10:00:00/28 iLineMic iLine Microsystems S.L. (B20956751)
|
||||
B4:4D:43:20:00:00/28 RgSoluti Rg Solutions Ltd
|
||||
B4:4D:43:30:00:00/28 ETSMETec ETSME Technologies C0., Ltd.
|
||||
B4:4D:43:40:00:00/28 ALLSPACE ALL.SPACE Networks Ltd
|
||||
B4:4D:43:70:00:00/28 SernetSu Sernet (Suzhou) Technologies Corporation
|
||||
B4:4D:43:80:00:00/28 ShenZhen ShenZhen Launch-Wonder Technology co., LTD
|
||||
B4:4D:43:90:00:00/28 AdHocDev Ad Hoc Developments S.L.
|
||||
B4:4D:43:A0:00:00/28 UAVNavig UAV Navigation
|
||||
B4:4D:43:B0:00:00/28 Paulmann Paulmann Licht GmbH
|
||||
B4:4D:43:C0:00:00/28 Shenzhen Shenzhen Kosky Technology Co.,Ltd.
|
||||
B4:4F:96 Zhejiang Zhejiang Xinzailing Technology co., ltd
|
||||
B4:50:62 EmBestor EmBestor Technology Inc.
|
||||
B4:51:F9 NBSoftwa NB Software
|
||||
|
@ -41869,6 +41998,7 @@ C0:48:84 SigmaBil Sigma Bilisim Sist. Tekn. Elk. Enj. ve San. D??. Tic. Ltd. ?ti
|
|||
C0:48:E6 SamsungE Samsung Electronics Co.,Ltd
|
||||
C0:48:FB Shenzhen Shenzhen JingHanDa Electronics Co.Ltd
|
||||
C0:49:3D Maitrise Maitrise Technologique
|
||||
C0:49:43 zte zte corporation
|
||||
C0:49:EF Espressi Espressif Inc.
|
||||
C0:4A:00 Tp-LinkT Tp-Link Technologies Co.,Ltd.
|
||||
C0:4A:09 Zhejiang Zhejiang Everbright Communication Equip. Co,. Ltd
|
||||
|
@ -41883,6 +42013,7 @@ C0:56:27 BelkinIn Belkin International Inc.
|
|||
C0:56:E3 Hangzhou Hangzhou Hikvision Digital Technology Co.,Ltd.
|
||||
C0:57:BC Avaya Avaya Inc
|
||||
C0:58:A7 Pico Pico Systems Co., Ltd.
|
||||
C0:5B:44 BeijingX Beijing Xiaomi Mobile Software Co., Ltd
|
||||
C0:5E:6F VStonkau V. Stonkaus firma "Kodinis Raktas"
|
||||
C0:5E:79 Shenzhen Shenzhen Huaxun Ark Technologies Co.,Ltd
|
||||
C0:61:18 Tp-LinkT Tp-Link Technologies Co.,Ltd.
|
||||
|
@ -42571,6 +42702,7 @@ C4:EB:41 Sagemcom Sagemcom Broadband SAS
|
|||
C4:EB:42 Sagemcom Sagemcom Broadband SAS
|
||||
C4:EB:43 Sagemcom Sagemcom Broadband SAS
|
||||
C4:EB:E3 RrcnSas Rrcn Sas
|
||||
C4:EB:FF zte zte corporation
|
||||
C4:ED:BA TexasIns Texas Instruments
|
||||
C4:EE:AE VSSMonit VSS Monitoring
|
||||
C4:EE:F5 II-VI II-VI Incorporated
|
||||
|
@ -42634,6 +42766,7 @@ C8:0E:77 LeShiZhi Le Shi Zhi Xin Electronic Technology (Tianjin) Limited
|
|||
C8:0E:95 OmniLync OmniLync Inc.
|
||||
C8:10:73 CenturyO Century Opticomm Co.,Ltd
|
||||
C8:12:0B SamsungE Samsung Electronics Co.,Ltd
|
||||
C8:13:37 JuniperN Juniper Networks
|
||||
C8:13:8B Shenzhen Shenzhen Skyworth Digital Technology CO., Ltd
|
||||
C8:14:51 HuaweiTe Huawei Technologies Co.,Ltd
|
||||
C8:14:79 SamsungE Samsung Electronics Co.,Ltd
|
||||
|
@ -43273,6 +43406,7 @@ CC:B1:82 HuaweiTe Huawei Technologies Co.,Ltd
|
|||
CC:B2:55 D-LinkIn D-Link International
|
||||
CC:B3:AB shenzhen shenzhen Biocare Bio-Medical Equipment Co.,Ltd.
|
||||
CC:B3:F8 FujitsuI Fujitsu Isotec Limited
|
||||
CC:B5:4C TexasIns Texas Instruments
|
||||
CC:B5:5A Fraunhof Fraunhofer ITWM
|
||||
CC:B5:D1 BeijingX Beijing Xiaomi Mobile Software Co., Ltd
|
||||
CC:B6:91 NECMagnu NECMagnusCommunications
|
||||
|
@ -43928,6 +44062,7 @@ D4:25:CC:C0:00:00/28 POSNETPo POSNET Polska S.A.
|
|||
D4:25:CC:D0:00:00/28 Combined Combined Energy Technologies Pty Ltd
|
||||
D4:25:CC:E0:00:00/28 Coperion
|
||||
D4:27:51 Infopia Infopia Co., Ltd
|
||||
D4:27:87 Shanghai Shanghai High-Flying Electronics Technology Co., Ltd
|
||||
D4:28:B2 ioBridge ioBridge, Inc.
|
||||
D4:28:D5 TCTmobil TCT mobile ltd
|
||||
D4:29:EA Zimory Zimory GmbH
|
||||
|
@ -43987,6 +44122,7 @@ D4:50:7A CEIVALog CEIVA Logic, Inc
|
|||
D4:52:2A TangoWiF TangoWiFi.com
|
||||
D4:52:51 IBTIngen IBT Ingenieurbureau Broennimann Thun
|
||||
D4:52:97 nSTREAMS nSTREAMS Technologies, Inc.
|
||||
D4:52:C7 BeijingL Beijing L&S Lancom Platform Tech. Co., Ltd.
|
||||
D4:52:EE SkyUk Sky Uk Limited
|
||||
D4:53:47 Merytron Merytronic 2012, S.L.
|
||||
D4:53:83 MurataMa Murata Manufacturing Co., Ltd.
|
||||
|
@ -44167,6 +44303,7 @@ D4:B1:10 HuaweiTe Huawei Technologies Co.,Ltd
|
|||
D4:B1:69 LeShiZhi Le Shi Zhi Xin Electronic Technology (Tianjin) Limited
|
||||
D4:B2:7A ARRISGro ARRIS Group, Inc.
|
||||
D4:B4:3E Messcomp Messcomp Datentechnik GmbH
|
||||
D4:B6:80 Shanghai Shanghai Linkyum Microeletronics Co.,Ltd
|
||||
D4:B7:09 zte zte corporation
|
||||
D4:B7:61 SichuanA Sichuan AI-Link Technology Co., Ltd.
|
||||
D4:B7:D0 Ciena Ciena Corporation
|
||||
|
@ -44188,6 +44325,7 @@ D4:BA:BA:B0:00:00/28 QingdaoV Qingdao Vzense Technology Co., Ltd.
|
|||
D4:BA:BA:C0:00:00/28 RusatomA Rusatom Automated Control Systems, Joint-Stock Company
|
||||
D4:BA:BA:D0:00:00/28 AADONACo AADONA Communication Pvt Ltd
|
||||
D4:BA:BA:E0:00:00/28 CamozziA Camozzi Automation SpA
|
||||
D4:BA:FA Guangdon Guangdong Oppo Mobile Telecommunications Corp.,Ltd
|
||||
D4:BB:C8 vivoMobi vivo Mobile Communication Co., Ltd.
|
||||
D4:BB:E6 HuaweiDe Huawei Device Co., Ltd.
|
||||
D4:BD:1E 5VTTechn 5VT Technologies,Taiwan LTd.
|
||||
|
@ -44241,6 +44379,7 @@ D4:E8:53 Hangzhou Hangzhou Hikvision Digital Technology Co.,Ltd.
|
|||
D4:E8:80 Cisco Cisco Systems, Inc
|
||||
D4:E8:B2 SamsungE Samsung Electronics Co.,Ltd
|
||||
D4:E9:0B Cvt Cvt Co.,Ltd
|
||||
D4:E9:5E TexasIns Texas Instruments
|
||||
D4:E9:8A IntelCor Intel Corporate
|
||||
D4:EA:0E Avaya Avaya Inc
|
||||
D4:EB:68 Cisco Cisco Systems, Inc
|
||||
|
@ -44568,6 +44707,7 @@ D8:D1:CB Apple Apple, Inc.
|
|||
D8:D2:7C JemaEner Jema Energy, Sa
|
||||
D8:D3:85 HewlettP Hewlett Packard
|
||||
D8:D4:3C Sony Sony Corporation
|
||||
D8:D4:5D OrbicNor Orbic North America
|
||||
D8:D4:E6 HytecInt Hytec Inter Co., Ltd.
|
||||
D8:D5:B9 Rainfore Rainforest Automation, Inc.
|
||||
D8:D6:7E GskCncEq Gsk Cnc Equipment Co.,Ltd
|
||||
|
@ -44837,6 +44977,7 @@ DC:8B:28 IntelCor Intel Corporate
|
|||
DC:8C:1B vivoMobi vivo Mobile Communication Co., Ltd.
|
||||
DC:8C:37 Cisco Cisco Systems, Inc
|
||||
DC:8D:8A NokiaSol Nokia Solutions and Networks GmbH & Co. KG
|
||||
DC:8D:91 Infinixm Infinix mobility limited
|
||||
DC:8D:B7 AtwTechn Atw Technology, Inc.
|
||||
DC:8E:95 SiliconL Silicon Laboratories
|
||||
DC:90:20 RuruTekP Ruru Tek Private Limited
|
||||
|
@ -44922,6 +45063,7 @@ DC:CF:94 BeijingR Beijing Rongcheng Hutong Technology Co., Ltd.
|
|||
DC:CF:96 SamsungE Samsung Electronics Co.,Ltd
|
||||
DC:D0:F7 Bentek Bentek Systems Ltd.
|
||||
DC:D2:55 KinpoEle Kinpo Electronics, Inc.
|
||||
DC:D2:6A Hangzhou Hangzhou Hikvision Digital Technology Co.,Ltd.
|
||||
DC:D2:FC HuaweiTe Huawei Technologies Co.,Ltd
|
||||
DC:D2:FD HuaweiTe Huawei Technologies Co.,Ltd
|
||||
DC:D3:21 HUMAX HUMAX Co., Ltd.
|
||||
|
@ -45409,6 +45551,7 @@ E4:15:F6 TexasIns Texas Instruments
|
|||
E4:17:D8 8BitdoTe 8Bitdo Technology Hk Limited
|
||||
E4:18:6B ZyxelCom Zyxel Communications Corporation
|
||||
E4:19:C1 HuaweiTe Huawei Technologies Co.,Ltd
|
||||
E4:1A:1D NoveaEne Novea Energies
|
||||
E4:1A:2C ZPE ZPE Systems, Inc.
|
||||
E4:1C:4B V2Techno V2 Technology, Inc.
|
||||
E4:1D:2D Mellanox Mellanox Technologies, Inc.
|
||||
|
@ -45464,6 +45607,7 @@ E4:35:93 Hangzhou Hangzhou GoTo technology Co.Ltd
|
|||
E4:35:C8 HuaweiTe Huawei Technologies Co.,Ltd
|
||||
E4:35:FB SabreTec Sabre Technology (Hull) Ltd
|
||||
E4:37:D7 HenriDep Henri Depaepe S.A.S.
|
||||
E4:38:19 Shenzhen Shenzhen Hi-Link Electronic CO.,Ltd.
|
||||
E4:38:7E Cisco Cisco Systems, Inc
|
||||
E4:38:83 Ubiquiti Ubiquiti Inc
|
||||
E4:38:8C DigitalP Digital Products Limited
|
||||
|
@ -45483,6 +45627,7 @@ E4:41:E6 OttecTec Ottec Technology GmbH
|
|||
E4:42:A6 IntelCor Intel Corporate
|
||||
E4:43:4B Dell Dell Inc.
|
||||
E4:44:E5 ExtremeN Extreme Networks, Inc.
|
||||
E4:45:19 BeijingX Beijing Xiaomi Electronics Co.,Ltd
|
||||
E4:46:B0 FujitsuC Fujitsu Client Computing Limited
|
||||
E4:46:BD C&CTechn C&C Technic Taiwan Co., Ltd.
|
||||
E4:46:DA XiaomiCo Xiaomi Communications Co Ltd
|
||||
|
@ -45718,6 +45863,7 @@ E4:F8:9C IntelCor Intel Corporate
|
|||
E4:F8:EF SamsungE Samsung Electronics Co.,Ltd
|
||||
E4:F9:39 MinxonHo Minxon Hotel Technology INC.
|
||||
E4:FA:1D PADPerip PAD Peripheral Advanced Design Inc.
|
||||
E4:FA:C4 BigField Big Field Global PTE. Ltd.
|
||||
E4:FA:ED SamsungE Samsung Electronics Co.,Ltd
|
||||
E4:FA:FD IntelCor Intel Corporate
|
||||
E4:FB:5D HuaweiTe Huawei Technologies Co.,Ltd
|
||||
|
@ -45785,6 +45931,7 @@ E8:1C:D8 Apple Apple, Inc.
|
|||
E8:1D:A8 RuckusWi Ruckus Wireless
|
||||
E8:1E:92 HuaweiDe Huawei Device Co., Ltd.
|
||||
E8:20:E2 HUMAX HUMAX Co., Ltd.
|
||||
E8:24:04 QuectelW Quectel Wireless Solutions Co.,Ltd.
|
||||
E8:24:A6 JuniperN Juniper Networks
|
||||
E8:26:89 ArubaaHe Aruba, a Hewlett Packard Enterprise Company
|
||||
E8:26:8D Shenzhen Shenzhen SuperElectron Technology Co.,Ltd.
|
||||
|
@ -47117,6 +47264,7 @@ F4:A5:9D HuaweiDe Huawei Device Co., Ltd.
|
|||
F4:A7:39 JuniperN Juniper Networks
|
||||
F4:A8:0D WistronI Wistron InfoComm(Kunshan)Co.,Ltd.
|
||||
F4:A9:97 Canon Canon Inc.
|
||||
F4:AA:D0 Ohsung
|
||||
F4:AC:C1 Cisco Cisco Systems, Inc
|
||||
F4:AF:E7 Apple Apple, Inc.
|
||||
F4:B1:64 Lightnin Lightning Telecommunications Technology Co. Ltd
|
||||
|
@ -47161,6 +47309,7 @@ F4:C7:C8 Kelvin Kelvin Inc.
|
|||
F4:C8:8A IntelCor Intel Corporate
|
||||
F4:CA:24 FreeBit FreeBit Co., Ltd.
|
||||
F4:CA:E5 FreeboxS Freebox Sas
|
||||
F4:CA:E7 Arcadyan Arcadyan Corporation
|
||||
F4:CB:52 HuaweiTe Huawei Technologies Co.,Ltd
|
||||
F4:CC:55 JuniperN Juniper Networks
|
||||
F4:CD:90 Vispiron Vispiron Rotec GmbH
|
||||
|
@ -47317,6 +47466,7 @@ F8:22:85 CypressT Cypress Technology CO., LTD.
|
|||
F8:23:87 Shenzhen Shenzhen Horn Audio Co.,Ltd.
|
||||
F8:23:B2 HuaweiTe Huawei Technologies Co.,Ltd
|
||||
F8:24:41 Yeelink
|
||||
F8:24:DB EntryPoi EntryPoint Networks, Inc
|
||||
F8:24:E4 Beyonics Beyonics Technology Electronic (Changshu) Co., Ltd
|
||||
F8:25:51 SeikoEps Seiko Epson Corporation
|
||||
F8:27:2E Mercku
|
||||
|
@ -47329,6 +47479,7 @@ F8:2B:C8 JiangsuS Jiangsu Switter Co., Ltd
|
|||
F8:2C:18 2Wire 2Wire Inc
|
||||
F8:2D:7C Apple Apple, Inc.
|
||||
F8:2D:C0 ARRISGro ARRIS Group, Inc.
|
||||
F8:2E:0C TexasIns Texas Instruments
|
||||
F8:2E:3F HuaweiTe Huawei Technologies Co.,Ltd
|
||||
F8:2E:8E NanjingK Nanjing Kechen Electric Co., Ltd.
|
||||
F8:2E:DB RTW RTW GmbH & Co. KG
|
||||
|
@ -47417,6 +47568,7 @@ F8:64:65 AnovaApp Anova Applied Electronics, Inc.
|
|||
F8:64:B8 zte zte corporation
|
||||
F8:66:01 SuzhouCh Suzhou Chi-tek information technology Co., Ltd
|
||||
F8:66:5A Apple Apple, Inc.
|
||||
F8:66:91 SichuanT Sichuan Tianyi Comheart Telecom Co.,LTD
|
||||
F8:66:D1 HonHaiPr Hon Hai Precision Ind. Co.,Ltd.
|
||||
F8:66:F2 Cisco Cisco Systems, Inc
|
||||
F8:69:71 SeibuEle Seibu Electric Co.,
|
||||
|
@ -47776,6 +47928,7 @@ FC:45:5F JiangxiS Jiangxi Shanshui Optoelectronic Technology Co.,Ltd
|
|||
FC:45:96 CompalIn Compal Information (Kunshan) Co., Ltd.
|
||||
FC:45:C3 TexasIns Texas Instruments
|
||||
FC:47:D8 Apple Apple, Inc.
|
||||
FC:48:C9 YobiiqIn Yobiiq Intelligence B.V.
|
||||
FC:48:EF HuaweiTe Huawei Technologies Co.,Ltd
|
||||
FC:49:2D AmazonTe Amazon Technologies Inc.
|
||||
FC:4A:E9 Castlene Castlenet Technology Inc.
|
||||
|
@ -47807,7 +47960,7 @@ FC:60:18 Zhejiang Zhejiang Kangtai Electric Co., Ltd.
|
|||
FC:60:9B NewH3CTe New H3C Technologies Co., Ltd
|
||||
FC:61:79 IEEERegi IEEE Registration Authority
|
||||
FC:61:79:00:00:00/28 ZhuhaiAn Zhuhai Anjubao Electronics Technology Co., Ltd.
|
||||
FC:61:79:10:00:00/28 Signalin Signalinks Communication Technology Co.,Ltd
|
||||
FC:61:79:10:00:00/28 Signalin Signalinks Communication Technology Co., Ltd
|
||||
FC:61:79:20:00:00/28 Shenzhen Shenzhen Shenshui Electronic Commerce Co.,Ltd
|
||||
FC:61:79:30:00:00/28 EchoStar EchoStar Mobile
|
||||
FC:61:79:40:00:00/28 Choeunen Choeuneng
|
||||
|
@ -47858,6 +48011,7 @@ FC:83:29 Treitech Trei technics
|
|||
FC:83:99 Avaya Avaya Inc
|
||||
FC:83:C6 N-RadioT N-Radio Technologies Co., Ltd.
|
||||
FC:84:17 HonorDev Honor Device Co., Ltd.
|
||||
FC:84:A7 MurataMa Murata Manufacturing Co., Ltd.
|
||||
FC:85:96 Axonne Axonne Inc.
|
||||
FC:86:2A HuaweiDe Huawei Device Co., Ltd.
|
||||
FC:87:43 HuaweiTe Huawei Technologies Co.,Ltd
|
||||
|
|
|
@ -29,6 +29,7 @@ dseditgroup -q -o edit -a "$USER" -t user "$BPF_GROUP"
|
|||
chmod u=rw,g=r,o=r "$CHMOD_BPF_PLIST"
|
||||
chown root:wheel "$CHMOD_BPF_PLIST"
|
||||
|
||||
# Clean up our legacy startup item if it's still around.
|
||||
rm -rf /Library/StartupItems/ChmodBPF
|
||||
|
||||
launchctl load "$CHMOD_BPF_PLIST"
|
||||
launchctl bootstrap system "$CHMOD_BPF_PLIST"
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
CHMOD_BPF_PLIST="/Library/LaunchDaemons/org.wireshark.ChmodBPF.plist"
|
||||
BPF_GROUP="access_bpf"
|
||||
|
||||
launchctl unload -F "$CHMOD_BPF_PLIST"
|
||||
launchctl bootout system "$CHMOD_BPF_PLIST"
|
||||
|
||||
dscl . -read /Groups/"$BPF_GROUP" > /dev/null 2>&1 && \
|
||||
dseditgroup -q -o delete "$BPF_GROUP"
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
sodipodi:version="0.32"
|
||||
inkscape:version="0.47 r22583"
|
||||
sodipodi:docname="wsicon-ask.svg"
|
||||
inkscape:export-filename="/Users/gerald/Development/wsweb/material/wsicon-ask.png"
|
||||
inkscape:export-filename="wsicon-ask.png"
|
||||
inkscape:export-xdpi="2.8099999"
|
||||
inkscape:export-ydpi="2.8099999"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
||||
|
|
Before Width: | Height: | Size: 7.0 KiB After Width: | Height: | Size: 7.0 KiB |
|
@ -150,7 +150,7 @@
|
|||
x="1"
|
||||
y="1005.3622"
|
||||
id="rect2816"
|
||||
inkscape:export-filename="/Users/gerald/Development/qtshark/image/layout_1.png"
|
||||
inkscape:export-filename="layout_1.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90" />
|
||||
<rect
|
||||
|
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 27 KiB |
|
@ -17,7 +17,7 @@
|
|||
version="1.1"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="capture_comment_update.svg"
|
||||
inkscape:export-filename="/Users/gerald/Development/wireshark/image/capture_comment_update@2x.png"
|
||||
inkscape:export-filename="capture_comment_update@2x.png"
|
||||
inkscape:export-xdpi="180"
|
||||
inkscape:export-ydpi="180">
|
||||
<defs
|
||||
|
|
Before Width: | Height: | Size: 60 KiB After Width: | Height: | Size: 60 KiB |
|
@ -17,7 +17,7 @@
|
|||
version="1.1"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="x-filter-bookmark.active.svg"
|
||||
inkscape:export-filename="/Users/gerald/Development/wireshark/image/x-filter-apply.png"
|
||||
inkscape:export-filename="x-filter-apply.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90">
|
||||
<defs
|
||||
|
|
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 4.3 KiB |
|
@ -17,7 +17,7 @@
|
|||
version="1.1"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="x-filter-bookmark.selected.svg"
|
||||
inkscape:export-filename="/Users/gerald/Development/wireshark/image/x-filter-apply.png"
|
||||
inkscape:export-filename="x-filter-apply.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90">
|
||||
<defs
|
||||
|
|
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 4.3 KiB |
|
@ -17,7 +17,7 @@
|
|||
version="1.1"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="x-filter-bookmark.svg"
|
||||
inkscape:export-filename="/Users/gerald/Development/wireshark/image/x-filter-apply.png"
|
||||
inkscape:export-filename="x-filter-apply.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90">
|
||||
<defs
|
||||
|
|
Before Width: | Height: | Size: 6.8 KiB After Width: | Height: | Size: 6.7 KiB |
|
@ -17,7 +17,7 @@
|
|||
version="1.1"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="x-filter-clear.active.svg"
|
||||
inkscape:export-filename="/Users/gerald/Development/wireshark/image/x-filter-apply.png"
|
||||
inkscape:export-filename="x-filter-apply.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90">
|
||||
<defs
|
||||
|
|
Before Width: | Height: | Size: 5.0 KiB After Width: | Height: | Size: 5.0 KiB |
|
@ -17,7 +17,7 @@
|
|||
version="1.1"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="x-filter-clear.selected.svg"
|
||||
inkscape:export-filename="/Users/gerald/Development/wireshark/image/x-filter-apply.png"
|
||||
inkscape:export-filename="x-filter-apply.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90">
|
||||
<defs
|
||||
|
|
Before Width: | Height: | Size: 5.0 KiB After Width: | Height: | Size: 5.0 KiB |
|
@ -17,7 +17,7 @@
|
|||
version="1.1"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="x-filter-clear.svg"
|
||||
inkscape:export-filename="/Users/gerald/Development/wireshark/image/x-filter-apply.png"
|
||||
inkscape:export-filename="x-filter-apply.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90">
|
||||
<defs
|
||||
|
|
Before Width: | Height: | Size: 5.0 KiB After Width: | Height: | Size: 4.9 KiB |
|
@ -16,7 +16,7 @@
|
|||
version="1.1"
|
||||
inkscape:version="0.92.2 5c3e80d, 2017-08-06"
|
||||
sodipodi:docname="x-filter-dropdown.dark.svg"
|
||||
inkscape:export-filename="/Users/gerald/Development/wireshark/image/x-filter-apply.png"
|
||||
inkscape:export-filename="x-filter-apply.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90">
|
||||
<defs
|
||||
|
@ -101,7 +101,7 @@
|
|||
transform="matrix(18.072651,0,0,10.43425,-2089.4275,982.04694)"
|
||||
inkscape:transform-center-y="2.5363326"
|
||||
inkscape:transform-center-x="0.018274753"
|
||||
inkscape:export-filename="/Users/gcombs/Development/qtshark/qt/dfilter_dropdown.png"
|
||||
inkscape:export-filename="dfilter_dropdown.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90" />
|
||||
</g>
|
||||
|
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 3.1 KiB |
|
@ -16,7 +16,7 @@
|
|||
version="1.1"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="x-filter-dropdown.svg"
|
||||
inkscape:export-filename="/Users/gerald/Development/wireshark/image/x-filter-apply.png"
|
||||
inkscape:export-filename="x-filter-apply.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90">
|
||||
<defs
|
||||
|
@ -100,7 +100,7 @@
|
|||
transform="matrix(18.072651,0,0,10.43425,-2089.4275,982.04694)"
|
||||
inkscape:transform-center-y="2.5363326"
|
||||
inkscape:transform-center-x="0.018274753"
|
||||
inkscape:export-filename="/Users/gcombs/Development/qtshark/qt/dfilter_dropdown.png"
|
||||
inkscape:export-filename="dfilter_dropdown.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90" />
|
||||
</g>
|
||||
|
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.1 KiB |
|
@ -17,7 +17,7 @@
|
|||
version="1.1"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="x-filter-matching-bookmark.active.svg"
|
||||
inkscape:export-filename="/Users/gerald/Development/wireshark/image/x-filter-apply.png"
|
||||
inkscape:export-filename="x-filter-apply.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90">
|
||||
<defs
|
||||
|
|
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 4.4 KiB |
|
@ -17,7 +17,7 @@
|
|||
version="1.1"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="x-filter-matching-bookmark.selected.svg"
|
||||
inkscape:export-filename="/Users/gerald/Development/wireshark/image/x-filter-apply.png"
|
||||
inkscape:export-filename="x-filter-apply.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90">
|
||||
<defs
|
||||
|
|
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 4.4 KiB |
|
@ -17,7 +17,7 @@
|
|||
version="1.1"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="x-filter-matching-bookmark.svg"
|
||||
inkscape:export-filename="/Users/gerald/Development/wireshark/image/x-filter-apply.png"
|
||||
inkscape:export-filename="x-filter-apply.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90">
|
||||
<defs
|
||||
|
|
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 4.4 KiB |
|
@ -17,7 +17,7 @@
|
|||
version="1.1"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="x-filter-apply.active.svg"
|
||||
inkscape:export-filename="/Users/gerald/Development/wireshark/image/x-filter-apply.png"
|
||||
inkscape:export-filename="x-filter-apply.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90">
|
||||
<defs
|
||||
|
|
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 5.5 KiB |
|
@ -17,7 +17,7 @@
|
|||
version="1.1"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="x-filter-apply.selected.svg"
|
||||
inkscape:export-filename="/Users/gerald/Development/wireshark/image/x-filter-apply.png"
|
||||
inkscape:export-filename="x-filter-apply.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90">
|
||||
<defs
|
||||
|
|
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 5.5 KiB |
|
@ -17,7 +17,7 @@
|
|||
version="1.1"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="x-filter-apply.svg"
|
||||
inkscape:export-filename="/Users/gerald/Development/wireshark/image/x-filter-apply.png"
|
||||
inkscape:export-filename="x-filter-apply.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90">
|
||||
<defs
|
||||
|
|
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 5.5 KiB |
|
@ -13,10 +13,9 @@
|
|||
sodipodi:version="0.32"
|
||||
width="210mm"
|
||||
height="297mm"
|
||||
sodipodi:docbase="/Users/gerald/devel/wsweb/material"
|
||||
sodipodi:docname="wsbadge-dev.svg"
|
||||
inkscape:version="0.45.1"
|
||||
inkscape:export-filename="/Users/gerald/Desktop/wsbadge-dev.png"
|
||||
inkscape:export-filename="wsbadge-dev.png"
|
||||
inkscape:export-xdpi="38.178936"
|
||||
inkscape:export-ydpi="38.178936"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape">
|
||||
|
|
Before Width: | Height: | Size: 7.4 KiB After Width: | Height: | Size: 7.4 KiB |
2
services
|
@ -706,6 +706,8 @@ kink 910/tcp/udp # Kerberized Internet Negotiation of Keys (KINK)
|
|||
xact-backup 911/tcp/udp
|
||||
apex-mesh 912/tcp/udp # APEX relay-relay service
|
||||
apex-edge 913/tcp/udp # APEX endpoint-relay service
|
||||
rift-lies 914/udp # Routing in Fat Trees Link Information Elements (TEMPORARY - registered 2023-02-17, expires 2024-02-17)
|
||||
rift-ties 915/udp # Routing in Fat Trees Topology Information Elements (TEMPORARY - registered 2023-02-17, expires 2024-02-17)
|
||||
rndc 953/tcp # BIND9 remote name daemon controller
|
||||
ftps-data 989/tcp/udp # ftp protocol, data, over TLS/SSL
|
||||
ftps 990/tcp/udp # ftp protocol, control, over TLS/SSL
|
||||
|
|
119
sharkd_session.c
|
@ -116,12 +116,10 @@ sharkd_json_value_anyf(const char *key, const char *format, ...)
|
|||
if (key)
|
||||
json_dumper_set_member_name(&dumper, key);
|
||||
|
||||
if (format) {
|
||||
va_list ap;
|
||||
va_start(ap, format);
|
||||
json_dumper_value_va_list(&dumper, format, ap);
|
||||
va_end(ap);
|
||||
}
|
||||
va_list ap;
|
||||
va_start(ap, format);
|
||||
json_dumper_value_va_list(&dumper, format, ap);
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -129,8 +127,7 @@ sharkd_json_value_string(const char *key, const char *str)
|
|||
{
|
||||
if (key)
|
||||
json_dumper_set_member_name(&dumper, key);
|
||||
if (str)
|
||||
json_dumper_value_string(&dumper, str);
|
||||
json_dumper_value_string(&dumper, str);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -147,14 +144,12 @@ sharkd_json_value_stringf(const char *key, const char *format, ...)
|
|||
if (key)
|
||||
json_dumper_set_member_name(&dumper, key);
|
||||
|
||||
if (format) {
|
||||
va_list ap;
|
||||
va_start(ap, format);
|
||||
char* sformat = ws_strdup_printf("\"%s\"", format);
|
||||
json_dumper_value_va_list(&dumper, sformat, ap);
|
||||
g_free(sformat);
|
||||
va_end(ap);
|
||||
}
|
||||
va_list ap;
|
||||
va_start(ap, format);
|
||||
char* sformat = ws_strdup_printf("\"%s\"", format);
|
||||
json_dumper_value_va_list(&dumper, sformat, ap);
|
||||
g_free(sformat);
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -171,6 +166,20 @@ sharkd_json_array_close(void)
|
|||
json_dumper_end_array(&dumper);
|
||||
}
|
||||
|
||||
static void
|
||||
sharkd_json_object_open(const char *key)
|
||||
{
|
||||
if (key)
|
||||
json_dumper_set_member_name(&dumper, key);
|
||||
json_dumper_begin_object(&dumper);
|
||||
}
|
||||
|
||||
static void
|
||||
sharkd_json_object_close(void)
|
||||
{
|
||||
json_dumper_end_object(&dumper);
|
||||
}
|
||||
|
||||
static void
|
||||
sharkd_json_response_open(guint32 id)
|
||||
{
|
||||
|
@ -182,6 +191,8 @@ sharkd_json_response_open(guint32 id)
|
|||
static void
|
||||
sharkd_json_response_close(void)
|
||||
{
|
||||
json_dumper_end_object(&dumper); // end the message
|
||||
|
||||
json_dumper_finish(&dumper);
|
||||
|
||||
/*
|
||||
|
@ -205,15 +216,13 @@ static void
|
|||
sharkd_json_result_prologue(guint32 id)
|
||||
{
|
||||
sharkd_json_response_open(id);
|
||||
sharkd_json_value_anyf("result", NULL);
|
||||
json_dumper_begin_object(&dumper); // start the result object
|
||||
sharkd_json_object_open("result"); // start the result object
|
||||
}
|
||||
|
||||
static void
|
||||
sharkd_json_result_epilogue(void)
|
||||
{
|
||||
json_dumper_end_object(&dumper); // end the result object
|
||||
json_dumper_end_object(&dumper); // end the message
|
||||
sharkd_json_response_close();
|
||||
}
|
||||
|
||||
|
@ -228,7 +237,6 @@ static void
|
|||
sharkd_json_result_array_epilogue(void)
|
||||
{
|
||||
sharkd_json_array_close(); // end of result array
|
||||
json_dumper_end_object(&dumper); // end the message
|
||||
sharkd_json_response_close();
|
||||
}
|
||||
|
||||
|
@ -253,8 +261,7 @@ static void G_GNUC_PRINTF(4, 5)
|
|||
sharkd_json_error(guint32 id, int code, char* data, char* format, ...)
|
||||
{
|
||||
sharkd_json_response_open(id);
|
||||
sharkd_json_value_anyf("error", NULL);
|
||||
json_dumper_begin_object(&dumper);
|
||||
sharkd_json_object_open("error");
|
||||
sharkd_json_value_anyf("code", "%d", code);
|
||||
|
||||
if (format)
|
||||
|
@ -271,12 +278,11 @@ sharkd_json_error(guint32 id, int code, char* data, char* format, ...)
|
|||
g_free(error_msg);
|
||||
}
|
||||
|
||||
json_dumper_end_object(&dumper);
|
||||
sharkd_json_object_close();
|
||||
|
||||
if (data)
|
||||
sharkd_json_value_string("data", data);
|
||||
|
||||
json_dumper_end_object(&dumper);
|
||||
sharkd_json_response_close();
|
||||
}
|
||||
|
||||
|
@ -1087,7 +1093,17 @@ sharkd_session_process_load(const char *buf, const jsmntok_t *tokens, int count)
|
|||
ENDTRY;
|
||||
|
||||
if (err == 0)
|
||||
{
|
||||
sharkd_json_simple_ok(rpcid);
|
||||
}
|
||||
else
|
||||
{
|
||||
sharkd_json_result_prologue(rpcid);
|
||||
sharkd_json_value_string("status", wtap_strerror(err));
|
||||
sharkd_json_value_anyf("err", "%d", err);
|
||||
sharkd_json_result_epilogue();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1552,11 +1568,11 @@ sharkd_session_process_frames(const char *buf, const jsmntok_t *tokens, int coun
|
|||
}
|
||||
|
||||
static void
|
||||
sharkd_session_process_tap_stats_node_cb(const stat_node *n)
|
||||
sharkd_session_process_tap_stats_node_cb(const char *key, const stat_node *n)
|
||||
{
|
||||
stat_node *node;
|
||||
|
||||
sharkd_json_array_open(NULL);
|
||||
sharkd_json_array_open(key);
|
||||
for (node = n->children; node; node = node->next)
|
||||
{
|
||||
json_dumper_begin_object(&dumper);
|
||||
|
@ -1601,8 +1617,7 @@ sharkd_session_process_tap_stats_node_cb(const stat_node *n)
|
|||
|
||||
if (node->children)
|
||||
{
|
||||
sharkd_json_value_anyf("sub", NULL);
|
||||
sharkd_session_process_tap_stats_node_cb(node);
|
||||
sharkd_session_process_tap_stats_node_cb("sub", node);
|
||||
}
|
||||
json_dumper_end_object(&dumper);
|
||||
}
|
||||
|
@ -1641,8 +1656,7 @@ sharkd_session_process_tap_stats_cb(void *psp)
|
|||
sharkd_json_value_string("type", "stats");
|
||||
sharkd_json_value_string("name", st->cfg->name);
|
||||
|
||||
sharkd_json_value_anyf("stats", NULL);
|
||||
sharkd_session_process_tap_stats_node_cb(&st->root);
|
||||
sharkd_session_process_tap_stats_node_cb("stats", &st->root);
|
||||
|
||||
json_dumper_end_object(&dumper);
|
||||
}
|
||||
|
@ -2022,7 +2036,7 @@ sharkd_session_process_tap_rtp_analyse_cb(void *tapdata)
|
|||
|
||||
sharkd_json_value_string("tap", rtp_req->tap_name);
|
||||
sharkd_json_value_string("type", "rtp-analyse");
|
||||
sharkd_json_value_anyf("ssrc", "%u", rtp_req->id.ssrc);
|
||||
sharkd_json_value_stringf("ssrc", "0x%x", rtp_req->id.ssrc);
|
||||
|
||||
sharkd_json_value_anyf("max_delta", "%f", statinfo->max_delta);
|
||||
sharkd_json_value_anyf("max_delta_nr", "%u", statinfo->max_nr);
|
||||
|
@ -2729,7 +2743,7 @@ sharkd_session_process_tap_rtp_cb(void *arg)
|
|||
|
||||
json_dumper_begin_object(&dumper);
|
||||
|
||||
sharkd_json_value_anyf("ssrc", "%u", calc.ssrc);
|
||||
sharkd_json_value_stringf("ssrc", "0x%x", calc.ssrc);
|
||||
sharkd_json_value_string("payload", calc.all_payload_type_names);
|
||||
|
||||
sharkd_json_value_string("saddr", calc.src_addr_str);
|
||||
|
@ -3276,11 +3290,11 @@ sharkd_session_process_follow(char *buf, const jsmntok_t *tokens, int count)
|
|||
}
|
||||
|
||||
static void
|
||||
sharkd_session_process_frame_cb_tree(epan_dissect_t *edt, proto_tree *tree, tvbuff_t **tvbs, gboolean display_hidden)
|
||||
sharkd_session_process_frame_cb_tree(const char *key, epan_dissect_t *edt, proto_tree *tree, tvbuff_t **tvbs, gboolean display_hidden)
|
||||
{
|
||||
proto_node *node;
|
||||
|
||||
sharkd_json_array_open(NULL);
|
||||
sharkd_json_array_open(key);
|
||||
for (node = tree->first_child; node; node = node->next)
|
||||
{
|
||||
field_info *finfo = PNODE_FINFO(node);
|
||||
|
@ -3377,8 +3391,7 @@ sharkd_session_process_frame_cb_tree(epan_dissect_t *edt, proto_tree *tree, tvbu
|
|||
if (finfo->tree_type != -1)
|
||||
sharkd_json_value_anyf("e", "%d", finfo->tree_type);
|
||||
|
||||
sharkd_json_value_anyf("n", NULL);
|
||||
sharkd_session_process_frame_cb_tree(edt, (proto_tree *) node, tvbs, display_hidden);
|
||||
sharkd_session_process_frame_cb_tree("n", edt, (proto_tree *) node, tvbs, display_hidden);
|
||||
}
|
||||
|
||||
json_dumper_end_object(&dumper);
|
||||
|
@ -3476,8 +3489,7 @@ sharkd_session_process_frame_cb(epan_dissect_t *edt, proto_tree *tree, struct ep
|
|||
tvbs[count] = NULL;
|
||||
}
|
||||
|
||||
sharkd_json_value_anyf("tree", NULL);
|
||||
sharkd_session_process_frame_cb_tree(edt, tree, tvbs, display_hidden);
|
||||
sharkd_session_process_frame_cb_tree("tree", edt, tree, tvbs, display_hidden);
|
||||
|
||||
g_free(tvbs);
|
||||
}
|
||||
|
@ -4082,7 +4094,7 @@ sharkd_session_process_check(char *buf, const jsmntok_t *tokens, int count)
|
|||
if (dfilter_compile(tok_filter, &dfp, &df_err))
|
||||
{
|
||||
if (dfp && dfilter_deprecated_tokens(dfp))
|
||||
sharkd_json_warning(rpcid, df_err->msg);
|
||||
sharkd_json_warning(rpcid, "Filter contains deprecated tokens");
|
||||
else
|
||||
sharkd_json_simple_ok(rpcid);
|
||||
|
||||
|
@ -4440,8 +4452,7 @@ sharkd_session_process_dumpconf_cb(pref_t *pref, gpointer d)
|
|||
char json_pref_key[512];
|
||||
|
||||
snprintf(json_pref_key, sizeof(json_pref_key), "%s.%s", data->module->name, pref_name);
|
||||
json_dumper_set_member_name(&dumper, json_pref_key);
|
||||
json_dumper_begin_object(&dumper);
|
||||
sharkd_json_object_open(json_pref_key);
|
||||
|
||||
switch (prefs_get_type(pref))
|
||||
{
|
||||
|
@ -4534,7 +4545,7 @@ sharkd_session_process_dumpconf_cb(pref_t *pref, gpointer d)
|
|||
sharkd_json_value_string("t", prefs_get_title(pref));
|
||||
#endif
|
||||
|
||||
json_dumper_end_object(&dumper);
|
||||
sharkd_json_object_close();
|
||||
|
||||
return 0; /* continue */
|
||||
}
|
||||
|
@ -4584,10 +4595,9 @@ sharkd_session_process_dumpconf(char *buf, const jsmntok_t *tokens, int count)
|
|||
|
||||
sharkd_json_result_prologue(rpcid);
|
||||
|
||||
sharkd_json_value_anyf("prefs", NULL);
|
||||
json_dumper_begin_object(&dumper);
|
||||
sharkd_json_object_open("prefs");
|
||||
prefs_modules_foreach(sharkd_session_process_dumpconf_mod_cb, &data);
|
||||
json_dumper_end_object(&dumper);
|
||||
sharkd_json_object_close();
|
||||
|
||||
sharkd_json_result_epilogue();
|
||||
return;
|
||||
|
@ -4611,10 +4621,9 @@ sharkd_session_process_dumpconf(char *buf, const jsmntok_t *tokens, int count)
|
|||
|
||||
sharkd_json_result_prologue(rpcid);
|
||||
|
||||
sharkd_json_value_anyf("prefs", NULL);
|
||||
json_dumper_begin_object(&dumper);
|
||||
sharkd_json_object_open("prefs");
|
||||
sharkd_session_process_dumpconf_cb(pref, &data);
|
||||
json_dumper_end_object(&dumper);
|
||||
sharkd_json_object_close();
|
||||
|
||||
sharkd_json_result_epilogue();
|
||||
return;
|
||||
|
@ -4639,10 +4648,9 @@ sharkd_session_process_dumpconf(char *buf, const jsmntok_t *tokens, int count)
|
|||
|
||||
sharkd_json_result_prologue(rpcid);
|
||||
|
||||
sharkd_json_value_anyf("prefs", NULL);
|
||||
json_dumper_begin_object(&dumper);
|
||||
sharkd_json_object_open("prefs");
|
||||
prefs_pref_foreach(pref_mod, sharkd_session_process_dumpconf_cb, &data);
|
||||
json_dumper_end_object(&dumper);
|
||||
sharkd_json_object_close();
|
||||
|
||||
sharkd_json_result_epilogue();
|
||||
}
|
||||
|
@ -4949,7 +4957,7 @@ sharkd_session_process_download(char *buf, const jsmntok_t *tokens, int count)
|
|||
sharkd_json_value_string("file", filename);
|
||||
sharkd_json_value_string("mime", mime);
|
||||
|
||||
sharkd_json_value_anyf("data", NULL);
|
||||
json_dumper_set_member_name(&dumper, "data");
|
||||
json_dumper_begin_base64(&dumper);
|
||||
sharkd_rtp_download_decode(&rtp_req);
|
||||
json_dumper_end_base64(&dumper);
|
||||
|
@ -4958,6 +4966,13 @@ sharkd_session_process_download(char *buf, const jsmntok_t *tokens, int count)
|
|||
|
||||
g_slist_free_full(rtp_req.packets, sharkd_rtp_download_free_items);
|
||||
}
|
||||
else
|
||||
{
|
||||
sharkd_json_error(
|
||||
rpcid, -10003, NULL,
|
||||
"no rtp data available"
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -70,6 +70,15 @@ class case_sharkd(subprocesstest.SubprocessTestCase):
|
|||
{"jsonrpc":"2.0","id":1,"error":{"code":-2001,"message":"Unable to open the file"}},
|
||||
))
|
||||
|
||||
def test_sharkd_req_load_truncated_pcap(self, check_sharkd_session, capture_file):
|
||||
check_sharkd_session((
|
||||
{"jsonrpc":"2.0", "id":1, "method":"load",
|
||||
"params":{"file": capture_file('trunc.pcap')}
|
||||
},
|
||||
), (
|
||||
{"jsonrpc":"2.0","id":1,"result":{"status":"Less data was read than was expected","err":-12}},
|
||||
))
|
||||
|
||||
def test_sharkd_req_status_no_pcap(self, check_sharkd_session):
|
||||
check_sharkd_session((
|
||||
{"jsonrpc":"2.0", "id":1, "method":"status"},
|
||||
|
@ -252,6 +261,55 @@ class case_sharkd(subprocesstest.SubprocessTestCase):
|
|||
}},
|
||||
))
|
||||
|
||||
def test_sharkd_req_tap_rtp_streams(self, check_sharkd_session, capture_file):
|
||||
check_sharkd_session((
|
||||
{"jsonrpc":"2.0", "id":1, "method":"load",
|
||||
"params":{"file": capture_file('sip-rtp.pcapng')}
|
||||
},
|
||||
{"jsonrpc":"2.0", "id":2, "method":"tap", "params":{"tap0": "rtp-streams"}},
|
||||
{"jsonrpc":"2.0", "id":2, "method":"tap", "params":{"tap0": "rtp-analyse:200.57.7.204_8000_200.57.7.196_40376_0xd2bd4e3e"}},
|
||||
), (
|
||||
{"jsonrpc":"2.0","id":1,"result":{"status":"OK"}},
|
||||
{"jsonrpc":"2.0","id":2,"result":{
|
||||
"taps":[{
|
||||
"tap":"rtp-streams",
|
||||
"type":"rtp-streams",
|
||||
"streams":[{
|
||||
"ssrc":"0xd2bd4e3e",
|
||||
"payload":"g711A",
|
||||
"saddr":"200.57.7.204",
|
||||
"sport":8000,
|
||||
"daddr":"200.57.7.196",
|
||||
"dport":40376,
|
||||
"pkts":548,
|
||||
"max_delta":5843.742000,
|
||||
"max_jitter":7.406751,
|
||||
"mean_jitter":2.517173,
|
||||
"expectednr":548,
|
||||
"totalnr":548,
|
||||
"problem":False,
|
||||
"ipver":4
|
||||
}]
|
||||
}]
|
||||
}},
|
||||
{"jsonrpc":"2.0","id":2,"result":
|
||||
{"taps":[{
|
||||
"tap":"rtp-analyse:200.57.7.204_8000_200.57.7.196_40376_0xd2bd4e3e",
|
||||
"type":"rtp-analyse",
|
||||
"ssrc":"0xd2bd4e3e",
|
||||
"max_delta":5843.742000,
|
||||
"max_delta_nr":168,
|
||||
"max_jitter":7.406751,
|
||||
"mean_jitter":2.517173,
|
||||
"max_skew":319.289000,
|
||||
"total_nr":548,
|
||||
"seq_err":0,
|
||||
"duration":24124.055000,
|
||||
"items": MatchAny()
|
||||
}]
|
||||
}},
|
||||
))
|
||||
|
||||
def test_sharkd_req_follow_bad(self, check_sharkd_session, capture_file):
|
||||
# Unrecognized taps currently produce no output (not even err).
|
||||
check_sharkd_session((
|
||||
|
@ -477,7 +535,7 @@ class case_sharkd(subprocesstest.SubprocessTestCase):
|
|||
))
|
||||
|
||||
def test_sharkd_req_download_tls_secrets(self, check_sharkd_session, capture_file):
|
||||
# XXX test download for eo: and rtp: too
|
||||
# XXX test download for eo: too
|
||||
check_sharkd_session((
|
||||
{"jsonrpc":"2.0", "id":1, "method":"load",
|
||||
"params":{"file": capture_file('tls12-dsb.pcapng')}
|
||||
|
@ -493,6 +551,25 @@ class case_sharkd(subprocesstest.SubprocessTestCase):
|
|||
},
|
||||
))
|
||||
|
||||
def test_sharkd_req_download_rtp_stream(self, check_sharkd_session, capture_file):
|
||||
check_sharkd_session((
|
||||
{"jsonrpc":"2.0", "id":1, "method":"load",
|
||||
"params":{"file": capture_file('sip-rtp.pcapng')}
|
||||
},
|
||||
{"jsonrpc":"2.0", "id":2, "method":"download",
|
||||
"params":{"token": "rtp:200.57.7.204_8000_200.57.7.196_40376_0xd2bd4e3e"}},
|
||||
{"jsonrpc":"2.0", "id":3, "method":"download",
|
||||
"params":{"token": "rtp:1.1.1.1_8000_1.1.1.2_9000_0xdddddddd"}},
|
||||
), (
|
||||
{"jsonrpc":"2.0","id":1,"result":{"status":"OK"}},
|
||||
{"jsonrpc":"2.0","id":2,"result":{
|
||||
"file":"rtp:200.57.7.204_8000_200.57.7.196_40376_0xd2bd4e3e",
|
||||
"mime":"audio/x-wav",
|
||||
"data":MatchRegExp(r'UklGRv.+')}
|
||||
},
|
||||
{"jsonrpc":"2.0","id":3,"error":{"code":-10003,"message":"no rtp data available"}},
|
||||
))
|
||||
|
||||
def test_sharkd_req_bye(self, check_sharkd_session):
|
||||
check_sharkd_session((
|
||||
{"jsonrpc":"2.0", "id":1, "method":"bye"},
|
||||
|
|
|
@ -683,6 +683,36 @@ class Output(object):
|
|||
else:
|
||||
self.f.write(line+'\n')
|
||||
|
||||
def is_valid(spec):
|
||||
"""Check spec"""
|
||||
def check_item(item):
|
||||
if item['spare']:
|
||||
return True
|
||||
return check_variation(item['variation'])
|
||||
def check_variation(variation):
|
||||
t = variation['type']
|
||||
if t == 'Element':
|
||||
return True
|
||||
elif t == 'Group':
|
||||
return all([check_item(i) for i in variation['items']])
|
||||
elif t == 'Extended':
|
||||
n1 = variation['first']
|
||||
n2 = variation['extents']
|
||||
fx = variation['fx']
|
||||
if fx != 'regular':
|
||||
return False # 'iregular extended item'
|
||||
return all([check_item(i) for i in variation['items']])
|
||||
elif t == 'Repetitive':
|
||||
return check_variation(variation['variation'])
|
||||
elif t == 'Explicit':
|
||||
return True
|
||||
elif t == 'Compound':
|
||||
items = [i for i in variation['items'] if i is not None]
|
||||
return all([check_item(i) for i in items])
|
||||
else:
|
||||
raise Exception('unexpected variation type {}'.format(t))
|
||||
return all([check_item(i) for i in spec['catalogue']])
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(description='Process asterix specs files.')
|
||||
parser.add_argument('paths', metavar='PATH', nargs='*',
|
||||
|
@ -703,6 +733,7 @@ def main():
|
|||
jsons = [json.loads(i) for i in jsons]
|
||||
jsons = sorted(jsons, key = lambda x: (x['number'], x['edition']['major'], x['edition']['minor']))
|
||||
jsons = [spec for spec in jsons if spec['type'] == 'Basic']
|
||||
jsons = [spec for spec in jsons if is_valid(spec)]
|
||||
|
||||
cats = list(set([x['number'] for x in jsons]))
|
||||
latest_editions = {cat: sorted(
|
||||
|
|