/* * Copyright 2006-2007 The MITRE Corporation. * All Rights Reserved. * Approved for Public Release; Distribution Unlimited. * Tracking Number 07-0090. * * The US Government will not be charged any license fee and/or royalties * related to this software. Neither name of The MITRE Corporation; nor the * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * * Wireshark - Network traffic analyzer * By Gerald Combs * Copyright 1998 Gerald Combs * * SPDX-License-Identifier: GPL-2.0-or-later */ /* TCP Convergence Layer - Message Types */ #define TCP_CONV_MSG_TYPE_DATA 0x01 #define TCP_CONV_MSG_TYPE_ACK 0x02 #define TCP_CONV_MSG_TYPE_KEEP_ALIVE 0x03 #define TCP_CONV_MSG_TYPE_SHUTDOWN 0x04 /* TCP Convergence Layer (3) - Message Types */ #define TCP_CONVERGENCE_TYPE_MASK 0xf0 #define TCP_CONVERGENCE_DATA_SEGMENT 0x10 #define TCP_CONVERGENCE_ACK_SEGMENT 0x20 #define TCP_CONVERGENCE_REFUSE_BUNDLE 0x30 #define TCP_CONVERGENCE_KEEP_ALIVE 0x40 #define TCP_CONVERGENCE_SHUTDOWN 0x50 /* TCP Convergence Layer - Contact Header Flags */ #define TCP_CONV_BUNDLE_ACK_FLAG 0x01 #define TCP_CONV_REACTIVE_FRAG_FLAG 0x02 #define TCP_CONV_CONNECTOR_RCVR_FLAG 0x04 /* TCP Convergence Layer - Data Segment Flags */ #define TCP_CONVERGENCE_DATA_FLAGS 0x03 #define TCP_CONVERGENCE_DATA_END_FLAG 0x01 #define TCP_CONVERGENCE_DATA_START_FLAG 0x02 /* TCP Convergence Layer - Shutdown Segment Flags */ #define TCP_CONVERGENCE_SHUTDOWN_FLAGS 0x03 #define TCP_CONVERGENCE_SHUTDOWN_REASON 0x02 #define TCP_CONVERGENCE_SHUTDOWN_DELAY 0x01 /* * TCP Convergence Layer - Minimum buffer sizes * For Data Packet require 5 bytes fixed plus * up to 4 additional for length SDV */ #define TCP_CONV_MIN_DATA_BUFFER 9 #define BUNDLE_PROCFLAGS_FRAG_MASK 0x01 #define BUNDLE_PROCFLAGS_ADMIN_MASK 0x02 #define BUNDLE_PROCFLAGS_DONTFRAG_MASK 0x04 #define BUNDLE_PROCFLAGS_XFERREQ_MASK 0x08 #define BUNDLE_PROCFLAGS_SINGLETON_MASK 0x10 #define BUNDLE_PROCFLAGS_APP_ACK_MASK 0x20 #define BUNDLE_COSFLAGS_PRIORITY_MASK 0x03 #define BUNDLE_COSFLAGS_PRIORITY_BULK 0x00 #define BUNDLE_COSFLAGS_PRIORITY_NORMAL 0x01 #define BUNDLE_COSFLAGS_PRIORITY_EXP 0x02 #define BUNDLE_SRRFLAGS_REPORT_MASK 0x01 #define BUNDLE_SRRFLAGS_CUSTODY_MASK 0x02 #define BUNDLE_SRRFLAGS_FORWARD_MASK 0x04 #define BUNDLE_SRRFLAGS_DELIVERY_MASK 0x08 #define BUNDLE_SRRFLAGS_DELETION_MASK 0x10 #define BUNDLE_SRRFLAGS_ACK_MASK 0x20 /* Header Processing Flags (non-primary) */ #define HEADER_PROCFLAGS_REPLICATE 0x01 #define HEADER_PROCFLAGS_XMIT_STATUS 0x02 #define HEADER_PROCFLAGS_DISCARD 0x04 #define HEADER_PROCFLAGS_LAST_HEADER 0x08 /* Header Types (excluding Primary Header) */ #define BUNDLE_BLOCK_TYPE_PAYLOAD 0x01 /* RFC5050 */ #define BUNDLE_BLOCK_TYPE_AUTHENTICATION 0x02 /* RFC6257 */ #define BUNDLE_BLOCK_TYPE_INTEGRITY 0x03 /* RFC6257 */ #define BUNDLE_BLOCK_TYPE_CONFIDENTIALITY 0x04 /* RFC6257 */ #define BUNDLE_BLOCK_TYPE_PREVIOUS_HOP_INSERT 0x05 /* RFC6259 */ #define BUNDLE_BLOCK_TYPE_METADATA_EXTENSION 0x08 /* RFC6258 */ #define BUNDLE_BLOCK_TYPE_EXTENSION_SECURITY 0x09 /* RFC6257 */ #define BUNDLE_BLOCK_TYPE_CUSTODY_TRANSFER 0x0a /* http://bioserve.colorado.edu/bp-acs/ */ #define BUNDLE_BLOCK_TYPE_EXTENDED_COS 0x13 /* http://tools.ietf.org/html/draft-irtf-dtnrg-ecos-02 */ #define BUNDLE_BLOCK_TYPE_BUNDLE_AGE 0x14 /* https://tools.ietf.org/html/draft-irtf-dtnrg-bundle-age-block-01 */ /* Payload Header Processing Flags */ #define PAYLOAD_PROCFLAGS_REPLICATE_MASK 0x01 #define PAYLOAD_PROCFLAGS_XMIT_STATUS 0x02 #define PAYLOAD_PROCFLAGS_DISCARD_FAILURE 0x04 #define PAYLOAD_PROCFLAGS_LAST_HEADER 0x08 /* Header Fixed Sizes */ #define TCP_CONV_HDR_DATA_FIXED_LENGTH 5 #define TCP_CONV_HDR_ACK_LENGTH 9 #define TCP_CONV_HDR_KEEP_ALIVE_LENGTH 1 #define TCP_CONV_HDR_SHUTDOWN_LENGTH 1 /* Administrative Record Definitions */ #define ADMIN_REC_TYPE_STATUS_REPORT 0x01 #define ADMIN_REC_TYPE_CUSTODY_SIGNAL 0x02 #define ADMIN_REC_TYPE_AGGREGATE_CUSTODY_SIGNAL 0x04 #define ADMIN_REC_TYPE_ANNOUNCE_BUNDLE 0x05 #define ADMIN_REC_FLAGS_FRAGMENT 0x01 #define ADMIN_REC_CUSTODY_REASON_MASK 0x7f /* Bundle Status Report Flags */ #define ADMIN_STATUS_FLAGS_RECEIVED 0x01 #define ADMIN_STATUS_FLAGS_ACCEPTED 0x02 #define ADMIN_STATUS_FLAGS_FORWARDED 0x04 #define ADMIN_STATUS_FLAGS_DELIVERED 0x08 #define ADMIN_STATUS_FLAGS_DELETED 0x10 #define ADMIN_STATUS_FLAGS_ACKNOWLEDGED 0x20 /* Block Processing Control Flags (Version 5) */ #define BLOCK_CONTROL_REPLICATE 0x01 #define BLOCK_CONTROL_TRANSMIT_STATUS 0x02 #define BLOCK_CONTROL_DELETE_BUNDLE 0x04 #define BLOCK_CONTROL_LAST_BLOCK 0x08 #define BLOCK_CONTROL_DISCARD_BLOCK 0x10 #define BLOCK_CONTROL_NOT_PROCESSED 0x20 #define BLOCK_CONTROL_EID_REFERENCE 0x40 /* ECOS Flags */ #define ECOS_FLAGS_CRITICAL 0x01 #define ECOS_FLAGS_STREAMING 0x02 #define ECOS_FLAGS_FLOWLABEL 0x04 #define ECOS_FLAGS_RELIABLE 0x08 /* Ciphersuite Flags */ #define BLOCK_CIPHERSUITE_PARAMS 0x01 #define DTN_SCHEME_STR "dtn" #define IPN_SCHEME_STR "ipn" int evaluate_sdnv(tvbuff_t *tvb, int offset, int *bytecount); gint64 evaluate_sdnv_64(tvbuff_t *tvb, int offset, int *bytecount); /* Special Functions to evaluate unsigned SDNVs with error indication * bytecount returns the number bytes consumed * value returns the actual value * * result is TRUE (1) on success else FALSE (0) */ int evaluate_sdnv32(tvbuff_t *tvb, int offset, int *bytecount, guint32 *value); int evaluate_sdnv64(tvbuff_t *tvb, int offset, int *bytecount, guint64 *value); /* * Editor modelines - http://www.wireshark.org/tools/modelines.html * * Local variables: * c-basic-offset: 4 * tab-width: 8 * indent-tabs-mode: nil * End: * * vi: set shiftwidth=4 tabstop=8 expandtab: * :indentSize=4:tabSize=8:noTabs=true: */