summaryrefslogtreecommitdiff
path: root/packet-ospf.h
diff options
context:
space:
mode:
authorGerald Combs <gerald@wireshark.org>1998-09-16 02:39:15 +0000
committerGerald Combs <gerald@wireshark.org>1998-09-16 02:39:15 +0000
commit86534f46e150856fcce76af5c7598d354fb32ca9 (patch)
tree681b71cababcf54c865c4dfa3c52a98b1d793231 /packet-ospf.h
downloadwireshark-86534f46e150856fcce76af5c7598d354fb32ca9.tar.gz
Initial revision
svn path=/trunk/; revision=2
Diffstat (limited to 'packet-ospf.h')
-rw-r--r--packet-ospf.h127
1 files changed, 127 insertions, 0 deletions
diff --git a/packet-ospf.h b/packet-ospf.h
new file mode 100644
index 0000000000..8e3b6af377
--- /dev/null
+++ b/packet-ospf.h
@@ -0,0 +1,127 @@
+/* packet-ospf.h (c) 1998 Hannes Boehm */
+
+#define OSPF_HEADER_LENGTH 24
+
+#define OSPF_HELLO 1
+#define OSPF_DB_DESC 2
+#define OSPF_LS_REQ 3
+#define OSPF_LS_UPD 4
+#define OSPF_LS_ACK 5
+
+#define OSPF_AUTH_NONE 0
+#define OSPF_AUTH_SIMPLE 1
+#define OSPF_AUTH_CRYPT 2
+
+#define OSPF_OPTIONS_E 2
+#define OSPF_OPTIONS_MC 4
+#define OSPF_OPTIONS_NP 8
+#define OSPF_OPTIONS_EA 16
+#define OSPF_OPTIONS_DC 32
+
+#define OSPF_DBD_FLAG_MS 1
+#define OSPF_DBD_FLAG_M 2
+#define OSPF_DBD_FLAG_I 4
+
+#define OSPF_LS_REQ_LENGTH 12
+
+#define OSPF_LSTYPE_ROUTER 1
+#define OSPF_LSTYPE_NETWORK 2
+#define OSPF_LSTYPE_SUMMERY 3
+#define OSPF_LSTYPE_ASBR 4
+#define OSPF_LSTYPE_ASEXT 5
+
+#define OSPF_LINK_PTP 1
+#define OSPF_LINK_TRANSIT 2
+#define OSPF_LINK_STUB 3
+#define OSPF_LINK_VIRTUAL 4
+
+#define OSPF_LSA_HEADER_LENGTH 20
+
+typedef struct _e_ospfhdr {
+ guint8 version;
+ guint8 packet_type;
+ guint16 length;
+ guint32 routerid;
+ guint32 area;
+ guint16 checksum;
+ guint16 auth_type;
+ char auth_data[8];
+} e_ospfhdr;
+
+typedef struct _e_ospf_hello {
+ guint32 network_mask;
+ guint16 hellointervall;
+ guint8 options;
+ guint8 priority;
+ guint32 dead_interval;
+ guint32 drouter;
+ guint32 bdrouter;
+} e_ospf_hello ;
+
+typedef struct _e_ospf_dbd {
+ guint16 interface_mtu;
+ guint8 options;
+ guint8 flags;
+ guint32 dd_sequence;
+} e_ospf_dbd;
+
+typedef struct _e_ospf_ls_req {
+ guint32 ls_type;
+ guint32 ls_id;
+ guint32 adv_router;
+} e_ospf_ls_req;
+
+typedef struct _e_ospf_lsa_hdr {
+ guint16 ls_age;
+ guint8 options;
+ guint8 ls_type;
+ guint32 ls_id;
+ guint32 adv_router;
+ guint32 ls_seq;
+ guint16 ls_checksum;
+ guint16 length;
+} e_ospf_lsa_hdr;
+
+typedef struct _e_ospf_router_lsa {
+ guint8 flags;
+ guint8 empfty;
+ guint16 nr_links;
+} e_ospf_router_lsa;
+
+typedef struct _e_ospf_router_data {
+ guint32 link_id;
+ guint32 link_data;
+ guint8 link_type;
+ guint8 nr_tos;
+ guint16 tos0_metric;
+} e_ospf_router_data;
+
+typedef struct _e_ospf_router_metric {
+ guint8 tos;
+ guint8 empty;
+ guint16 metric;
+} e_ospf_router_metric;
+
+typedef struct _e_ospf_network_lsa {
+ guint32 network_mask;
+} e_ospf_network_lsa;
+
+typedef struct _e_ospf_lsa_upd_hdr {
+ guint32 lsa_nr;
+} e_ospf_lsa_upd_hdr;
+
+typedef struct _e_ospf_summary_lsa {
+ guint32 network_mask;
+} e_ospf_summary_lsa;
+
+void dissect_ospf_hello(const u_char*, int, frame_data*, GtkTree*);
+void dissect_ospf_db_desc(const u_char*, int, frame_data*, GtkTree*);
+void dissect_ospf_ls_req(const u_char*, int, frame_data*, GtkTree*);
+void dissect_ospf_ls_upd(const u_char*, int, frame_data*, GtkTree*);
+void dissect_ospf_ls_ack(const u_char*, int, frame_data*, GtkTree*);
+
+/* dissect_ospf_lsa returns the length of the LSA
+ * if disassemble_body is set to FALSE (e.g. in LSA ACK
+ * packets), the header length is returned
+ */
+int dissect_ospf_lsa(const u_char*, int, frame_data*, GtkTree*, int disassemble_body);