Fixed bug in dissect_ndr_pointer(). Top level Unique and Full pointers are
[obnox/wireshark/wip.git] / packet-isis-hello.h
1 /* packet-isis-hello.h
2  * Declares for hello handling inside isis.
3  *
4  * $Id: packet-isis-hello.h,v 1.7 2002/02/09 23:44:38 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 #ifndef _PACKET_ISIS_HELLO_H
27 #define _PACKET_ISIS_HELLO_H
28
29 /*
30  * Declarations for L1/L2 hello base header.  
31  */
32 #define ISIS_HELLO_CTYPE_MASK           0x03
33 #define ISIS_HELLO_CT_RESERVED_MASK     0xfc
34 #define ISIS_HELLO_PRIORITY_MASK        0x7f
35 #define ISIS_HELLO_P_RESERVED_MASK      0x80
36
37 #define ISIS_HELLO_TYPE_RESERVED        0
38 #define ISIS_HELLO_TYPE_LEVEL_1         1
39 #define ISIS_HELLO_TYPE_LEVEL_2         2
40 #define ISIS_HELLO_TYPE_LEVEL_12        3
41
42 /*
43  * detail clv information on l1 hello packets
44  */
45 #define ISIS_CLV_L1H_AREA_ADDRESS        1
46 #define ISIS_CLV_L1H_IS_NEIGHBORS        6
47 #define ISIS_CLV_L1H_PADDING             8
48 #define ISIS_CLV_L1H_NLPID               129
49 #define ISIS_CLV_L1H_IP_INTERFACE_ADDR   132
50 #define ISIS_CLV_L1H_RESTART             211
51 #define ISIS_CLV_L1H_MT                  229
52 #define ISIS_CLV_L1H_IPv6_INTERFACE_ADDR 232
53
54 /*
55  * Note, the spec say 133, but everyone seems to use 10. Any clue on why
56  * this is would be appreciated!
57  */
58 #define ISIS_CLV_L1H_AUTHENTICATION_NS  10      /*non spec */
59 #define ISIS_CLV_L1H_AUTHENTICATION     133
60
61 /*
62  * detail clv information on l2 hello packets
63  */
64 #define ISIS_CLV_L2H_AREA_ADDRESS        1
65 #define ISIS_CLV_L2H_IS_NEIGHBORS        6
66 #define ISIS_CLV_L2H_PADDING             8
67 #define ISIS_CLV_L2H_NLPID               129
68 #define ISIS_CLV_L2H_IP_INTERFACE_ADDR   132
69 #define ISIS_CLV_L2H_RESTART             211
70 #define ISIS_CLV_L2H_MT                  229
71 #define ISIS_CLV_L2H_IPv6_INTERFACE_ADDR 232
72 /*
73  * Note, the spec say 133, but everyone seems to use 10. Any clue on why
74  * this is would be appreciated!
75  */
76 #define ISIS_CLV_L2H_AUTHENTICATION_NS  10      /*non spec */
77 #define ISIS_CLV_L2H_AUTHENTICATION     133
78
79 /*
80  * detail clv information on PTP hello packets
81  */
82 #define ISIS_CLV_PTP_AREA_ADDRESS        1
83 #define ISIS_CLV_PTP_PADDING             8
84 #define ISIS_CLV_PTP_NLPID               129
85 #define ISIS_CLV_PTP_IP_INTERFACE_ADDR   132
86 #define ISIS_CLV_PTP_RESTART             211
87 #define ISIS_CLV_PTP_MT                  229
88 #define ISIS_CLV_PTP_IPv6_INTERFACE_ADDR 232
89 #define ISIS_CLV_PTP_ADJ                 240
90 /*
91  * Note, the spec say 133, but everyone seems to use 10. Any clue on why
92  * this is would be appreciated!
93  */
94 #define ISIS_CLV_PTP_AUTHENTICATION_NS  10      /*non spec */
95 #define ISIS_CLV_PTP_AUTHENTICATION     133
96
97 /*
98  * misc. bittest macros
99  */
100
101 #define ISIS_MASK_RESTART_RR(x)            ((x)&0x1)
102 #define ISIS_MASK_RESTART_RA(x)            ((x)&0x2)
103
104 /*
105  * Published API functions.  NOTE, this are "local" API functions and
106  * are only valid from with isis decodes.
107  */
108 extern void isis_dissect_isis_hello(tvbuff_t *tvb, packet_info *pinfo,
109         proto_tree *tree, int offset,
110         int hello_type, int header_length,int id_length);
111 extern void isis_register_hello(int proto_isis);
112
113 #endif /* _PACKET_ISIS_HELLO_H */