aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-mbtcp.h
blob: ea33e63e20ce32de6e3b56b27732e82451514ed1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
/* packet-mbtcp.h
 * $Id$
 * Routines for Modbus/TCP dissection
 * By Riaan Swart <rswart@cs.sun.ac.za>
 * Copyright 2001, Institute for Applied Computer Science
 * 					 University of Stellenbosch
 *
 * See
 *
 *	http://www.modbus.org/
 *
 * for information on Modbus/TCP.
 *
 * $Id$
 *
 * Wireshark - Network traffic analyzer
 * By Gerald Combs <gerald@wireshark.org>
 * Copyright 1998 Gerald Combs
 *
 * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 */
#define PORT_MBTCP		502	/* Modbus/TCP located on port 502 */

/* Modbus protocol function codes */
#define READ_COILS		1
#define READ_INPUT_DISCRETES	2
#define READ_MULT_REGS		3
#define READ_INPUT_REGS		4
#define WRITE_COIL		5
#define WRITE_SINGLE_REG	6
#define READ_EXCEPT_STAT	7
#define DIAGNOSTICS		8
#define GET_COMM_EVENT_CTRS	11
#define GET_COMM_EVENT_LOG	12
#define WRITE_MULT_COILS	15
#define WRITE_MULT_REGS		16
#define REPORT_SLAVE_ID		17
#define READ_FILE_RECORD	20
#define WRITE_FILE_RECORD	21
#define MASK_WRITE_REG		22
#define READ_WRITE_REG		23
#define READ_FIFO_QUEUE		24
#define ENCAP_INTERFACE_TRANSP  43

/* Modbus protocol exception codes */
#define ILLEGAL_FUNCTION	0x01
#define ILLEGAL_ADDRESS		0x02
#define ILLEGAL_VALUE		0x03
#define ILLEGAL_RESPONSE	0x04
#define ACKNOWLEDGE		0x05
#define SLAVE_BUSY		0x06
#define MEMORY_ERR		0x08
#define GATEWAY_UNAVAILABLE	0x0a
#define GATEWAY_TRGT_FAIL	0x0b

/* Modbus diagnostic subfunction codes */
#define RETURN_QUERY_DATA                 0x00
#define RESTART_COMMUNICATION_OPTION      0x01
#define RETURN_DIAGNOSTIC_REGISTER        0x02
#define CHANGE_ASCII_INPUT_DELIMITER      0x03
#define FORCE_LISTEN_ONLY_MODE            0x04
#define CLEAR_COUNTERS_AND_DIAG_REG       0x0A
#define RETURN_BUS_MESSAGE_COUNT          0x0B
#define RETURN_BUS_COMM_ERROR_COUNT       0x0C
#define RETURN_BUS_EXCEPTION_ERROR_COUNT  0x0D
#define RETURN_SLAVE_MESSAGE_COUNT        0x0E
#define RETURN_SLAVE_NO_RESPONSE_COUNT    0x0F
#define RETURN_SLAVE_NAK_COUNT            0x10
#define RETURN_SLAVE_BUSY_COUNT           0x11
#define RETURN_BUS_CHAR_OVERRUN_COUNT     0x12
#define CLEAR_OVERRUN_COUNTER_AND_FLAG    0x14



/* Encapsulation Interface codes */
#define CANOPEN_REQ_RESP   0x0D
#define READ_DEVICE_ID     0x0E

/* Event byte codes */
#define REMOTE_DEVICE_RECV_EVENT_MASK     0x80
#define REMOTE_DEVICE_SEND_EVENT_MASK     0xc0
#define REMOTE_DEVICE_SEND_EVENT_VALUE    0x40

/* return codes of function classifying packets as query/response */
#define QUERY_PACKET		0
#define RESPONSE_PACKET		1
#define CANNOT_CLASSIFY		2

#define MODBUS_PROTOCOL_ID 0