From Anand Narwani: support for Cisco vendor-specific TLVs.
[obnox/wireshark/wip.git] / plugins / docsis / packet-tlv.h
1 /* packet-tlv.h
2  * Contains Definitions for Configuration types
3  * Copyright 2002, Anand V. Narwani <anarwani@cisco.com>
4  *
5  * $Id: packet-tlv.h,v 1.3 2002/09/10 19:07:40 guy Exp $
6  *
7  * Ethereal - Network traffic analyzer
8  * By Gerald Combs <gerald@ethereal.com>
9  * Copyright 1998 Gerald Combs
10  *
11  * This program is free software; you can redistribute it and/or
12  * modify it under the terms of the GNU General Public License
13  * as published by the Free Software Foundation; either version 2
14  * of the License, or (at your option) any later version.
15  *
16  * This program is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19  * GNU General Public License for more details.
20  *
21  * You should have received a copy of the GNU General Public License
22  * along with this program; if not, write to the Free Software
23  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
24  */
25
26
27 /* Define Top Level TLV Types
28  * Please see http://www.cablemodem.com/Specs/SP-RFIv1.1-I08-020301.pdf
29  * Appendix C.
30  */
31 #ifndef __PACKET_TLV_H__
32 #define __PACKET_TLV_H__
33 #define TLV_DOWN_FREQ 1
34 #define TLV_CHNL_ID 2
35 #define TLV_NET_ACCESS 3
36 #define TLV_COS 4
37 #define TLV_MODEM_CAP 5
38 #define TLV_CM_MIC 6
39 #define TLV_CMTS_MIC 7
40 #define TLV_VENDOR_ID 8
41 #define TLV_SW_UPG_FILE 9
42 #define TLV_SNMP_WRITE_CTRL 10
43 #define TLV_SNMP_OBJECT 11
44 #define TLV_MODEM_IP 12
45 #define TLV_SVC_UNAVAIL 13
46 #define TLV_ETHERNET_MAC 14
47 #define TLV_TEL_SETTINGS 15
48 #define TLV_BPI_CONFIG 17
49 #define TLV_MAX_CPES 18
50 #define TLV_TFTP_TIME 19
51 #define TLV_TFTP_MODEM_ADDRESS 20
52 #define TLV_SW_UPG_SRVR 21
53 #define TLV_UPSTREAM_CLASSIFIER 22
54 #define TLV_DOWN_CLASSIFIER 23
55 #define TLV_UPSTREAM_SERVICE_FLOW 24
56 #define TLV_DOWN_SERVICE_FLOW 25
57 #define TLV_PHS 26
58 #define TLV_HMAC_DIGEST 27
59 #define TLV_MAX_CLASSIFIERS 28
60 #define TLV_PRIVACY_ENABLE 29
61 #define TLV_AUTH_BLOCK 30
62 #define TLV_KEY_SEQ_NUM 31
63 #define TLV_MFGR_CVC 32
64 #define TLV_COSIGN_CVC 33
65 #define TLV_SNMPV3_KICKSTART 34
66 #define TLV_SUBS_MGMT_CTRL 35
67 #define TLV_SUBS_MGMT_CPE 36
68 #define TLV_SUBS_MGMT_FLTR 37
69 #define TLV_VENDOR_SPEC 43
70 #define TLV_END 255
71
72 /* Define DOCSIS 1.0 Class Of Service Configuration Types
73  * These are subtypes of TLV_COS (4)
74  */
75 #define COS_CLASSID 1
76 #define COS_MAX_DOWN 2
77 #define COS_MAX_UP 3
78 #define COS_UP_CH_PRIO 4
79 #define COS_MIN_UP_RATE 5
80 #define COS_MAX_UP_BURST 6
81 #define COS_BP_ENABLE 7
82
83 /* Define SNMPV3 KickStart subtypes
84  * These are subtypes of TLV_SNMPV3_KICKSTART (34)
85  */
86 #define SNMPV3_SEC_NAME 1
87 #define SNMPV3_MGR_PUB_NUM 2
88
89 /* Define Modem Capabilities Subtypes
90  * These are subtypes of TLV_MODEM_CAP (5)
91  */
92 #define CAP_CONCAT 1
93 #define CAP_DOCSIS_VER 2
94 #define CAP_FRAG 3
95 #define CAP_PHS 4
96 #define CAP_IGMP 5
97 #define CAP_PRIVACY 6
98 #define CAP_DOWN_SAID 7
99 #define CAP_UP_SID 8
100 #define CAP_OPT_FILT 9
101 #define CAP_XMIT_EQPERSYM 10
102 #define CAP_NUM_XMIT_EQ_TAPS 11
103 #define CAP_DCC 12
104
105 /* Define Classifier subtypes
106  * These are subtypes of either:
107  * TLV_UPSTREAM_CLASSIFIER (22)
108  * TLV_DOWN_CLASSIFIER (23)
109  */
110 #define CFR_REF 1
111 #define CFR_ID 2
112 #define CFR_SFLOW_REF 3
113 #define CFR_SFLOW_ID 4
114 #define CFR_RULE_PRI 5
115 #define CFR_ACT_STATE 6
116 #define CFR_DSA_ACTION 7
117 #define CFR_ERROR 8
118 #define CFR_IP_CLASSIFIER 9
119 #define CFR_ETH_CLASSIFIER 10
120 #define CFR_8021Q_CLASSIFIER 11
121 #define CFR_VENDOR_SPEC 43
122
123 /* Define Classifier Error sub-subtypes
124  * These are subtypes of CFR_ERROR ([22/23].8)
125  */
126 #define CFR_ERR_PARAM 1
127 #define CFR_ERR_CODE 2
128 #define CFR_ERR_MSG 3
129
130 /* Define IP Classifier sub-subtypes
131  * These are subtypes of CFR_IP_CLASSIFIER ([22/23].9)
132  */
133 #define CFR_IP_TOS_RANGE_MASK 1
134 #define CFR_IP_PROTO 2
135 #define CFR_IP_SOURCE_ADDR 3
136 #define CFR_IP_SOURCE_MASK 4
137 #define CFR_IP_DEST_ADDR 5
138 #define CFR_IP_DEST_MASK 6
139 #define CFR_IP_SRCPORT_START 7
140 #define CFR_IP_SRCPORT_END 8
141 #define CFR_IP_DSTPORT_START 9
142 #define CFR_IP_DSTPORT_END 10
143
144 /* Define Ethertype Classifier sub-subtypes
145  * These are subtypes of CFR_ETH_CLASSIFIER ([22/23].10)
146  */
147 #define CFR_ETH_DST_MAC 1
148 #define CFR_ETH_SRC_MAC 2
149 #define CFR_ETH_DSAP 3
150
151 /* Define 802.1P/Q Classifier sub-subtypes
152  * These are subtypes of CFR_8021Q_CLASSIFIER ([22/23].11)
153  */
154 #define CFR_D1Q_USER_PRI 1
155 #define CFR_D1Q_VLAN_ID 2
156 #define CFR_D1Q_VENDOR_SPEC 43
157
158 /* Define Upstream/Downstream Service flow subtypes
159  * These are subtypes of:
160  * TLV_UPSTREAM_SERVICE_FLOW (24)
161  * TLV_DOWN_SERVICE_FLOW (25)
162  */
163 #define SFW_REF 1
164 #define SFW_ID 2
165 #define SFW_SID 3
166 #define SFW_SERVICE_CLASS_NAME 4
167 #define SFW_ERRORS 5
168 #define SFW_QOS_SET_TYPE 6
169 #define SFW_TRAF_PRI 7
170 #define SFW_MAX_SUSTAINED 8
171 #define SFW_MAX_BURST 9
172 #define SFW_MIN_RSVD_TRAF 10
173 #define SFW_MIN_RSVD_PACKETSIZE 11
174 #define SFW_ACTIVE_QOS_TIMEOUT 12
175 #define SFW_ADMITT_QOS_TIMEOUT 13
176 #define SFW_VENDOR_SPEC 43
177 /* The following types only apply to
178  * TLV_UPSTREAM_SERVICE_FLOW (24)
179  */
180 #define SFW_MAX_CONCAT_BURST 14
181 #define SFW_SCHEDULING_TYPE 15
182 #define SFW_REQ_XMIT_POL 16
183 #define SFW_NOM_POLL_INT 17
184 #define SFW_POLL_JTTR_TOL 18
185 #define SFW_UG_SIZE 19
186 #define SFW_NOM_GRNT_INTV 20
187 #define SFW_GRNT_JTTR_TOL 21
188 #define SFW_GRNTS_PER_INTV 22
189 #define SFW_IP_TOS_OVERWRITE 23
190 #define SFW_UG_TIME_REF 24
191
192 /* The following types only apply to
193  * TLV_DOWN_SERVICE_FLOW (25)
194  */
195 #define SFW_MAX_DOWN_LAT 14
196
197 /* Define Service Flow Error sub-subtypes
198  * These are subtypes of
199  * SFW_ERRORS ([24/25].5)
200  */
201 #define SFW_ERR_PARAM 1
202 #define SFW_ERR_CODE 2
203 #define SFW_ERR_MSG 3
204
205
206 /* Define Payload Header Supression subtypes
207  * These are subtypes of TLV_PHS (26)
208  */
209 #define PHS_CLSFR_REF 1
210 #define PHS_CLSFR_ID 2
211 #define PHS_SFLOW_REF 3
212 #define PHS_SFLOW_ID 4
213 #define PHS_DSC_ACTION 5
214 #define PHS_ERRORS 6
215 #define PHS_FIELD 7
216 #define PHS_INDEX 8
217 #define PHS_MASK 9
218 #define PHS_SUP_SIZE 10
219 #define PHS_VERIFICATION 11
220 #define PHS_VENDOR_SPEC 43
221
222 /* Define PHS Error sub-subtypes
223  * These are subtypes of PHS_ERRORS (26.6)
224  */
225 #define PHS_ERR_PARAM 1
226 #define PHS_ERR_CODE 2
227 #define PHS_ERR_MSG 3
228
229 #endif