1 /* packet-ospf.h (c) 1998 Hannes Boehm */
3 /* $Id: packet-ospf.h,v 1.6 2000/02/15 21:02:49 gram Exp $ */
5 #define OSPF_HEADER_LENGTH 24
13 #define OSPF_AUTH_NONE 0
14 #define OSPF_AUTH_SIMPLE 1
15 #define OSPF_AUTH_CRYPT 2
17 #define OSPF_OPTIONS_E 2
18 #define OSPF_OPTIONS_MC 4
19 #define OSPF_OPTIONS_NP 8
20 #define OSPF_OPTIONS_EA 16
21 #define OSPF_OPTIONS_DC 32
23 #define OSPF_DBD_FLAG_MS 1
24 #define OSPF_DBD_FLAG_M 2
25 #define OSPF_DBD_FLAG_I 4
27 #define OSPF_LS_REQ_LENGTH 12
29 #define OSPF_LSTYPE_ROUTER 1
30 #define OSPF_LSTYPE_NETWORK 2
31 #define OSPF_LSTYPE_SUMMERY 3
32 #define OSPF_LSTYPE_ASBR 4
33 #define OSPF_LSTYPE_ASEXT 5
35 #define OSPF_LINK_PTP 1
36 #define OSPF_LINK_TRANSIT 2
37 #define OSPF_LINK_STUB 3
38 #define OSPF_LINK_VIRTUAL 4
40 #define OSPF_LSA_HEADER_LENGTH 20
42 typedef struct _e_ospfhdr {
53 typedef struct _e_ospf_hello {
55 guint16 hellointervall;
58 guint32 dead_interval;
63 typedef struct _e_ospf_dbd {
64 guint16 interface_mtu;
70 typedef struct _e_ospf_ls_req {
76 typedef struct _e_ospf_lsa_hdr {
87 typedef struct _e_ospf_router_lsa {
93 typedef struct _e_ospf_router_data {
101 typedef struct _e_ospf_router_metric {
105 } e_ospf_router_metric;
107 typedef struct _e_ospf_network_lsa {
108 guint32 network_mask;
109 } e_ospf_network_lsa;
111 typedef struct _e_ospf_lsa_upd_hdr {
113 } e_ospf_lsa_upd_hdr;
115 typedef struct _e_ospf_summary_lsa {
116 guint32 network_mask;
117 } e_ospf_summary_lsa;
119 typedef struct _e_ospf_asexternal_lsa {
123 guint32 external_tag;
124 } e_ospf_asexternal_lsa;
126 typedef struct _e_ospf_crypto {
130 guint32 sequence_num;
133 void dissect_ospf(const u_char *, int, frame_data *, proto_tree *);
134 void dissect_ospf_hello(const u_char*, int, frame_data*, proto_tree*);
135 void dissect_ospf_db_desc(const u_char*, int, frame_data*, proto_tree*);
136 void dissect_ospf_ls_req(const u_char*, int, frame_data*, proto_tree*);
137 void dissect_ospf_ls_upd(const u_char*, int, frame_data*, proto_tree*);
138 void dissect_ospf_ls_ack(const u_char*, int, frame_data*, proto_tree*);
140 /* dissect_ospf_lsa returns the length of the LSA
141 * if disassemble_body is set to FALSE (e.g. in LSA ACK
142 * packets), the LSA-header length is returned (20)
144 int dissect_ospf_lsa(const u_char*, int, frame_data*, proto_tree*, int disassemble_body);