diff options
author | Bill Meier <wmeier@newsguy.com> | 2014-10-02 17:43:54 -0400 |
---|---|---|
committer | Bill Meier <wmeier@newsguy.com> | 2014-10-02 22:30:27 +0000 |
commit | 70abd39bb756c6d2567188691c29ededa6aa714e (patch) | |
tree | 0b3b522efee6e5d5aabff199dcc9228e294181b2 /epan/dissectors | |
parent | 0299aa352152c5658265d7bce393e64a78920b91 (diff) |
Reformat hf[] entries; Add editor modelines & adjust whitespace.
Change-Id: I30b25db89d3fbae5f3913ede8bf7bd66fd2516da
Reviewed-on: https://code.wireshark.org/review/4432
Reviewed-by: Bill Meier <wmeier@newsguy.com>
Diffstat (limited to 'epan/dissectors')
-rw-r--r-- | epan/dissectors/packet-ansi_801.c | 940 | ||||
-rw-r--r-- | epan/dissectors/packet-isns.c | 1744 | ||||
-rw-r--r-- | epan/dissectors/packet-nlsp.c | 587 | ||||
-rw-r--r-- | epan/dissectors/packet-q2931.c | 637 |
4 files changed, 2459 insertions, 1449 deletions
diff --git a/epan/dissectors/packet-ansi_801.c b/epan/dissectors/packet-ansi_801.c index 0ae262af57..dd0181531f 100644 --- a/epan/dissectors/packet-ansi_801.c +++ b/epan/dissectors/packet-ansi_801.c @@ -919,7 +919,7 @@ rev_reject(tvbuff_t *tvb, proto_tree *tree, guint len, guint32 offset) str = val_to_str_const((oct & 0xf0) >> 4, for_req_type_strings, "Reserved"); - proto_tree_add_uint_format_value(tree, hf_ansi_801_reject_request_type, tvb, offset, 1, oct, + proto_tree_add_uint_format_value(tree, hf_ansi_801_reject_request_type, tvb, offset, 1, oct, "(%u) %s", (oct & 0xf0) >> 4, str); switch ((oct & 0x0e) >> 1) @@ -944,8 +944,8 @@ rev_pr_ms_information(tvbuff_t *tvb, proto_tree *tree, guint len, guint32 offset guint32 value; guint32 saved_offset; const gchar *str = NULL; - proto_item* ti; - proto_tree *gps_tree, *loc_tree; + proto_item* ti; + proto_tree *gps_tree, *loc_tree; saved_offset = offset; @@ -972,7 +972,7 @@ rev_pr_ms_information(tvbuff_t *tvb, proto_tree *tree, guint len, guint32 offset offset += 2; ti = proto_tree_add_item(tree, hf_ansi_801_gps_acq_cap, tvb, offset, 3, ENC_BIG_ENDIAN); - gps_tree = proto_item_add_subtree(ti, ett_gps); + gps_tree = proto_item_add_subtree(ti, ett_gps); proto_tree_add_item(gps_tree, hf_ansi_801_reserved_24_F80000, tvb, offset, 3, ENC_BIG_ENDIAN); proto_tree_add_item(gps_tree, hf_ansi_801_gps_autonomous_acquisition_capable, tvb, offset, 3, ENC_BIG_ENDIAN); @@ -984,7 +984,7 @@ rev_pr_ms_information(tvbuff_t *tvb, proto_tree *tree, guint len, guint32 offset proto_tree_add_item(gps_tree, hf_ansi_801_gps_acquisition_assistance, tvb, offset, 3, ENC_BIG_ENDIAN); ti = proto_tree_add_item(tree, hf_ansi_801_loc_calc_cap, tvb, offset, 3, ENC_BIG_ENDIAN); - loc_tree = proto_item_add_subtree(ti, ett_loc); + loc_tree = proto_item_add_subtree(ti, ett_loc); proto_tree_add_item(loc_tree, hf_ansi_801_pre_programmed_location, tvb, offset, 3, ENC_BIG_ENDIAN); proto_tree_add_item(loc_tree, hf_ansi_801_reserved_24_700, tvb, offset, 3, ENC_BIG_ENDIAN); @@ -1134,7 +1134,7 @@ for_request(tvbuff_t *tvb, proto_tree *tree, guint32 *offset_p, guint8 pd_msg_ty } item = proto_tree_add_uint_format_value(tree, hf_ansi_801_for_req_type, tvb, offset, 1, - oct & 0x0f, "%s (%u)", str, oct & 0x0f); + oct & 0x0f, "%s (%u)", str, oct & 0x0f); } else { @@ -1193,7 +1193,7 @@ for_response(tvbuff_t *tvb, proto_tree *tree, guint32 *offset_p) } item = proto_tree_add_uint_format_value(tree, hf_ansi_801_for_rsp_type, tvb, offset, 1, - oct & 0x0f, "%s (%u)", str, oct & 0x0f); + oct & 0x0f, "%s (%u)", str, oct & 0x0f); subtree = proto_item_add_subtree(item, ett_for_rsp_type[idx]); offset++; @@ -1240,7 +1240,7 @@ rev_request(tvbuff_t *tvb, proto_tree *tree, guint32 *offset_p, guint8 pd_msg_ty } item = proto_tree_add_uint_format_value(tree, hf_ansi_801_rev_req_type, tvb, offset, 1, - oct & 0x0f, "%s (%u)", str, oct & 0x0f); + oct & 0x0f, "%s (%u)", str, oct & 0x0f); } else { @@ -1298,7 +1298,7 @@ rev_response(tvbuff_t *tvb, proto_tree *tree, guint32 *offset_p) } item = proto_tree_add_uint_format_value(tree, hf_ansi_801_rev_rsp_type, tvb, offset, 1, - oct & 0x0f, "%s (%u)", str, oct & 0x0f); + oct & 0x0f, "%s (%u)", str, oct & 0x0f); subtree = proto_item_add_subtree(item, ett_rev_rsp_type[idx]); offset++; @@ -1615,281 +1615,636 @@ proto_register_ansi_801(void) gint last_offset; /* Setup list of header fields */ - static hf_register_info hf[] = - { - { &hf_ansi_801_for_req_type, - { "Forward Request Type", "ansi_801.for_req_type", - FT_UINT8, BASE_DEC, NULL, 0, - NULL, HFILL } - }, - { &hf_ansi_801_for_rsp_type, - { "Forward Response Type", "ansi_801.for_rsp_type", - FT_UINT8, BASE_DEC, NULL, 0, - NULL, HFILL } - }, - { &hf_ansi_801_rev_req_type, - { "Reverse Request Type", "ansi_801.rev_req_type", - FT_UINT8, BASE_DEC, NULL, 0, - NULL, HFILL } - }, - { &hf_ansi_801_rev_rsp_type, - { "Reverse Response Type", "ansi_801.rev_rsp_type", - FT_UINT8, BASE_DEC, NULL, 0, - NULL, HFILL } - }, - { &hf_ansi_801_for_sess_tag, - { "Forward Session Tag", "ansi_801.for_sess_tag", - FT_UINT8, BASE_DEC, NULL, 0x1f, - NULL, HFILL } - }, - { &hf_ansi_801_rev_sess_tag, - { "Reverse Session Tag", "ansi_801.rev_sess_tag", - FT_UINT8, BASE_DEC, NULL, 0x1f, - NULL, HFILL } - }, - { &hf_ansi_801_sess_tag, - { "Session Tag", "ansi_801.sess_tag", - FT_UINT8, BASE_DEC, NULL, 0x1f, - NULL, HFILL } - }, - { &hf_ansi_801_time_ref_cdma, - { "CDMA system time at the time the solution is valid (TIME_REF_CDMA)", "ansi_801.time_ref_cdma", - FT_UINT32, BASE_DEC, NULL, 0x00, - NULL, HFILL } - }, - { &hf_ansi_801_lat, - { "Latitude (LAT)", "ansi_801.lat", - FT_FLOAT, BASE_NONE, NULL, 0x00, - NULL, HFILL } - }, - { &hf_ansi_801_long, - { "Longitude (LONG)", "ansi_801.long", - FT_FLOAT, BASE_NONE, NULL, 0x00, - NULL, HFILL } - }, - { &hf_ansi_801_loc_uncrtnty_ang, - { "Angle of axis with respect to True North for pos uncertainty (LOC_UNCRTNTY_ANG)", "ansi_801.loc_uncrtnty_ang", - FT_FLOAT, BASE_NONE, NULL, 0x00, - NULL, HFILL } - }, - { &hf_ansi_801_loc_uncrtnty_a, - { "Std dev of axis along angle specified for pos uncertainty (LOC_UNCRTNTY_A)", "ansi_801.loc_uncrtnty_a", - FT_UINT8, BASE_DEC, NULL, 0x00, - NULL, HFILL } - }, - { &hf_ansi_801_loc_uncrtnty_p, - { "Std dev of axis perpendicular to angle specified for pos uncertainty (LOC_UNCRTNTY_P)", "ansi_801.loc_uncrtnty_p", - FT_UINT8, BASE_DEC, NULL, 0x00, - NULL, HFILL } - }, - { &hf_ansi_801_fix_type, - { "Fix type (FIX_TYPE)", "ansi_801.fix_type", - FT_BOOLEAN, BASE_NONE, TFS(&ansi_801_fix_type_vals), 0x00, - NULL, HFILL } - }, - { &hf_ansi_801_velocity_incl, - { "Velocity information included (VELOCITY_INCL)", "ansi_801.velocity_incl", - FT_BOOLEAN, BASE_NONE, NULL, 0x00, - NULL, HFILL } - }, - { &hf_ansi_801_velocity_hor, - { "Horizontal velocity magnitude (VELOCITY_HOR)", "ansi_801.velocity_hor", - FT_FLOAT, BASE_NONE, NULL, 0x00, - NULL, HFILL } - }, - { &hf_ansi_801_heading, - { "Heading (HEADING)", "ansi_801.heading", - FT_FLOAT, BASE_NONE, NULL, 0x00, - NULL, HFILL } - }, - { &hf_ansi_801_velocity_ver, - { "Vertical velocity (VELOCITY_VER)", "ansi_801.velocity_ver", - FT_FLOAT, BASE_NONE, NULL, 0x00, - NULL, HFILL } - }, - { &hf_ansi_801_clock_incl, - { "Clock information included (CLOCK_INCL)", "ansi_801.clock_incl", - FT_BOOLEAN, BASE_NONE, NULL, 0x00, - NULL, HFILL } - }, - { &hf_ansi_801_clock_bias, - { "Clock bias (CLOCK_BIAS)", "ansi_801.clock_bias", - FT_INT24, BASE_DEC, NULL, 0x00, - NULL, HFILL } - }, - { &hf_ansi_801_clock_drift, - { "Clock drift (CLOCK_DRIFT)", "ansi_801.clock_drift", - FT_INT16, BASE_DEC, NULL, 0x00, - NULL, HFILL } - }, - { &hf_ansi_801_height_incl, - { "Height information included (HEIGHT_INCL)", "ansi_801.height_incl", - FT_BOOLEAN, BASE_NONE, NULL, 0x00, - NULL, HFILL } - }, - { &hf_ansi_801_height, - { "Height (HEIGHT)", "ansi_801.height", - FT_INT16, BASE_DEC, NULL, 0x00, - NULL, HFILL } - }, - { &hf_ansi_801_loc_uncrtnty_v, - { "Std dev of vertical error for pos uncertainty (LOC_UNCRTNTY_V)", "ansi_801.loc_uncrtnty_v", - FT_UINT8, BASE_DEC, NULL, 0x00, - NULL, HFILL } - }, - { &hf_ansi_801_reserved_bits, - { "Reserved bit(s)","ansi_801.reerved_bits", - FT_UINT8,BASE_DEC, NULL, 0x0, - NULL, HFILL } - }, - { &hf_ansi_801_bad_sv_present, - { "Bad GPS satellites present (BAD_SV_PRESENT)", "ansi_801.bad_sv_present", - FT_BOOLEAN, BASE_NONE, NULL, 0x00, - NULL, HFILL } - }, - { &hf_ansi_801_num_bad_sv, - { "Number of bad GPS satellites (NUM_BAD_SV)", "ansi_801.num_bad_sv", - FT_UINT8, BASE_DEC, NULL, 0x00, - NULL, HFILL } - }, - { &hf_ansi_801_bad_sv_prn_num, - { "Satellite PRN number (SV_PRN_NUM)", "ansi_801.bad_sv_prn_num", - FT_UINT8, BASE_DEC, NULL, 0x00, - NULL, HFILL } - }, - { &hf_ansi_801_dopp_req, - { "Doppler (0th order) term requested (DOPP_REQ)", "ansi_801.dopp_req", - FT_BOOLEAN, BASE_NONE, NULL, 0x00, - NULL, HFILL } - }, - { &hf_ansi_801_add_dopp_req, - { "Additional Doppler terms requested (ADD_DOPP_REQ)", "ansi_801.add_dopp_req", - FT_BOOLEAN, BASE_NONE, NULL, 0x00, - NULL, HFILL } - }, - { &hf_ansi_801_code_ph_par_req, - { "Code phase parameters requested (CODE_PH_PAR_REQ)", "ansi_801.code_ph_par_req", - FT_BOOLEAN, BASE_NONE, NULL, 0x00, - NULL, HFILL } - }, - { &hf_ansi_801_az_el_req, - { "Azimuth and elevation angle requested (AZ_EL_REQ)", "ansi_801.az_el_req", - FT_BOOLEAN, BASE_NONE, NULL, 0x00, - NULL, HFILL } - }, - { &hf_ansi_801_pref_resp_qual, - { "Preferred response quality (PREF_RESP_QUAL)", "ansi_801.pref_resp_qual", - FT_UINT24, BASE_DEC, NULL, 0xe00000, - NULL, HFILL } - }, - { &hf_ansi_801_num_fixes, - { "Number of fixes (NUM_FIXES)", "ansi_801.num_fixes", - FT_UINT24, BASE_DEC, NULL, 0x1fe000, - NULL, HFILL } - }, - { &hf_ansi_801_t_betw_fixes, - { "Time between fixes (T_BETW_FIXES) (in seconds)", "ansi_801.t_betw_fixes", - FT_UINT24, BASE_DEC, NULL, 0x001fe0, - NULL, HFILL } - }, - { &hf_ansi_801_offset_req, - { "Offset requested (OFFSET_REQ)", "ansi_801.offset_req", - FT_BOOLEAN, 24, TFS(&tfs_requested_not_requested), 0x000010, - NULL, HFILL } - }, - - /* Generated from convert_proto_tree_add_text.pl */ - { &hf_ansi_801_desired_pilot_phase_resolution, { "Desired pilot phase resolution", "ansi_801.desired_pilot_phase_resolution", FT_BOOLEAN, 24, TFS(&tfs_desired_pilot_phase_resolution), 0x08, NULL, HFILL }}, - { &hf_ansi_801_reserved_24_7, { "Reserved", "ansi_801.reserved", FT_UINT24, BASE_HEX, NULL, 0x07, NULL, HFILL }}, - { &hf_ansi_801_for_req_loc_height_information, { "Height information", "ansi_801.height_incl", FT_BOOLEAN, 24, TFS(&tfs_requested_not_requested), 0x10, NULL, HFILL }}, - { &hf_ansi_801_for_req_loc_clock_correction_for_gps_time, { "Clock correction for GPS time", "ansi_801.clock_correction_for_gps_time", FT_BOOLEAN, 24, TFS(&tfs_requested_not_requested), 0x08, NULL, HFILL }}, - { &hf_ansi_801_for_req_loc_velocity_information, { "Velocity information", "ansi_801.velocity_information", FT_BOOLEAN, 24, TFS(&tfs_requested_not_requested), 0x04, NULL, HFILL }}, - { &hf_ansi_801_reserved24_3, { "Reserved", "ansi_801.reserved", FT_UINT24, BASE_HEX, NULL, 0x03, NULL, HFILL }}, - { &hf_ansi_801_use_action_time_indicator, { "Use action time indicator", "ansi_801.use_action_time_indicator", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, - { &hf_ansi_801_action_time, { "Action time", "ansi_801.action_time", FT_UINT8, BASE_DEC, NULL, 0x7E, NULL, HFILL }}, - { &hf_ansi_801_reserved8_7F, { "Reserved", "ansi_801.reserved", FT_UINT8, BASE_HEX, NULL, 0x7F, NULL, HFILL }}, - { &hf_ansi_801_cancellation_type, { "Cancellation Type", "ansi_801.cancellation_type", FT_UINT8, BASE_DEC, VALS(for_req_type_strings), 0xF0, NULL, HFILL }}, - { &hf_ansi_801_reserved8_0F, { "Reserved", "ansi_801.reserved", FT_UINT8, BASE_HEX, NULL, 0x0F, NULL, HFILL }}, - { &hf_ansi_801_reject_request_type, { "Reject request type", "ansi_801.reject_request_type", FT_UINT8, BASE_DEC, VALS(rev_req_type_strings), 0xF0, NULL, HFILL }}, - { &hf_ansi_801_reject_reason, { "Reject reason", "ansi_801.reject_reason", FT_UINT8, BASE_DEC, NULL, 0x0E, NULL, HFILL }}, - { &hf_ansi_801_reserved8_01, { "Reserved", "ansi_801.reserved", FT_UINT8, BASE_HEX, NULL, 0x01, NULL, HFILL }}, - { &hf_ansi_801_bs_ls_rev, { "BS_LS_REV", "ansi_801.bs_ls_rev", FT_UINT8, BASE_HEX, NULL, 0xfc, NULL, HFILL }}, - { &hf_ansi_801_gps_capability_indicator, { "GPSC_ID: GPS capability indicator", "ansi_801.gps_capability_indicator", FT_UINT8, BASE_DEC, NULL, 0x02, NULL, HFILL }}, - { &hf_ansi_801_afltc_id, { "AFLTC_ID: Advanced forward link trilateration capability indicator", "ansi_801.afltc_id", FT_UINT8, BASE_DEC, NULL, 0x01, NULL, HFILL }}, - { &hf_ansi_801_apdc_id, { "APDC_ID: Autonomous position determination capability indicator: Autonomous Location Technology Identifier", "ansi_801.apdc_id", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL }}, - { &hf_ansi_801_ref_bit_num, { "REF_BIT_NUM", "ansi_801.ref_bit_num", FT_UINT16, BASE_DEC, NULL, 0xffe0, NULL, HFILL }}, - { &hf_ansi_801_num_dr_p, { "NUM_DR_P: Number of data records in this part", "ansi_801.num_dr_p", FT_UINT16, BASE_DEC, NULL, 0x001e, NULL, HFILL }}, - { &hf_ansi_801_dr_size, { "DR_SIZE: Data record size", "ansi_801.dr_size", FT_UINT24, BASE_DEC, NULL, 0x0001FE, NULL, HFILL }}, - { &hf_ansi_801_part_num, { "PART_NUM: The part number", "ansi_801.part_num", FT_UINT16, BASE_DEC, NULL, 0x01c0, NULL, HFILL }}, - { &hf_ansi_801_total_parts, { "TOTAL_PARTS: Total number of parts", "ansi_801.total_parts", FT_UINT16, BASE_DEC, NULL, 0x38, NULL, HFILL }}, - { &hf_ansi_801_data_records, { "Data records", "ansi_801.data_records", FT_UINT16, BASE_DEC, NULL, 0x07, NULL, HFILL }}, - { &hf_ansi_801_num_sv_p32, { "NUM_SV_P: Number of satellites in this part", "ansi_801.num_sv_p", FT_UINT32, BASE_DEC, NULL, 0xfc000000, NULL, HFILL }}, - { &hf_ansi_801_week_num, { "WEEK_NUM: The GPS week number of the almanac", "ansi_801.week_num", FT_UINT32, BASE_DEC, NULL, 0x03fc0000, NULL, HFILL }}, - { &hf_ansi_801_toa, { "TOA: The reference time of the almanac", "ansi_801.toa", FT_UINT32, BASE_DEC, NULL, 0x0003fc00, NULL, HFILL }}, - { &hf_ansi_801_part_num32, { "PART_NUM: The part number", "ansi_801.part_num", FT_UINT32, BASE_DEC, NULL, 0x000003e0, NULL, HFILL }}, - { &hf_ansi_801_total_parts32, { "TOTAL_PARTS: The total number of parts", "ansi_801.total_parts", FT_UINT32, BASE_DEC, NULL, 0x0000001f, NULL, HFILL }}, - { &hf_ansi_801_num_sv_p16, { "NUM_SV_P: Number of satellites in this part", "ansi_801.num_sv_p", FT_UINT16, BASE_DEC, NULL, 0xfc00, NULL, HFILL }}, - { &hf_ansi_801_part_num16, { "PART_NUM: The part number", "ansi_801.part_num", FT_UINT16, BASE_DEC, NULL, 0x03e0, NULL, HFILL }}, - { &hf_ansi_801_total_parts16, { "TOTAL_PARTS: The total number of parts", "ansi_801.total_parts", FT_UINT16, BASE_DEC, NULL, 0x001f, NULL, HFILL }}, - { &hf_ansi_801_coordinate_type_requested, { "Coordinate type requested", "ansi_801.coordinate_type_requested", FT_BOOLEAN, 8, TFS(&tfs_spherical_cartesian), 0x80, NULL, HFILL }}, - { &hf_ansi_801_extended_base_station_almanac, { "Extended base station almanac", "ansi_801.extended_base_station_almanac", FT_BOOLEAN, 8, TFS(&tfs_requested_not_requested), 0x80, NULL, HFILL }}, - { &hf_ansi_801_alpha_and_beta_parameters, { "Alpha and Beta parameters", "ansi_801.alpha_and_beta_parameters", FT_BOOLEAN, 8, TFS(&tfs_requested_not_requested), 0x80, NULL, HFILL }}, - { &hf_ansi_801_subframes_4_and_5, { "Subframes 4 and 5", "ansi_801.subframes_4_and_5", FT_BOOLEAN, 8, TFS(&tfs_requested_not_requested), 0x80, NULL, HFILL }}, - { &hf_ansi_801_rev_req_loc_height_information, { "Height information", "ansi_801.height_information", FT_BOOLEAN, 8, TFS(&tfs_requested_not_requested), 0x80, NULL, HFILL }}, - { &hf_ansi_801_rev_req_loc_clock_correction_for_gps_time, { "Clock correction for GPS time", "ansi_801.clock_correction_for_gps_time", FT_BOOLEAN, 8, TFS(&tfs_requested_not_requested), 0x40, NULL, HFILL }}, - { &hf_ansi_801_rev_req_loc_velocity_information, { "Velocity information", "ansi_801.velocity_information", FT_BOOLEAN, 8, TFS(&tfs_requested_not_requested), 0x20, NULL, HFILL }}, - { &hf_ansi_801_reserved8_1F, { "Reserved", "ansi_801.reserved", FT_UINT8, BASE_HEX, NULL, 0x1F, NULL, HFILL }}, - { &hf_ansi_801_ms_ls_rev, { "MS_LS_REV", "ansi_801.ms_ls_rev", FT_UINT16, BASE_DEC, NULL, 0xfc00, NULL, HFILL }}, - { &hf_ansi_801_ms_mode, { "MS_MODE", "ansi_801.ms_mode", FT_UINT16, BASE_DEC, NULL, 0x03c0, NULL, HFILL }}, - { &hf_ansi_801_pilot_ph_cap, { "PILOT_PH_CAP", "ansi_801.pilot_ph_cap", FT_UINT16, BASE_DEC, NULL, 0x003f, NULL, HFILL }}, - { &hf_ansi_801_gps_acq_cap, { "GPS_ACQ_CAP", "ansi_801.gps_acq_cap", FT_UINT24, BASE_HEX, NULL, 0x000FFF, NULL, HFILL }}, - { &hf_ansi_801_reserved_24_F80000, { "Reserved", "ansi_801.reserved", FT_UINT24, BASE_HEX, NULL, 0xf80000, NULL, HFILL }}, - { &hf_ansi_801_gps_autonomous_acquisition_capable, { "GPS Autonomous Acquisition Capable", "ansi_801.gps_autonomous_acquisition_capable", FT_BOOLEAN, 24, NULL, 0x040000, NULL, HFILL }}, - { &hf_ansi_801_gps_almanac_correction, { "GPS Almanac Correction", "ansi_801.gps_almanac_correction", FT_BOOLEAN, 24, NULL, 0x020000, NULL, HFILL }}, - { &hf_ansi_801_gps_navigation_message_bits, { "GPS Navigation Message Bits", "ansi_801.gps_navigation_message_bits", FT_BOOLEAN, 24, NULL, 0x010000, NULL, HFILL }}, - { &hf_ansi_801_gps_ephemeris, { "GPS Ephemeris", "ansi_801.gps_ephemeris", FT_BOOLEAN, 24, NULL, 0x008000, NULL, HFILL }}, - { &hf_ansi_801_gps_almanac, { "GPS Almanac", "ansi_801.gps_almanac", FT_BOOLEAN, 24, NULL, 0x004000, NULL, HFILL }}, - { &hf_ansi_801_gps_sensitivity_assistance, { "GPS Sensitivity Assistance", "ansi_801.gps_sensitivity_assistance", FT_BOOLEAN, 24, NULL, 0x002000, NULL, HFILL }}, - { &hf_ansi_801_gps_acquisition_assistance, { "GPS Acquisition Assistance", "ansi_801.gps_acquisition_assistance", FT_BOOLEAN, 24, NULL, 0x001000, NULL, HFILL }}, - { &hf_ansi_801_loc_calc_cap, { "LOC_CALC_CAP", "ansi_801.loc_calc_cap", FT_UINT24, BASE_HEX, NULL, 0x000FFF, NULL, HFILL }}, - { &hf_ansi_801_pre_programmed_location, { "Pre-programmed Location", "ansi_801.pre_programmed_location", FT_BOOLEAN, 24, NULL, 0x000800, NULL, HFILL }}, - { &hf_ansi_801_reserved_24_700, { "Reserved", "ansi_801.reserved", FT_UINT24, BASE_HEX, NULL, 0x000700, NULL, HFILL }}, - { &hf_ansi_801_hybrid_gps_and_aflt_lcc, { "Hybrid GPS and AFLT Location Calculation Capable", "ansi_801.hybrid_gps_and_aflt_lcc", FT_BOOLEAN, 24, NULL, 0x000080, NULL, HFILL }}, - { &hf_ansi_801_autonomous_location_calculation_capable, { "Autonomous Location Calculation Capable", "ansi_801.autonomous_lcc", FT_BOOLEAN, 24, NULL, 0x000040, NULL, HFILL }}, - { &hf_ansi_801_lcc_using_gps_almanac_correction, { "Location Calculation Capable using GPS Almanac Correction", "ansi_801.lcc_using_gps_almanac_correction", FT_BOOLEAN, 24, NULL, 0x000020, NULL, HFILL }}, - { &hf_ansi_801_lcc_using_gps_ephemeris_assistance, { "Location Calculation Capable using GPS Ephemeris Assistance", "ansi_801.lcc_using_gps_ephemeris_assistance", FT_BOOLEAN, 24, NULL, 0x000010, NULL, HFILL }}, - { &hf_ansi_801_lcc_using_gps_almanac_assistance, { "Location Calculation Capable using GPS Almanac Assistance", "ansi_801.lcc_using_gps_almanac_assistance", FT_BOOLEAN, 24, NULL, 0x000008, NULL, HFILL }}, - { &hf_ansi_801_aflt_lcc, { "Advanced Forward Link Trilateration (AFLT) Location Calculation Capable", "ansi_801.aflt_lcc", FT_BOOLEAN, 24, NULL, 0x000004, NULL, HFILL }}, - { &hf_ansi_801_lcc_using_location_assistance_cartesian, { "Location Calculation Capable using Location Assistance - Cartesian", "ansi_801.lcc_using_location_assistance.cartesian", FT_BOOLEAN, 24, NULL, 0x000002, NULL, HFILL }}, - { &hf_ansi_801_lcc_capable_using_location_assistance_spherical, { "Location Calculation Capable using Location Assistance - Spherical", "ansi_801.lcc_using_location_assistance.spherical", FT_BOOLEAN, 24, NULL, 0x000001, NULL, HFILL }}, - { &hf_ansi_801_ref_pn, { "REF_PN", "ansi_801.ref_pn", FT_UINT24, BASE_DEC, NULL, 0xff8000, NULL, HFILL }}, - { &hf_ansi_801_mob_sys_t_offset, { "MOB_SYS_T_OFFSET", "ansi_801.mob_sys_t_offset", FT_UINT24, BASE_DEC, NULL, 0x007ffe, NULL, HFILL }}, - { &hf_ansi_801_reserved24_1, { "Reserved", "ansi_801.reserved", FT_UINT24, BASE_HEX, NULL, 0x000001, NULL, HFILL }}, - { &hf_ansi_801_no_outstanding_request_element, { "No outstanding request element", "ansi_801.no_outstanding_request_element", FT_BOOLEAN, 8, NULL, 0x08, NULL, HFILL }}, - { &hf_ansi_801_reserved8_07, { "Reserved", "ansi_801.reserved", FT_UINT8, BASE_HEX, NULL, 0x07, NULL, HFILL }}, - { &hf_ansi_801_reserved8_F0, { "Reserved", "ansi_801.reserved", FT_UINT8, BASE_HEX, NULL, 0xF0, NULL, HFILL }}, - { &hf_ansi_801_for_request_length, { "Length", "ansi_801.for_request_length", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL }}, - { &hf_ansi_801_reserved8_E0, { "Reserved", "ansi_801.reserved", FT_UINT8, BASE_HEX, NULL, 0xE0, NULL, HFILL }}, - { &hf_ansi_801_unsolicited_response_indicator, { "Unsolicited response indicator", "ansi_801.unsolicited_response_indicator", FT_BOOLEAN, 8, NULL, 0x10, NULL, HFILL }}, - { &hf_ansi_801_for_response_length, { "Length", "ansi_801.for_response_length", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL }}, - { &hf_ansi_801_rev_request_length, { "Length", "ansi_801.rev_request_length", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL }}, - { &hf_ansi_801_rev_response_length, { "Length", "ansi_801.rev_response_length", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL }}, - { &hf_ansi_801_session_start, { "Session Start", "ansi_801.session_start", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL }}, - { &hf_ansi_801_session_end, { "Session End", "ansi_801.session_end", FT_BOOLEAN, 8, NULL, 0x40, NULL, HFILL }}, - { &hf_ansi_801_session_source, { "Session Source", "ansi_801.session_source", FT_BOOLEAN, 8, NULL, 0x20, NULL, HFILL }}, - { &hf_ansi_801_pd_message_type, { "PD Message Type", "ansi_801.pd_message_type", FT_UINT8, BASE_DEC, NULL, 0xFF, NULL, HFILL }}, - { &hf_ansi_801_pd_message_len, { "PD Message Length", "ansi_801.pd_message_len", FT_UINT16, BASE_DEC, NULL, 0xffc0, NULL, HFILL }}, - { &hf_ansi_801_regulatory_services_indicator, { "Regulatory Services Indicator", "ansi_801.regulatory_services_indicator", FT_UINT16, BASE_DEC, VALS(regulatory_services_indicator_vals), 0x0030, NULL, HFILL }}, - { &hf_ansi_801_for_message_number_requests16, { "Number Requests", "ansi_801.for_message_number_requests", FT_UINT16, BASE_DEC, NULL, 0x0F, NULL, HFILL }}, - { &hf_ansi_801_for_message_number_responsesF0, { "Number Responses", "ansi_801.for_message_number_responses", FT_UINT8, BASE_DEC, NULL, 0xF0, NULL, HFILL }}, - { &hf_ansi_801_for_message_number_requests8, { "Number Requests", "ansi_801.for_message_number_requests", FT_UINT8, BASE_DEC, NULL, 0xF0, NULL, HFILL }}, - { &hf_ansi_801_for_message_number_responses0F, { "Number Responses", "ansi_801.for_message_number_responses", FT_UINT8, BASE_DEC, NULL, 0x0F, NULL, HFILL }}, - { &hf_ansi_801_rev_message_number_requests16, { "Number Requests", "ansi_801.rev_message_number_requests", FT_UINT16, BASE_DEC, NULL, 0x0F, NULL, HFILL }}, - { &hf_ansi_801_rev_message_number_responsesF0, { "Number Responses", "ansi_801.rev_message_number_responses", FT_UINT8, BASE_DEC, NULL, 0xF0, NULL, HFILL }}, - { &hf_ansi_801_rev_message_number_requests8, { "Number Requests", "ansi_801.rev_message_number_requests", FT_UINT8, BASE_DEC, NULL, 0xF0, NULL, HFILL }}, - { &hf_ansi_801_rev_message_number_responses0F, { "Number Responses", "ansi_801.rev_message_number_responses", FT_UINT8, BASE_DEC, NULL, 0x0F, NULL, HFILL }}, - - }; + static hf_register_info hf[] = { + { &hf_ansi_801_for_req_type, + { "Forward Request Type", "ansi_801.for_req_type", + FT_UINT8, BASE_DEC, NULL, 0, + NULL, HFILL } + }, + { &hf_ansi_801_for_rsp_type, + { "Forward Response Type", "ansi_801.for_rsp_type", + FT_UINT8, BASE_DEC, NULL, 0, + NULL, HFILL } + }, + { &hf_ansi_801_rev_req_type, + { "Reverse Request Type", "ansi_801.rev_req_type", + FT_UINT8, BASE_DEC, NULL, 0, + NULL, HFILL } + }, + { &hf_ansi_801_rev_rsp_type, + { "Reverse Response Type", "ansi_801.rev_rsp_type", + FT_UINT8, BASE_DEC, NULL, 0, + NULL, HFILL } + }, + { &hf_ansi_801_for_sess_tag, + { "Forward Session Tag", "ansi_801.for_sess_tag", + FT_UINT8, BASE_DEC, NULL, 0x1f, + NULL, HFILL } + }, + { &hf_ansi_801_rev_sess_tag, + { "Reverse Session Tag", "ansi_801.rev_sess_tag", + FT_UINT8, BASE_DEC, NULL, 0x1f, + NULL, HFILL } + }, + { &hf_ansi_801_sess_tag, + { "Session Tag", "ansi_801.sess_tag", + FT_UINT8, BASE_DEC, NULL, 0x1f, + NULL, HFILL } + }, + { &hf_ansi_801_time_ref_cdma, + { "CDMA system time at the time the solution is valid (TIME_REF_CDMA)", "ansi_801.time_ref_cdma", + FT_UINT32, BASE_DEC, NULL, 0x00, + NULL, HFILL } + }, + { &hf_ansi_801_lat, + { "Latitude (LAT)", "ansi_801.lat", + FT_FLOAT, BASE_NONE, NULL, 0x00, + NULL, HFILL } + }, + { &hf_ansi_801_long, + { "Longitude (LONG)", "ansi_801.long", + FT_FLOAT, BASE_NONE, NULL, 0x00, + NULL, HFILL } + }, + { &hf_ansi_801_loc_uncrtnty_ang, + { "Angle of axis with respect to True North for pos uncertainty (LOC_UNCRTNTY_ANG)", "ansi_801.loc_uncrtnty_ang", + FT_FLOAT, BASE_NONE, NULL, 0x00, + NULL, HFILL } + }, + { &hf_ansi_801_loc_uncrtnty_a, + { "Std dev of axis along angle specified for pos uncertainty (LOC_UNCRTNTY_A)", "ansi_801.loc_uncrtnty_a", + FT_UINT8, BASE_DEC, NULL, 0x00, + NULL, HFILL } + }, + { &hf_ansi_801_loc_uncrtnty_p, + { "Std dev of axis perpendicular to angle specified for pos uncertainty (LOC_UNCRTNTY_P)", "ansi_801.loc_uncrtnty_p", + FT_UINT8, BASE_DEC, NULL, 0x00, + NULL, HFILL } + }, + { &hf_ansi_801_fix_type, + { "Fix type (FIX_TYPE)", "ansi_801.fix_type", + FT_BOOLEAN, BASE_NONE, TFS(&ansi_801_fix_type_vals), 0x00, + NULL, HFILL } + }, + { &hf_ansi_801_velocity_incl, + { "Velocity information included (VELOCITY_INCL)", "ansi_801.velocity_incl", + FT_BOOLEAN, BASE_NONE, NULL, 0x00, + NULL, HFILL } + }, + { &hf_ansi_801_velocity_hor, + { "Horizontal velocity magnitude (VELOCITY_HOR)", "ansi_801.velocity_hor", + FT_FLOAT, BASE_NONE, NULL, 0x00, + NULL, HFILL } + }, + { &hf_ansi_801_heading, + { "Heading (HEADING)", "ansi_801.heading", + FT_FLOAT, BASE_NONE, NULL, 0x00, + NULL, HFILL } + }, + { &hf_ansi_801_velocity_ver, + { "Vertical velocity (VELOCITY_VER)", "ansi_801.velocity_ver", + FT_FLOAT, BASE_NONE, NULL, 0x00, + NULL, HFILL } + }, + { &hf_ansi_801_clock_incl, + { "Clock information included (CLOCK_INCL)", "ansi_801.clock_incl", + FT_BOOLEAN, BASE_NONE, NULL, 0x00, + NULL, HFILL } + }, + { &hf_ansi_801_clock_bias, + { "Clock bias (CLOCK_BIAS)", "ansi_801.clock_bias", + FT_INT24, BASE_DEC, NULL, 0x00, + NULL, HFILL } + }, + { &hf_ansi_801_clock_drift, + { "Clock drift (CLOCK_DRIFT)", "ansi_801.clock_drift", + FT_INT16, BASE_DEC, NULL, 0x00, + NULL, HFILL } + }, + { &hf_ansi_801_height_incl, + { "Height information included (HEIGHT_INCL)", "ansi_801.height_incl", + FT_BOOLEAN, BASE_NONE, NULL, 0x00, + NULL, HFILL } + }, + { &hf_ansi_801_height, + { "Height (HEIGHT)", "ansi_801.height", + FT_INT16, BASE_DEC, NULL, 0x00, + NULL, HFILL } + }, + { &hf_ansi_801_loc_uncrtnty_v, + { "Std dev of vertical error for pos uncertainty (LOC_UNCRTNTY_V)", "ansi_801.loc_uncrtnty_v", + FT_UINT8, BASE_DEC, NULL, 0x00, + NULL, HFILL } + }, + { &hf_ansi_801_reserved_bits, + { "Reserved bit(s)","ansi_801.reerved_bits", + FT_UINT8,BASE_DEC, NULL, 0x0, + NULL, HFILL } + }, + { &hf_ansi_801_bad_sv_present, + { "Bad GPS satellites present (BAD_SV_PRESENT)", "ansi_801.bad_sv_present", + FT_BOOLEAN, BASE_NONE, NULL, 0x00, + NULL, HFILL } + }, + { &hf_ansi_801_num_bad_sv, + { "Number of bad GPS satellites (NUM_BAD_SV)", "ansi_801.num_bad_sv", + FT_UINT8, BASE_DEC, NULL, 0x00, + NULL, HFILL } + }, + { &hf_ansi_801_bad_sv_prn_num, + { "Satellite PRN number (SV_PRN_NUM)", "ansi_801.bad_sv_prn_num", + FT_UINT8, BASE_DEC, NULL, 0x00, + NULL, HFILL } + }, + { &hf_ansi_801_dopp_req, + { "Doppler (0th order) term requested (DOPP_REQ)", "ansi_801.dopp_req", + FT_BOOLEAN, BASE_NONE, NULL, 0x00, + NULL, HFILL } + }, + { &hf_ansi_801_add_dopp_req, + { "Additional Doppler terms requested (ADD_DOPP_REQ)", "ansi_801.add_dopp_req", + FT_BOOLEAN, BASE_NONE, NULL, 0x00, + NULL, HFILL } + }, + { &hf_ansi_801_code_ph_par_req, + { "Code phase parameters requested (CODE_PH_PAR_REQ)", "ansi_801.code_ph_par_req", + FT_BOOLEAN, BASE_NONE, NULL, 0x00, + NULL, HFILL } + }, + { &hf_ansi_801_az_el_req, + { "Azimuth and elevation angle requested (AZ_EL_REQ)", "ansi_801.az_el_req", + FT_BOOLEAN, BASE_NONE, NULL, 0x00, + NULL, HFILL } + }, + { &hf_ansi_801_pref_resp_qual, + { "Preferred response quality (PREF_RESP_QUAL)", "ansi_801.pref_resp_qual", + FT_UINT24, BASE_DEC, NULL, 0xe00000, + NULL, HFILL } + }, + { &hf_ansi_801_num_fixes, + { "Number of fixes (NUM_FIXES)", "ansi_801.num_fixes", + FT_UINT24, BASE_DEC, NULL, 0x1fe000, + NULL, HFILL } + }, + { &hf_ansi_801_t_betw_fixes, + { "Time between fixes (T_BETW_FIXES) (in seconds)", "ansi_801.t_betw_fixes", + FT_UINT24, BASE_DEC, NULL, 0x001fe0, + NULL, HFILL } + }, + { &hf_ansi_801_offset_req, + { "Offset requested (OFFSET_REQ)", "ansi_801.offset_req", + FT_BOOLEAN, 24, TFS(&tfs_requested_not_requested), 0x000010, + NULL, HFILL } + }, + + /* Generated from convert_proto_tree_add_text.pl */ + { &hf_ansi_801_desired_pilot_phase_resolution, + { "Desired pilot phase resolution", "ansi_801.desired_pilot_phase_resolution", + FT_BOOLEAN, 24, TFS(&tfs_desired_pilot_phase_resolution), 0x08, + NULL, HFILL } + }, + { &hf_ansi_801_reserved_24_7, + { "Reserved", "ansi_801.reserved", + FT_UINT24, BASE_HEX, NULL, 0x07, + NULL, HFILL } + }, + { &hf_ansi_801_for_req_loc_height_information, + { "Height information", "ansi_801.height_incl", + FT_BOOLEAN, 24, TFS(&tfs_requested_not_requested), 0x10, + NULL, HFILL } + }, + { &hf_ansi_801_for_req_loc_clock_correction_for_gps_time, + { "Clock correction for GPS time", "ansi_801.clock_correction_for_gps_time", + FT_BOOLEAN, 24, TFS(&tfs_requested_not_requested), 0x08, + NULL, HFILL } + }, + { &hf_ansi_801_for_req_loc_velocity_information, + { "Velocity information", "ansi_801.velocity_information", + FT_BOOLEAN, 24, TFS(&tfs_requested_not_requested), 0x04, + NULL, HFILL } + }, + { &hf_ansi_801_reserved24_3, + { "Reserved", "ansi_801.reserved", + FT_UINT24, BASE_HEX, NULL, 0x03, + NULL, HFILL } + }, + { &hf_ansi_801_use_action_time_indicator, + { "Use action time indicator", "ansi_801.use_action_time_indicator", + FT_BOOLEAN, 8, NULL, 0x80, + NULL, HFILL } + }, + { &hf_ansi_801_action_time, + { "Action time", "ansi_801.action_time", + FT_UINT8, BASE_DEC, NULL, 0x7E, + NULL, HFILL } + }, + { &hf_ansi_801_reserved8_7F, + { "Reserved", "ansi_801.reserved", + FT_UINT8, BASE_HEX, NULL, 0x7F, + NULL, HFILL } + }, + { &hf_ansi_801_cancellation_type, + { "Cancellation Type", "ansi_801.cancellation_type", + FT_UINT8, BASE_DEC, VALS(for_req_type_strings), 0xF0, + NULL, HFILL } + }, + { &hf_ansi_801_reserved8_0F, + { "Reserved", "ansi_801.reserved", + FT_UINT8, BASE_HEX, NULL, 0x0F, + NULL, HFILL } + }, + { &hf_ansi_801_reject_request_type, + { "Reject request type", "ansi_801.reject_request_type", + FT_UINT8, BASE_DEC, VALS(rev_req_type_strings), 0xF0, + NULL, HFILL } + }, + { &hf_ansi_801_reject_reason, + { "Reject reason", "ansi_801.reject_reason", + FT_UINT8, BASE_DEC, NULL, 0x0E, + NULL, HFILL } + }, + { &hf_ansi_801_reserved8_01, + { "Reserved", "ansi_801.reserved", + FT_UINT8, BASE_HEX, NULL, 0x01, + NULL, HFILL } + }, + { &hf_ansi_801_bs_ls_rev, + { "BS_LS_REV", "ansi_801.bs_ls_rev", + FT_UINT8, BASE_HEX, NULL, 0xfc, + NULL, HFILL } + }, + { &hf_ansi_801_gps_capability_indicator, + { "GPSC_ID: GPS capability indicator", "ansi_801.gps_capability_indicator", + FT_UINT8, BASE_DEC, NULL, 0x02, + NULL, HFILL } + }, + { &hf_ansi_801_afltc_id, + { "AFLTC_ID: Advanced forward link trilateration capability indicator", "ansi_801.afltc_id", + FT_UINT8, BASE_DEC, NULL, 0x01, + NULL, HFILL } + }, + { &hf_ansi_801_apdc_id, + { "APDC_ID: Autonomous position determination capability indicator: Autonomous Location Technology Identifier", "ansi_801.apdc_id", + FT_UINT8, BASE_DEC, NULL, 0x0, + NULL, HFILL } + }, + { &hf_ansi_801_ref_bit_num, + { "REF_BIT_NUM", "ansi_801.ref_bit_num", + FT_UINT16, BASE_DEC, NULL, 0xffe0, + NULL, HFILL } + }, + { &hf_ansi_801_num_dr_p, + { "NUM_DR_P: Number of data records in this part", "ansi_801.num_dr_p", + FT_UINT16, BASE_DEC, NULL, 0x001e, + NULL, HFILL } + }, + { &hf_ansi_801_dr_size, + { "DR_SIZE: Data record size", "ansi_801.dr_size", + FT_UINT24, BASE_DEC, NULL, 0x0001FE, + NULL, HFILL } + }, + { &hf_ansi_801_part_num, + { "PART_NUM: The part number", "ansi_801.part_num", + FT_UINT16, BASE_DEC, NULL, 0x01c0, + NULL, HFILL } + }, + { &hf_ansi_801_total_parts, + { "TOTAL_PARTS: Total number of parts", "ansi_801.total_parts", + FT_UINT16, BASE_DEC, NULL, 0x38, + NULL, HFILL } + }, + { &hf_ansi_801_data_records, + { "Data records", "ansi_801.data_records", + FT_UINT16, BASE_DEC, NULL, 0x07, + NULL, HFILL } + }, + { &hf_ansi_801_num_sv_p32, + { "NUM_SV_P: Number of satellites in this part", "ansi_801.num_sv_p", + FT_UINT32, BASE_DEC, NULL, 0xfc000000, + NULL, HFILL } + }, + { &hf_ansi_801_week_num, + { "WEEK_NUM: The GPS week number of the almanac", "ansi_801.week_num", + FT_UINT32, BASE_DEC, NULL, 0x03fc0000, + NULL, HFILL } + }, + { &hf_ansi_801_toa, + { "TOA: The reference time of the almanac", "ansi_801.toa", + FT_UINT32, BASE_DEC, NULL, 0x0003fc00, + NULL, HFILL } + }, + { &hf_ansi_801_part_num32, + { "PART_NUM: The part number", "ansi_801.part_num", + FT_UINT32, BASE_DEC, NULL, 0x000003e0, + NULL, HFILL } + }, + { &hf_ansi_801_total_parts32, + { "TOTAL_PARTS: The total number of parts", "ansi_801.total_parts", + FT_UINT32, BASE_DEC, NULL, 0x0000001f, + NULL, HFILL } + }, + { &hf_ansi_801_num_sv_p16, + { "NUM_SV_P: Number of satellites in this part", "ansi_801.num_sv_p", + FT_UINT16, BASE_DEC, NULL, 0xfc00, + NULL, HFILL } + }, + { &hf_ansi_801_part_num16, + { "PART_NUM: The part number", "ansi_801.part_num", + FT_UINT16, BASE_DEC, NULL, 0x03e0, + NULL, HFILL } + }, + { &hf_ansi_801_total_parts16, + { "TOTAL_PARTS: The total number of parts", "ansi_801.total_parts", + FT_UINT16, BASE_DEC, NULL, 0x001f, + NULL, HFILL } + }, + { &hf_ansi_801_coordinate_type_requested, + { "Coordinate type requested", "ansi_801.coordinate_type_requested", + FT_BOOLEAN, 8, TFS(&tfs_spherical_cartesian), 0x80, + NULL, HFILL } + }, + { &hf_ansi_801_extended_base_station_almanac, + { "Extended base station almanac", "ansi_801.extended_base_station_almanac", + FT_BOOLEAN, 8, TFS(&tfs_requested_not_requested), 0x80, + NULL, HFILL } + }, + { &hf_ansi_801_alpha_and_beta_parameters, + { "Alpha and Beta parameters", "ansi_801.alpha_and_beta_parameters", + FT_BOOLEAN, 8, TFS(&tfs_requested_not_requested), 0x80, + NULL, HFILL } + }, + { &hf_ansi_801_subframes_4_and_5, + { "Subframes 4 and 5", "ansi_801.subframes_4_and_5", + FT_BOOLEAN, 8, TFS(&tfs_requested_not_requested), 0x80, + NULL, HFILL } + }, + { &hf_ansi_801_rev_req_loc_height_information, + { "Height information", "ansi_801.height_information", + FT_BOOLEAN, 8, TFS(&tfs_requested_not_requested), 0x80, + NULL, HFILL } + }, + { &hf_ansi_801_rev_req_loc_clock_correction_for_gps_time, + { "Clock correction for GPS time", "ansi_801.clock_correction_for_gps_time", + FT_BOOLEAN, 8, TFS(&tfs_requested_not_requested), 0x40, + NULL, HFILL } + }, + { &hf_ansi_801_rev_req_loc_velocity_information, + { "Velocity information", "ansi_801.velocity_information", + FT_BOOLEAN, 8, TFS(&tfs_requested_not_requested), 0x20, + NULL, HFILL } + }, + { &hf_ansi_801_reserved8_1F, + { "Reserved", "ansi_801.reserved", + FT_UINT8, BASE_HEX, NULL, 0x1F, + NULL, HFILL } + }, + { &hf_ansi_801_ms_ls_rev, + { "MS_LS_REV", "ansi_801.ms_ls_rev", + FT_UINT16, BASE_DEC, NULL, 0xfc00, + NULL, HFILL } + }, + { &hf_ansi_801_ms_mode, + { "MS_MODE", "ansi_801.ms_mode", + FT_UINT16, BASE_DEC, NULL, 0x03c0, + NULL, HFILL } + }, + { &hf_ansi_801_pilot_ph_cap, + { "PILOT_PH_CAP", "ansi_801.pilot_ph_cap", + FT_UINT16, BASE_DEC, NULL, 0x003f, + NULL, HFILL } + }, + { &hf_ansi_801_gps_acq_cap, + { "GPS_ACQ_CAP", "ansi_801.gps_acq_cap", + FT_UINT24, BASE_HEX, NULL, 0x000FFF, + NULL, HFILL } + }, + { &hf_ansi_801_reserved_24_F80000, + { "Reserved", "ansi_801.reserved", + FT_UINT24, BASE_HEX, NULL, 0xf80000, + NULL, HFILL } + }, + { &hf_ansi_801_gps_autonomous_acquisition_capable, + { "GPS Autonomous Acquisition Capable", "ansi_801.gps_autonomous_acquisition_capable", + FT_BOOLEAN, 24, NULL, 0x040000, + NULL, HFILL } + }, + { &hf_ansi_801_gps_almanac_correction, + { "GPS Almanac Correction", "ansi_801.gps_almanac_correction", + FT_BOOLEAN, 24, NULL, 0x020000, + NULL, HFILL } + }, + { &hf_ansi_801_gps_navigation_message_bits, + { "GPS Navigation Message Bits", "ansi_801.gps_navigation_message_bits", + FT_BOOLEAN, 24, NULL, 0x010000, + NULL, HFILL } + }, + { &hf_ansi_801_gps_ephemeris, + { "GPS Ephemeris", "ansi_801.gps_ephemeris", + FT_BOOLEAN, 24, NULL, 0x008000, + NULL, HFILL } + }, + { &hf_ansi_801_gps_almanac, + { "GPS Almanac", "ansi_801.gps_almanac", + FT_BOOLEAN, 24, NULL, 0x004000, + NULL, HFILL } + }, + { &hf_ansi_801_gps_sensitivity_assistance, + { "GPS Sensitivity Assistance", "ansi_801.gps_sensitivity_assistance", + FT_BOOLEAN, 24, NULL, 0x002000, + NULL, HFILL } + }, + { &hf_ansi_801_gps_acquisition_assistance, + { "GPS Acquisition Assistance", "ansi_801.gps_acquisition_assistance", + FT_BOOLEAN, 24, NULL, 0x001000, + NULL, HFILL } + }, + { &hf_ansi_801_loc_calc_cap, + { "LOC_CALC_CAP", "ansi_801.loc_calc_cap", + FT_UINT24, BASE_HEX, NULL, 0x000FFF, + NULL, HFILL } + }, + { &hf_ansi_801_pre_programmed_location, + { "Pre-programmed Location", "ansi_801.pre_programmed_location", + FT_BOOLEAN, 24, NULL, 0x000800, + NULL, HFILL } + }, + { &hf_ansi_801_reserved_24_700, + { "Reserved", "ansi_801.reserved", + FT_UINT24, BASE_HEX, NULL, 0x000700, + NULL, HFILL } + }, + { &hf_ansi_801_hybrid_gps_and_aflt_lcc, + { "Hybrid GPS and AFLT Location Calculation Capable", "ansi_801.hybrid_gps_and_aflt_lcc", + FT_BOOLEAN, 24, NULL, 0x000080, + NULL, HFILL } + }, + { &hf_ansi_801_autonomous_location_calculation_capable, + { "Autonomous Location Calculation Capable", "ansi_801.autonomous_lcc", + FT_BOOLEAN, 24, NULL, 0x000040, + NULL, HFILL } + }, + { &hf_ansi_801_lcc_using_gps_almanac_correction, + { "Location Calculation Capable using GPS Almanac Correction", "ansi_801.lcc_using_gps_almanac_correction", + FT_BOOLEAN, 24, NULL, 0x000020, + NULL, HFILL } + }, + { &hf_ansi_801_lcc_using_gps_ephemeris_assistance, + { "Location Calculation Capable using GPS Ephemeris Assistance", "ansi_801.lcc_using_gps_ephemeris_assistance", + FT_BOOLEAN, 24, NULL, 0x000010, + NULL, HFILL } + }, + { &hf_ansi_801_lcc_using_gps_almanac_assistance, + { "Location Calculation Capable using GPS Almanac Assistance", "ansi_801.lcc_using_gps_almanac_assistance", + FT_BOOLEAN, 24, NULL, 0x000008, + NULL, HFILL } + }, + { &hf_ansi_801_aflt_lcc, + { "Advanced Forward Link Trilateration (AFLT) Location Calculation Capable", "ansi_801.aflt_lcc", + FT_BOOLEAN, 24, NULL, 0x000004, + NULL, HFILL } + }, + { &hf_ansi_801_lcc_using_location_assistance_cartesian, + { "Location Calculation Capable using Location Assistance - Cartesian", "ansi_801.lcc_using_location_assistance.cartesian", + FT_BOOLEAN, 24, NULL, 0x000002, + NULL, HFILL } + }, + { &hf_ansi_801_lcc_capable_using_location_assistance_spherical, + { "Location Calculation Capable using Location Assistance - Spherical", "ansi_801.lcc_using_location_assistance.spherical", + FT_BOOLEAN, 24, NULL, 0x000001, + NULL, HFILL } + }, + { &hf_ansi_801_ref_pn, + { "REF_PN", "ansi_801.ref_pn", + FT_UINT24, BASE_DEC, NULL, 0xff8000, + NULL, HFILL } + }, + { &hf_ansi_801_mob_sys_t_offset, + { "MOB_SYS_T_OFFSET", "ansi_801.mob_sys_t_offset", + FT_UINT24, BASE_DEC, NULL, 0x007ffe, + NULL, HFILL } + }, + { &hf_ansi_801_reserved24_1, + { "Reserved", "ansi_801.reserved", + FT_UINT24, BASE_HEX, NULL, 0x000001, + NULL, HFILL } + }, + { &hf_ansi_801_no_outstanding_request_element, + { "No outstanding request element", "ansi_801.no_outstanding_request_element", + FT_BOOLEAN, 8, NULL, 0x08, + NULL, HFILL } + }, + { &hf_ansi_801_reserved8_07, + { "Reserved", "ansi_801.reserved", + FT_UINT8, BASE_HEX, NULL, 0x07, + NULL, HFILL } + }, + { &hf_ansi_801_reserved8_F0, + { "Reserved", "ansi_801.reserved", + FT_UINT8, BASE_HEX, NULL, 0xF0, + NULL, HFILL } + }, + { &hf_ansi_801_for_request_length, + { "Length", "ansi_801.for_request_length", + FT_UINT8, BASE_DEC, NULL, 0x0, + NULL, HFILL } + }, + { &hf_ansi_801_reserved8_E0, + { "Reserved", "ansi_801.reserved", + FT_UINT8, BASE_HEX, NULL, 0xE0, + NULL, HFILL } + }, + { &hf_ansi_801_unsolicited_response_indicator, + { "Unsolicited response indicator", "ansi_801.unsolicited_response_indicator", + FT_BOOLEAN, 8, NULL, 0x10, + NULL, HFILL } + }, + { &hf_ansi_801_for_response_length, + { "Length", "ansi_801.for_response_length", + FT_UINT8, BASE_DEC, NULL, 0x0, + NULL, HFILL } + }, + { &hf_ansi_801_rev_request_length, + { "Length", "ansi_801.rev_request_length", + FT_UINT8, BASE_DEC, NULL, 0x0, + NULL, HFILL } + }, + { &hf_ansi_801_rev_response_length, + { "Length", "ansi_801.rev_response_length", + FT_UINT8, BASE_DEC, NULL, 0x0, + NULL, HFILL } + }, + { &hf_ansi_801_session_start, + { "Session Start", "ansi_801.session_start", + FT_BOOLEAN, 8, NULL, 0x80, + NULL, HFILL } + }, + { &hf_ansi_801_session_end, + { "Session End", "ansi_801.session_end", + FT_BOOLEAN, 8, NULL, 0x40, + NULL, HFILL } + }, + { &hf_ansi_801_session_source, + { "Session Source", "ansi_801.session_source", + FT_BOOLEAN, 8, NULL, 0x20, + NULL, HFILL } + }, + { &hf_ansi_801_pd_message_type, + { "PD Message Type", "ansi_801.pd_message_type", + FT_UINT8, BASE_DEC, NULL, 0xFF, + NULL, HFILL } + }, + { &hf_ansi_801_pd_message_len, + { "PD Message Length", "ansi_801.pd_message_len", + FT_UINT16, BASE_DEC, NULL, 0xffc0, + NULL, HFILL } + }, + { &hf_ansi_801_regulatory_services_indicator, + { "Regulatory Services Indicator", "ansi_801.regulatory_services_indicator", + FT_UINT16, BASE_DEC, VALS(regulatory_services_indicator_vals), 0x0030, + NULL, HFILL } + }, + { &hf_ansi_801_for_message_number_requests16, + { "Number Requests", "ansi_801.for_message_number_requests", + FT_UINT16, BASE_DEC, NULL, 0x0F, + NULL, HFILL } + }, + { &hf_ansi_801_for_message_number_responsesF0, + { "Number Responses", "ansi_801.for_message_number_responses", + FT_UINT8, BASE_DEC, NULL, 0xF0, + NULL, HFILL } + }, + { &hf_ansi_801_for_message_number_requests8, + { "Number Requests", "ansi_801.for_message_number_requests", + FT_UINT8, BASE_DEC, NULL, 0xF0, + NULL, HFILL } + }, + { &hf_ansi_801_for_message_number_responses0F, + { "Number Responses", "ansi_801.for_message_number_responses", + FT_UINT8, BASE_DEC, NULL, 0x0F, + NULL, HFILL } + }, + { &hf_ansi_801_rev_message_number_requests16, + { "Number Requests", "ansi_801.rev_message_number_requests", + FT_UINT16, BASE_DEC, NULL, 0x0F, + NULL, HFILL } + }, + { &hf_ansi_801_rev_message_number_responsesF0, + { "Number Responses", "ansi_801.rev_message_number_responses", + FT_UINT8, BASE_DEC, NULL, 0xF0, + NULL, HFILL } + }, + { &hf_ansi_801_rev_message_number_requests8, + { "Number Requests", "ansi_801.rev_message_number_requests", + FT_UINT8, BASE_DEC, NULL, 0xF0, + NULL, HFILL } + }, + { &hf_ansi_801_rev_message_number_responses0F, + { "Number Responses", "ansi_801.rev_message_number_responses", + FT_UINT8, BASE_DEC, NULL, 0x0F, + NULL, HFILL } + }, + + }; /* Setup protocol subtree array */ @@ -1897,8 +2252,8 @@ proto_register_ansi_801(void) gint *ett[NUM_INDIVIDUAL_PARAMS+NUM_FOR_REQ_TYPE+NUM_FOR_RSP_TYPE+NUM_REV_REQ_TYPE+NUM_REV_RSP_TYPE]; ett[0] = &ett_ansi_801; - ett[1] = &ett_gps; - ett[2] = &ett_loc; + ett[1] = &ett_gps; + ett[2] = &ett_loc; last_offset = NUM_INDIVIDUAL_PARAMS; @@ -1947,3 +2302,16 @@ proto_reg_handoff_ansi_801(void) dissector_add_uint("ansi_a.pld", ANSI_801_FORWARD, ansi_801_handle); dissector_add_uint("ansi_a.pld", ANSI_801_REVERSE, ansi_801_handle); } + +/* + * Editor modelines - http://www.wireshark.org/tools/modelines.html + * + * Local variables: + * c-basic-offset: 8 + * tab-width: 8 + * indent-tabs-mode: t + * End: + * + * vi: set shiftwidth=8 tabstop=8 noexpandtab: + * :indentSize=8:tabSize=8:noTabs=false: + */ diff --git a/epan/dissectors/packet-isns.c b/epan/dissectors/packet-isns.c index de55315889..1252be9b43 100644 --- a/epan/dissectors/packet-isns.c +++ b/epan/dissectors/packet-isns.c @@ -307,15 +307,15 @@ static const value_string isns_errorcode[] = { static value_string_ext isns_errorcode_ext = VALUE_STRING_EXT_INIT(isns_errorcode); -#define ISNS_ATTR_TAG_DELIMITER 0 -#define ISNS_ATTR_TAG_ENTITY_IDENTIFIER 1 -#define ISNS_ATTR_TAG_ENTITY_PROTOCOL 2 -#define ISNS_ATTR_TAG_MGMT_IP_ADDRESS 3 -#define ISNS_ATTR_TAG_TIMESTAMP 4 -#define ISNS_ATTR_TAG_PROTOCOL_VERSION_RANGE 5 -#define ISNS_ATTR_TAG_REGISTRATION_PERIOD 6 -#define ISNS_ATTR_TAG_ENTITY_INDEX 7 -#define ISNS_ATTR_TAG_ENTITY_NEXT_INDEX 8 +#define ISNS_ATTR_TAG_DELIMITER 0 +#define ISNS_ATTR_TAG_ENTITY_IDENTIFIER 1 +#define ISNS_ATTR_TAG_ENTITY_PROTOCOL 2 +#define ISNS_ATTR_TAG_MGMT_IP_ADDRESS 3 +#define ISNS_ATTR_TAG_TIMESTAMP 4 +#define ISNS_ATTR_TAG_PROTOCOL_VERSION_RANGE 5 +#define ISNS_ATTR_TAG_REGISTRATION_PERIOD 6 +#define ISNS_ATTR_TAG_ENTITY_INDEX 7 +#define ISNS_ATTR_TAG_ENTITY_NEXT_INDEX 8 #define ISNS_ATTR_TAG_ENTITY_ISAKMP_PHASE_1 11 #define ISNS_ATTR_TAG_ENTITY_CERTIFICATE 12 #define ISNS_ATTR_TAG_PORTAL_IP_ADDRESS 16 @@ -468,12 +468,12 @@ static const value_string isns_attribute_tags[] = { static value_string_ext isns_attribute_tags_ext = VALUE_STRING_EXT_INIT(isns_attribute_tags); /* iSNS flags */ -#define ISNS_FLAGS_CLIENT 0x8000 -#define ISNS_FLAGS_SERVER 0x4000 -#define ISNS_FLAGS_AUTH 0x2000 -#define ISNS_FLAGS_REPLACE 0x1000 -#define ISNS_FLAGS_LAST_PDU 0x0800 -#define ISNS_FLAGS_FIRST_PDU 0x0400 +#define ISNS_FLAGS_CLIENT 0x8000 +#define ISNS_FLAGS_SERVER 0x4000 +#define ISNS_FLAGS_AUTH 0x2000 +#define ISNS_FLAGS_REPLACE 0x1000 +#define ISNS_FLAGS_LAST_PDU 0x0800 +#define ISNS_FLAGS_FIRST_PDU 0x0400 #define tfs_isns_scn_bitmap_initiator_and_self_information_only tfs_true_false @@ -556,18 +556,18 @@ dissect_isns_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data guint packet_len; proto_item *ti; proto_tree *isns_tree; - guint16 flags; - proto_tree *tt = NULL; - proto_item *tpayload; - static const int * isns_flags[] = { - &hf_isns_client, - &hf_isns_server, - &hf_isns_auth, - &hf_isns_replace, - &hf_isns_last_pdu, - &hf_isns_first_pdu, - NULL - }; + guint16 flags; + proto_tree *tt = NULL; + proto_item *tpayload; + static const int * isns_flags[] = { + &hf_isns_client, + &hf_isns_server, + &hf_isns_auth, + &hf_isns_replace, + &hf_isns_last_pdu, + &hf_isns_first_pdu, + NULL + }; /* Make entries in Protocol column and Info column on summary display */ col_set_str(pinfo->cinfo, COL_PROTOCOL, "iSNS"); @@ -577,111 +577,111 @@ dissect_isns_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data function_id = tvb_get_ntohs(tvb, offset + 2); /* Add the function name in the info col */ - col_add_str(pinfo->cinfo, COL_INFO, - val_to_str_ext(function_id, &isns_function_ids_ext, - "Unknown function ID 0x%04x")); - - /* create display subtree for the protocol */ - ti = proto_tree_add_item(tree, proto_isns, tvb, 0, -1, ENC_NA); - isns_tree = proto_item_add_subtree(ti, ett_isns); - - /* OK... Sort out the header */ - proto_tree_add_item(isns_tree, hf_isns_version, tvb, offset, 2, ENC_BIG_ENDIAN); - proto_tree_add_item(isns_tree, hf_isns_function_id, tvb, offset+2, 2, ENC_BIG_ENDIAN); - proto_tree_add_item(isns_tree, hf_isns_pdu_length, tvb, offset+4, 2, ENC_BIG_ENDIAN); - - flags = tvb_get_ntohs(tvb, offset + 6); - proto_tree_add_bitmask(isns_tree, tvb, offset+6, hf_isns_flags, ett_isns_flags, isns_flags, ENC_BIG_ENDIAN); - proto_tree_add_item(isns_tree, hf_isns_transaction_id, tvb, offset+8, 2, ENC_BIG_ENDIAN); - proto_tree_add_item(isns_tree, hf_isns_sequence_id, tvb, offset+10, 2, ENC_BIG_ENDIAN); - - tpayload = proto_tree_add_item(isns_tree, hf_isns_payload, tvb, offset+12, -1, ENC_NA); - tt = proto_item_add_subtree(tpayload, ett_isns_payload); - - /* Now set the offset to the start of the payload */ - offset += ISNS_HEADER_SIZE; - - /* Decode those attributes baby - Yeah!*/ - switch (function_id) - { - case ISNS_FUNC_HEARTBEAT: - proto_tree_add_item(tt,hf_isns_heartbeat_ipv6_addr, tvb, offset, 16, ENC_NA); - offset += 16; - - proto_tree_add_item(tt,hf_isns_heartbeat_tcp_port, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - - proto_tree_add_item(tt,hf_isns_heartbeat_udp_port, tvb, offset, 2, ENC_BIG_ENDIAN); - offset += 2; - - proto_tree_add_item(tt,hf_isns_heartbeat_interval, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - - proto_tree_add_item(tt,hf_isns_heartbeat_counter, tvb, offset, 4, ENC_BIG_ENDIAN); - /*offset += 4;*/ - break; - - /* Responses */ - case ISNS_FUNC_RSP_DEVATTRREG: - case ISNS_FUNC_RSP_DEVATTRQRY: - case ISNS_FUNC_RSP_DEVGETNEXT: - case ISNS_FUNC_RSP_DEREGDEV: - case ISNS_FUNC_RSP_SCNREG: - case ISNS_FUNC_RSP_SCNDEREG: - case ISNS_FUNC_RSP_SCNEVENT: - case ISNS_FUNC_RSP_SCN: - case ISNS_FUNC_RSP_DDREG: - case ISNS_FUNC_RSP_DDDEREG: - case ISNS_FUNC_RSP_DDSREG: - case ISNS_FUNC_RSP_DDSDEREG: - case ISNS_FUNC_RSP_ESI: - case ISNS_FUNC_RSP_RQSTDOMID: - case ISNS_FUNC_RSP_RLSEDOMID: - case ISNS_FUNC_RSP_GETDOMID: - - /* Get the Error message of the response */ - /* The Error field exists only at the beginning of a message (i.e., in the first PDU */ - if(flags&ISNS_FLAGS_FIRST_PDU){ - proto_tree_add_item(tt,hf_isns_resp_errorcode, tvb, offset, 4, ENC_BIG_ENDIAN); - offset += 4; - } + col_add_str(pinfo->cinfo, COL_INFO, + val_to_str_ext(function_id, &isns_function_ids_ext, + "Unknown function ID 0x%04x")); + + /* create display subtree for the protocol */ + ti = proto_tree_add_item(tree, proto_isns, tvb, 0, -1, ENC_NA); + isns_tree = proto_item_add_subtree(ti, ett_isns); + + /* OK... Sort out the header */ + proto_tree_add_item(isns_tree, hf_isns_version, tvb, offset, 2, ENC_BIG_ENDIAN); + proto_tree_add_item(isns_tree, hf_isns_function_id, tvb, offset+2, 2, ENC_BIG_ENDIAN); + proto_tree_add_item(isns_tree, hf_isns_pdu_length, tvb, offset+4, 2, ENC_BIG_ENDIAN); + + flags = tvb_get_ntohs(tvb, offset + 6); + proto_tree_add_bitmask(isns_tree, tvb, offset+6, hf_isns_flags, ett_isns_flags, isns_flags, ENC_BIG_ENDIAN); + proto_tree_add_item(isns_tree, hf_isns_transaction_id, tvb, offset+8, 2, ENC_BIG_ENDIAN); + proto_tree_add_item(isns_tree, hf_isns_sequence_id, tvb, offset+10, 2, ENC_BIG_ENDIAN); + + tpayload = proto_tree_add_item(isns_tree, hf_isns_payload, tvb, offset+12, -1, ENC_NA); + tt = proto_item_add_subtree(tpayload, ett_isns_payload); + + /* Now set the offset to the start of the payload */ + offset += ISNS_HEADER_SIZE; + + /* Decode those attributes baby - Yeah!*/ + switch (function_id) + { + case ISNS_FUNC_HEARTBEAT: + proto_tree_add_item(tt,hf_isns_heartbeat_ipv6_addr, tvb, offset, 16, ENC_NA); + offset += 16; + + proto_tree_add_item(tt,hf_isns_heartbeat_tcp_port, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + + proto_tree_add_item(tt,hf_isns_heartbeat_udp_port, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; + + proto_tree_add_item(tt,hf_isns_heartbeat_interval, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + + proto_tree_add_item(tt,hf_isns_heartbeat_counter, tvb, offset, 4, ENC_BIG_ENDIAN); + /*offset += 4;*/ + break; + + /* Responses */ + case ISNS_FUNC_RSP_DEVATTRREG: + case ISNS_FUNC_RSP_DEVATTRQRY: + case ISNS_FUNC_RSP_DEVGETNEXT: + case ISNS_FUNC_RSP_DEREGDEV: + case ISNS_FUNC_RSP_SCNREG: + case ISNS_FUNC_RSP_SCNDEREG: + case ISNS_FUNC_RSP_SCNEVENT: + case ISNS_FUNC_RSP_SCN: + case ISNS_FUNC_RSP_DDREG: + case ISNS_FUNC_RSP_DDDEREG: + case ISNS_FUNC_RSP_DDSREG: + case ISNS_FUNC_RSP_DDSDEREG: + case ISNS_FUNC_RSP_ESI: + case ISNS_FUNC_RSP_RQSTDOMID: + case ISNS_FUNC_RSP_RLSEDOMID: + case ISNS_FUNC_RSP_GETDOMID: + + /* Get the Error message of the response */ + /* The Error field exists only at the beginning of a message (i.e., in the first PDU */ + if(flags&ISNS_FLAGS_FIRST_PDU){ + proto_tree_add_item(tt,hf_isns_resp_errorcode, tvb, offset, 4, ENC_BIG_ENDIAN); + offset += 4; + } /* Fall Thru if there are attributes */ if (tvb_reported_length_remaining(tvb, offset) == 0) return tvb_length(tvb); - /* Messages */ - case ISNS_FUNC_DEVATTRREG: - case ISNS_FUNC_DEVATTRQRY: - case ISNS_FUNC_DEVGETNEXT: - case ISNS_FUNC_DEREGDEV: - case ISNS_FUNC_SCNREG: - case ISNS_FUNC_SCNDEREG: - case ISNS_FUNC_SCNEVENT: - case ISNS_FUNC_SCN: - case ISNS_FUNC_DDREG: - case ISNS_FUNC_DDDEREG: - case ISNS_FUNC_DDSREG: - case ISNS_FUNC_DDSDEREG: - case ISNS_FUNC_ESI: - case ISNS_FUNC_RQSTDOMID: - case ISNS_FUNC_RLSEDOMID: - case ISNS_FUNC_GETDOMID: - default: - /* we can only look at the attributes for the first PDU */ - if(!(flags&ISNS_FLAGS_FIRST_PDU)){ - proto_tree_add_expert(tt, pinfo, &ei_isns_not_first_pdu, tvb, offset, -1); - return tvb_length(tvb); - } + /* Messages */ + case ISNS_FUNC_DEVATTRREG: + case ISNS_FUNC_DEVATTRQRY: + case ISNS_FUNC_DEVGETNEXT: + case ISNS_FUNC_DEREGDEV: + case ISNS_FUNC_SCNREG: + case ISNS_FUNC_SCNDEREG: + case ISNS_FUNC_SCNEVENT: + case ISNS_FUNC_SCN: + case ISNS_FUNC_DDREG: + case ISNS_FUNC_DDDEREG: + case ISNS_FUNC_DDSREG: + case ISNS_FUNC_DDSDEREG: + case ISNS_FUNC_ESI: + case ISNS_FUNC_RQSTDOMID: + case ISNS_FUNC_RLSEDOMID: + case ISNS_FUNC_GETDOMID: + default: + /* we can only look at the attributes for the first PDU */ + if(!(flags&ISNS_FLAGS_FIRST_PDU)){ + proto_tree_add_expert(tt, pinfo, &ei_isns_not_first_pdu, tvb, offset, -1); + return tvb_length(tvb); + } packet_len = tvb_reported_length(tvb); - while( offset < packet_len ) - { - offset = AddAttribute(pinfo, tvb, tt, offset, function_id); - } + while( offset < packet_len ) + { + offset = AddAttribute(pinfo, tvb, tt, offset, function_id); + } } - return tvb_length(tvb); + return tvb_length(tvb); } static guint @@ -1029,320 +1029,320 @@ AddAttribute(packet_info *pinfo, tvbuff_t *tvb, proto_tree *tree, guint offset, switch( tag ) { case ISNS_ATTR_TAG_DELIMITER: - dissect_isns_attr_none(tvb, offset, tree, hf_isns_delimiter, tag, len); - break; + dissect_isns_attr_none(tvb, offset, tree, hf_isns_delimiter, tag, len); + break; case ISNS_ATTR_TAG_ENTITY_IDENTIFIER: - dissect_isns_attr_string(tvb, offset, tree, hf_isns_entity_identifier, tag, len); - break; + dissect_isns_attr_string(tvb, offset, tree, hf_isns_entity_identifier, tag, len); + break; case ISNS_ATTR_TAG_ENTITY_PROTOCOL: if(len != 4) THROW(ReportedBoundsError); - dissect_isns_attr_integer(tvb, offset, tree, hf_isns_entity_protocol, tag, len, function_id); - break; + dissect_isns_attr_integer(tvb, offset, tree, hf_isns_entity_protocol, tag, len, function_id); + break; case ISNS_ATTR_TAG_MGMT_IP_ADDRESS: if(len != 16) THROW(ReportedBoundsError); - dissect_isns_attr_ip_address(tvb, offset, tree, hf_isns_mgmt_ip_addr, tag, len); - break; + dissect_isns_attr_ip_address(tvb, offset, tree, hf_isns_mgmt_ip_addr, tag, len); + break; case ISNS_ATTR_TAG_TIMESTAMP: if(len != 8) THROW(ReportedBoundsError); - dissect_isns_attr_integer(tvb, offset, tree, hf_isns_timestamp, tag, len, function_id); - break; + dissect_isns_attr_integer(tvb, offset, tree, hf_isns_timestamp, tag, len, function_id); + break; case ISNS_ATTR_TAG_PROTOCOL_VERSION_RANGE: - dissect_isns_attr_not_decoded_yet(tvb, offset, tree, hf_isns_not_decoded_yet, tag, len); - break; + dissect_isns_attr_not_decoded_yet(tvb, offset, tree, hf_isns_not_decoded_yet, tag, len); + break; case ISNS_ATTR_TAG_REGISTRATION_PERIOD: if(len != 4) THROW(ReportedBoundsError); - dissect_isns_attr_integer(tvb, offset, tree, hf_isns_registration_period, tag, len, function_id); - break; + dissect_isns_attr_integer(tvb, offset, tree, hf_isns_registration_period, tag, len, function_id); + break; case ISNS_ATTR_TAG_ENTITY_INDEX: if(len != 4) THROW(ReportedBoundsError); - dissect_isns_attr_integer(tvb, offset, tree, hf_isns_entity_index, tag, len, function_id); - break; + dissect_isns_attr_integer(tvb, offset, tree, hf_isns_entity_index, tag, len, function_id); + break; case ISNS_ATTR_TAG_ENTITY_NEXT_INDEX: if(len != 4) THROW(ReportedBoundsError); - dissect_isns_attr_integer(tvb, offset, tree, hf_isns_entity_next_index, tag, len, function_id); - break; + dissect_isns_attr_integer(tvb, offset, tree, hf_isns_entity_next_index, tag, len, function_id); + break; case ISNS_ATTR_TAG_ENTITY_ISAKMP_PHASE_1: - dissect_isns_attr_not_decoded_yet(tvb, offset, tree, hf_isns_not_decoded_yet, tag, len); - break; + dissect_isns_attr_not_decoded_yet(tvb, offset, tree, hf_isns_not_decoded_yet, tag, len); + break; case ISNS_ATTR_TAG_ENTITY_CERTIFICATE: - dissect_isns_attr_not_decoded_yet(tvb, offset, tree, hf_isns_not_decoded_yet, tag, len); - break; + dissect_isns_attr_not_decoded_yet(tvb, offset, tree, hf_isns_not_decoded_yet, tag, len); + break; case ISNS_ATTR_TAG_PORTAL_IP_ADDRESS: - switch(len){ - case 64: + switch(len){ + case 64: proto_tree_add_expert(tree, pinfo, &ei_isns_portal_ip_addr, tvb, offset, -1); - case 16: + case 16: dissect_isns_attr_ip_address(tvb, offset, tree, hf_isns_portal_ip_addr, tag, 16); break; - default: + default: THROW(ReportedBoundsError); - } - break; + } + break; case ISNS_ATTR_TAG_PORTAL_PORT: - dissect_isns_attr_port(tvb, offset, tree, hf_isns_portal_port, tag, len, ISNS_OTHER_PORT, pinfo); - break; + dissect_isns_attr_port(tvb, offset, tree, hf_isns_portal_port, tag, len, ISNS_OTHER_PORT, pinfo); + break; case ISNS_ATTR_TAG_PORTAL_SYMBOLIC_NAME: - dissect_isns_attr_string(tvb, offset, tree, hf_isns_portal_symbolic_name, tag, len); - break; + dissect_isns_attr_string(tvb, offset, tree, hf_isns_portal_symbolic_name, tag, len); + break; case ISNS_ATTR_TAG_ESI_INTERVAL: - dissect_isns_attr_integer(tvb, offset, tree, hf_isns_esi_interval, tag, len, function_id); - break; + dissect_isns_attr_integer(tvb, offset, tree, hf_isns_esi_interval, tag, len, function_id); + break; case ISNS_ATTR_TAG_ESI_PORT: - dissect_isns_attr_port(tvb, offset, tree, hf_isns_esi_port, tag, len, ISNS_ESI_PORT, pinfo); - break; + dissect_isns_attr_port(tvb, offset, tree, hf_isns_esi_port, tag, len, ISNS_ESI_PORT, pinfo); + break; case ISNS_ATTR_TAG_PORTAL_INDEX: - dissect_isns_attr_integer(tvb, offset, tree, hf_isns_portal_index, tag, len, function_id); - break; + dissect_isns_attr_integer(tvb, offset, tree, hf_isns_portal_index, tag, len, function_id); + break; case ISNS_ATTR_TAG_SCN_PORT: - dissect_isns_attr_port(tvb, offset, tree, hf_isns_scn_port, tag, len, ISNS_SCN_PORT, pinfo); - break; + dissect_isns_attr_port(tvb, offset, tree, hf_isns_scn_port, tag, len, ISNS_SCN_PORT, pinfo); + break; case ISNS_ATTR_TAG_PORTAL_NEXT_INDEX: - dissect_isns_attr_integer(tvb, offset, tree, hf_isns_portal_next_index, tag, len, function_id); - break; + dissect_isns_attr_integer(tvb, offset, tree, hf_isns_portal_next_index, tag, len, function_id); + break; case ISNS_ATTR_TAG_PORTAL_SECURITY_BITMAP: - dissect_isns_attr_portal_security_bitmap(tvb, offset, tree, hf_isns_psb, tag, len); - break; + dissect_isns_attr_portal_security_bitmap(tvb, offset, tree, hf_isns_psb, tag, len); + break; case ISNS_ATTR_TAG_PORTAL_ISAKMP_PHASE_1: - dissect_isns_attr_not_decoded_yet(tvb, offset, tree, hf_isns_not_decoded_yet, tag, len); - break; + dissect_isns_attr_not_decoded_yet(tvb, offset, tree, hf_isns_not_decoded_yet, tag, len); + break; case ISNS_ATTR_TAG_PORTAL_ISAKMP_PHASE_2: - dissect_isns_attr_not_decoded_yet(tvb, offset, tree, hf_isns_not_decoded_yet, tag, len); - break; + dissect_isns_attr_not_decoded_yet(tvb, offset, tree, hf_isns_not_decoded_yet, tag, len); + break; case ISNS_ATTR_TAG_PORTAL_CERTIFICATE: - dissect_isns_attr_not_decoded_yet(tvb, offset, tree, hf_isns_not_decoded_yet, tag, len); - break; + dissect_isns_attr_not_decoded_yet(tvb, offset, tree, hf_isns_not_decoded_yet, tag, len); + break; case ISNS_ATTR_TAG_ISCSI_NAME: - dissect_isns_attr_string(tvb, offset, tree, hf_isns_iscsi_name, tag, len); - break; + dissect_isns_attr_string(tvb, offset, tree, hf_isns_iscsi_name, tag, len); + break; case ISNS_ATTR_TAG_ISCSI_NODE_TYPE: if(len != 4) THROW(ReportedBoundsError); - dissect_isns_attr_iscsi_node_type(tvb, offset, tree, hf_isns_iscsi_node_type, tag, len); - break; + dissect_isns_attr_iscsi_node_type(tvb, offset, tree, hf_isns_iscsi_node_type, tag, len); + break; case ISNS_ATTR_TAG_ISCSI_ALIAS: - dissect_isns_attr_string(tvb, offset, tree, hf_isns_iscsi_alias, tag, len); - break; + dissect_isns_attr_string(tvb, offset, tree, hf_isns_iscsi_alias, tag, len); + break; case ISNS_ATTR_TAG_ISCSI_SCN_BITMAP: if(len != 4) THROW(ReportedBoundsError); - dissect_isns_attr_scn_bitmap(tvb, offset, tree, hf_isns_scn_bitmap, tag, len); - break; + dissect_isns_attr_scn_bitmap(tvb, offset, tree, hf_isns_scn_bitmap, tag, len); + break; case ISNS_ATTR_TAG_ISCSI_NODE_INDEX: if(len != 4) THROW(ReportedBoundsError); - dissect_isns_attr_integer(tvb, offset, tree, hf_isns_node_index, tag, len, function_id); - break; + dissect_isns_attr_integer(tvb, offset, tree, hf_isns_node_index, tag, len, function_id); + break; case ISNS_ATTR_TAG_WWNN_TOKEN: if(len != 8) THROW(ReportedBoundsError); - dissect_isns_attr_integer(tvb, offset, tree, hf_isns_wwnn_token, tag, len, function_id); - break; + dissect_isns_attr_integer(tvb, offset, tree, hf_isns_wwnn_token, tag, len, function_id); + break; case ISNS_ATTR_TAG_ISCSI_NODE_NEXT_INDEX: if(len != 4) THROW(ReportedBoundsError); - dissect_isns_attr_integer(tvb, offset, tree, hf_isns_node_next_index, tag, len, function_id); - break; + dissect_isns_attr_integer(tvb, offset, tree, hf_isns_node_next_index, tag, len, function_id); + break; case ISNS_ATTR_TAG_ISCSI_AUTH_METHOD: - dissect_isns_attr_string(tvb, offset, tree, hf_isns_iscsi_auth_method, tag, len); - break; + dissect_isns_attr_string(tvb, offset, tree, hf_isns_iscsi_auth_method, tag, len); + break; case ISNS_ATTR_TAG_PG_ISCSI_NAME: - dissect_isns_attr_string(tvb, offset, tree, hf_isns_pg_iscsi_name, tag, len); - break; + dissect_isns_attr_string(tvb, offset, tree, hf_isns_pg_iscsi_name, tag, len); + break; case ISNS_ATTR_TAG_PG_PORTAL_IP_ADDR: - switch(len){ - case 64: + switch(len){ + case 64: proto_tree_add_expert_format(tree, pinfo, &ei_isns_portal_ip_addr, tvb, offset, -1, "Broken iSNS implementation. The PG_PORTAL_IP_ADDRESS tag should be 16 bytes in length"); - case 16: + case 16: dissect_isns_attr_ip_address(tvb, offset, tree, hf_isns_pg_portal_ip_addr, tag, 16); break; - default: + default: THROW(ReportedBoundsError); - } - break; + } + break; case ISNS_ATTR_TAG_PG_PORTAL_PORT: if(len != 4) THROW(ReportedBoundsError); - dissect_isns_attr_port(tvb, offset, tree, hf_isns_pg_portal_port, tag, len, ISNS_OTHER_PORT, pinfo); - break; + dissect_isns_attr_port(tvb, offset, tree, hf_isns_pg_portal_port, tag, len, ISNS_OTHER_PORT, pinfo); + break; case ISNS_ATTR_TAG_PORTAL_GROUP_TAG: if(len != 4) THROW(ReportedBoundsError); - dissect_isns_attr_integer(tvb, offset, tree, hf_isns_portal_group_tag, tag, len, function_id); - break; + dissect_isns_attr_integer(tvb, offset, tree, hf_isns_portal_group_tag, tag, len, function_id); + break; case ISNS_ATTR_TAG_PORTAL_GROUP_INDEX: if(len != 4) THROW(ReportedBoundsError); - dissect_isns_attr_integer(tvb, offset, tree, hf_isns_pg_index, tag, len, function_id); - break; + dissect_isns_attr_integer(tvb, offset, tree, hf_isns_pg_index, tag, len, function_id); + break; case ISNS_ATTR_TAG_PORTAL_GROUP_NEXT_INDEX: if(len != 4) THROW(ReportedBoundsError); - dissect_isns_attr_integer(tvb, offset, tree, hf_isns_pg_next_index, tag, len, function_id); - break; + dissect_isns_attr_integer(tvb, offset, tree, hf_isns_pg_next_index, tag, len, function_id); + break; case ISNS_ATTR_TAG_FC_PORT_NAME_WWPN: if(len != 8) THROW(ReportedBoundsError); - dissect_isns_attr_integer(tvb, offset, tree, hf_isns_fc_port_name_wwpn, tag, len, function_id); - break; + dissect_isns_attr_integer(tvb, offset, tree, hf_isns_fc_port_name_wwpn, tag, len, function_id); + break; case ISNS_ATTR_TAG_PORT_ID: if(len != 3) THROW(ReportedBoundsError); - dissect_isns_attr_integer(tvb, offset, tree, hf_isns_port_id, tag, len, function_id); - break; + dissect_isns_attr_integer(tvb, offset, tree, hf_isns_port_id, tag, len, function_id); + break; case ISNS_ATTR_TAG_FC_PORT_TYPE: - dissect_isns_attr_not_decoded_yet(tvb, offset, tree, hf_isns_not_decoded_yet, tag, len); - break; - /* - 0x0000 Unidentified/Null Entry - 0x0001 Fibre Channel N_Port - 0x0002 Fibre Channel NL_Port - 0x0003 Fibre Channel F/NL_Port - 0x0081 Fibre Channel F_Port - 0x0082 Fibre Channel FL_Port - 0x0084 Fibre Channel E_Port - 0xFF12 iFCP Port - */ + dissect_isns_attr_not_decoded_yet(tvb, offset, tree, hf_isns_not_decoded_yet, tag, len); + break; + /* + 0x0000 Unidentified/Null Entry + 0x0001 Fibre Channel N_Port + 0x0002 Fibre Channel NL_Port + 0x0003 Fibre Channel F/NL_Port + 0x0081 Fibre Channel F_Port + 0x0082 Fibre Channel FL_Port + 0x0084 Fibre Channel E_Port + 0xFF12 iFCP Port + */ case ISNS_ATTR_TAG_SYMBOLIC_PORT_NAME: - dissect_isns_attr_string(tvb, offset, tree, hf_isns_symbolic_port_name, tag, len); - break; + dissect_isns_attr_string(tvb, offset, tree, hf_isns_symbolic_port_name, tag, len); + break; case ISNS_ATTR_TAG_FABRIC_PORT_NAME: if(len != 8) THROW(ReportedBoundsError); - dissect_isns_attr_integer(tvb, offset, tree, hf_isns_fabric_port_name, tag, len, function_id); - break; + dissect_isns_attr_integer(tvb, offset, tree, hf_isns_fabric_port_name, tag, len, function_id); + break; case ISNS_ATTR_TAG_HARD_ADDRESS: if(len != 3) THROW(ReportedBoundsError); - dissect_isns_attr_integer(tvb, offset, tree, hf_isns_hard_address, tag, len, function_id); - break; + dissect_isns_attr_integer(tvb, offset, tree, hf_isns_hard_address, tag, len, function_id); + break; case ISNS_ATTR_TAG_PORT_IP_ADDRESS: if(len != 16) THROW(ReportedBoundsError); - dissect_isns_attr_ip_address(tvb, offset, tree, hf_isns_port_ip_addr, tag, len); - break; + dissect_isns_attr_ip_address(tvb, offset, tree, hf_isns_port_ip_addr, tag, len); + break; case ISNS_ATTR_TAG_CLASS_OF_SERVICE: - dissect_isns_attr_not_decoded_yet(tvb, offset, tree, hf_isns_not_decoded_yet, tag, len); - break; - /* - bit 29 Fibre Channel Class 2 Supported - bit 28 Fibre Channel Class 3 Supported - */ + dissect_isns_attr_not_decoded_yet(tvb, offset, tree, hf_isns_not_decoded_yet, tag, len); + break; + /* + bit 29 Fibre Channel Class 2 Supported + bit 28 Fibre Channel Class 3 Supported + */ case ISNS_ATTR_TAG_FC4_TYPES: - dissect_isns_attr_not_decoded_yet(tvb, offset, tree, hf_isns_not_decoded_yet, tag, len); - break; + dissect_isns_attr_not_decoded_yet(tvb, offset, tree, hf_isns_not_decoded_yet, tag, len); + break; case ISNS_ATTR_TAG_FC4_DESCRIPTOR: - dissect_isns_attr_string(tvb, offset, tree, hf_isns_fc4_descriptor, tag, len); - break; + dissect_isns_attr_string(tvb, offset, tree, hf_isns_fc4_descriptor, tag, len); + break; case ISNS_ATTR_TAG_FC4_FEATURES: - dissect_isns_attr_not_decoded_yet(tvb, offset, tree, hf_isns_not_decoded_yet, tag, len); - break; + dissect_isns_attr_not_decoded_yet(tvb, offset, tree, hf_isns_not_decoded_yet, tag, len); + break; case ISNS_ATTR_TAG_IFCP_SCN_BITMAP: - dissect_isns_attr_not_decoded_yet(tvb, offset, tree, hf_isns_not_decoded_yet, tag, len); - break; - /* - bit 24 INITIATOR AND SELF INFORMATION ONLY - bit 25 TARGET AND SELF INFORMATION ONLY - bit 26 MANAGEMENT REGISTRATION/SCN - bit 27 OBJECT REMOVED - bit 28 OBJECT ADDED - bit 29 OBJECT UPDATED - bit 30 DD/DDS MEMBER REMOVED (Mgmt Reg/SCN only) - bit 31 (Lsb) DD/DDS MEMBER ADDED (Mgmt Reg/SCN only) - */ + dissect_isns_attr_not_decoded_yet(tvb, offset, tree, hf_isns_not_decoded_yet, tag, len); + break; + /* + bit 24 INITIATOR AND SELF INFORMATION ONLY + bit 25 TARGET AND SELF INFORMATION ONLY + bit 26 MANAGEMENT REGISTRATION/SCN + bit 27 OBJECT REMOVED + bit 28 OBJECT ADDED + bit 29 OBJECT UPDATED + bit 30 DD/DDS MEMBER REMOVED (Mgmt Reg/SCN only) + bit 31 (Lsb) DD/DDS MEMBER ADDED (Mgmt Reg/SCN only) + */ case ISNS_ATTR_TAG_PORT_ROLE: - dissect_isns_attr_not_decoded_yet(tvb, offset, tree, hf_isns_not_decoded_yet, tag, len); - break; - /* - bit 29 Control - bit 30 FCP Initiator - bit 31 (Lsb) FCP Target - */ + dissect_isns_attr_not_decoded_yet(tvb, offset, tree, hf_isns_not_decoded_yet, tag, len); + break; + /* + bit 29 Control + bit 30 FCP Initiator + bit 31 (Lsb) FCP Target + */ case ISNS_ATTR_TAG_PERMANENT_PORT_NAME: if(len != 8) THROW(ReportedBoundsError); - dissect_isns_attr_integer(tvb, offset, tree, hf_isns_permanent_port_name, tag, len, function_id); - break; + dissect_isns_attr_integer(tvb, offset, tree, hf_isns_permanent_port_name, tag, len, function_id); + break; case ISNS_ATTR_TAG_FC4_TYPE_CODE: - dissect_isns_attr_not_decoded_yet(tvb, offset, tree, hf_isns_not_decoded_yet, tag, len); - break; - /* 8bit type code in byte0 */ + dissect_isns_attr_not_decoded_yet(tvb, offset, tree, hf_isns_not_decoded_yet, tag, len); + break; + /* 8bit type code in byte0 */ case ISNS_ATTR_TAG_FC_NODE_NAME_WWNN: if(len != 8) THROW(ReportedBoundsError); - dissect_isns_attr_integer(tvb, offset, tree, hf_isns_fc_node_name_wwnn, tag, len, function_id); - break; + dissect_isns_attr_integer(tvb, offset, tree, hf_isns_fc_node_name_wwnn, tag, len, function_id); + break; case ISNS_ATTR_TAG_SYMBOLIC_NODE_NAME: - dissect_isns_attr_string(tvb, offset, tree, hf_isns_symbolic_node_name, tag, len); - break; + dissect_isns_attr_string(tvb, offset, tree, hf_isns_symbolic_node_name, tag, len); + break; case ISNS_ATTR_TAG_NODE_IP_ADDRESS: if(len != 16) THROW(ReportedBoundsError); - dissect_isns_attr_ip_address(tvb, offset, tree, hf_isns_node_ip_addr, tag, len); - break; + dissect_isns_attr_ip_address(tvb, offset, tree, hf_isns_node_ip_addr, tag, len); + break; case ISNS_ATTR_TAG_NODE_IPA: if(len != 8) THROW(ReportedBoundsError); - dissect_isns_attr_integer(tvb, offset, tree, hf_isns_node_ipa, tag, len, function_id); - break; + dissect_isns_attr_integer(tvb, offset, tree, hf_isns_node_ipa, tag, len, function_id); + break; case ISNS_ATTR_TAG_PROXY_ISCSI_NAME: - dissect_isns_attr_string(tvb, offset, tree, hf_isns_proxy_iscsi_name, tag, len); - break; + dissect_isns_attr_string(tvb, offset, tree, hf_isns_proxy_iscsi_name, tag, len); + break; case ISNS_ATTR_TAG_SWITCH_NAME: if(len != 8) THROW(ReportedBoundsError); - dissect_isns_attr_integer(tvb, offset, tree, hf_isns_switch_name, tag, len, function_id); - break; + dissect_isns_attr_integer(tvb, offset, tree, hf_isns_switch_name, tag, len, function_id); + break; case ISNS_ATTR_TAG_PREFERRED_ID: if(len != 4) THROW(ReportedBoundsError); - dissect_isns_attr_integer(tvb, offset, tree, hf_isns_preferred_id, tag, len, function_id); - break; + dissect_isns_attr_integer(tvb, offset, tree, hf_isns_preferred_id, tag, len, function_id); + break; case ISNS_ATTR_TAG_ASSIGNED_ID: if(len != 4) THROW(ReportedBoundsError); - dissect_isns_attr_integer(tvb, offset, tree, hf_isns_assigned_id, tag, len, function_id); - break; + dissect_isns_attr_integer(tvb, offset, tree, hf_isns_assigned_id, tag, len, function_id); + break; case ISNS_ATTR_TAG_VIRTUAL_FABRIC_ID: - dissect_isns_attr_string(tvb, offset, tree, hf_isns_virtual_fabric_id, tag, len); - break; + dissect_isns_attr_string(tvb, offset, tree, hf_isns_virtual_fabric_id, tag, len); + break; case ISNS_ATTR_TAG_VENDOR_OUI: if(len != 4) THROW(ReportedBoundsError); - dissect_isns_attr_integer(tvb, offset, tree, hf_isns_vendor_oui, tag, len, function_id); - break; + dissect_isns_attr_integer(tvb, offset, tree, hf_isns_vendor_oui, tag, len, function_id); + break; case ISNS_ATTR_TAG_DD_SET_ID: if(len != 4) THROW(ReportedBoundsError); - dissect_isns_attr_integer(tvb, offset, tree, hf_isns_dd_set_id, tag, len, function_id); - break; + dissect_isns_attr_integer(tvb, offset, tree, hf_isns_dd_set_id, tag, len, function_id); + break; case ISNS_ATTR_TAG_DD_SET_SYMBOLIC_NAME: - dissect_isns_attr_string(tvb, offset, tree, hf_isns_dd_set_symbolic_name, tag, len); - break; + dissect_isns_attr_string(tvb, offset, tree, hf_isns_dd_set_symbolic_name, tag, len); + break; case ISNS_ATTR_TAG_DD_SET_STATUS: - dissect_isns_attr_not_decoded_yet(tvb, offset, tree, hf_isns_not_decoded_yet, tag, len); - break; + dissect_isns_attr_not_decoded_yet(tvb, offset, tree, hf_isns_not_decoded_yet, tag, len); + break; case ISNS_ATTR_TAG_DD_SET_NEXT_ID: if(len != 4) THROW(ReportedBoundsError); - dissect_isns_attr_integer(tvb, offset, tree, hf_isns_dd_set_next_id, tag, len, function_id); - break; + dissect_isns_attr_integer(tvb, offset, tree, hf_isns_dd_set_next_id, tag, len, function_id); + break; case ISNS_ATTR_TAG_DD_ID: if(len != 4) THROW(ReportedBoundsError); - dissect_isns_attr_integer(tvb, offset, tree, hf_isns_dd_id, tag, len, function_id); - break; + dissect_isns_attr_integer(tvb, offset, tree, hf_isns_dd_id, tag, len, function_id); + break; case ISNS_ATTR_TAG_DD_SYMBOLIC_NAME: - dissect_isns_attr_string(tvb, offset, tree, hf_isns_dd_symbolic_name, tag, len); - break; + dissect_isns_attr_string(tvb, offset, tree, hf_isns_dd_symbolic_name, tag, len); + break; case ISNS_ATTR_TAG_DD_MEMBER_ISCSI_INDEX: if(len != 4) THROW(ReportedBoundsError); - dissect_isns_attr_integer(tvb, offset, tree, hf_isns_member_iscsi_index, tag, len, function_id); - break; + dissect_isns_attr_integer(tvb, offset, tree, hf_isns_member_iscsi_index, tag, len, function_id); + break; case ISNS_ATTR_TAG_DD_MEMBER_ISCSI_NAME: - dissect_isns_attr_string(tvb, offset, tree, hf_isns_dd_member_iscsi_name, tag, len); - break; + dissect_isns_attr_string(tvb, offset, tree, hf_isns_dd_member_iscsi_name, tag, len); + break; case ISNS_ATTR_TAG_DD_MEMBER_FC_PORT_NAME: if(len != 4) THROW(ReportedBoundsError); - dissect_isns_attr_integer(tvb, offset, tree, hf_isns_member_fc_port_name, tag, len, function_id); - break; + dissect_isns_attr_integer(tvb, offset, tree, hf_isns_member_fc_port_name, tag, len, function_id); + break; case ISNS_ATTR_TAG_DD_MEMBER_PORTAL_INDEX: if(len != 4) THROW(ReportedBoundsError); - dissect_isns_attr_integer(tvb, offset, tree, hf_isns_member_portal_index, tag, len, function_id); - break; + dissect_isns_attr_integer(tvb, offset, tree, hf_isns_member_portal_index, tag, len, function_id); + break; case ISNS_ATTR_TAG_DD_MEMBER_PORTAL_IP_ADDRESS: if(len != 16) THROW(ReportedBoundsError); - dissect_isns_attr_ip_address(tvb, offset, tree, hf_isns_dd_member_portal_ip_addr, tag, len); - break; + dissect_isns_attr_ip_address(tvb, offset, tree, hf_isns_dd_member_portal_ip_addr, tag, len); + break; case ISNS_ATTR_TAG_DD_MEMBER_PORTAL_PORT: if(len != 4) THROW(ReportedBoundsError); - dissect_isns_attr_port(tvb, offset, tree, hf_isns_dd_member_portal_port, + dissect_isns_attr_port(tvb, offset, tree, hf_isns_dd_member_portal_port, tag, len, ISNS_OTHER_PORT, pinfo); - break; + break; case ISNS_ATTR_TAG_DD_FEATURES: - dissect_isns_attr_not_decoded_yet(tvb, offset, tree, hf_isns_not_decoded_yet, tag, len); - break; + dissect_isns_attr_not_decoded_yet(tvb, offset, tree, hf_isns_not_decoded_yet, tag, len); + break; case ISNS_ATTR_TAG_DD_ID_NEXT_ID: if(len != 4) THROW(ReportedBoundsError); - dissect_isns_attr_integer(tvb, offset, tree, hf_isns_dd_id_next_id, tag, len, function_id); - break; + dissect_isns_attr_integer(tvb, offset, tree, hf_isns_dd_id_next_id, tag, len, function_id); + break; default: - dissect_isns_attr_not_decoded_yet(tvb, offset, tree, hf_isns_not_decoded_yet, tag, len); + dissect_isns_attr_not_decoded_yet(tvb, offset, tree, hf_isns_not_decoded_yet, tag, len); } @@ -1359,558 +1359,564 @@ void proto_register_isns(void) { /* Setup list of header fields See Section 1.6.1 for details*/ static hf_register_info hf[] = { - /* The Header Stuff */ - { &hf_isns_version, - { "iSNSP Version", "isns.PVer", - FT_UINT16, BASE_DEC, NULL, 0, - NULL, HFILL} - }, - { &hf_isns_function_id, - { "Function ID", "isns.functionid", - FT_UINT16, BASE_DEC|BASE_EXT_STRING, &isns_function_ids_ext, 0, - NULL, HFILL} - }, - { &hf_isns_pdu_length, - { "PDU Length", "isns.pdulength", - FT_UINT16, BASE_DEC, NULL, 0, - NULL, HFILL} - }, - - { &hf_isns_flags, - { "Flags", "isns.flags", - FT_UINT16, BASE_HEX, NULL, 0, - NULL, HFILL} - }, - { &hf_isns_client, - { "Client", "isns.flags.client", - FT_BOOLEAN, 16, TFS(&tfs_isns_flag_client), ISNS_FLAGS_CLIENT, - NULL, HFILL} - }, - { &hf_isns_server, - { "Server", "isns.flags.server", - FT_BOOLEAN, 16, TFS(&tfs_isns_flag_server), ISNS_FLAGS_SERVER, - NULL, HFILL} - }, - { &hf_isns_auth, - { "Auth", "isns.flags.authentication_block", - FT_BOOLEAN, 16, TFS(&tfs_isns_flag_auth), ISNS_FLAGS_AUTH, - "is iSNS Authentication Block present?", HFILL} - }, - { &hf_isns_replace, - { "Replace", "isns.flags.replace", - FT_BOOLEAN, 16, TFS(&tfs_isns_flag_replace), ISNS_FLAGS_REPLACE, - NULL, HFILL} - }, - { &hf_isns_last_pdu, - { "Last PDU", "isns.flags.lastpdu", - FT_BOOLEAN, 16, TFS(&tfs_isns_flag_last_pdu), ISNS_FLAGS_LAST_PDU, - NULL, HFILL} - }, - { &hf_isns_first_pdu, - { "First PDU", "isns.flags.firstpdu", - FT_BOOLEAN, 16, TFS(&tfs_isns_flag_first_pdu), ISNS_FLAGS_FIRST_PDU, - NULL, HFILL } - }, - - - { &hf_isns_transaction_id, - { "Transaction ID", "isns.transactionid", - FT_UINT16, BASE_DEC, NULL, 0, - NULL, HFILL} - }, - { &hf_isns_sequence_id, - { "Sequence ID", "isns.sequenceid", - FT_UINT16, BASE_DEC, NULL, 0, - NULL, HFILL} - }, - - { &hf_isns_entity_protocol, - { "Entity Protocol", "isns.entity_protocol", - FT_UINT32, BASE_DEC, VALS(isns_entity_protocol), 0, - NULL, HFILL} - }, - /* The Payload stuff */ - - { &hf_isns_dd_member_portal_port, - { "DD Member Portal Port", "isns.dd_member_portal_port", - FT_UINT32, BASE_DEC, NULL, 0, - "TCP/UDP DD Member Portal Port", HFILL } - }, - - { &hf_isns_iscsi_node_type, - { "iSCSI Node Type", "isns.iscsi.node_type", - FT_UINT32, BASE_HEX, NULL, 0, - NULL, HFILL } - }, - - { &hf_isns_esi_port, - { "ESI Port", "isns.esi_port", - FT_UINT32, BASE_DEC, NULL, 0, - "TCP/UDP ESI Port", HFILL } - }, - - { &hf_isns_scn_port, - { "SCN Port", "isns.scn_port", - FT_UINT32, BASE_DEC, NULL, 0, - "TCP/UDP SCN Port", HFILL } - }, - - { &hf_isns_portal_port, - { "Portal Port", "isns.portal_port", - FT_UINT32, BASE_DEC, NULL, 0, - "TCP/UDP Portal Port", HFILL } - }, - - { &hf_isns_pg_portal_port, - { "PG Portal Port", "isns.pg.portal_port", - FT_UINT32, BASE_DEC, NULL, 0, - "PG Portal TCP/UDP Port", HFILL } - }, - - { &hf_isns_port_type, - { "Port Type", "isns.port.port_type", - FT_BOOLEAN, 16, TFS(&tfs_isns_port_type), 0x01, /* bit 15 (or bit 1 of a 16bit word) */ - NULL, HFILL } - }, - - { &hf_isns_psb, - { "Portal Security Bitmap", "isns.psb", - FT_UINT32, BASE_HEX, NULL, 0, - NULL, HFILL } - }, - { &hf_isns_psb_tunnel_mode, - { "Tunnel Mode", "isns.psb.tunnel", - FT_BOOLEAN, 32, TFS(&tfs_isns_psb_tunnel_mode), 0x0040, /* bit 25 */ - "Tunnel Mode Preferred", HFILL } - }, - { &hf_isns_psb_transport_mode, - { "Transport Mode", "isns.psb.transport", - FT_BOOLEAN, 32, TFS(&tfs_isns_psb_transport_mode), 0x0020, /* bit 26 */ - NULL, HFILL } - }, - { &hf_isns_psb_pfs, - { "PFS", "isns.psb.pfs", - FT_BOOLEAN, 32, TFS(&tfs_isns_psb_pfs), 0x0010, /* bit 27 */ - NULL, HFILL } - }, - { &hf_isns_psb_aggressive_mode, - { "Aggressive Mode", "isns.psb.aggressive_mode", - FT_BOOLEAN, 32, TFS(&tfs_isns_psb_aggressive_mode), 0x0008, /* bit 28 */ - NULL, HFILL } - }, - { &hf_isns_psb_main_mode, - { "Main Mode", "isns.psb.main_mode", - FT_BOOLEAN, 32, TFS(&tfs_isns_psb_main_mode), 0x0004, /* bit 29 */ - NULL, HFILL } - }, - { &hf_isns_psb_ike_ipsec, - { "IKE/IPSec", "isns.psb.ike_ipsec", - FT_BOOLEAN, 32, TFS(&tfs_isns_psb_ike_ipsec), 0x0002, /* bit 30 */ - NULL, HFILL } - }, - { &hf_isns_psb_bitmap, - { "Bitmap", "isns.psb.bitmap", - FT_BOOLEAN, 32, TFS(&tfs_isns_psb_bitmap), 0x0001, /* bit 31 */ - NULL, HFILL } - }, - - - - { &hf_isns_scn_bitmap, - { "iSCSI SCN Bitmap", "isns.scn_bitmap", - FT_UINT32, BASE_HEX, NULL, 0, - NULL, HFILL } - }, - { &hf_isns_scn_bitmap_initiator_and_self_information_only, - { "Initiator And Self Information Only", "isns.scn_bitmap.initiator_and_self_information_only", - FT_BOOLEAN, 32, TFS(&tfs_isns_scn_bitmap_initiator_and_self_information_only), 0x0080, /* bit 24 */ - NULL, HFILL } - }, - { &hf_isns_scn_bitmap_target_and_self_information_only, - { "Target And Self Information Only", "isns.scn_bitmap.target_and_self_information_only", - FT_BOOLEAN, 32, TFS(&tfs_isns_scn_bitmap_target_and_self_information_only), 0x0040, /* bit 25 */ - NULL, HFILL } - }, - { &hf_isns_scn_bitmap_management_registration_scn, - { "Management Registration/SCN", "isns.scn_bitmap.management_registration_scn", - FT_BOOLEAN, 32, TFS(&tfs_isns_scn_bitmap_management_registration_scn), 0x0020, /* bit 26 */ - NULL, HFILL } - }, - { &hf_isns_scn_bitmap_object_removed, - { "Object Removed", "isns.scn_bitmap.object_removed", - FT_BOOLEAN, 32, TFS(&tfs_isns_scn_bitmap_object_removed), 0x0010, /* bit 27 */ - NULL, HFILL } - }, - { &hf_isns_scn_bitmap_object_added, - { "Object Added", "isns.scn_bitmap.object_added", - FT_BOOLEAN, 32, TFS(&tfs_isns_scn_bitmap_object_added), 0x0008, /* bit 28 */ - NULL, HFILL } - }, - { &hf_isns_scn_bitmap_object_updated, - { "Object Updated", "isns.scn_bitmap.object_updated", - FT_BOOLEAN, 32, TFS(&tfs_isns_scn_bitmap_object_updated), 0x0004, /* bit 29 */ - NULL, HFILL } - }, - { &hf_isns_scn_bitmap_dd_dds_member_removed, - { "DD/DDS Member Removed (Mgmt Reg/SCN only)", "isns.scn_bitmap.dd_dds_member_removed", - FT_BOOLEAN, 32, TFS(&tfs_isns_scn_bitmap_dd_dds_member_removed), 0x0002, /* bit 30 */ - NULL, HFILL } - }, - { &hf_isns_scn_bitmap_dd_dds_member_added, - { "DD/DDS Member Added (Mgmt Reg/SCN only)", "isns.scn_bitmap.dd_dds_member_added", - FT_BOOLEAN, 32, TFS(&tfs_isns_scn_bitmap_dd_dds_member_added), 0x0001, /* bit 31 */ - NULL, HFILL } - }, - - - { &hf_isns_isnt_control, - { "Control", "isns.isnt.control", - FT_BOOLEAN, 32, TFS(&tfs_isns_isnt_control), 0x0004, /* bit 29 */ - NULL, HFILL } - }, - { &hf_isns_isnt_initiator, - { "Initiator", "isns.isnt.initiator", - FT_BOOLEAN, 32, TFS(&tfs_isns_isnt_initiator), 0x0002, /* bit 30 */ - NULL, HFILL } - }, - { &hf_isns_isnt_target, - { "Target", "isns.isnt.target", - FT_BOOLEAN, 32, TFS(&tfs_isns_isnt_target), 0x0001, /* bit 31 */ - NULL, HFILL } - }, - - - { &hf_isns_resp_errorcode, - { "ErrorCode", "isns.errorcode", - FT_UINT32, BASE_DEC|BASE_EXT_STRING, &isns_errorcode_ext, 0, - "iSNS Response Error Code", HFILL} - }, - - { &hf_isns_attr_tag, - { "Attribute Tag", "isns.attr.tag", - FT_UINT32, BASE_DEC|BASE_EXT_STRING, &isns_attribute_tags_ext, 0, - NULL, HFILL} - }, - - { &hf_isns_attr_len, - { "Attribute Length", "isns.attr.len", - FT_UINT32, BASE_DEC, NULL, 0, - NULL, HFILL} - }, - - { &hf_isns_delimiter, - { "Delimiter", "isns.delimiter", - FT_NONE, BASE_NONE, NULL,0, - NULL, HFILL} - }, - - { &hf_isns_not_decoded_yet, - { "Not Decoded Yet", "isns.not_decoded_yet", - FT_NONE, BASE_NONE, NULL, 0, - "This tag is not yet decoded by Wireshark", HFILL} - }, - - { &hf_isns_heartbeat_ipv6_addr, - { "Heartbeat Address (ipv6)", "isns.heartbeat.address", - FT_IPv6, BASE_NONE, NULL, 0x0, - "Server IPv6 Address", HFILL }}, - - { &hf_isns_heartbeat_tcp_port, - { "Heartbeat TCP Port", "isns.heartbeat.tcpport", - FT_UINT16, BASE_DEC, NULL, 0x0, - "Server TCP Port", HFILL }}, - - { &hf_isns_heartbeat_udp_port, - { "Heartbeat UDP Port", "isns.heartbeat.udpport", - FT_UINT16, BASE_DEC, NULL, 0x0, - "Server UDP Port", HFILL }}, - - - { &hf_isns_heartbeat_interval, - { "Heartbeat Interval (secs)", "isns.heartbeat.interval", - FT_UINT32, BASE_DEC, NULL, 0x0, - "Server Heartbeat interval", HFILL }}, - - { &hf_isns_heartbeat_counter, - { "Heartbeat counter", "isns.heartbeat.counter", - FT_UINT32, BASE_DEC, NULL, 0x0, - "Server Heartbeat Counter", HFILL }}, - - { &hf_isns_iscsi_name, - { "iSCSI Name", "isns.iscsi_name", - FT_STRING, BASE_NONE, NULL, 0x0, - "iSCSI Name of device", HFILL }}, - - { &hf_isns_dd_member_iscsi_name, - { "DD Member iSCSI Name", "isns.dd_member.iscsi_name", - FT_STRING, BASE_NONE, NULL, 0x0, - "DD Member iSCSI Name of device", HFILL }}, - - { &hf_isns_virtual_fabric_id, - { "Virtual Fabric ID", "isns.virtual_fabric_id", - FT_STRING, BASE_NONE, NULL, 0x0, - NULL, HFILL }}, - - { &hf_isns_proxy_iscsi_name, - { "Proxy iSCSI Name", "isns.proxy_iscsi_name", - FT_STRING, BASE_NONE, NULL, 0x0, - NULL, HFILL }}, - - { &hf_isns_fc4_descriptor, - { "FC4 Descriptor", "isns.fc4_descriptor", - FT_STRING, BASE_NONE, NULL, 0x0, - "FC4 Descriptor of this device", HFILL }}, - - { &hf_isns_iscsi_auth_method, - { "iSCSI Auth Method", "isns.iscsi_auth_method", - FT_STRING, BASE_NONE, NULL, 0x0, - "Authentication Method required by this device", HFILL }}, - - { &hf_isns_iscsi_alias, - { "iSCSI Alias", "isns.iscsi_alias", - FT_STRING, BASE_NONE, NULL, 0x0, - "iSCSI Alias of device", HFILL }}, - - { &hf_isns_portal_symbolic_name, - { "Portal Symbolic Name", "isns.portal.symbolic_name", - FT_STRING, BASE_NONE, NULL, 0x0, - "Symbolic name of this portal", HFILL }}, - - { &hf_isns_dd_set_symbolic_name, - { "DD Set Symbolic Name", "isns.dd_set.symbolic_name", - FT_STRING, BASE_NONE, NULL, 0x0, - "Symbolic name of this DD Set", HFILL }}, - - { &hf_isns_dd_symbolic_name, - { "DD Symbolic Name", "isns.dd.symbolic_name", - FT_STRING, BASE_NONE, NULL, 0x0, - "Symbolic name of this DD", HFILL }}, - - { &hf_isns_symbolic_port_name, - { "Symbolic Port Name", "isns.port.symbolic_name", - FT_STRING, BASE_NONE, NULL, 0x0, - "Symbolic name of this port", HFILL }}, - - { &hf_isns_symbolic_node_name, - { "Symbolic Node Name", "isns.node.symbolic_name", - FT_STRING, BASE_NONE, NULL, 0x0, - "Symbolic name of this node", HFILL }}, - - { &hf_isns_entity_identifier, - { "Entity Identifier", "isns.entity_identifier", - FT_STRING, BASE_NONE, NULL, 0x0, - "Entity Identifier of this object", HFILL }}, - - { &hf_isns_mgmt_ip_addr, - { "Management IP Address", "isns.mgmt.ip_address", - FT_IPv6, BASE_NONE, NULL, 0x0, - "Management IPv4/IPv6 Address", HFILL }}, - - { &hf_isns_node_ip_addr, - { "Node IP Address", "isns.node.ip_address", - FT_IPv6, BASE_NONE, NULL, 0x0, - "Node IPv4/IPv6 Address", HFILL }}, - - { &hf_isns_port_ip_addr, - { "Port IP Address", "isns.port.ip_address", - FT_IPv6, BASE_NONE, NULL, 0x0, - "Port IPv4/IPv6 Address", HFILL }}, - - { &hf_isns_portal_ip_addr, - { "Portal IP Address", "isns.portal.ip_address", - FT_IPv6, BASE_NONE, NULL, 0x0, - "Portal IPv4/IPv6 Address", HFILL }}, - - { &hf_isns_dd_member_portal_ip_addr, - { "DD Member Portal IP Address", "isns.dd.member_portal.ip_address", - FT_IPv6, BASE_NONE, NULL, 0x0, - "DD Member Portal IPv4/IPv6 Address", HFILL }}, - - { &hf_isns_pg_iscsi_name, - { "PG iSCSI Name", "isns.pg_iscsi_name", - FT_STRING, BASE_NONE, NULL, 0x0, - NULL, HFILL }}, - - { &hf_isns_pg_portal_ip_addr, - { "PG Portal IP Address", "isns.pg_portal.ip_address", - FT_IPv6, BASE_NONE, NULL, 0x0, - "PG Portal IPv4/IPv6 Address", HFILL }}, - - { &hf_isns_pg_index, - { "PG Index", "isns.pg_index", - FT_UINT32, BASE_DEC, NULL, 0x0, - NULL, HFILL }}, - - { &hf_isns_pg_next_index, - { "PG Next Index", "isns.pg_next_index", - FT_UINT32, BASE_DEC, NULL, 0x0, - NULL, HFILL }}, - - { &hf_isns_dd_id_next_id, - { "DD ID Next ID", "isns.dd_id_next_id", - FT_UINT32, BASE_DEC, NULL, 0x0, - NULL, HFILL }}, - - { &hf_isns_member_iscsi_index, - { "Member iSCSI Index", "isns.member_iscsi_index", - FT_UINT32, BASE_DEC, NULL, 0x0, - NULL, HFILL }}, - - { &hf_isns_member_portal_index, - { "Member Portal Index", "isns.member_portal_index", - FT_UINT32, BASE_DEC, NULL, 0x0, - NULL, HFILL }}, - - { &hf_isns_member_fc_port_name, - { "Member FC Port Name", "isns.member_fc_port_name", - FT_UINT32, BASE_DEC, NULL, 0x0, - NULL, HFILL }}, - - { &hf_isns_vendor_oui, - { "Vendor OUI", "isns.vendor_oui", - FT_UINT32, BASE_DEC, NULL, 0x0, - NULL, HFILL }}, - - { &hf_isns_preferred_id, - { "Preferred ID", "isns.preferred_id", - FT_UINT32, BASE_DEC, NULL, 0x0, - NULL, HFILL }}, - - { &hf_isns_dd_set_id, - { "DD Set ID", "isns.dd_set_id", - FT_UINT32, BASE_DEC, NULL, 0x0, - NULL, HFILL }}, - - { &hf_isns_dd_id, - { "DD ID", "isns.dd_id", - FT_UINT32, BASE_DEC, NULL, 0x0, - NULL, HFILL }}, - - { &hf_isns_port_id, - { "Port ID", "isns.port_id", - FT_UINT24, BASE_HEX, NULL, 0x0, - NULL, HFILL }}, - - { &hf_isns_hard_address, - { "Hard Address", "isns.hard_address", - FT_UINT24, BASE_HEX, NULL, 0x0, - NULL, HFILL }}, - - { &hf_isns_wwnn_token, - { "WWNN Token", "isns.wwnn_token", - FT_UINT64, BASE_HEX, NULL, 0x0, - NULL, HFILL }}, - - { &hf_isns_fc_port_name_wwpn, - { "FC Port Name WWPN", "isns.fc_port_name_wwpn", - FT_UINT64, BASE_HEX, NULL, 0x0, - NULL, HFILL }}, - - { &hf_isns_fc_node_name_wwnn, - { "FC Node Name WWNN", "isns.fc_node_name_wwnn", - FT_UINT64, BASE_HEX, NULL, 0x0, - NULL, HFILL }}, - - { &hf_isns_node_ipa, - { "Node IPA", "isns.node_ipa", - FT_UINT64, BASE_HEX, NULL, 0x0, - NULL, HFILL }}, - - { &hf_isns_fabric_port_name, - { "Fabric Port Name", "isns.fabric_port_name", - FT_UINT64, BASE_HEX, NULL, 0x0, - NULL, HFILL }}, - - { &hf_isns_permanent_port_name, - { "Permanent Port Name", "isns.permanent_port_name", - FT_UINT64, BASE_HEX, NULL, 0x0, - NULL, HFILL }}, - - { &hf_isns_switch_name, - { "Switch Name", "isns.switch_name", - FT_UINT64, BASE_HEX, NULL, 0x0, - NULL, HFILL }}, - - { &hf_isns_dd_set_next_id, - { "DD Set Next ID", "isns.dd_set_next_id", - FT_UINT32, BASE_DEC, NULL, 0x0, - NULL, HFILL }}, - - { &hf_isns_assigned_id, - { "Assigned ID", "isns.assigned_id", - FT_UINT32, BASE_DEC, NULL, 0x0, - NULL, HFILL }}, - - { &hf_isns_node_index, - { "Node Index", "isns.node.index", - FT_UINT32, BASE_DEC, NULL, 0x0, - NULL, HFILL }}, - - { &hf_isns_node_next_index, - { "Node Next Index", "isns.node.next_index", - FT_UINT32, BASE_DEC, NULL, 0x0, - "Node INext index", HFILL }}, - - { &hf_isns_portal_index, - { "Portal Index", "isns.portal.index", - FT_UINT32, BASE_DEC, NULL, 0x0, - NULL, HFILL }}, - - { &hf_isns_portal_next_index, - { "Portal Next Index", "isns.portal.next_index", - FT_UINT32, BASE_DEC, NULL, 0x0, - NULL, HFILL }}, - - { &hf_isns_entity_index, - { "Entity Index", "isns.entity.index", - FT_UINT32, BASE_DEC, NULL, 0x0, - NULL, HFILL }}, - - { &hf_isns_entity_next_index, - { "Entity Next Index", "isns.entity.next_index", - FT_UINT32, BASE_DEC, NULL, 0x0, - "Next Entity Index", HFILL }}, - - { &hf_isns_timestamp, - { "Timestamp", "isns.timestamp", - FT_UINT64, BASE_DEC, NULL, 0x0, - "Timestamp in Seconds", HFILL }}, - - { &hf_isns_esi_interval, - { "ESI Interval", "isns.esi_interval", - FT_UINT32, BASE_DEC, NULL, 0x0, - "ESI Interval in Seconds", HFILL }}, - - { &hf_isns_registration_period, - { "Registration Period", "isns.registration_period", - FT_UINT32, BASE_DEC, NULL, 0x0, - "Registration Period in Seconds", HFILL }}, - - { &hf_isns_portal_group_tag, - { "PG Tag", "isns.portal_group_tag", - FT_UINT32, BASE_DEC, NULL, 0x0, - "Portal Group Tag", HFILL }}, - - { &hf_isns_payload, + /* The Header Stuff */ + { &hf_isns_version, + { "iSNSP Version", "isns.PVer", + FT_UINT16, BASE_DEC, NULL, 0, + NULL, HFILL} + }, + { &hf_isns_function_id, + { "Function ID", "isns.functionid", + FT_UINT16, BASE_DEC|BASE_EXT_STRING, &isns_function_ids_ext, 0, + NULL, HFILL} + }, + { &hf_isns_pdu_length, + { "PDU Length", "isns.pdulength", + FT_UINT16, BASE_DEC, NULL, 0, + NULL, HFILL} + }, + + { &hf_isns_flags, + { "Flags", "isns.flags", + FT_UINT16, BASE_HEX, NULL, 0, + NULL, HFILL} + }, + { &hf_isns_client, + { "Client", "isns.flags.client", + FT_BOOLEAN, 16, TFS(&tfs_isns_flag_client), ISNS_FLAGS_CLIENT, + NULL, HFILL} + }, + { &hf_isns_server, + { "Server", "isns.flags.server", + FT_BOOLEAN, 16, TFS(&tfs_isns_flag_server), ISNS_FLAGS_SERVER, + NULL, HFILL} + }, + { &hf_isns_auth, + { "Auth", "isns.flags.authentication_block", + FT_BOOLEAN, 16, TFS(&tfs_isns_flag_auth), ISNS_FLAGS_AUTH, + "is iSNS Authentication Block present?", HFILL} + }, + { &hf_isns_replace, + { "Replace", "isns.flags.replace", + FT_BOOLEAN, 16, TFS(&tfs_isns_flag_replace), ISNS_FLAGS_REPLACE, + NULL, HFILL} + }, + { &hf_isns_last_pdu, + { "Last PDU", "isns.flags.lastpdu", + FT_BOOLEAN, 16, TFS(&tfs_isns_flag_last_pdu), ISNS_FLAGS_LAST_PDU, + NULL, HFILL} + }, + { &hf_isns_first_pdu, + { "First PDU", "isns.flags.firstpdu", + FT_BOOLEAN, 16, TFS(&tfs_isns_flag_first_pdu), ISNS_FLAGS_FIRST_PDU, + NULL, HFILL } + }, + + + { &hf_isns_transaction_id, + { "Transaction ID", "isns.transactionid", + FT_UINT16, BASE_DEC, NULL, 0, + NULL, HFILL} + }, + { &hf_isns_sequence_id, + { "Sequence ID", "isns.sequenceid", + FT_UINT16, BASE_DEC, NULL, 0, + NULL, HFILL} + }, + + { &hf_isns_entity_protocol, + { "Entity Protocol", "isns.entity_protocol", + FT_UINT32, BASE_DEC, VALS(isns_entity_protocol), 0, + NULL, HFILL} + }, + /* The Payload stuff */ + + { &hf_isns_dd_member_portal_port, + { "DD Member Portal Port", "isns.dd_member_portal_port", + FT_UINT32, BASE_DEC, NULL, 0, + "TCP/UDP DD Member Portal Port", HFILL } + }, + + { &hf_isns_iscsi_node_type, + { "iSCSI Node Type", "isns.iscsi.node_type", + FT_UINT32, BASE_HEX, NULL, 0, + NULL, HFILL } + }, + + { &hf_isns_esi_port, + { "ESI Port", "isns.esi_port", + FT_UINT32, BASE_DEC, NULL, 0, + "TCP/UDP ESI Port", HFILL } + }, + + { &hf_isns_scn_port, + { "SCN Port", "isns.scn_port", + FT_UINT32, BASE_DEC, NULL, 0, + "TCP/UDP SCN Port", HFILL } + }, + + { &hf_isns_portal_port, + { "Portal Port", "isns.portal_port", + FT_UINT32, BASE_DEC, NULL, 0, + "TCP/UDP Portal Port", HFILL } + }, + + { &hf_isns_pg_portal_port, + { "PG Portal Port", "isns.pg.portal_port", + FT_UINT32, BASE_DEC, NULL, 0, + "PG Portal TCP/UDP Port", HFILL } + }, + + { &hf_isns_port_type, + { "Port Type", "isns.port.port_type", + FT_BOOLEAN, 16, TFS(&tfs_isns_port_type), 0x01, /* bit 15 (or bit 1 of a 16bit word) */ + NULL, HFILL } + }, + + { &hf_isns_psb, + { "Portal Security Bitmap", "isns.psb", + FT_UINT32, BASE_HEX, NULL, 0, + NULL, HFILL } + }, + { &hf_isns_psb_tunnel_mode, + { "Tunnel Mode", "isns.psb.tunnel", + FT_BOOLEAN, 32, TFS(&tfs_isns_psb_tunnel_mode), 0x0040, /* bit 25 */ + "Tunnel Mode Preferred", HFILL } + }, + { &hf_isns_psb_transport_mode, + { "Transport Mode", "isns.psb.transport", + FT_BOOLEAN, 32, TFS(&tfs_isns_psb_transport_mode), 0x0020, /* bit 26 */ + NULL, HFILL } + }, + { &hf_isns_psb_pfs, + { "PFS", "isns.psb.pfs", + FT_BOOLEAN, 32, TFS(&tfs_isns_psb_pfs), 0x0010, /* bit 27 */ + NULL, HFILL } + }, + { &hf_isns_psb_aggressive_mode, + { "Aggressive Mode", "isns.psb.aggressive_mode", + FT_BOOLEAN, 32, TFS(&tfs_isns_psb_aggressive_mode), 0x0008, /* bit 28 */ + NULL, HFILL } + }, + { &hf_isns_psb_main_mode, + { "Main Mode", "isns.psb.main_mode", + FT_BOOLEAN, 32, TFS(&tfs_isns_psb_main_mode), 0x0004, /* bit 29 */ + NULL, HFILL } + }, + { &hf_isns_psb_ike_ipsec, + { "IKE/IPSec", "isns.psb.ike_ipsec", + FT_BOOLEAN, 32, TFS(&tfs_isns_psb_ike_ipsec), 0x0002, /* bit 30 */ + NULL, HFILL } + }, + { &hf_isns_psb_bitmap, + { "Bitmap", "isns.psb.bitmap", + FT_BOOLEAN, 32, TFS(&tfs_isns_psb_bitmap), 0x0001, /* bit 31 */ + NULL, HFILL } + }, + + + + { &hf_isns_scn_bitmap, + { "iSCSI SCN Bitmap", "isns.scn_bitmap", + FT_UINT32, BASE_HEX, NULL, 0, + NULL, HFILL } + }, + { &hf_isns_scn_bitmap_initiator_and_self_information_only, + { "Initiator And Self Information Only", "isns.scn_bitmap.initiator_and_self_information_only", + FT_BOOLEAN, 32, TFS(&tfs_isns_scn_bitmap_initiator_and_self_information_only), 0x0080, /* bit 24 */ + NULL, HFILL } + }, + { &hf_isns_scn_bitmap_target_and_self_information_only, + { "Target And Self Information Only", "isns.scn_bitmap.target_and_self_information_only", + FT_BOOLEAN, 32, TFS(&tfs_isns_scn_bitmap_target_and_self_information_only), 0x0040, /* bit 25 */ + NULL, HFILL } + }, + { &hf_isns_scn_bitmap_management_registration_scn, + { "Management Registration/SCN", "isns.scn_bitmap.management_registration_scn", + FT_BOOLEAN, 32, TFS(&tfs_isns_scn_bitmap_management_registration_scn), 0x0020, /* bit 26 */ + NULL, HFILL } + }, + { &hf_isns_scn_bitmap_object_removed, + { "Object Removed", "isns.scn_bitmap.object_removed", + FT_BOOLEAN, 32, TFS(&tfs_isns_scn_bitmap_object_removed), 0x0010, /* bit 27 */ + NULL, HFILL } + }, + { &hf_isns_scn_bitmap_object_added, + { "Object Added", "isns.scn_bitmap.object_added", + FT_BOOLEAN, 32, TFS(&tfs_isns_scn_bitmap_object_added), 0x0008, /* bit 28 */ + NULL, HFILL } + }, + { &hf_isns_scn_bitmap_object_updated, + { "Object Updated", "isns.scn_bitmap.object_updated", + FT_BOOLEAN, 32, TFS(&tfs_isns_scn_bitmap_object_updated), 0x0004, /* bit 29 */ + NULL, HFILL } + }, + { &hf_isns_scn_bitmap_dd_dds_member_removed, + { "DD/DDS Member Removed (Mgmt Reg/SCN only)", "isns.scn_bitmap.dd_dds_member_removed", + FT_BOOLEAN, 32, TFS(&tfs_isns_scn_bitmap_dd_dds_member_removed), 0x0002, /* bit 30 */ + NULL, HFILL } + }, + { &hf_isns_scn_bitmap_dd_dds_member_added, + { "DD/DDS Member Added (Mgmt Reg/SCN only)", "isns.scn_bitmap.dd_dds_member_added", + FT_BOOLEAN, 32, TFS(&tfs_isns_scn_bitmap_dd_dds_member_added), 0x0001, /* bit 31 */ + NULL, HFILL } + }, + + + { &hf_isns_isnt_control, + { "Control", "isns.isnt.control", + FT_BOOLEAN, 32, TFS(&tfs_isns_isnt_control), 0x0004, /* bit 29 */ + NULL, HFILL } + }, + { &hf_isns_isnt_initiator, + { "Initiator", "isns.isnt.initiator", + FT_BOOLEAN, 32, TFS(&tfs_isns_isnt_initiator), 0x0002, /* bit 30 */ + NULL, HFILL } + }, + { &hf_isns_isnt_target, + { "Target", "isns.isnt.target", + FT_BOOLEAN, 32, TFS(&tfs_isns_isnt_target), 0x0001, /* bit 31 */ + NULL, HFILL } + }, + + + { &hf_isns_resp_errorcode, + { "ErrorCode", "isns.errorcode", + FT_UINT32, BASE_DEC|BASE_EXT_STRING, &isns_errorcode_ext, 0, + "iSNS Response Error Code", HFILL} + }, + + { &hf_isns_attr_tag, + { "Attribute Tag", "isns.attr.tag", + FT_UINT32, BASE_DEC|BASE_EXT_STRING, &isns_attribute_tags_ext, 0, + NULL, HFILL} + }, + + { &hf_isns_attr_len, + { "Attribute Length", "isns.attr.len", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL} + }, + + { &hf_isns_delimiter, + { "Delimiter", "isns.delimiter", + FT_NONE, BASE_NONE, NULL,0, + NULL, HFILL} + }, + + { &hf_isns_not_decoded_yet, + { "Not Decoded Yet", "isns.not_decoded_yet", + FT_NONE, BASE_NONE, NULL, 0, + "This tag is not yet decoded by Wireshark", HFILL} + }, + + { &hf_isns_heartbeat_ipv6_addr, + { "Heartbeat Address (ipv6)", "isns.heartbeat.address", + FT_IPv6, BASE_NONE, NULL, 0x0, + "Server IPv6 Address", HFILL }}, + + { &hf_isns_heartbeat_tcp_port, + { "Heartbeat TCP Port", "isns.heartbeat.tcpport", + FT_UINT16, BASE_DEC, NULL, 0x0, + "Server TCP Port", HFILL }}, + + { &hf_isns_heartbeat_udp_port, + { "Heartbeat UDP Port", "isns.heartbeat.udpport", + FT_UINT16, BASE_DEC, NULL, 0x0, + "Server UDP Port", HFILL }}, + + + { &hf_isns_heartbeat_interval, + { "Heartbeat Interval (secs)", "isns.heartbeat.interval", + FT_UINT32, BASE_DEC, NULL, 0x0, + "Server Heartbeat interval", HFILL }}, + + { &hf_isns_heartbeat_counter, + { "Heartbeat counter", "isns.heartbeat.counter", + FT_UINT32, BASE_DEC, NULL, 0x0, + "Server Heartbeat Counter", HFILL }}, + + { &hf_isns_iscsi_name, + { "iSCSI Name", "isns.iscsi_name", + FT_STRING, BASE_NONE, NULL, 0x0, + "iSCSI Name of device", HFILL }}, + + { &hf_isns_dd_member_iscsi_name, + { "DD Member iSCSI Name", "isns.dd_member.iscsi_name", + FT_STRING, BASE_NONE, NULL, 0x0, + "DD Member iSCSI Name of device", HFILL }}, + + { &hf_isns_virtual_fabric_id, + { "Virtual Fabric ID", "isns.virtual_fabric_id", + FT_STRING, BASE_NONE, NULL, 0x0, + NULL, HFILL }}, + + { &hf_isns_proxy_iscsi_name, + { "Proxy iSCSI Name", "isns.proxy_iscsi_name", + FT_STRING, BASE_NONE, NULL, 0x0, + NULL, HFILL }}, + + { &hf_isns_fc4_descriptor, + { "FC4 Descriptor", "isns.fc4_descriptor", + FT_STRING, BASE_NONE, NULL, 0x0, + "FC4 Descriptor of this device", HFILL }}, + + { &hf_isns_iscsi_auth_method, + { "iSCSI Auth Method", "isns.iscsi_auth_method", + FT_STRING, BASE_NONE, NULL, 0x0, + "Authentication Method required by this device", HFILL }}, + + { &hf_isns_iscsi_alias, + { "iSCSI Alias", "isns.iscsi_alias", + FT_STRING, BASE_NONE, NULL, 0x0, + "iSCSI Alias of device", HFILL }}, + + { &hf_isns_portal_symbolic_name, + { "Portal Symbolic Name", "isns.portal.symbolic_name", + FT_STRING, BASE_NONE, NULL, 0x0, + "Symbolic name of this portal", HFILL }}, + + { &hf_isns_dd_set_symbolic_name, + { "DD Set Symbolic Name", "isns.dd_set.symbolic_name", + FT_STRING, BASE_NONE, NULL, 0x0, + "Symbolic name of this DD Set", HFILL }}, + + { &hf_isns_dd_symbolic_name, + { "DD Symbolic Name", "isns.dd.symbolic_name", + FT_STRING, BASE_NONE, NULL, 0x0, + "Symbolic name of this DD", HFILL }}, + + { &hf_isns_symbolic_port_name, + { "Symbolic Port Name", "isns.port.symbolic_name", + FT_STRING, BASE_NONE, NULL, 0x0, + "Symbolic name of this port", HFILL }}, + + { &hf_isns_symbolic_node_name, + { "Symbolic Node Name", "isns.node.symbolic_name", + FT_STRING, BASE_NONE, NULL, 0x0, + "Symbolic name of this node", HFILL }}, + + { &hf_isns_entity_identifier, + { "Entity Identifier", "isns.entity_identifier", + FT_STRING, BASE_NONE, NULL, 0x0, + "Entity Identifier of this object", HFILL }}, + + { &hf_isns_mgmt_ip_addr, + { "Management IP Address", "isns.mgmt.ip_address", + FT_IPv6, BASE_NONE, NULL, 0x0, + "Management IPv4/IPv6 Address", HFILL }}, + + { &hf_isns_node_ip_addr, + { "Node IP Address", "isns.node.ip_address", + FT_IPv6, BASE_NONE, NULL, 0x0, + "Node IPv4/IPv6 Address", HFILL }}, + + { &hf_isns_port_ip_addr, + { "Port IP Address", "isns.port.ip_address", + FT_IPv6, BASE_NONE, NULL, 0x0, + "Port IPv4/IPv6 Address", HFILL }}, + + { &hf_isns_portal_ip_addr, + { "Portal IP Address", "isns.portal.ip_address", + FT_IPv6, BASE_NONE, NULL, 0x0, + "Portal IPv4/IPv6 Address", HFILL }}, + + { &hf_isns_dd_member_portal_ip_addr, + { "DD Member Portal IP Address", "isns.dd.member_portal.ip_address", + FT_IPv6, BASE_NONE, NULL, 0x0, + "DD Member Portal IPv4/IPv6 Address", HFILL }}, + + { &hf_isns_pg_iscsi_name, + { "PG iSCSI Name", "isns.pg_iscsi_name", + FT_STRING, BASE_NONE, NULL, 0x0, + NULL, HFILL }}, + + { &hf_isns_pg_portal_ip_addr, + { "PG Portal IP Address", "isns.pg_portal.ip_address", + FT_IPv6, BASE_NONE, NULL, 0x0, + "PG Portal IPv4/IPv6 Address", HFILL }}, + + { &hf_isns_pg_index, + { "PG Index", "isns.pg_index", + FT_UINT32, BASE_DEC, NULL, 0x0, + NULL, HFILL }}, + + { &hf_isns_pg_next_index, + { "PG Next Index", "isns.pg_next_index", + FT_UINT32, BASE_DEC, NULL, 0x0, + NULL, HFILL }}, + + { &hf_isns_dd_id_next_id, + { "DD ID Next ID", "isns.dd_id_next_id", + FT_UINT32, BASE_DEC, NULL, 0x0, + NULL, HFILL }}, + + { &hf_isns_member_iscsi_index, + { "Member iSCSI Index", "isns.member_iscsi_index", + FT_UINT32, BASE_DEC, NULL, 0x0, + NULL, HFILL }}, + + { &hf_isns_member_portal_index, + { "Member Portal Index", "isns.member_portal_index", + FT_UINT32, BASE_DEC, NULL, 0x0, + NULL, HFILL }}, + + { &hf_isns_member_fc_port_name, + { "Member FC Port Name", "isns.member_fc_port_name", + FT_UINT32, BASE_DEC, NULL, 0x0, + NULL, HFILL }}, + + { &hf_isns_vendor_oui, + { "Vendor OUI", "isns.vendor_oui", + FT_UINT32, BASE_DEC, NULL, 0x0, + NULL, HFILL }}, + + { &hf_isns_preferred_id, + { "Preferred ID", "isns.preferred_id", + FT_UINT32, BASE_DEC, NULL, 0x0, + NULL, HFILL }}, + + { &hf_isns_dd_set_id, + { "DD Set ID", "isns.dd_set_id", + FT_UINT32, BASE_DEC, NULL, 0x0, + NULL, HFILL }}, + + { &hf_isns_dd_id, + { "DD ID", "isns.dd_id", + FT_UINT32, BASE_DEC, NULL, 0x0, + NULL, HFILL }}, + + { &hf_isns_port_id, + { "Port ID", "isns.port_id", + FT_UINT24, BASE_HEX, NULL, 0x0, + NULL, HFILL }}, + + { &hf_isns_hard_address, + { "Hard Address", "isns.hard_address", + FT_UINT24, BASE_HEX, NULL, 0x0, + NULL, HFILL }}, + + { &hf_isns_wwnn_token, + { "WWNN Token", "isns.wwnn_token", + FT_UINT64, BASE_HEX, NULL, 0x0, + NULL, HFILL }}, + + { &hf_isns_fc_port_name_wwpn, + { "FC Port Name WWPN", "isns.fc_port_name_wwpn", + FT_UINT64, BASE_HEX, NULL, 0x0, + NULL, HFILL }}, + + { &hf_isns_fc_node_name_wwnn, + { "FC Node Name WWNN", "isns.fc_node_name_wwnn", + FT_UINT64, BASE_HEX, NULL, 0x0, + NULL, HFILL }}, + + { &hf_isns_node_ipa, + { "Node IPA", "isns.node_ipa", + FT_UINT64, BASE_HEX, NULL, 0x0, + NULL, HFILL }}, + + { &hf_isns_fabric_port_name, + { "Fabric Port Name", "isns.fabric_port_name", + FT_UINT64, BASE_HEX, NULL, 0x0, + NULL, HFILL }}, + + { &hf_isns_permanent_port_name, + { "Permanent Port Name", "isns.permanent_port_name", + FT_UINT64, BASE_HEX, NULL, 0x0, + NULL, HFILL }}, + + { &hf_isns_switch_name, + { "Switch Name", "isns.switch_name", + FT_UINT64, BASE_HEX, NULL, 0x0, + NULL, HFILL }}, + + { &hf_isns_dd_set_next_id, + { "DD Set Next ID", "isns.dd_set_next_id", + FT_UINT32, BASE_DEC, NULL, 0x0, + NULL, HFILL }}, + + { &hf_isns_assigned_id, + { "Assigned ID", "isns.assigned_id", + FT_UINT32, BASE_DEC, NULL, 0x0, + NULL, HFILL }}, + + { &hf_isns_node_index, + { "Node Index", "isns.node.index", + FT_UINT32, BASE_DEC, NULL, 0x0, + NULL, HFILL }}, + + { &hf_isns_node_next_index, + { "Node Next Index", "isns.node.next_index", + FT_UINT32, BASE_DEC, NULL, 0x0, + "Node INext index", HFILL }}, + + { &hf_isns_portal_index, + { "Portal Index", "isns.portal.index", + FT_UINT32, BASE_DEC, NULL, 0x0, + NULL, HFILL }}, + + { &hf_isns_portal_next_index, + { "Portal Next Index", "isns.portal.next_index", + FT_UINT32, BASE_DEC, NULL, 0x0, + NULL, HFILL }}, + + { &hf_isns_entity_index, + { "Entity Index", "isns.entity.index", + FT_UINT32, BASE_DEC, NULL, 0x0, + NULL, HFILL }}, + + { &hf_isns_entity_next_index, + { "Entity Next Index", "isns.entity.next_index", + FT_UINT32, BASE_DEC, NULL, 0x0, + "Next Entity Index", HFILL }}, + + { &hf_isns_timestamp, + { "Timestamp", "isns.timestamp", + FT_UINT64, BASE_DEC, NULL, 0x0, + "Timestamp in Seconds", HFILL }}, + + { &hf_isns_esi_interval, + { "ESI Interval", "isns.esi_interval", + FT_UINT32, BASE_DEC, NULL, 0x0, + "ESI Interval in Seconds", HFILL }}, + + { &hf_isns_registration_period, + { "Registration Period", "isns.registration_period", + FT_UINT32, BASE_DEC, NULL, 0x0, + "Registration Period in Seconds", HFILL }}, + + { &hf_isns_portal_group_tag, + { "PG Tag", "isns.portal_group_tag", + FT_UINT32, BASE_DEC, NULL, 0x0, + "Portal Group Tag", HFILL }}, + + { &hf_isns_payload, { "Payload", "isns.payload", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL} - } + } }; /* Setup protocol subtree array */ static gint *ett[] = { - &ett_isns, - &ett_isns_flags, - &ett_isns_payload, - &ett_isns_attribute, - &ett_isns_port, - &ett_isns_isnt + &ett_isns, + &ett_isns_flags, + &ett_isns_payload, + &ett_isns_attribute, + &ett_isns_port, + &ett_isns_isnt }; static ei_register_info ei[] = { - { &ei_isns_portal_ip_addr, { "isns.portal.ip_address.malformed", PI_MALFORMED, PI_ERROR, "Broken iSNS implementation. The PORTAL_IP_ADDRESS tag should be 16 bytes in length", EXPFILL }}, - { &ei_isns_not_first_pdu, { "isns.not_first_pdu", PI_PROTOCOL, PI_WARN, "This is not the first PDU. The attributes are not decoded", EXPFILL }}, + { &ei_isns_portal_ip_addr, + { "isns.portal.ip_address.malformed", + PI_MALFORMED, PI_ERROR, + "Broken iSNS implementation. The PORTAL_IP_ADDRESS tag should be 16 bytes in length", EXPFILL }}, + { &ei_isns_not_first_pdu, + { "isns.not_first_pdu", + PI_PROTOCOL, PI_WARN, + "This is not the first PDU. The attributes are not decoded", EXPFILL }}, }; module_t *isns_module; @@ -1918,7 +1924,7 @@ void proto_register_isns(void) /* Register the protocol name and description */ proto_isns = proto_register_protocol("iSNS", - "iSNS", "isns"); + "iSNS", "isns"); proto_register_field_array(proto_isns, hf, array_length(hf)); proto_register_subtree_array(ett, array_length(ett)); expert_isns = expert_register_protocol(proto_isns); @@ -1926,11 +1932,12 @@ void proto_register_isns(void) /* Register preferences */ isns_module = prefs_register_protocol(proto_isns, NULL); - prefs_register_bool_preference(isns_module, "desegment", - "Reassemble iSNS messages spanning multiple TCP segments", - "Whether the iSNS dissector should reassemble messages spanning multiple TCP segments." - " To use this option, you must also enable \"Allow subdissectors to reassemble TCP streams\" in the TCP protocol settings.", - &isns_desegment); + prefs_register_bool_preference( + isns_module, "desegment", + "Reassemble iSNS messages spanning multiple TCP segments", + "Whether the iSNS dissector should reassemble messages spanning multiple TCP segments." + " To use this option, you must also enable \"Allow subdissectors to reassemble TCP streams\" in the TCP protocol settings.", + &isns_desegment); } void @@ -1942,3 +1949,16 @@ proto_reg_handoff_isns(void) dissector_add_uint("tcp.port",ISNS_TCP_PORT,isns_tcp_handle); dissector_add_uint("udp.port",ISNS_UDP_PORT,isns_udp_handle); } + +/* + * 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: + */ diff --git a/epan/dissectors/packet-nlsp.c b/epan/dissectors/packet-nlsp.c index 672daf0012..cc97cba9bc 100644 --- a/epan/dissectors/packet-nlsp.c +++ b/epan/dissectors/packet-nlsp.c @@ -284,7 +284,7 @@ nlsp_dissect_clvs(tvbuff_t *tvb, packet_info* pinfo, proto_tree *tree, int offse */ static void dissect_area_address_clv(tvbuff_t *tvb, packet_info* pinfo, proto_tree *tree, int offset, - int length) + int length) { while (length > 0) { if (length < 4) { @@ -326,7 +326,7 @@ dissect_area_address_clv(tvbuff_t *tvb, packet_info* pinfo, proto_tree *tree, in */ static void dissect_neighbor_clv(tvbuff_t *tvb, packet_info* pinfo, proto_tree *tree, int offset, - int length) + int length) { while (length > 0) { if (length < 6) { @@ -357,7 +357,7 @@ dissect_neighbor_clv(tvbuff_t *tvb, packet_info* pinfo, proto_tree *tree, int of */ static void dissect_hello_local_mtu_clv(tvbuff_t *tvb, packet_info* pinfo, proto_tree *tree, int offset, - int length) + int length) { if (length < 4) { proto_tree_add_expert_format(tree, pinfo, &ei_nlsp_short_packet, tvb, offset, -1, @@ -439,7 +439,7 @@ static const value_string nlsp_hello_circuit_type_vals[] = { static void nlsp_dissect_nlsp_hello(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, - int offset, int hello_type, int header_length) + int offset, int hello_type, int header_length) { guint16 packet_length; int len; @@ -517,7 +517,7 @@ nlsp_dissect_nlsp_hello(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, */ static void dissect_lsp_mgt_info_clv(tvbuff_t *tvb, packet_info* pinfo, proto_tree *tree, int offset, - int length) + int length) { guint8 name_length; @@ -625,7 +625,7 @@ static const value_string media_type_vals[] = { static void dissect_lsp_link_info_clv(tvbuff_t *tvb, packet_info* pinfo, proto_tree *tree, int offset, - int length) + int length) { guint8 flags_cost; @@ -721,7 +721,7 @@ dissect_lsp_link_info_clv(tvbuff_t *tvb, packet_info* pinfo, proto_tree *tree, i */ static void dissect_lsp_svcs_info_clv(tvbuff_t *tvb, packet_info* pinfo, proto_tree *tree, int offset, - int length) + int length) { if (length < 1) { proto_tree_add_expert_format(tree, pinfo, &ei_nlsp_short_packet, tvb, offset, -1, @@ -796,7 +796,7 @@ dissect_lsp_svcs_info_clv(tvbuff_t *tvb, packet_info* pinfo, proto_tree *tree, i */ static void dissect_lsp_ext_routes_clv(tvbuff_t *tvb, packet_info* pinfo, proto_tree *tree, int offset, - int length) + int length) { while (length > 0) { if (length < 1) { @@ -906,7 +906,7 @@ static const nlsp_clv_handle_t clv_l1_lsp_opts[] = { static void nlsp_dissect_nlsp_lsp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, - int offset, int header_length) + int offset, int header_length) { guint16 packet_length; guint16 remaining_lifetime; @@ -1001,7 +1001,7 @@ nlsp_dissect_nlsp_lsp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, */ static void dissect_csnp_lsp_entries(tvbuff_t *tvb, packet_info* pinfo, proto_tree *tree, int offset, - int length) + int length) { proto_tree *subtree; @@ -1037,7 +1037,7 @@ dissect_csnp_lsp_entries(tvbuff_t *tvb, packet_info* pinfo, proto_tree *tree, in static void dissect_psnp_lsp_entries(tvbuff_t *tvb, packet_info* pinfo, proto_tree *tree, int offset, - int length) + int length) { proto_tree *subtree; @@ -1105,7 +1105,7 @@ static const nlsp_clv_handle_t clv_l1_csnp_opts[] = { */ static void nlsp_dissect_nlsp_csnp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, - int offset, int header_length) + int offset, int header_length) { guint16 packet_length; int len; @@ -1185,7 +1185,7 @@ static const nlsp_clv_handle_t clv_l1_psnp_opts[] = { */ static void nlsp_dissect_nlsp_psnp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, - int offset, int header_length) + int offset, int header_length) { guint16 packet_length; int len; @@ -1329,152 +1329,408 @@ void proto_register_nlsp(void) { static hf_register_info hf[] = { - { &hf_nlsp_irpd, - { "NetWare Link Services Protocol Discriminator", "nlsp.irpd", - FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL }}, - - { &hf_nlsp_header_length, - { "PDU Header Length", "nlsp.header_length", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL }}, - - { &hf_nlsp_minor_version, - { "Minor Version", "nlsp.minor_version", FT_UINT8, - BASE_DEC, NULL, 0x0, NULL, HFILL }}, - - { &hf_nlsp_nr, - { "Multi-homed Non-routing Server", "nlsp.nr", FT_BOOLEAN, 8, - NULL, 0x80, NULL, HFILL }}, - - { &hf_nlsp_type, - { "Packet Type", "nlsp.type", FT_UINT8, BASE_DEC, - VALS(nlsp_packet_type_vals), PACKET_TYPE_MASK, NULL, HFILL }}, - - { &hf_nlsp_major_version, - { "Major Version", "nlsp.major_version", FT_UINT8, - BASE_DEC, NULL, 0x0, NULL, HFILL }}, - - { &hf_nlsp_packet_length, - { "Packet Length", "nlsp.packet_length", - FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL }}, - - { &hf_nlsp_hello_state, - { "State", "nlsp.hello.state", FT_UINT8, BASE_DEC, - VALS(nlsp_hello_state_vals), NLSP_HELLO_STATE_MASK, - NULL, HFILL }}, - - { &hf_nlsp_hello_multicast, - { "Multicast Routing", "nlsp.hello.multicast", FT_BOOLEAN, 8, - TFS(&tfs_supported_not_supported), NLSP_HELLO_MULTICAST_MASK, - "If set, this router supports multicast routing", HFILL }}, - - { &hf_nlsp_hello_circuit_type, - { "Circuit Type", "nlsp.hello.circuit_type", FT_UINT8, BASE_DEC, - VALS(nlsp_hello_circuit_type_vals), NLSP_HELLO_CTYPE_MASK, - NULL, HFILL }}, - - { &hf_nlsp_hello_holding_timer, - { "Holding Timer", "nlsp.hello.holding_timer", FT_UINT8, BASE_DEC, - NULL, 0x0, NULL, HFILL }}, - - { &hf_nlsp_hello_priority, - { "Priority", "nlsp.hello.priority", FT_UINT8, BASE_DEC, - NULL, NLSP_HELLO_PRIORITY_MASK, - NULL, HFILL }}, - - { &hf_nlsp_lsp_sequence_number, - { "Sequence Number", "nlsp.sequence_number", - FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }}, - - { &hf_nlsp_lsp_checksum, - { "Checksum", "nlsp.lsp.checksum", - FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL }}, - - { &hf_nlsp_lsp_p, - { "Partition Repair", "nlsp.lsp.partition_repair", FT_BOOLEAN, 8, - TFS(&tfs_supported_not_supported), NLSP_LSP_PARTITION_MASK, - "If set, this router supports the optional Partition Repair function", HFILL }}, - - { &hf_nlsp_lsp_attached_flag, - { "Attached Flag", "nlsp.lsp.attached_flag", FT_UINT8, BASE_DEC, - VALS(nlsp_attached_flag_vals), NLSP_LSP_ATT_MASK, NULL, HFILL }}, - - { &hf_nlsp_lsp_lspdbol, - { "LSP Database Overloaded", "nlsp.lsp.lspdbol", FT_BOOLEAN, 8, - NULL, NLSP_LSP_OVERFLOW_MASK, NULL, HFILL }}, - - { &hf_nlsp_lsp_router_type, - { "Router Type", "nlsp.lsp.router_type", FT_UINT8, BASE_DEC, - VALS(nlsp_router_type_vals), NLSP_LSP_ROUTER_TYPE_MASK, - NULL, HFILL }}, - - { &hf_nlsp_lsp_link_info_clv_flags_cost_present, - { "Cost present", "nlsp.lsp.link_info_clv.flags.cost_present", FT_BOOLEAN, 8, - TFS(&tfs_no_yes), 0x80, NULL, HFILL }}, - - { &hf_nlsp_lsp_link_info_clv_flags_cost_metric, - { "Cost metric", "nlsp.lsp.link_info_clv.flags.cost_metric", FT_BOOLEAN, 8, - TFS(&tfs_internal_external), 0x40, NULL, HFILL }}, - - { &hf_nlsp_lsp_link_info_clv_flags_cost, - { "Cost", "nlsp.lsp.link_info_clv.flags.cost", FT_UINT8, BASE_DEC, - NULL, 0x3F, NULL, HFILL }}, - - /* Generated from convert_proto_tree_add_text.pl */ - { &hf_nlsp_unknown_code, { "Unknown code", "nlsp.unknown_code", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL }}, - { &hf_nlsp_area_address_network_number, { "Area address network number", "nlsp.area_address.network_number", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }}, - { &hf_nlsp_area_address_mask, { "Area address mask", "nlsp.area_address.mask", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }}, - { &hf_nlsp_neighbor, { "Neighbor", "nlsp.neighbor", FT_ETHER, BASE_NONE, NULL, 0x0, NULL, HFILL }}, - { &hf_nlsp_hello_local_mtu_mtu_size, { "MTU Size", "nlsp.hello_local_mtu.mtu_size", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }}, - { &hf_nlsp_hello_sending_router_system_id, { "Sending Router System ID", "nlsp.hello.sending_router_system_id", FT_ETHER, BASE_NONE, NULL, 0x0, NULL, HFILL }}, - { &hf_nlsp_hello_local_wan_circuit_id, { "Local WAN Circuit ID", "nlsp.hello.local_wan_circuit_id", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL }}, - { &hf_nlsp_hello_designated_router_system_id, { "Designated Router System ID", "nlsp.hello.designated_router_system_id", FT_ETHER, BASE_NONE, NULL, 0x0, NULL, HFILL }}, - { &hf_nlsp_hello_designated_router_pseudonode_id, { "Designated Router Pseudonode ID", "nlsp.hello.designated_router_pseudonode_id", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL }}, - { &hf_nlsp_mgt_info_network_number, { "Network number", "nlsp.mgt_info.network_number", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }}, - { &hf_nlsp_mgt_info_node_number, { "Node number", "nlsp.mgt_info.node_number", FT_ETHER, BASE_NONE, NULL, 0x0, NULL, HFILL }}, - { &hf_nlsp_mgt_info_ipx_version_number, { "IPX version number", "nlsp.mgt_info.ipx_version_number", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL }}, - { &hf_nlsp_mgt_info_name_length, { "Name length", "nlsp.mgt_info.name_length", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL }}, - { &hf_nlsp_mgt_info_name, { "Name", "nlsp.mgt_info.name", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }}, - { &hf_nlsp_link_info_router_system_id, { "Router System ID", "nlsp.link_info.router_system_id", FT_ETHER, BASE_NONE, NULL, 0x0, NULL, HFILL }}, - { &hf_nlsp_link_info_router_pseudonode_id, { "Router Pseudonode ID", "nlsp.link_info.router_pseudonode_id", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL }}, - { &hf_nlsp_link_info_mtu_size, { "MTU Size", "nlsp.link_info.mtu_size", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }}, - { &hf_nlsp_link_info_delay, { "Delay", "nlsp.link_info.delay", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }}, - { &hf_nlsp_link_info_throughput, { "Throughput", "nlsp.link_info.throughput", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }}, - { &hf_nlsp_link_info_media_type, { "Media type", "nlsp.link_info.media_type", FT_UINT16, BASE_DEC, VALS(media_type_vals), 0x0, NULL, HFILL }}, - { &hf_nlsp_svcs_info_hops_to_reach_the_service, { "Hops to reach the service", "nlsp.svcs_info.hops_to_reach_the_service", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL }}, - { &hf_nlsp_svcs_info_network_number, { "Network number", "nlsp.svcs_info.network_number", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }}, - { &hf_nlsp_svcs_info_node_number, { "Node number", "nlsp.svcs_info.node_number", FT_ETHER, BASE_NONE, NULL, 0x0, NULL, HFILL }}, - { &hf_nlsp_svcs_info_socket, { "Socket", "nlsp.svcs_info.socket", FT_UINT16, BASE_DEC|BASE_EXT_STRING, &ipx_socket_vals_ext, 0x0, NULL, HFILL }}, - { &hf_nlsp_svcs_info_type, { "Type", "nlsp.svcs_info.type", FT_UINT16, BASE_DEC|BASE_EXT_STRING, &novell_server_vals_ext, 0x0, NULL, HFILL }}, - { &hf_nlsp_svcs_info_service_name, { "Service Name", "nlsp.svcs_info.service_name", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }}, - { &hf_nlsp_ext_routes_hops, { "Hops", "nlsp.ext_routes.hops", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL }}, - { &hf_nlsp_ext_routes_network_number, { "Network number", "nlsp.ext_routes.network_number", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }}, - { &hf_nlsp_ext_routes_rip_delay, { "RIP delay", "nlsp.ext_routes.rip_delay", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL }}, - { &hf_nlsp_remaining_lifetime, { "Remaining Lifetime", "nlsp.remaining_lifetime", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL }}, - { &hf_nlsp_lsp_id_system_id, { "LSP ID system ID", "nlsp.lsp_id_system_id", FT_ETHER, BASE_NONE, NULL, 0x0, NULL, HFILL }}, - { &hf_nlsp_lsp_id_pseudonode_id, { "LSP ID pseudonode ID", "nlsp.lsp_id_pseudonode_id", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL }}, - { &hf_nlsp_lsp_id_lsp_number, { "LSP ID LSP number", "nlsp.lsp_id_lsp_number", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL }}, - { &hf_nlsp_csnp_lsp_id_source_id, { "LSP ID source ID", "nlsp.csnp.lsp_id_source_id", FT_ETHER, BASE_NONE, NULL, 0x0, NULL, HFILL }}, - { &hf_nlsp_csnp_lsp_id_pseudonode_id, { "LSP ID pseudonode ID", "nlsp.csnp.lsp_id_pseudonode_id", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL }}, - { &hf_nlsp_csnp_lsp_id_lsp_number, { "LSP ID LSP number", "nlsp.csnp.lsp_id_lsp_number", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL }}, - { &hf_nlsp_csnp_lsp_sequence_number, { "LSP Sequence Number", "nlsp.csnp.lsp_sequence_number", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }}, - { &hf_nlsp_csnp_remaining_lifetime, { "Remaining Lifetime", "nlsp.csnp.remaining_lifetime", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL }}, - { &hf_nlsp_csnp_lsp_checksum, { "LSP checksum", "nlsp.csnp.lsp_checksum", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL }}, - { &hf_nlsp_psnp_lsp_id_source_id, { "LSP ID source ID", "nlsp.psnp.lsp_id_source_id", FT_ETHER, BASE_NONE, NULL, 0x0, NULL, HFILL }}, - { &hf_nlsp_psnp_lsp_id_pseudonode_id, { "LSP ID pseudonode ID", "nlsp.psnp.lsp_id_pseudonode_id", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL }}, - { &hf_nlsp_psnp_lsp_id_lsp_number, { "LSP ID LSP number", "nlsp.psnp.lsp_id_lsp_number", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL }}, - { &hf_nlsp_psnp_lsp_sequence_number, { "LSP Sequence Number", "nlsp.psnp.lsp_sequence_number", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL }}, - { &hf_nlsp_psnp_remaining_lifetime, { "Remaining Lifetime", "nlsp.psnp.remaining_lifetime", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL }}, - { &hf_nlsp_psnp_lsp_checksum, { "LSP checksum", "nlsp.psnp.lsp_checksum", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL }}, - { &hf_nlsp_csnp_source_id_system_id, { "Source ID system ID", "nlsp.csnp.source_id_system_id", FT_ETHER, BASE_NONE, NULL, 0x0, NULL, HFILL }}, - { &hf_nlsp_csnp_source_id_pseudonode_id, { "Source ID pseudonode ID", "nlsp.csnp.source_id_pseudonode_id", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL }}, - { &hf_nlsp_csnp_start_lsp_id_source_id, { "Start LSP ID source ID", "nlsp.csnp.start_lsp_id_source_id", FT_ETHER, BASE_NONE, NULL, 0x0, NULL, HFILL }}, - { &hf_nlsp_csnp_start_lsp_id_pseudonode_id, { "Start LSP ID pseudonode ID", "nlsp.csnp.start_lsp_id_pseudonode_id", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL }}, - { &hf_nlsp_csnp_start_lsp_id_lsp_number, { "Start LSP ID LSP number", "nlsp.csnp.start_lsp_id_lsp_number", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL }}, - { &hf_nlsp_csnp_end_lsp_id_source_id, { "End LSP ID source ID", "nlsp.csnp.end_lsp_id_source_id", FT_ETHER, BASE_NONE, NULL, 0x0, NULL, HFILL }}, - { &hf_nlsp_csnp_end_lsp_id_pseudonode_id, { "End LSP ID pseudonode ID", "nlsp.csnp.end_lsp_id_pseudonode_id", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL }}, - { &hf_nlsp_csnp_end_lsp_id_lsp_number, { "End LSP ID LSP number", "nlsp.csnp.end_lsp_id_lsp_number", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL }}, - { &hf_nlsp_psnp_source_id_system_id, { "Source ID system ID", "nlsp.psnp.source_id_system_id", FT_ETHER, BASE_NONE, NULL, 0x0, NULL, HFILL }}, - { &hf_nlsp_psnp_source_id_pseudonode_id, { "Source ID pseudonode ID", "nlsp.psnp.source_id_pseudonode_id", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL }}, + { &hf_nlsp_irpd, + { "NetWare Link Services Protocol Discriminator", "nlsp.irpd", + FT_UINT8, BASE_HEX, NULL, 0x0, + NULL, HFILL } + }, + + { &hf_nlsp_header_length, + { "PDU Header Length", "nlsp.header_length", + FT_UINT8, BASE_DEC, NULL, 0x0, + NULL, HFILL } + }, + + { &hf_nlsp_minor_version, + { "Minor Version", "nlsp.minor_version", + FT_UINT8, BASE_DEC, NULL, 0x0, + NULL, HFILL } + }, + + { &hf_nlsp_nr, + { "Multi-homed Non-routing Server", "nlsp.nr", + FT_BOOLEAN, 8, NULL, 0x80, + NULL, HFILL } + }, + + { &hf_nlsp_type, + { "Packet Type", "nlsp.type", + FT_UINT8, BASE_DEC, VALS(nlsp_packet_type_vals), PACKET_TYPE_MASK, + NULL, HFILL } + }, + + { &hf_nlsp_major_version, + { "Major Version", "nlsp.major_version", + FT_UINT8, BASE_DEC, NULL, 0x0, + NULL, HFILL } + }, + + { &hf_nlsp_packet_length, + { "Packet Length", "nlsp.packet_length", + FT_UINT16, BASE_DEC, NULL, 0x0, + NULL, HFILL } + }, + + { &hf_nlsp_hello_state, + { "State", "nlsp.hello.state", + FT_UINT8, BASE_DEC, VALS(nlsp_hello_state_vals), NLSP_HELLO_STATE_MASK, + NULL, HFILL } + }, + + { &hf_nlsp_hello_multicast, + { "Multicast Routing", "nlsp.hello.multicast", + FT_BOOLEAN, 8, TFS(&tfs_supported_not_supported), NLSP_HELLO_MULTICAST_MASK, + "If set, this router supports multicast routing", HFILL } + }, + + { &hf_nlsp_hello_circuit_type, + { "Circuit Type", "nlsp.hello.circuit_type", + FT_UINT8, BASE_DEC, VALS(nlsp_hello_circuit_type_vals), NLSP_HELLO_CTYPE_MASK, + NULL, HFILL } + }, + + { &hf_nlsp_hello_holding_timer, + { "Holding Timer", "nlsp.hello.holding_timer", + FT_UINT8, BASE_DEC, NULL, 0x0, + NULL, HFILL } + }, + + { &hf_nlsp_hello_priority, + { "Priority", "nlsp.hello.priority", + FT_UINT8, BASE_DEC, NULL, NLSP_HELLO_PRIORITY_MASK, + NULL, HFILL } + }, + + { &hf_nlsp_lsp_sequence_number, + { "Sequence Number", "nlsp.sequence_number", + FT_UINT32, BASE_HEX, NULL, 0x0, + NULL, HFILL } + }, + + { &hf_nlsp_lsp_checksum, + { "Checksum", "nlsp.lsp.checksum", + FT_UINT16, BASE_HEX, NULL, 0x0, + NULL, HFILL } + }, + + { &hf_nlsp_lsp_p, + { "Partition Repair", "nlsp.lsp.partition_repair", + FT_BOOLEAN, 8, TFS(&tfs_supported_not_supported), NLSP_LSP_PARTITION_MASK, + "If set, this router supports the optional Partition Repair function", HFILL } + }, + + { &hf_nlsp_lsp_attached_flag, + { "Attached Flag", "nlsp.lsp.attached_flag", + FT_UINT8, BASE_DEC, VALS(nlsp_attached_flag_vals), NLSP_LSP_ATT_MASK, + NULL, HFILL } + }, + + { &hf_nlsp_lsp_lspdbol, + { "LSP Database Overloaded", "nlsp.lsp.lspdbol", + FT_BOOLEAN, 8, NULL, NLSP_LSP_OVERFLOW_MASK, + NULL, HFILL } + }, + + { &hf_nlsp_lsp_router_type, + { "Router Type", "nlsp.lsp.router_type", + FT_UINT8, BASE_DEC, VALS(nlsp_router_type_vals), NLSP_LSP_ROUTER_TYPE_MASK, + NULL, HFILL } + }, + + { &hf_nlsp_lsp_link_info_clv_flags_cost_present, + { "Cost present", "nlsp.lsp.link_info_clv.flags.cost_present", + FT_BOOLEAN, 8, TFS(&tfs_no_yes), 0x80, + NULL, HFILL } + }, + + { &hf_nlsp_lsp_link_info_clv_flags_cost_metric, + { "Cost metric", "nlsp.lsp.link_info_clv.flags.cost_metric", + FT_BOOLEAN, 8, TFS(&tfs_internal_external), 0x40, + NULL, HFILL } + }, + + { &hf_nlsp_lsp_link_info_clv_flags_cost, + { "Cost", "nlsp.lsp.link_info_clv.flags.cost", + FT_UINT8, BASE_DEC, NULL, 0x3F, + NULL, HFILL } + }, + + /* Generated from convert_proto_tree_add_text.pl */ + { &hf_nlsp_unknown_code, + { "Unknown code", "nlsp.unknown_code", + FT_UINT8, BASE_DEC, NULL, 0x0, + NULL, HFILL } + }, + { &hf_nlsp_area_address_network_number, + { "Area address network number", "nlsp.area_address.network_number", + FT_UINT32, BASE_HEX, NULL, 0x0, + NULL, HFILL } + }, + { &hf_nlsp_area_address_mask, + { "Area address mask", "nlsp.area_address.mask", + FT_UINT32, BASE_HEX, NULL, 0x0, + NULL, HFILL } + }, + { &hf_nlsp_neighbor, + { "Neighbor", "nlsp.neighbor", + FT_ETHER, BASE_NONE, NULL, 0x0, + NULL, HFILL } + }, + { &hf_nlsp_hello_local_mtu_mtu_size, + { "MTU Size", "nlsp.hello_local_mtu.mtu_size", + FT_UINT32, BASE_DEC, NULL, 0x0, + NULL, HFILL } + }, + { &hf_nlsp_hello_sending_router_system_id, + { "Sending Router System ID", "nlsp.hello.sending_router_system_id", + FT_ETHER, BASE_NONE, NULL, 0x0, + NULL, HFILL } + }, + { &hf_nlsp_hello_local_wan_circuit_id, + { "Local WAN Circuit ID", "nlsp.hello.local_wan_circuit_id", + FT_UINT8, BASE_DEC, NULL, 0x0, + NULL, HFILL } + }, + { &hf_nlsp_hello_designated_router_system_id, + { "Designated Router System ID", "nlsp.hello.designated_router_system_id", + FT_ETHER, BASE_NONE, NULL, 0x0, + NULL, HFILL } + }, + { &hf_nlsp_hello_designated_router_pseudonode_id, + { "Designated Router Pseudonode ID", "nlsp.hello.designated_router_pseudonode_id", + FT_UINT8, BASE_DEC, NULL, 0x0, + NULL, HFILL } + }, + { &hf_nlsp_mgt_info_network_number, + { "Network number", "nlsp.mgt_info.network_number", + FT_UINT32, BASE_HEX, NULL, 0x0, + NULL, HFILL } + }, + { &hf_nlsp_mgt_info_node_number, + { "Node number", "nlsp.mgt_info.node_number", + FT_ETHER, BASE_NONE, NULL, 0x0, + NULL, HFILL } + }, + { &hf_nlsp_mgt_info_ipx_version_number, + { "IPX version number", "nlsp.mgt_info.ipx_version_number", + FT_UINT8, BASE_DEC, NULL, 0x0, + NULL, HFILL } + }, + { &hf_nlsp_mgt_info_name_length, + { "Name length", "nlsp.mgt_info.name_length", + FT_UINT8, BASE_DEC, NULL, 0x0, + NULL, HFILL } + }, + { &hf_nlsp_mgt_info_name, + { "Name", "nlsp.mgt_info.name", + FT_STRING, BASE_NONE, NULL, 0x0, + NULL, HFILL } + }, + { &hf_nlsp_link_info_router_system_id, + { "Router System ID", "nlsp.link_info.router_system_id", + FT_ETHER, BASE_NONE, NULL, 0x0, + NULL, HFILL } + }, + { &hf_nlsp_link_info_router_pseudonode_id, + { "Router Pseudonode ID", "nlsp.link_info.router_pseudonode_id", + FT_UINT8, BASE_DEC, NULL, 0x0, + NULL, HFILL } + }, + { &hf_nlsp_link_info_mtu_size, + { "MTU Size", "nlsp.link_info.mtu_size", + FT_UINT32, BASE_DEC, NULL, 0x0, + NULL, HFILL } + }, + { &hf_nlsp_link_info_delay, + { "Delay", "nlsp.link_info.delay", + FT_UINT32, BASE_DEC, NULL, 0x0, + NULL, HFILL } + }, + { &hf_nlsp_link_info_throughput, + { "Throughput", "nlsp.link_info.throughput", + FT_UINT32, BASE_DEC, NULL, 0x0, + NULL, HFILL } + }, + { &hf_nlsp_link_info_media_type, + { "Media type", "nlsp.link_info.media_type", + FT_UINT16, BASE_DEC, VALS(media_type_vals), 0x0, + NULL, HFILL } + }, + { &hf_nlsp_svcs_info_hops_to_reach_the_service, + { "Hops to reach the service", "nlsp.svcs_info.hops_to_reach_the_service", + FT_UINT8, BASE_DEC, NULL, 0x0, + NULL, HFILL } + }, + { &hf_nlsp_svcs_info_network_number, + { "Network number", "nlsp.svcs_info.network_number", + FT_UINT32, BASE_HEX, NULL, 0x0, + NULL, HFILL } + }, + { &hf_nlsp_svcs_info_node_number, + { "Node number", "nlsp.svcs_info.node_number", + FT_ETHER, BASE_NONE, NULL, 0x0, + NULL, HFILL } + }, + { &hf_nlsp_svcs_info_socket, + { "Socket", "nlsp.svcs_info.socket", + FT_UINT16, BASE_DEC|BASE_EXT_STRING, &ipx_socket_vals_ext, 0x0, + NULL, HFILL } + }, + { &hf_nlsp_svcs_info_type, + { "Type", "nlsp.svcs_info.type", + FT_UINT16, BASE_DEC|BASE_EXT_STRING, &novell_server_vals_ext, 0x0, + NULL, HFILL } + }, + { &hf_nlsp_svcs_info_service_name, + { "Service Name", "nlsp.svcs_info.service_name", + FT_STRING, BASE_NONE, NULL, 0x0, + NULL, HFILL } + }, + { &hf_nlsp_ext_routes_hops, + { "Hops", "nlsp.ext_routes.hops", + FT_UINT8, BASE_DEC, NULL, 0x0, + NULL, HFILL } + }, + { &hf_nlsp_ext_routes_network_number, + { "Network number", "nlsp.ext_routes.network_number", + FT_UINT32, BASE_HEX, NULL, 0x0, + NULL, HFILL } + }, + { &hf_nlsp_ext_routes_rip_delay, + { "RIP delay", "nlsp.ext_routes.rip_delay", + FT_UINT16, BASE_DEC, NULL, 0x0, + NULL, HFILL } + }, + { &hf_nlsp_remaining_lifetime, + { "Remaining Lifetime", "nlsp.remaining_lifetime", + FT_UINT16, BASE_DEC, NULL, 0x0, + NULL, HFILL } + }, + { &hf_nlsp_lsp_id_system_id, + { "LSP ID system ID", "nlsp.lsp_id_system_id", + FT_ETHER, BASE_NONE, NULL, 0x0, + NULL, HFILL } + }, + { &hf_nlsp_lsp_id_pseudonode_id, + { "LSP ID pseudonode ID", "nlsp.lsp_id_pseudonode_id", + FT_UINT8, BASE_DEC, NULL, 0x0, + NULL, HFILL } + }, + { &hf_nlsp_lsp_id_lsp_number, + { "LSP ID LSP number", "nlsp.lsp_id_lsp_number", + FT_UINT8, BASE_DEC, NULL, 0x0, + NULL, HFILL } + }, + { &hf_nlsp_csnp_lsp_id_source_id, + { "LSP ID source ID", "nlsp.csnp.lsp_id_source_id", + FT_ETHER, BASE_NONE, NULL, 0x0, + NULL, HFILL } + }, + { &hf_nlsp_csnp_lsp_id_pseudonode_id, + { "LSP ID pseudonode ID", "nlsp.csnp.lsp_id_pseudonode_id", + FT_UINT8, BASE_DEC, NULL, 0x0, + NULL, HFILL } + }, + { &hf_nlsp_csnp_lsp_id_lsp_number, + { "LSP ID LSP number", "nlsp.csnp.lsp_id_lsp_number", + FT_UINT8, BASE_DEC, NULL, 0x0, + NULL, HFILL } + }, + { &hf_nlsp_csnp_lsp_sequence_number, + { "LSP Sequence Number", "nlsp.csnp.lsp_sequence_number", + FT_UINT32, BASE_HEX, NULL, 0x0, + NULL, HFILL } + }, + { &hf_nlsp_csnp_remaining_lifetime, + { "Remaining Lifetime", "nlsp.csnp.remaining_lifetime", + FT_UINT16, BASE_DEC, NULL, 0x0, + NULL, HFILL } + }, + { &hf_nlsp_csnp_lsp_checksum, + { "LSP checksum", "nlsp.csnp.lsp_checksum", + FT_UINT16, BASE_HEX, NULL, 0x0, + NULL, HFILL } + }, + { &hf_nlsp_psnp_lsp_id_source_id, + { "LSP ID source ID", "nlsp.psnp.lsp_id_source_id", + FT_ETHER, BASE_NONE, NULL, 0x0, + NULL, HFILL } + }, + { &hf_nlsp_psnp_lsp_id_pseudonode_id, + { "LSP ID pseudonode ID", "nlsp.psnp.lsp_id_pseudonode_id", + FT_UINT8, BASE_DEC, NULL, 0x0, + NULL, HFILL } + }, + { &hf_nlsp_psnp_lsp_id_lsp_number, + { "LSP ID LSP number", "nlsp.psnp.lsp_id_lsp_number", + FT_UINT8, BASE_DEC, NULL, 0x0, + NULL, HFILL } + }, + { &hf_nlsp_psnp_lsp_sequence_number, + { "LSP Sequence Number", "nlsp.psnp.lsp_sequence_number", + FT_UINT32, BASE_HEX, NULL, 0x0, + NULL, HFILL } + }, + { &hf_nlsp_psnp_remaining_lifetime, + { "Remaining Lifetime", "nlsp.psnp.remaining_lifetime", + FT_UINT16, BASE_DEC, NULL, 0x0, + NULL, HFILL } + }, + { &hf_nlsp_psnp_lsp_checksum, + { "LSP checksum", "nlsp.psnp.lsp_checksum", + FT_UINT16, BASE_HEX, NULL, 0x0, + NULL, HFILL } + }, + { &hf_nlsp_csnp_source_id_system_id, + { "Source ID system ID", "nlsp.csnp.source_id_system_id", + FT_ETHER, BASE_NONE, NULL, 0x0, + NULL, HFILL } + }, + { &hf_nlsp_csnp_source_id_pseudonode_id, + { "Source ID pseudonode ID", "nlsp.csnp.source_id_pseudonode_id", + FT_UINT8, BASE_DEC, NULL, 0x0, + NULL, HFILL } + }, + { &hf_nlsp_csnp_start_lsp_id_source_id, + { "Start LSP ID source ID", "nlsp.csnp.start_lsp_id_source_id", + FT_ETHER, BASE_NONE, NULL, 0x0, + NULL, HFILL } + }, + { &hf_nlsp_csnp_start_lsp_id_pseudonode_id, + { "Start LSP ID pseudonode ID", "nlsp.csnp.start_lsp_id_pseudonode_id", + FT_UINT8, BASE_DEC, NULL, 0x0, + NULL, HFILL } + }, + { &hf_nlsp_csnp_start_lsp_id_lsp_number, + { "Start LSP ID LSP number", "nlsp.csnp.start_lsp_id_lsp_number", + FT_UINT8, BASE_DEC, NULL, 0x0, + NULL, HFILL } + }, + { &hf_nlsp_csnp_end_lsp_id_source_id, + { "End LSP ID source ID", "nlsp.csnp.end_lsp_id_source_id", + FT_ETHER, BASE_NONE, NULL, 0x0, + NULL, HFILL } + }, + { &hf_nlsp_csnp_end_lsp_id_pseudonode_id, + { "End LSP ID pseudonode ID", "nlsp.csnp.end_lsp_id_pseudonode_id", + FT_UINT8, BASE_DEC, NULL, 0x0, + NULL, HFILL } + }, + { &hf_nlsp_csnp_end_lsp_id_lsp_number, + { "End LSP ID LSP number", "nlsp.csnp.end_lsp_id_lsp_number", + FT_UINT8, BASE_DEC, NULL, 0x0, + NULL, HFILL } + }, + { &hf_nlsp_psnp_source_id_system_id, + { "Source ID system ID", "nlsp.psnp.source_id_system_id", + FT_ETHER, BASE_NONE, NULL, 0x0, + NULL, HFILL } + }, + { &hf_nlsp_psnp_source_id_pseudonode_id, + { "Source ID pseudonode ID", "nlsp.psnp.source_id_pseudonode_id", + FT_UINT8, BASE_DEC, NULL, 0x0, + NULL, HFILL } + }, }; static gint *ett[] = { &ett_nlsp, @@ -1522,3 +1778,16 @@ proto_reg_handoff_nlsp(void) nlsp_handle = create_dissector_handle(dissect_nlsp, proto_nlsp); dissector_add_uint("ipx.socket", IPX_SOCKET_NLSP, nlsp_handle); } + +/* + * Editor modelines - http://www.wireshark.org/tools/modelines.html + * + * Local variables: + * c-basic-offset: 8 + * tab-width: 8 + * indent-tabs-mode: t + * End: + * + * vi: set shiftwidth=8 tabstop=8 noexpandtab: + * :indentSize=8:tabSize=8:noTabs=false: + */ diff --git a/epan/dissectors/packet-q2931.c b/epan/dissectors/packet-q2931.c index c47fbb47a2..2ee96034e6 100644 --- a/epan/dissectors/packet-q2931.c +++ b/epan/dissectors/packet-q2931.c @@ -144,7 +144,7 @@ static gint ett_q2931_ie_ext = -1; static gint ett_q2931_nsap = -1; static void dissect_q2931_ie(tvbuff_t *tvb, int offset, int len, - proto_tree *tree, guint8 info_element, guint8 info_element_ext); + proto_tree *tree, guint8 info_element, guint8 info_element_ext); /* * Q.2931 message types. @@ -340,7 +340,7 @@ static const true_false_string tfs_q2931_handling_instructions = { "Follow expli static void dissect_q2931_shift_ie(tvbuff_t *tvb, int offset, int len, - proto_tree *tree, guint8 info_element) + proto_tree *tree, guint8 info_element) { gboolean non_locking_shift; guint8 codeset; @@ -434,7 +434,7 @@ static const value_string q2931_sscs_type_vals[] = { static void dissect_q2931_aal_parameters_ie(tvbuff_t *tvb, int offset, int len, - proto_tree *tree) + proto_tree *tree) { guint8 aal_type; guint8 identifier; @@ -623,7 +623,7 @@ static const value_string q2931_atm_td_subfield_vals[] = { static void dissect_q2931_atm_cell_rate_ie(tvbuff_t *tvb, int offset, int len, - proto_tree *tree) + proto_tree *tree) { guint8 identifier; guint32 value; @@ -740,7 +740,7 @@ static const value_string q2931_up_conn_config_vals[] = { static void dissect_q2931_bband_bearer_cap_ie(tvbuff_t *tvb, int offset, int len, - proto_tree *tree) + proto_tree *tree) { guint8 octet; @@ -778,7 +778,7 @@ static const value_string q2931_hi_layer_info_type_vals[] = { static void dissect_q2931_bband_hi_layer_info_ie(tvbuff_t *tvb, int offset, int len, - proto_tree *tree) + proto_tree *tree) { if (len == 0) return; @@ -847,7 +847,7 @@ static const value_string lane_pid_vals[] = { */ static void dissect_q2931_bband_low_layer_info_ie(tvbuff_t *tvb, int offset, int len, - proto_tree *tree) + proto_tree *tree) { guint8 octet; guint8 uil2_protocol; @@ -1141,7 +1141,7 @@ static const value_string q2931_rejection_reason_vals[] = { static void dissect_q2931_cause_ie(tvbuff_t *tvb, int offset, int len, - proto_tree *tree) + proto_tree *tree) { guint8 octet; guint8 cause_value; @@ -1301,7 +1301,7 @@ static const value_string q2931_call_state_vals[] = { static void dissect_q2931_call_state_ie(tvbuff_t *tvb, int offset, int len, - proto_tree *tree) + proto_tree *tree) { if (len == 0) return; @@ -1350,7 +1350,7 @@ static const value_string q2931_screening_indicator_vals[] = { static void dissect_q2931_number_ie(tvbuff_t *tvb, int offset, int len, - proto_tree *tree) + proto_tree *tree) { guint8 octet; guint8 numbering_plan; @@ -1418,7 +1418,7 @@ static const value_string q2931_odd_even_indicator_vals[] = { static void dissect_q2931_party_subaddr_ie(tvbuff_t *tvb, int offset, int len, - proto_tree *tree) + proto_tree *tree) { if (len == 0) return; @@ -1451,7 +1451,7 @@ static const value_string q2931_preferred_exclusive_vals[] = { static void dissect_q2931_connection_identifier_ie(tvbuff_t *tvb, int offset, int len, - proto_tree *tree) + proto_tree *tree) { if (len == 0) return; @@ -1477,7 +1477,7 @@ dissect_q2931_connection_identifier_ie(tvbuff_t *tvb, int offset, int len, */ static void dissect_q2931_e2e_transit_delay_ie(tvbuff_t *tvb, int offset, int len, - proto_tree *tree) + proto_tree *tree) { guint8 identifier; guint16 value; @@ -1522,7 +1522,7 @@ static const value_string q2931_qos_parameter_vals[] = { static void dissect_q2931_qos_parameter_ie(tvbuff_t *tvb, int offset, int len, - proto_tree *tree) + proto_tree *tree) { if (len == 0) return; @@ -1546,7 +1546,7 @@ static const value_string q2931_bband_rpt_indicator_vals[] = { static void dissect_q2931_bband_rpt_indicator(tvbuff_t *tvb, int offset, int len, - proto_tree *tree) + proto_tree *tree) { if (len == 0) return; @@ -1566,7 +1566,7 @@ static const value_string q2931_class_vals[] = { static void dissect_q2931_restart_indicator(tvbuff_t *tvb, int offset, int len, - proto_tree *tree) + proto_tree *tree) { if (len == 0) return; @@ -1579,7 +1579,7 @@ dissect_q2931_restart_indicator(tvbuff_t *tvb, int offset, int len, */ static void dissect_q2931_bband_sending_compl_ie(tvbuff_t *tvb, int offset, int len, - proto_tree *tree) + proto_tree *tree) { guint8 identifier; @@ -1622,7 +1622,7 @@ static const value_string q2931_netid_plan_vals[] = { static void dissect_q2931_transit_network_sel_ie(tvbuff_t *tvb, int offset, int len, - proto_tree *tree) + proto_tree *tree) { if (len == 0) return; @@ -1668,7 +1668,7 @@ static const value_string q2931_bwd_e2e_oam_f5_flow_indicator_vals[] = { static void dissect_q2931_oam_traffic_descriptor_ie(tvbuff_t *tvb, int offset, int len, - proto_tree *tree) + proto_tree *tree) { guint8 octet; @@ -1700,7 +1700,7 @@ static const value_string q2931_endpoint_reference_type_vals[] = { static void dissect_q2931_endpoint_reference_ie(tvbuff_t *tvb, int offset, int len, - proto_tree *tree) + proto_tree *tree) { guint16 value; @@ -1736,7 +1736,7 @@ static const value_string q2931_endpoint_reference_party_state_vals[] = { static void dissect_q2931_endpoint_state_ie(tvbuff_t *tvb, int offset, int len, - proto_tree *tree) + proto_tree *tree) { if (len == 0) return; @@ -1746,7 +1746,7 @@ dissect_q2931_endpoint_state_ie(tvbuff_t *tvb, int offset, int len, static void dissect_q2931_ie_contents(tvbuff_t *tvb, int offset, int len, - proto_tree *tree, guint8 info_element) + proto_tree *tree, guint8 info_element) { switch (info_element) { @@ -1850,7 +1850,7 @@ dissect_q2931_ie_contents(tvbuff_t *tvb, int offset, int len, static void dissect_q2931_ie(tvbuff_t *tvb, int offset, int len, proto_tree *tree, - guint8 info_element, guint8 info_element_ext) + guint8 info_element, guint8 info_element_ext) { proto_item *ti; proto_tree *ie_tree; @@ -1885,21 +1885,21 @@ dissect_q2931_ie(tvbuff_t *tvb, int offset, int len, proto_tree *tree, static void dissect_q2931(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { - int offset = 0; - proto_tree *q2931_tree = NULL; - proto_item *ti; - proto_tree *ext_tree; - guint8 call_ref_len; - guint8 call_ref[15]; - guint8 message_type; - guint8 message_type_ext; - guint16 message_len; - guint8 info_element; - guint8 info_element_ext; - guint16 info_element_len; + int offset = 0; + proto_tree *q2931_tree = NULL; + proto_item *ti; + proto_tree *ext_tree; + guint8 call_ref_len; + guint8 call_ref[15]; + guint8 message_type; + guint8 message_type_ext; + guint16 message_len; + guint8 info_element; + guint8 info_element_ext; + guint16 info_element_len; #if 0 - int codeset; - gboolean non_locking_shift; + int codeset; + gboolean non_locking_shift; #endif col_set_str(pinfo->cinfo, COL_PROTOCOL, "Q.2931"); @@ -2001,133 +2001,473 @@ proto_register_q2931(void) { static hf_register_info hf[] = { { &hf_q2931_discriminator, - { "Protocol discriminator", "q2931.disc", FT_UINT8, BASE_HEX, NULL, 0x0, - NULL, HFILL }}, + { "Protocol discriminator", "q2931.disc", + FT_UINT8, BASE_HEX, NULL, 0x0, + NULL, HFILL } + }, { &hf_q2931_call_ref_len, - { "Call reference value length", "q2931.call_ref_len", FT_UINT8, BASE_DEC, NULL, 0x0, - NULL, HFILL }}, + { "Call reference value length", "q2931.call_ref_len", + FT_UINT8, BASE_DEC, NULL, 0x0, + NULL, HFILL } + }, { &hf_q2931_call_ref_flag, - { "Call reference flag", "q2931.call_ref_flag", FT_BOOLEAN, BASE_NONE, TFS(&tfs_call_ref_flag), 0x0, - NULL, HFILL }}, + { "Call reference flag", "q2931.call_ref_flag", + FT_BOOLEAN, BASE_NONE, TFS(&tfs_call_ref_flag), 0x0, + NULL, HFILL } + }, { &hf_q2931_call_ref, - { "Call reference value", "q2931.call_ref", FT_BYTES, BASE_NONE, NULL, 0x0, - NULL, HFILL }}, + { "Call reference value", "q2931.call_ref", + FT_BYTES, BASE_NONE, NULL, 0x0, + NULL, HFILL } + }, { &hf_q2931_message_type, - { "Message type", "q2931.message_type", FT_UINT8, BASE_HEX|BASE_EXT_STRING, &q2931_message_type_vals_ext, 0x0, - NULL, HFILL }}, + { "Message type", "q2931.message_type", + FT_UINT8, BASE_HEX|BASE_EXT_STRING, &q2931_message_type_vals_ext, 0x0, + NULL, HFILL } + }, { &hf_q2931_message_type_ext, - { "Message type extension", "q2931.message_type_ext", FT_UINT8, BASE_HEX, NULL, 0x0, - NULL, HFILL }}, + { "Message type extension", "q2931.message_type_ext", + FT_UINT8, BASE_HEX, NULL, 0x0, + NULL, HFILL } + }, { &hf_q2931_message_flag, - { "Flag", "q2931.message_flag", FT_BOOLEAN, 8, TFS(&tos_msg_flag), Q2931_MSG_TYPE_EXT_FOLLOW_INST, - NULL, HFILL }}, + { "Flag", "q2931.message_flag", + FT_BOOLEAN, 8, TFS(&tos_msg_flag), Q2931_MSG_TYPE_EXT_FOLLOW_INST, + NULL, HFILL } + }, { &hf_q2931_message_action_indicator, - { "Action indicator", "q2931.message_action_indicator", FT_UINT8, BASE_DEC, VALS(msg_action_ind_vals), Q2931_MSG_TYPE_EXT_ACTION_IND, - NULL, HFILL }}, + { "Action indicator", "q2931.message_action_indicator", + FT_UINT8, BASE_DEC, VALS(msg_action_ind_vals), Q2931_MSG_TYPE_EXT_ACTION_IND, + NULL, HFILL } + }, { &hf_q2931_message_len, - { "Message length", "q2931.message_len", FT_UINT16, BASE_DEC, NULL, 0x0, - NULL, HFILL }}, + { "Message length", "q2931.message_len", + FT_UINT16, BASE_DEC, NULL, 0x0, + NULL, HFILL } + }, { &hf_q2931_ie_handling_instructions, - { "Handling Instructions", "q2931.ie_handling_instructions", FT_BOOLEAN, 8, TFS(&tfs_q2931_handling_instructions), Q2931_IE_COMPAT_FOLLOW_INST, - NULL, HFILL }}, + { "Handling Instructions", "q2931.ie_handling_instructions", + FT_BOOLEAN, 8, TFS(&tfs_q2931_handling_instructions), Q2931_IE_COMPAT_FOLLOW_INST, + NULL, HFILL } + }, { &hf_q2931_ie_coding_standard, - { "Coding standard", "q2931.ie_coding_standard", FT_UINT8, BASE_DEC, VALS(coding_std_vals), Q2931_IE_COMPAT_CODING_STD, - NULL, HFILL }}, + { "Coding standard", "q2931.ie_coding_standard", + FT_UINT8, BASE_DEC, VALS(coding_std_vals), Q2931_IE_COMPAT_CODING_STD, + NULL, HFILL } + }, { &hf_q2931_ie_action_indicator, - { "Action indicator", "q2931.ie_action_indicator", FT_UINT8, BASE_DEC, VALS(ie_action_ind_vals), Q2931_IE_COMPAT_ACTION_IND, - NULL, HFILL }}, - - /* Generated from convert_proto_tree_add_text.pl */ - { &hf_q2931_aal_type, { "AAL type", "q2931.aal_type", FT_UINT8, BASE_HEX, VALS(q9231_aal_type_vals), 0x0, NULL, HFILL }}, - { &hf_q2931_user_defined_aal_information, { "User defined AAL information", "q2931.user_defined_aal_information", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL }}, - { &hf_q2931_aal1_subtype, { "Subtype", "q2931.aal1.subtype", FT_UINT8, BASE_HEX, VALS(q9231_aal1_subtype_vals), 0x0, NULL, HFILL }}, - { &hf_q2931_aal1_cbr_rate, { "CBR rate", "q2931.aal1.cbr_rate", FT_UINT8, BASE_HEX, VALS(q9231_aal1_cbr_rate_vals), 0x0, NULL, HFILL }}, - { &hf_q2931_aal1_multiplier, { "Multiplier", "q2931.aal1.multiplier", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL }}, - { &hf_q2931_aal1_source_clock_frequency_recovery_method, { "Source clock frequency recovery method", "q2931.aal1.source_clock_frequency_recovery_method", FT_UINT8, BASE_HEX, VALS(q2931_aal1_src_clk_rec_meth_vals), 0x0, NULL, HFILL }}, - { &hf_q2931_aal1_error_correction_method, { "Error correction method", "q2931.aal1.error_correction_method", FT_UINT8, BASE_HEX, VALS(q2931_aal1_err_correction_method_vals), 0x0, NULL, HFILL }}, - { &hf_q2931_aal1_structured_data_transfer_block_size, { "Structured data transfer block size", "q2931.aal1.structured_data_transfer_block_size", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL }}, - { &hf_q2931_aal1_partially_filled_cells_method, { "Partially filled cells method", "q2931.aal1.partially_filled_cells_method", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL }}, - { &hf_q2931_aal1_forward_max_cpcs_sdu_size, { "Forward maximum CPCS-SDU size", "q2931.aal1.forward_max_cpcs_sdu_size", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL }}, - { &hf_q2931_aal1_backward_max_cpcs_sdu_size, { "Backward maximum CPCS-SDU size", "q2931.aal1.backward_max_cpcs_sdu_size", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL }}, - { &hf_q2931_aal1_mode, { "Mode", "q2931.aal1.mode", FT_UINT8, BASE_HEX, VALS(q2931_aal_mode_vals), 0x0, NULL, HFILL }}, - { &hf_q2931_aal1_sscs_type, { "SSCS type", "q2931.aal1.sscs_type", FT_UINT8, BASE_HEX, VALS(q2931_sscs_type_vals), 0x0, NULL, HFILL }}, - { &hf_q2931_bearer_class, { "Bearer class", "q2931.bearer_class", FT_UINT8, BASE_HEX, VALS(q2931_bearer_class_vals), 0x1F, NULL, HFILL }}, - { &hf_q2931_atm_transfer_capability, { "ATM Transfer Capability", "q2931.atm_transfer_capability", FT_UINT8, BASE_HEX, VALS(q2931_transfer_capability_vals), 0x1F, NULL, HFILL }}, - { &hf_q2931_susceptibility_to_clipping, { "Susceptibility to clipping", "q2931.susceptibility_to_clipping", FT_UINT8, BASE_HEX, VALS(q2931_susc_clip_vals), 0x60, NULL, HFILL }}, - { &hf_q2931_user_plane_connection_configuration, { "User-plane connection configuration", "q2931.user_plane_connection_configuration", FT_UINT8, BASE_HEX, VALS(q2931_up_conn_config_vals), 0x03, NULL, HFILL }}, - { &hf_q2931_high_layer_information_type, { "High layer information type", "q2931.high_layer_information_type", FT_UINT8, BASE_HEX, VALS(q2931_hi_layer_info_type_vals), 0x7F, NULL, HFILL }}, - { &hf_q2931_bband_low_layer_info_user_info_l1_proto, { "User information layer 1 protocol", "q2931.bband_low_layer_info.user_info_l1_proto", FT_UINT8, BASE_HEX, NULL, 0x1F, NULL, HFILL }}, - { &hf_q2931_bband_low_layer_info_user_info_l2_proto, { "User information layer 2 protocol", "q2931.bband_low_layer_info.user_info_l2_proto", FT_UINT8, BASE_HEX, VALS(q2931_uil2_vals), 0x1F, NULL, HFILL }}, - { &hf_q2931_bband_low_layer_info_user_specified_l2_proto, { "User-specified layer 2 protocol information", "q2931.bband_low_layer_info.user_specified_l2_proto", FT_UINT8, BASE_HEX, NULL, 0x7F, NULL, HFILL }}, - { &hf_q2931_bband_low_layer_info_mode, { "Mode", "q2931.bband_low_layer_info.mode", FT_UINT8, BASE_HEX, VALS(q2931_mode_vals), 0x60, NULL, HFILL }}, - { &hf_q2931_bband_low_layer_info_window_size, { "Window size", "q2931.bband_low_layer_info.window_size", FT_UINT8, BASE_DEC, NULL, 0x7F, NULL, HFILL }}, - { &hf_q2931_bband_low_layer_info_user_info_l3_proto, { "User information layer 3 protocol", "q2931.bband_low_layer_info.user_info_l3_proto", FT_UINT8, BASE_HEX, VALS(q2931_uil3_vals), 0x1F, NULL, HFILL }}, - { &hf_q2931_bband_low_layer_info_default_packet_size, { "Default packet size", "q2931.bband_low_layer_info.default_packet_size", FT_UINT8, BASE_DEC, NULL, 0x0F, NULL, HFILL }}, - { &hf_q2931_bband_low_layer_info_packet_window_size, { "Packet window size", "q2931.bband_low_layer_info.packet_window_size", FT_UINT8, BASE_DEC, NULL, 0x7F, NULL, HFILL }}, - { &hf_q2931_bband_low_layer_info_additional_l3_proto, { "Additional layer 3 protocol information", "q2931.bband_low_layer_info.additional_l3_proto", FT_UINT8, BASE_HEX, VALS(nlpid_vals), 0x0, NULL, HFILL }}, - { &hf_q2931_organization_code, { "Organization Code", "q2931.bband_low_layer_info.organization_code", FT_UINT24, BASE_HEX, VALS(oui_vals), 0x0, NULL, HFILL }}, - { &hf_q2931_ethernet_type, { "Ethernet type", "q2931.bband_low_layer_info.ethernet_type", FT_UINT16, BASE_HEX, VALS(etype_vals), 0x0, NULL, HFILL }}, - { &hf_q2931_lane_protocol_id, { "LANE Protocol ID", "q2931.bband_low_layer_info.lane_protocol_id", FT_UINT16, BASE_HEX, VALS(lane_pid_vals), 0x0, NULL, HFILL }}, - { &hf_q2931_protocol_id, { "Protocol ID", "q2931.bband_low_layer_info.protocol_id", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL }}, - { &hf_q2931_cause_location, { "Location", "q2931.cause.location", FT_UINT8, BASE_HEX, VALS(q2931_cause_location_vals), 0x0F, NULL, HFILL }}, - { &hf_q2931_cause_value, { "Cause value", "q2931.cause.value", FT_UINT8, BASE_HEX|BASE_EXT_STRING, &q2931_cause_code_vals_ext, 0x7F, NULL, HFILL }}, - { &hf_q2931_cause_rejection_reason, { "Rejection reason", "q2931.cause.rejection.reason", FT_UINT8, BASE_HEX, VALS(q2931_rejection_reason_vals), 0x7C, NULL, HFILL }}, - { &hf_q2931_cause_rejection_condition, { "Condition", "q2931.cause.rejection.condition", FT_UINT8, BASE_HEX, VALS(q2931_cause_condition_vals), 0x03, NULL, HFILL }}, - { &hf_q2931_cause_rejection_user_specific_diagnostic, { "User specific diagnostic", "q2931.cause.rejection.user_specific_diagnostic", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL }}, - { &hf_q2931_cause_rejection_missing_information_element, { "Missing information element", "q2931.cause.rejection.missing_information_element", FT_UINT8, BASE_HEX|BASE_EXT_STRING, &q2931_info_element_vals_ext, 0x0, NULL, HFILL }}, - { &hf_q2931_cause_rejection_insufficient_information_element, { "Insufficient information element", "q2931.cause.rejection.insufficient_information_element", FT_UINT8, BASE_HEX|BASE_EXT_STRING, &q2931_info_element_vals_ext, 0x0, NULL, HFILL }}, - { &hf_q2931_cause_rejection_diagnostic, { "Diagnostic", "q2931.cause.rejection.diagnostic", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL }}, - { &hf_q2931_cause_information_element, { "Information element", "q2931.cause.information_element", FT_UINT8, BASE_HEX|BASE_EXT_STRING, &q2931_info_element_vals_ext, 0x0, NULL, HFILL }}, - { &hf_q2931_cause_cell_rate_subfield_identifier, { "Cell rate subfield identifier", "q2931.cause.cell_rate_subfield_identifier", FT_UINT8, BASE_HEX, VALS(q2931_atm_td_subfield_vals), 0x0, NULL, HFILL }}, - { &hf_q2931_cause_vpci, { "VPCI", "q2931.cause.vpci", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL }}, - { &hf_q2931_cause_vci, { "VCI", "q2931.cause.vci", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL }}, - { &hf_q2931_cause_message_type, { "Message type", "q2931.cause.message_type", FT_UINT8, BASE_HEX|BASE_EXT_STRING, &q2931_message_type_vals_ext, 0x0, NULL, HFILL }}, - { &hf_q2931_cause_timer, { "Timer", "q2931.cause.timer", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }}, - { &hf_q2931_call_state, { "Call state", "q2931.call_state", FT_UINT8, BASE_HEX, VALS(q2931_call_state_vals), 0x3F, NULL, HFILL }}, - { &hf_q2931_number_type, { "Type of number", "q2931.number.type", FT_UINT8, BASE_HEX, VALS(q2931_number_type_vals), 0x70, NULL, HFILL }}, - { &hf_q2931_number_plan, { "Numbering plan", "q2931.number.plan", FT_UINT8, BASE_HEX, VALS(q2931_numbering_plan_vals), 0x0F, NULL, HFILL }}, - { &hf_q2931_number_presentation_indicator, { "Presentation indicator", "q2931.number.presentation_indicator", FT_UINT8, BASE_HEX, VALS(q2931_presentation_indicator_vals), 0x60, NULL, HFILL }}, - { &hf_q2931_number_screening_indicator, { "Screening indicator", "q2931.number.screening_indicator", FT_UINT8, BASE_HEX, VALS(q2931_screening_indicator_vals), 0x03, NULL, HFILL }}, - { &hf_q2931_number_string, { "Number", "q2931.number.string", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }}, - { &hf_q2931_number_bytes, { "Number", "q2931.number.bytes", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL }}, - { &hf_q2931_party_subaddr_type_of_subaddress, { "Type of subaddress", "q2931.party_subaddr.type_of_subaddress", FT_UINT8, BASE_HEX, VALS(q2931_subaddress_type_vals), 0x70, NULL, HFILL }}, - { &hf_q2931_party_subaddr_odd_even_indicator, { "Odd/even indicator", "q2931.party_subaddr.odd_even_indicator", FT_UINT8, BASE_HEX, VALS(q2931_odd_even_indicator_vals), 0x10, NULL, HFILL }}, - { &hf_q2931_party_subaddr_subaddress, { "Subaddress", "q2931.party_subaddr.subaddress", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL }}, - { &hf_q2931_conn_id_vp_associated_signalling, { "VP-associated signalling", "q2931.conn_id.vp_associated_signalling", FT_UINT8, BASE_HEX, VALS(q2931_vp_associated_signalling_vals), 0x18, NULL, HFILL }}, - { &hf_q2931_conn_id_preferred_exclusive, { "Preferred/exclusive", "q2931.conn_id.preferred_exclusive", FT_UINT8, BASE_HEX, VALS(q2931_preferred_exclusive_vals), 0x07, NULL, HFILL }}, - { &hf_q2931_conn_id_vpci, { "VPCI", "q2931.conn_id.vpci", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL }}, - { &hf_q2931_conn_id_vci, { "VCI", "q2931.conn_id.vci", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL }}, - { &hf_q2931_e2e_transit_delay_cumulative, { "Cumulative transit delay", "q2931.e2e_transit_delay.cumulative", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL }}, - { &hf_q2931_e2e_transit_delay_maximum_end_to_end, { "Maximum end-to-end transit delay", "q2931.e2e_transit_delay.maximum_end_to_end", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL }}, - { &hf_q2931_qos_class_forward, { "QOS class forward", "q2931.qos_class_forward", FT_UINT8, BASE_HEX, VALS(q2931_qos_parameter_vals), 0x0, NULL, HFILL }}, - { &hf_q2931_qos_class_backward, { "QOS class backward", "q2931.qos_class_backward", FT_UINT8, BASE_HEX, VALS(q2931_qos_parameter_vals), 0x0, NULL, HFILL }}, - { &hf_q2931_broadband_repeat_indicator, { "Broadband repeat indicator", "q2931.broadband_repeat_indicator", FT_UINT8, BASE_HEX, VALS(q2931_bband_rpt_indicator_vals), 0x0F, NULL, HFILL }}, - { &hf_q2931_restart_indicator, { "Restart indicator", "q2931.restart_indicator", FT_UINT8, BASE_HEX, VALS(q2931_class_vals), 0x07, NULL, HFILL }}, - { &hf_q2931_transit_network_sel_type, { "Type of network identification", "q2931.transit_network_sel.type", FT_UINT8, BASE_HEX, VALS(q2931_netid_type_vals), 0x70, NULL, HFILL }}, - { &hf_q2931_transit_network_sel_plan, { "Network identification plan", "q2931.transit_network_sel.plan", FT_UINT8, BASE_HEX, VALS(q2931_netid_plan_vals), 0x0F, NULL, HFILL }}, - { &hf_q2931_transit_network_sel_network_id, { "Network identification", "q2931.transit_network_sel.network_identification", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }}, - { &hf_q2931_oam_traffic_descriptor_shaping_indicator, { "Shaping indicator", "q2931.oam_traffic_descriptor.shaping_indicator", FT_UINT8, BASE_HEX, VALS(q2931_shaping_indicator_vals), 0x60, NULL, HFILL }}, - { &hf_q2931_oam_traffic_descriptor_management_indicator, { "User-Network fault management indicator", "q2931.oam_traffic_descriptor.management_indicator", FT_UINT8, BASE_HEX, VALS(q2931_user_net_fault_mgmt_vals), 0x07, NULL, HFILL }}, - { &hf_q2931_oam_traffic_descriptor_forward_f5_flow_indicator, { "Forward end-to-end OAM F5 flow indicator", "q2931.oam_traffic_descriptor.forward_f5_flow_indicator", FT_UINT8, BASE_HEX, VALS(q2931_fwd_e2e_oam_f5_flow_indicator_vals), 0x70, NULL, HFILL }}, - { &hf_q2931_oam_traffic_descriptor_backward_f5_flow_indicator, { "Backward end-to-end OAM F5 flow indicator", "q2931.oam_traffic_descriptor.backward_f5_flow_indicator", FT_UINT8, BASE_HEX, VALS(q2931_bwd_e2e_oam_f5_flow_indicator_vals), 0x07, NULL, HFILL }}, - { &hf_q2931_endpoint_reference_type, { "Endpoint reference type", "q2931.endpoint_reference.type", FT_UINT8, BASE_HEX, VALS(q2931_endpoint_reference_type_vals), 0x0, NULL, HFILL }}, - { &hf_q2931_endpoint_reference_identifier_value, { "Endpoint reference identifier value", "q2931.endpoint_reference.identifier_value", FT_UINT16, BASE_DEC, NULL, 0x7FFF, NULL, HFILL }}, - { &hf_q2931_endpoint_state, { "Endpoint reference party-state", "q2931.endpoint_state", FT_UINT8, BASE_HEX, VALS(q2931_endpoint_reference_party_state_vals), 0x3F, NULL, HFILL }}, - { &hf_q2931_information_element, { "Information element", "q2931.information_element", FT_UINT8, BASE_HEX|BASE_EXT_STRING, &q2931_info_element_vals_ext, 0x0, NULL, HFILL }}, - { &hf_q2931_information_element_extension, { "Information element extension", "q2931.information_element.extension", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL }}, - { &hf_q2931_information_element_length, { "Length", "q2931.information_element.length", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL }}, - { &hf_q2931_information_element_data, { "Data", "q2931.information_element.data", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL }}, + { "Action indicator", "q2931.ie_action_indicator", + FT_UINT8, BASE_DEC, VALS(ie_action_ind_vals), Q2931_IE_COMPAT_ACTION_IND, + NULL, HFILL } + }, + + /* Generated from convert_proto_tree_add_text.pl */ + { &hf_q2931_aal_type, + { "AAL type", "q2931.aal_type", + FT_UINT8, BASE_HEX, VALS(q9231_aal_type_vals), 0x0, + NULL, HFILL } + }, + { &hf_q2931_user_defined_aal_information, + { "User defined AAL information", "q2931.user_defined_aal_information", + FT_BYTES, BASE_NONE, NULL, 0x0, + NULL, HFILL } + }, + { &hf_q2931_aal1_subtype, + { "Subtype", "q2931.aal1.subtype", + FT_UINT8, BASE_HEX, VALS(q9231_aal1_subtype_vals), 0x0, + NULL, HFILL } + }, + { &hf_q2931_aal1_cbr_rate, + { "CBR rate", "q2931.aal1.cbr_rate", + FT_UINT8, BASE_HEX, VALS(q9231_aal1_cbr_rate_vals), 0x0, + NULL, HFILL } + }, + { &hf_q2931_aal1_multiplier, + { "Multiplier", "q2931.aal1.multiplier", + FT_UINT16, BASE_DEC, NULL, 0x0, + NULL, HFILL } + }, + { &hf_q2931_aal1_source_clock_frequency_recovery_method, + { "Source clock frequency recovery method", "q2931.aal1.source_clock_frequency_recovery_method", + FT_UINT8, BASE_HEX, VALS(q2931_aal1_src_clk_rec_meth_vals), 0x0, + NULL, HFILL } + }, + { &hf_q2931_aal1_error_correction_method, + { "Error correction method", "q2931.aal1.error_correction_method", + FT_UINT8, BASE_HEX, VALS(q2931_aal1_err_correction_method_vals), 0x0, + NULL, HFILL } + }, + { &hf_q2931_aal1_structured_data_transfer_block_size, + { "Structured data transfer block size", "q2931.aal1.structured_data_transfer_block_size", + FT_UINT16, BASE_DEC, NULL, 0x0, + NULL, HFILL } + }, + { &hf_q2931_aal1_partially_filled_cells_method, + { "Partially filled cells method", "q2931.aal1.partially_filled_cells_method", + FT_UINT8, BASE_DEC, NULL, 0x0, + NULL, HFILL } + }, + { &hf_q2931_aal1_forward_max_cpcs_sdu_size, + { "Forward maximum CPCS-SDU size", "q2931.aal1.forward_max_cpcs_sdu_size", + FT_UINT16, BASE_DEC, NULL, 0x0, + NULL, HFILL } + }, + { &hf_q2931_aal1_backward_max_cpcs_sdu_size, + { "Backward maximum CPCS-SDU size", "q2931.aal1.backward_max_cpcs_sdu_size", + FT_UINT16, BASE_DEC, NULL, 0x0, + NULL, HFILL } + }, + { &hf_q2931_aal1_mode, + { "Mode", "q2931.aal1.mode", + FT_UINT8, BASE_HEX, VALS(q2931_aal_mode_vals), 0x0, + NULL, HFILL } + }, + { &hf_q2931_aal1_sscs_type, + { "SSCS type", "q2931.aal1.sscs_type", + FT_UINT8, BASE_HEX, VALS(q2931_sscs_type_vals), 0x0, + NULL, HFILL } + }, + { &hf_q2931_bearer_class, + { "Bearer class", "q2931.bearer_class", + FT_UINT8, BASE_HEX, VALS(q2931_bearer_class_vals), 0x1F, + NULL, HFILL } + }, + { &hf_q2931_atm_transfer_capability, + { "ATM Transfer Capability", "q2931.atm_transfer_capability", + FT_UINT8, BASE_HEX, VALS(q2931_transfer_capability_vals), 0x1F, + NULL, HFILL } + }, + { &hf_q2931_susceptibility_to_clipping, + { "Susceptibility to clipping", "q2931.susceptibility_to_clipping", + FT_UINT8, BASE_HEX, VALS(q2931_susc_clip_vals), 0x60, + NULL, HFILL } + }, + { &hf_q2931_user_plane_connection_configuration, + { "User-plane connection configuration", "q2931.user_plane_connection_configuration", + FT_UINT8, BASE_HEX, VALS(q2931_up_conn_config_vals), 0x03, + NULL, HFILL } + }, + { &hf_q2931_high_layer_information_type, + { "High layer information type", "q2931.high_layer_information_type", + FT_UINT8, BASE_HEX, VALS(q2931_hi_layer_info_type_vals), 0x7F, + NULL, HFILL } + }, + { &hf_q2931_bband_low_layer_info_user_info_l1_proto, + { "User information layer 1 protocol", "q2931.bband_low_layer_info.user_info_l1_proto", + FT_UINT8, BASE_HEX, NULL, 0x1F, + NULL, HFILL } + }, + { &hf_q2931_bband_low_layer_info_user_info_l2_proto, + { "User information layer 2 protocol", "q2931.bband_low_layer_info.user_info_l2_proto", + FT_UINT8, BASE_HEX, VALS(q2931_uil2_vals), 0x1F, + NULL, HFILL } + }, + { &hf_q2931_bband_low_layer_info_user_specified_l2_proto, + { "User-specified layer 2 protocol information", "q2931.bband_low_layer_info.user_specified_l2_proto", + FT_UINT8, BASE_HEX, NULL, 0x7F, + NULL, HFILL } + }, + { &hf_q2931_bband_low_layer_info_mode, + { "Mode", "q2931.bband_low_layer_info.mode", + FT_UINT8, BASE_HEX, VALS(q2931_mode_vals), 0x60, + NULL, HFILL } + }, + { &hf_q2931_bband_low_layer_info_window_size, + { "Window size", "q2931.bband_low_layer_info.window_size", + FT_UINT8, BASE_DEC, NULL, 0x7F, + NULL, HFILL } + }, + { &hf_q2931_bband_low_layer_info_user_info_l3_proto, + { "User information layer 3 protocol", "q2931.bband_low_layer_info.user_info_l3_proto", + FT_UINT8, BASE_HEX, VALS(q2931_uil3_vals), 0x1F, + NULL, HFILL } + }, + { &hf_q2931_bband_low_layer_info_default_packet_size, + { "Default packet size", "q2931.bband_low_layer_info.default_packet_size", + FT_UINT8, BASE_DEC, NULL, 0x0F, + NULL, HFILL } + }, + { &hf_q2931_bband_low_layer_info_packet_window_size, + { "Packet window size", "q2931.bband_low_layer_info.packet_window_size", + FT_UINT8, BASE_DEC, NULL, 0x7F, + NULL, HFILL } + }, + { &hf_q2931_bband_low_layer_info_additional_l3_proto, + { "Additional layer 3 protocol information", "q2931.bband_low_layer_info.additional_l3_proto", + FT_UINT8, BASE_HEX, VALS(nlpid_vals), 0x0, + NULL, HFILL } + }, + { &hf_q2931_organization_code, + { "Organization Code", "q2931.bband_low_layer_info.organization_code", + FT_UINT24, BASE_HEX, VALS(oui_vals), 0x0, + NULL, HFILL } + }, + { &hf_q2931_ethernet_type, + { "Ethernet type", "q2931.bband_low_layer_info.ethernet_type", + FT_UINT16, BASE_HEX, VALS(etype_vals), 0x0, + NULL, HFILL } + }, + { &hf_q2931_lane_protocol_id, + { "LANE Protocol ID", "q2931.bband_low_layer_info.lane_protocol_id", + FT_UINT16, BASE_HEX, VALS(lane_pid_vals), 0x0, + NULL, HFILL } + }, + { &hf_q2931_protocol_id, + { "Protocol ID", "q2931.bband_low_layer_info.protocol_id", + FT_UINT16, BASE_HEX, NULL, 0x0, + NULL, HFILL } + }, + { &hf_q2931_cause_location, + { "Location", "q2931.cause.location", + FT_UINT8, BASE_HEX, VALS(q2931_cause_location_vals), 0x0F, + NULL, HFILL } + }, + { &hf_q2931_cause_value, + { "Cause value", "q2931.cause.value", + FT_UINT8, BASE_HEX|BASE_EXT_STRING, &q2931_cause_code_vals_ext, 0x7F, + NULL, HFILL } + }, + { &hf_q2931_cause_rejection_reason, + { "Rejection reason", "q2931.cause.rejection.reason", + FT_UINT8, BASE_HEX, VALS(q2931_rejection_reason_vals), 0x7C, + NULL, HFILL } + }, + { &hf_q2931_cause_rejection_condition, + { "Condition", "q2931.cause.rejection.condition", + FT_UINT8, BASE_HEX, VALS(q2931_cause_condition_vals), 0x03, + NULL, HFILL } + }, + { &hf_q2931_cause_rejection_user_specific_diagnostic, + { "User specific diagnostic", "q2931.cause.rejection.user_specific_diagnostic", + FT_BYTES, BASE_NONE, NULL, 0x0, + NULL, HFILL } + }, + { &hf_q2931_cause_rejection_missing_information_element, + { "Missing information element", "q2931.cause.rejection.missing_information_element", + FT_UINT8, BASE_HEX|BASE_EXT_STRING, &q2931_info_element_vals_ext, 0x0, + NULL, HFILL } + }, + { &hf_q2931_cause_rejection_insufficient_information_element, + { "Insufficient information element", "q2931.cause.rejection.insufficient_information_element", + FT_UINT8, BASE_HEX|BASE_EXT_STRING, &q2931_info_element_vals_ext, 0x0, + NULL, HFILL } + }, + { &hf_q2931_cause_rejection_diagnostic, + { "Diagnostic", "q2931.cause.rejection.diagnostic", + FT_BYTES, BASE_NONE, NULL, 0x0, + NULL, HFILL } + }, + { &hf_q2931_cause_information_element, + { "Information element", "q2931.cause.information_element", + FT_UINT8, BASE_HEX|BASE_EXT_STRING, &q2931_info_element_vals_ext, 0x0, + NULL, HFILL } + }, + { &hf_q2931_cause_cell_rate_subfield_identifier, + { "Cell rate subfield identifier", "q2931.cause.cell_rate_subfield_identifier", + FT_UINT8, BASE_HEX, VALS(q2931_atm_td_subfield_vals), 0x0, + NULL, HFILL } + }, + { &hf_q2931_cause_vpci, + { "VPCI", "q2931.cause.vpci", + FT_UINT16, BASE_DEC, NULL, 0x0, + NULL, HFILL } + }, + { &hf_q2931_cause_vci, + { "VCI", "q2931.cause.vci", + FT_UINT16, BASE_DEC, NULL, 0x0, + NULL, HFILL } + }, + { &hf_q2931_cause_message_type, + { "Message type", "q2931.cause.message_type", + FT_UINT8, BASE_HEX|BASE_EXT_STRING, &q2931_message_type_vals_ext, 0x0, + NULL, HFILL } + }, + { &hf_q2931_cause_timer, + { "Timer", "q2931.cause.timer", + FT_STRING, BASE_NONE, NULL, 0x0, + NULL, HFILL } + }, + { &hf_q2931_call_state, + { "Call state", "q2931.call_state", + FT_UINT8, BASE_HEX, VALS(q2931_call_state_vals), 0x3F, + NULL, HFILL } + }, + { &hf_q2931_number_type, + { "Type of number", "q2931.number.type", + FT_UINT8, BASE_HEX, VALS(q2931_number_type_vals), 0x70, + NULL, HFILL } + }, + { &hf_q2931_number_plan, + { "Numbering plan", "q2931.number.plan", + FT_UINT8, BASE_HEX, VALS(q2931_numbering_plan_vals), 0x0F, + NULL, HFILL } + }, + { &hf_q2931_number_presentation_indicator, + { "Presentation indicator", "q2931.number.presentation_indicator", + FT_UINT8, BASE_HEX, VALS(q2931_presentation_indicator_vals), 0x60, + NULL, HFILL } + }, + { &hf_q2931_number_screening_indicator, + { "Screening indicator", "q2931.number.screening_indicator", + FT_UINT8, BASE_HEX, VALS(q2931_screening_indicator_vals), 0x03, + NULL, HFILL } + }, + { &hf_q2931_number_string, + { "Number", "q2931.number.string", + FT_STRING, BASE_NONE, NULL, 0x0, + NULL, HFILL } + }, + { &hf_q2931_number_bytes, + { "Number", "q2931.number.bytes", + FT_BYTES, BASE_NONE, NULL, 0x0, + NULL, HFILL } + }, + { &hf_q2931_party_subaddr_type_of_subaddress, + { "Type of subaddress", "q2931.party_subaddr.type_of_subaddress", + FT_UINT8, BASE_HEX, VALS(q2931_subaddress_type_vals), 0x70, + NULL, HFILL } + }, + { &hf_q2931_party_subaddr_odd_even_indicator, + { "Odd/even indicator", "q2931.party_subaddr.odd_even_indicator", + FT_UINT8, BASE_HEX, VALS(q2931_odd_even_indicator_vals), 0x10, + NULL, HFILL } + }, + { &hf_q2931_party_subaddr_subaddress, + { "Subaddress", "q2931.party_subaddr.subaddress", + FT_BYTES, BASE_NONE, NULL, 0x0, + NULL, HFILL } + }, + { &hf_q2931_conn_id_vp_associated_signalling, + { "VP-associated signalling", "q2931.conn_id.vp_associated_signalling", + FT_UINT8, BASE_HEX, VALS(q2931_vp_associated_signalling_vals), 0x18, + NULL, HFILL } + }, + { &hf_q2931_conn_id_preferred_exclusive, + { "Preferred/exclusive", "q2931.conn_id.preferred_exclusive", + FT_UINT8, BASE_HEX, VALS(q2931_preferred_exclusive_vals), 0x07, + NULL, HFILL } + }, + { &hf_q2931_conn_id_vpci, + { "VPCI", "q2931.conn_id.vpci", + FT_UINT16, BASE_DEC, NULL, 0x0, + NULL, HFILL } + }, + { &hf_q2931_conn_id_vci, + { "VCI", "q2931.conn_id.vci", + FT_UINT16, BASE_DEC, NULL, 0x0, + NULL, HFILL } + }, + { &hf_q2931_e2e_transit_delay_cumulative, + { "Cumulative transit delay", "q2931.e2e_transit_delay.cumulative", + FT_UINT16, BASE_DEC, NULL, 0x0, + NULL, HFILL } + }, + { &hf_q2931_e2e_transit_delay_maximum_end_to_end, + { "Maximum end-to-end transit delay", "q2931.e2e_transit_delay.maximum_end_to_end", + FT_UINT16, BASE_DEC, NULL, 0x0, + NULL, HFILL } + }, + { &hf_q2931_qos_class_forward, + { "QOS class forward", "q2931.qos_class_forward", + FT_UINT8, BASE_HEX, VALS(q2931_qos_parameter_vals), 0x0, + NULL, HFILL } + }, + { &hf_q2931_qos_class_backward, + { "QOS class backward", "q2931.qos_class_backward", + FT_UINT8, BASE_HEX, VALS(q2931_qos_parameter_vals), 0x0, + NULL, HFILL } + }, + { &hf_q2931_broadband_repeat_indicator, + { "Broadband repeat indicator", "q2931.broadband_repeat_indicator", + FT_UINT8, BASE_HEX, VALS(q2931_bband_rpt_indicator_vals), 0x0F, + NULL, HFILL } + }, + { &hf_q2931_restart_indicator, + { "Restart indicator", "q2931.restart_indicator", + FT_UINT8, BASE_HEX, VALS(q2931_class_vals), 0x07, + NULL, HFILL } + }, + { &hf_q2931_transit_network_sel_type, + { "Type of network identification", "q2931.transit_network_sel.type", + FT_UINT8, BASE_HEX, VALS(q2931_netid_type_vals), 0x70, + NULL, HFILL } + }, + { &hf_q2931_transit_network_sel_plan, + { "Network identification plan", "q2931.transit_network_sel.plan", + FT_UINT8, BASE_HEX, VALS(q2931_netid_plan_vals), 0x0F, + NULL, HFILL } + }, + { &hf_q2931_transit_network_sel_network_id, + { "Network identification", "q2931.transit_network_sel.network_identification", + FT_STRING, BASE_NONE, NULL, 0x0, + NULL, HFILL } + }, + { &hf_q2931_oam_traffic_descriptor_shaping_indicator, + { "Shaping indicator", "q2931.oam_traffic_descriptor.shaping_indicator", + FT_UINT8, BASE_HEX, VALS(q2931_shaping_indicator_vals), 0x60, + NULL, HFILL } + }, + { &hf_q2931_oam_traffic_descriptor_management_indicator, + { "User-Network fault management indicator", "q2931.oam_traffic_descriptor.management_indicator", + FT_UINT8, BASE_HEX, VALS(q2931_user_net_fault_mgmt_vals), 0x07, + NULL, HFILL } + }, + { &hf_q2931_oam_traffic_descriptor_forward_f5_flow_indicator, + { "Forward end-to-end OAM F5 flow indicator", "q2931.oam_traffic_descriptor.forward_f5_flow_indicator", + FT_UINT8, BASE_HEX, VALS(q2931_fwd_e2e_oam_f5_flow_indicator_vals), 0x70, + NULL, HFILL } + }, + { &hf_q2931_oam_traffic_descriptor_backward_f5_flow_indicator, + { "Backward end-to-end OAM F5 flow indicator", "q2931.oam_traffic_descriptor.backward_f5_flow_indicator", + FT_UINT8, BASE_HEX, VALS(q2931_bwd_e2e_oam_f5_flow_indicator_vals), 0x07, + NULL, HFILL } + }, + { &hf_q2931_endpoint_reference_type, + { "Endpoint reference type", "q2931.endpoint_reference.type", + FT_UINT8, BASE_HEX, VALS(q2931_endpoint_reference_type_vals), 0x0, + NULL, HFILL } + }, + { &hf_q2931_endpoint_reference_identifier_value, + { "Endpoint reference identifier value", "q2931.endpoint_reference.identifier_value", + FT_UINT16, BASE_DEC, NULL, 0x7FFF, + NULL, HFILL } + }, + { &hf_q2931_endpoint_state, + { "Endpoint reference party-state", "q2931.endpoint_state", + FT_UINT8, BASE_HEX, VALS(q2931_endpoint_reference_party_state_vals), 0x3F, + NULL, HFILL } + }, + { &hf_q2931_information_element, + { "Information element", "q2931.information_element", + FT_UINT8, BASE_HEX|BASE_EXT_STRING, &q2931_info_element_vals_ext, 0x0, + NULL, HFILL } + }, + { &hf_q2931_information_element_extension, + { "Information element extension", "q2931.information_element.extension", + FT_UINT8, BASE_HEX, NULL, 0x0, + NULL, HFILL } + }, + { &hf_q2931_information_element_length, + { "Length", "q2931.information_element.length", + FT_UINT16, BASE_DEC, NULL, 0x0, + NULL, HFILL } + }, + { &hf_q2931_information_element_data, + { "Data", "q2931.information_element.data", + FT_BYTES, BASE_NONE, NULL, 0x0, + NULL, HFILL } + }, }; static gint *ett[] = { &ett_q2931, @@ -2143,3 +2483,16 @@ proto_register_q2931(void) register_dissector("q2931", dissect_q2931, proto_q2931); } + +/* + * Editor modelines - http://www.wireshark.org/tools/modelines.html + * + * Local variables: + * c-basic-offset: 8 + * tab-width: 8 + * indent-tabs-mode: t + * End: + * + * vi: set shiftwidth=8 tabstop=8 noexpandtab: + * :indentSize=8:tabSize=8:noTabs=false: + */ |