286c372d2c
Added more info to MS/TP capture utility readme file. Changed silence timer in BDK to compile smaller.
85 lines
3.5 KiB
Plaintext
85 lines
3.5 KiB
Plaintext
BACnet MS/TP Capture Tool
|
|
|
|
This tool captures BACnet MS/TP packets on an RS485 serial interface,
|
|
and saves the packets to a file in Wireshark PCAP format for
|
|
the BACnet MS/TP dissector to read. The filename has a date and time
|
|
code in it, and will contain up to 65535 packets. A new file
|
|
will be created at each 65535 packet interval. The tool can
|
|
be stopped by using Control-C.
|
|
|
|
Wireshark is a protocol anaylzyer that can be downloaded from
|
|
wireshark.org. Wireshark can open and view the files that
|
|
are created from mstpcap. Wireshark can also open a named
|
|
pipe, and msptcap can send the capture data to the named pipe
|
|
for realtime viewing, while saving the capture data to a file.
|
|
See Named Pipe Usage below.
|
|
|
|
Here is a sample of the tool running (use CTRL-C to quit).
|
|
D:\code\bacnet-stack\bin>mstpcap COM3 38400
|
|
Adjusted interface name to \\.\COM3
|
|
mstpcap: Using \\.\COM3 for capture at 38400 bps.
|
|
mstpcap: saving capture to mstp_20090729123548.cap
|
|
1400 packets
|
|
MAC MaxMstr Tokens Retries Treply Tusage Trpfm Tder Tpostpd
|
|
0 0 525 0 32 0 0 0 0
|
|
1 127 525 0 16 79 0 0 0
|
|
|
|
Statistics
|
|
----------
|
|
The BACnet MS/TP capture tool also includes statistics which are
|
|
listed for any MAC addresses found passing a token,
|
|
or any MAC address replying to a DER message.
|
|
The statistics are emitted when Control-C is pressed, or when
|
|
65535 packets are captured and the new file is created.
|
|
The statistics are cleared when the new file is created.
|
|
|
|
MaxMstr = highest destination MAC address during PFM
|
|
|
|
Tokens = number of tokens transmitted by this MAC address.
|
|
|
|
Retries = number of second tokens sent to this MAC address.
|
|
|
|
Treply = maximum number of milliseconds it took to reply with
|
|
a token after receiving a token. Treply is required to be less
|
|
than 25ms (but the mstpcap tool may not have that good of
|
|
resolution on Windows).
|
|
|
|
Tusage = the maximum number of milliseconds the
|
|
device waits for a ReplyToPollForMaster or Token retry.
|
|
Tusage is required to be between 20ms and 100ms.
|
|
|
|
Trpfm = maximum number of milliseconds to respond to PFM with RPFM. It is
|
|
required to be less than 25ms.
|
|
|
|
Tder = maximum number of milliseconds that a device takes to
|
|
respond to a DataExpectingReply request. Tder is required to be less
|
|
than 250ms.
|
|
|
|
Tpostpd = maximum number of milliseconds to respond to
|
|
DataExpectingReply request with ReplyPostponed. Tpostpd is
|
|
required to be less than 250ms.
|
|
|
|
Note that the mstpcap tool may not have that good of
|
|
resolution on Windows, so timing under 50ms may not be accurate.
|
|
|
|
Name Pipe Usage
|
|
---------------
|
|
1. Launch the mstpcap with all command line options, include the named
|
|
pipe. On Linux, the named pipe can be any file. On Windows the named
|
|
pipe must be located in a specific directory \\.\pipe\wireshark
|
|
|
|
D:\code\bacnet-stack\bin>mstpcap COM3 38400 \\.\pipe\wireshark
|
|
|
|
2. Run Wireshark. Select "Capture" -> "Options" -> "Interface". Copy the
|
|
pipe name from the command console (i.e. Mark) and paste it into the
|
|
Interface box. Select "Start" to begin the live capture. Note that
|
|
the capture cannot be restarted from Wireshark, but must be restarted from
|
|
the command line each time you want to capture.
|
|
|
|
Non-Standard Baud Rates
|
|
-----------------------
|
|
If your serial adapter supports non-standard baud rates by using
|
|
aliasing, you can pass the aliased buad rate as the baud rate
|
|
parameter. 76800 is a non-standard baud rate, and is not enumerated
|
|
on Windows Computers.
|