/* packet-osi.h
*
- * $Id: packet-osi.h,v 1.3 2000/06/19 04:49:36 guy Exp $
+ * $Id: packet-osi.h,v 1.8 2001/06/05 09:06:19 guy Exp $
*
* Ethereal - Network traffic analyzer
- * By Gerald Combs <gerald@zing.org>
+ * By Gerald Combs <gerald@ethereal.com>
* 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
#ifndef _PACKET_OSI_H
#define _PACKET_OSI_H
-/* OSI Global defines, common for all OSI protocols */
-
-#define MAX_NSAP_LEN 30
-#define MAX_SYSTEMID_LEN 15
-#define MAX_AREA_LEN 30
-
-#define RFC1237_NSAP_LEN 20
-#define RFC1237_FULLAREA_LEN 13
-#define RFC1237_SYSTEMID_LEN 6
-#define RFC1237_SELECTOR_LEN 1
-
-#define RFC1237_IDI_LEN 2
-#define RFC1237_AFI_LEN 1
-#define RFC1237_DFI_LEN 1
-#define RFC1237_ORG_LEN 3
-#define RFC1237_AA_LEN 3
-#define RFC1237_RSVD_LEN 2
-#define RFC1237_RD_LEN 2
-#define RFC1237_AREA_LEN 3
-
-
-#define NSAP_IDI_ISODCC 0x39
-#define NSAP_IDI_GOSIP2 0x47
+#include "osi-utils.h"
#define PDU_TYPE_ESIS_ESH 100
#define PDU_TYPE_ESIS_ISH 101
#define PROTO_STRING_ESIS "ISO 9542 ESIS Routeing Information Exchange Protocol"
#define PROTO_STRING_CLNP "ISO 8473 CLNP ConnectionLess Network Protocol"
#define PROTO_STRING_COTP "ISO 8073 COTP Connection-Oriented Transport Protocol"
+#define PROTO_STRING_CLTP "ISO 8602 CLTP ConnectionLess Transport Protocol"
#define PROTO_STRING_LSP "ISO 10589 ISIS Link State Protocol Data Unit"
#define PROTO_STRING_CSNP "ISO 10589 ISIS Complete Sequence Numbers Protocol Data Unit"
#define PROTO_STRING_PSNP "ISO 10589 ISIS Partial Sequence Numbers Protocol Data Unit"
#define BIT_15 0x4000
#define BIT_16 0x8000
+/*
+ * Dissector table for NLPIDs for protocols whose packets begin with
+ * the NLPID.
+ */
+dissector_table_t osinl_subdissector_table;
/*
* published API functions
*/
-extern void dissect_osi( const u_char *, int, frame_data *, proto_tree *);
-extern gchar *print_nsap_net ( const u_char *, int );
-extern gchar *print_area ( const u_char *, int );
-extern gchar *print_system_id( const u_char *, int );
-extern gchar *calc_checksum ( const u_char *, u_int, u_int );
+typedef enum {
+ NO_CKSUM, /* checksum field is 0 */
+ DATA_MISSING, /* not all the data covered by the checksum was captured */
+ CKSUM_OK, /* checksum is OK */
+ CKSUM_NOT_OK /* checksum is not OK */
+} cksum_status_t;
-#endif /* _PACKET_OSI_H */
+extern cksum_status_t calc_checksum(tvbuff_t *, int, u_int, u_int);
+#endif /* _PACKET_OSI_H */