wireshark/packet-ospf.h

168 lines
3.8 KiB
C

/* packet-ospf.h
*
* $Id: packet-ospf.h,v 1.10 2000/09/13 07:47:10 guy Exp $
*
* (c) 1998 Hannes Boehm
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
* Copyright 1998 Gerald Combs
*
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifndef __PACKET_OSPF_H__
#define __PACKET_OSPF_H__
#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_LSTYPE_ASEXT7 7
/* Opaque LSA types */
#define OSPF_LSTYPE_OP_LINKLOCAL 9
#define OSPF_LSTYPE_OP_AREALOCAL 10
#define OSPF_LSTYPE_OP_ASWIDE 11
#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
/* Known opaque LSAs */
#define OSPF_LSA_MPLS_TE 1
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;
typedef struct _e_ospf_asexternal_lsa {
guint8 options;
guint8 metric[3];
guint32 gateway;
guint32 external_tag;
} e_ospf_asexternal_lsa;
typedef struct _e_ospf_crypto {
guint16 mbz;
guint8 key_id;
guint8 length;
guint32 sequence_num;
} e_ospf_crypto;
#endif