Add support for SNA-over-X.25. Add QLLC dissector. I still need to
[obnox/wireshark/wip.git] / packet-isis-clv.h
1 /* packet-isis-clv.h
2  * Declares for common clv decoding functions.
3  *
4  * $Id: packet-isis-clv.h,v 1.7 2001/07/02 00:19:34 guy Exp $
5  * Stuart Stanley <stuarts@mxmail.net>
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 #ifndef _PACKET_ISIS_CLV_H
28 #define _PACKET_ISIS_CLV_H
29
30 /*
31  * Our sub-packet dismantle structure for CLV's
32  */
33 typedef struct {
34         int     optcode;                /* code for option */
35         char    *tree_text;             /* text for fold out */
36         gint    *tree_id;               /* id for add_item */
37         void    (*dissect)(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
38                                 int offset, int id_length, int length);
39 } isis_clv_handle_t;
40
41 /*
42  * Published API functions.  NOTE, this are "local" API functions and
43  * are only valid from with isis decodes.
44  */
45 extern void isis_dissect_clvs(tvbuff_t *tvb, packet_info *pinfo,
46         proto_tree *tree, int offset, 
47         const isis_clv_handle_t *opts, int len, int id_length,
48         int unknown_tree_id);
49
50 extern void isis_dissect_nlpid_clv(tvbuff_t *tvb, packet_info *pinfo,
51         proto_tree *tree, int offset, int length);
52 extern void isis_dissect_te_router_id_clv(tvbuff_t *tvb, packet_info *pinfo,
53         proto_tree *tree, int offset, int length, int tree_id);
54 extern void isis_dissect_ipv6_int_clv(tvbuff_t *tvb, packet_info *pinfo,
55         proto_tree *tree, int offset, int length, int tree_id);
56 extern void isis_dissect_ip_int_clv(tvbuff_t *tvb, packet_info *pinfo,
57         proto_tree *tree, int offset, int length, int tree_id);
58 extern void isis_dissect_mt_clv(tvbuff_t *tvb, packet_info *pinfo,
59         proto_tree *tree, int offset, int length, int tree_id);
60 extern void isis_dissect_hostname_clv(tvbuff_t *tvb, packet_info *pinfo,
61         proto_tree *tree, int offset, int length);
62 extern void isis_dissect_authentication_clv(tvbuff_t *tvb, packet_info *pinfo,
63         proto_tree *tree, int offset, int length, char *meaning);
64 extern void isis_dissect_area_address_clv(tvbuff_t *tvb, packet_info *pinfo,
65         proto_tree *tree, int offset, int length);
66
67 extern void isis_dissect_metric(tvbuff_t *tvb, packet_info *pinfo,
68         proto_tree *tree, int offset,
69         guint8 value, char *pstr, int force_supported);
70
71 #endif /* _PACKET_ISIS_CLV_H */