diff options
author | Gerald Combs <gerald@wireshark.org> | 1998-09-16 02:39:15 +0000 |
---|---|---|
committer | Gerald Combs <gerald@wireshark.org> | 1998-09-16 02:39:15 +0000 |
commit | 86534f46e150856fcce76af5c7598d354fb32ca9 (patch) | |
tree | 681b71cababcf54c865c4dfa3c52a98b1d793231 /packet-ospf.h | |
download | wireshark-86534f46e150856fcce76af5c7598d354fb32ca9.tar.gz |
Initial revision
svn path=/trunk/; revision=2
Diffstat (limited to 'packet-ospf.h')
-rw-r--r-- | packet-ospf.h | 127 |
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); |