1 /* wimax_tlv.h 2 * WiMax TLV handling function header file 3 * 4 * Copyright (c) 2007 by Intel Corporation. 5 * 6 * Author: Lu Pan <lu.pan@intel.com> 7 * 8 * Wireshark - Network traffic analyzer 9 * By Gerald Combs <gerald@wireshark.org> 10 * Copyright 1999 Gerald Combs 11 * 12 * SPDX-License-Identifier: GPL-2.0-or-later 13 */ 14 #ifndef _WIMAX_TLV_H_ 15 #define _WIMAX_TLV_H_ 16 17 #include <epan/packet.h> 18 19 #define WIMAX_TLV_EXTENDED_LENGTH_MASK 0x80 20 #define WIMAX_TLV_LENGTH_MASK 0x7F 21 22 #define MAX_TLV_LEN 64000 23 24 typedef struct 25 { 26 guint8 valid; /* TLV info status: 0=invalid; 1=valid */ 27 guint8 type; /* TLV type */ 28 guint8 length_type; /* length type: 0=single byte; 1=multiple bytes */ 29 guint8 size_of_length; /* size of the TLV length */ 30 guint value_offset; /* the offset of TLV value field */ 31 gint32 length; /* length of TLV value field */ 32 } tlv_info_t; 33 34 gint init_tlv_info(tlv_info_t *info, tvbuff_t *tvb, gint offset); 35 gint valid_tlv_info(tlv_info_t *info); 36 gint get_tlv_type(tlv_info_t *info); 37 gint get_tlv_length_type(tlv_info_t *info); 38 gint get_tlv_size_of_length(tlv_info_t *info); 39 gint get_tlv_value_offset(tlv_info_t *info); 40 gint32 get_tlv_length(tlv_info_t *info); 41 proto_item *add_tlv_subtree(tlv_info_t *info, proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, const guint encoding); 42 proto_tree *add_tlv_subtree_no_item(tlv_info_t *info, proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start); 43 proto_tree *add_protocol_subtree(tlv_info_t *info, gint idx, proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, const char *label); 44 45 #endif /* WIMAX_TLV_H */ 46