aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-diameter_3gpp.c
diff options
context:
space:
mode:
authorRay Gomez <rayvincent.gomez@gmail.com>2015-05-05 00:24:30 +0800
committerPascal Quantin <pascal.quantin@gmail.com>2015-05-04 19:39:15 +0000
commitc14022e9093790b6ba2e53ba2ad4e67654e004dc (patch)
treea4e7450add9532d655af78c71022c6330e36da5d /epan/dissectors/packet-diameter_3gpp.c
parent222597b1f4c38213f46f2ba922cd70655aceb5d3 (diff)
added features in Feature-List-ID 2 used in S6a/S6d
Change-Id: I4e1be924ffa7cb09c4c73d494f5d97c9cc0bf626 Reviewed-on: https://code.wireshark.org/review/8291 Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
Diffstat (limited to 'epan/dissectors/packet-diameter_3gpp.c')
-rw-r--r--epan/dissectors/packet-diameter_3gpp.c132
1 files changed, 130 insertions, 2 deletions
diff --git a/epan/dissectors/packet-diameter_3gpp.c b/epan/dissectors/packet-diameter_3gpp.c
index 726942559a..ddc19b9649 100644
--- a/epan/dissectors/packet-diameter_3gpp.c
+++ b/epan/dissectors/packet-diameter_3gpp.c
@@ -95,6 +95,22 @@ static int hf_diameter_3gpp_feature_list1_s6a_flags_bit30 = -1;
static int hf_diameter_3gpp_feature_list1_s6a_flags_bit31 = -1;
static int hf_diameter_3gpp_feature_list2_s6a_flags_bit0 = -1;
static int hf_diameter_3gpp_feature_list2_s6a_flags_bit1 = -1;
+static int hf_diameter_3gpp_feature_list2_s6a_flags_bit2 = -1;
+static int hf_diameter_3gpp_feature_list2_s6a_flags_bit3 = -1;
+static int hf_diameter_3gpp_feature_list2_s6a_flags_bit4 = -1;
+static int hf_diameter_3gpp_feature_list2_s6a_flags_bit5 = -1;
+static int hf_diameter_3gpp_feature_list2_s6a_flags_bit6 = -1;
+static int hf_diameter_3gpp_feature_list2_s6a_flags_bit7 = -1;
+static int hf_diameter_3gpp_feature_list2_s6a_flags_bit8 = -1;
+static int hf_diameter_3gpp_feature_list2_s6a_flags_bit9 = -1;
+static int hf_diameter_3gpp_feature_list2_s6a_flags_bit10 = -1;
+static int hf_diameter_3gpp_feature_list2_s6a_flags_bit11 = -1;
+static int hf_diameter_3gpp_feature_list2_s6a_flags_bit12 = -1;
+static int hf_diameter_3gpp_feature_list2_s6a_flags_bit13 = -1;
+static int hf_diameter_3gpp_feature_list2_s6a_flags_bit14 = -1;
+static int hf_diameter_3gpp_feature_list2_s6a_flags_bit15 = -1;
+static int hf_diameter_3gpp_feature_list2_s6a_flags_bit16 = -1;
+static int hf_diameter_3gpp_feature_list2_s6a_flags_bit17 = -1;
static int hf_diameter_3gpp_feature_list_gx_flags_bit0 = -1;
static int hf_diameter_3gpp_feature_list_gx_flags_bit1 = -1;
static int hf_diameter_3gpp_feature_list_gx_flags_bit2 = -1;
@@ -542,8 +558,40 @@ dissect_diameter_3gpp_feature_list(tvbuff_t *tvb, packet_info *pinfo _U_, proto_
bit_offset++;
proto_tree_add_bits_item(sub_tree, hf_diameter_3gpp_feature_list1_s6a_flags_bit0, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
} else if(feature_list_id == 2) {
- proto_tree_add_bits_item(sub_tree, hf_diameter_3gpp_spare_bits, tvb, bit_offset, 30, ENC_BIG_ENDIAN);
- bit_offset+=30;
+ proto_tree_add_bits_item(sub_tree, hf_diameter_3gpp_spare_bits, tvb, bit_offset, 14, ENC_BIG_ENDIAN);
+ bit_offset+=14;
+ proto_tree_add_bits_item(sub_tree, hf_diameter_3gpp_feature_list2_s6a_flags_bit17, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
+ bit_offset++;
+ proto_tree_add_bits_item(sub_tree, hf_diameter_3gpp_feature_list2_s6a_flags_bit16, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
+ bit_offset++;
+ proto_tree_add_bits_item(sub_tree, hf_diameter_3gpp_feature_list2_s6a_flags_bit15, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
+ bit_offset++;
+ proto_tree_add_bits_item(sub_tree, hf_diameter_3gpp_feature_list2_s6a_flags_bit14, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
+ bit_offset++;
+ proto_tree_add_bits_item(sub_tree, hf_diameter_3gpp_feature_list2_s6a_flags_bit13, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
+ bit_offset++;
+ proto_tree_add_bits_item(sub_tree, hf_diameter_3gpp_feature_list2_s6a_flags_bit12, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
+ bit_offset++;
+ proto_tree_add_bits_item(sub_tree, hf_diameter_3gpp_feature_list2_s6a_flags_bit11, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
+ bit_offset++;
+ proto_tree_add_bits_item(sub_tree, hf_diameter_3gpp_feature_list2_s6a_flags_bit10, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
+ bit_offset++;
+ proto_tree_add_bits_item(sub_tree, hf_diameter_3gpp_feature_list2_s6a_flags_bit9, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
+ bit_offset++;
+ proto_tree_add_bits_item(sub_tree, hf_diameter_3gpp_feature_list2_s6a_flags_bit8, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
+ bit_offset++;
+ proto_tree_add_bits_item(sub_tree, hf_diameter_3gpp_feature_list2_s6a_flags_bit7, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
+ bit_offset++;
+ proto_tree_add_bits_item(sub_tree, hf_diameter_3gpp_feature_list2_s6a_flags_bit6, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
+ bit_offset++;
+ proto_tree_add_bits_item(sub_tree, hf_diameter_3gpp_feature_list2_s6a_flags_bit5, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
+ bit_offset++;
+ proto_tree_add_bits_item(sub_tree, hf_diameter_3gpp_feature_list2_s6a_flags_bit4, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
+ bit_offset++;
+ proto_tree_add_bits_item(sub_tree, hf_diameter_3gpp_feature_list2_s6a_flags_bit3, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
+ bit_offset++;
+ proto_tree_add_bits_item(sub_tree, hf_diameter_3gpp_feature_list2_s6a_flags_bit2, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
+ bit_offset++;
proto_tree_add_bits_item(sub_tree, hf_diameter_3gpp_feature_list2_s6a_flags_bit1, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
bit_offset++;
proto_tree_add_bits_item(sub_tree, hf_diameter_3gpp_feature_list2_s6a_flags_bit0, tvb, bit_offset, 1, ENC_BIG_ENDIAN);
@@ -1558,6 +1606,86 @@ proto_register_diameter_3gpp(void)
FT_BOOLEAN, BASE_NONE, TFS(&tfs_supported_not_supported), 0x0,
NULL, HFILL }
},
+ { &hf_diameter_3gpp_feature_list2_s6a_flags_bit2,
+ { "Dia-LCS-all-PrivExcep", "diameter.3gpp.feature_list2_s6a_flags_bit2",
+ FT_BOOLEAN, BASE_NONE, TFS(&tfs_supported_not_supported), 0x0,
+ NULL, HFILL }
+ },
+ { &hf_diameter_3gpp_feature_list2_s6a_flags_bit3,
+ { "Dia-LCS-Universal", "diameter.3gpp.feature_list2_s6a_flags_bit3",
+ FT_BOOLEAN, BASE_NONE, TFS(&tfs_supported_not_supported), 0x0,
+ NULL, HFILL }
+ },
+ { &hf_diameter_3gpp_feature_list2_s6a_flags_bit4,
+ { "Dia-LCS-CallSessionRelated", "diameter.3gpp.feature_list2_s6a_flags_bit4",
+ FT_BOOLEAN, BASE_NONE, TFS(&tfs_supported_not_supported), 0x0,
+ NULL, HFILL }
+ },
+ { &hf_diameter_3gpp_feature_list2_s6a_flags_bit5,
+ { "Dia-LCS-CallSessionUnrelated", "diameter.3gpp.feature_list2_s6a_flags_bit5",
+ FT_BOOLEAN, BASE_NONE, TFS(&tfs_supported_not_supported), 0x0,
+ NULL, HFILL }
+ },
+ { &hf_diameter_3gpp_feature_list2_s6a_flags_bit6,
+ { "Dia-LCS-PLMNOperator", "diameter.3gpp.feature_list2_s6a_flags_bit6",
+ FT_BOOLEAN, BASE_NONE, TFS(&tfs_supported_not_supported), 0x0,
+ NULL, HFILL }
+ },
+ { &hf_diameter_3gpp_feature_list2_s6a_flags_bit7,
+ { "Dia-LCS-ServiceType", "diameter.3gpp.feature_list2_s6a_flags_bit7",
+ FT_BOOLEAN, BASE_NONE, TFS(&tfs_supported_not_supported), 0x0,
+ NULL, HFILL }
+ },
+ { &hf_diameter_3gpp_feature_list2_s6a_flags_bit8,
+ { "Dia-LCS-all-MOLR-SS", "diameter.3gpp.feature_list2_s6a_flags_bit8",
+ FT_BOOLEAN, BASE_NONE, TFS(&tfs_supported_not_supported), 0x0,
+ NULL, HFILL }
+ },
+ { &hf_diameter_3gpp_feature_list2_s6a_flags_bit9,
+ { "Dia-LCS-BasicSelfLocation", "diameter.3gpp.feature_list2_s6a_flags_bit9",
+ FT_BOOLEAN, BASE_NONE, TFS(&tfs_supported_not_supported), 0x0,
+ NULL, HFILL }
+ },
+ { &hf_diameter_3gpp_feature_list2_s6a_flags_bit10,
+ { "Dia-LCS-AutonomousSelfLocation", "diameter.3gpp.feature_list2_s6a_flags_bit10",
+ FT_BOOLEAN, BASE_NONE, TFS(&tfs_supported_not_supported), 0x0,
+ NULL, HFILL }
+ },
+ { &hf_diameter_3gpp_feature_list2_s6a_flags_bit11,
+ { "Dia-LCS-TransferToThirdParty", "diameter.3gpp.feature_list2_s6a_flags_bit11",
+ FT_BOOLEAN, BASE_NONE, TFS(&tfs_supported_not_supported), 0x0,
+ NULL, HFILL }
+ },
+ { &hf_diameter_3gpp_feature_list2_s6a_flags_bit12,
+ { "Gdd-in-SGSN", "diameter.3gpp.feature_list2_s6a_flags_bit12",
+ FT_BOOLEAN, BASE_NONE, TFS(&tfs_supported_not_supported), 0x0,
+ NULL, HFILL }
+ },
+ { &hf_diameter_3gpp_feature_list2_s6a_flags_bit13,
+ { "Optimized-LCS-Proc-Support", "diameter.3gpp.feature_list2_s6a_flags_bit13",
+ FT_BOOLEAN, BASE_NONE, TFS(&tfs_supported_not_supported), 0x0,
+ NULL, HFILL }
+ },
+ { &hf_diameter_3gpp_feature_list2_s6a_flags_bit14,
+ { "SGSN CAMEL Capability", "diameter.3gpp.feature_list2_s6a_flags_bit14",
+ FT_BOOLEAN, BASE_NONE, TFS(&tfs_supported_not_supported), 0x0,
+ NULL, HFILL }
+ },
+ { &hf_diameter_3gpp_feature_list2_s6a_flags_bit15,
+ { "ProSe Capability", "diameter.3gpp.feature_list2_s6a_flags_bit15",
+ FT_BOOLEAN, BASE_NONE, TFS(&tfs_supported_not_supported), 0x0,
+ NULL, HFILL }
+ },
+ { &hf_diameter_3gpp_feature_list2_s6a_flags_bit16,
+ { "P-CSCF Restoration", "diameter.3gpp.feature_list2_s6a_flags_bit16",
+ FT_BOOLEAN, BASE_NONE, TFS(&tfs_supported_not_supported), 0x0,
+ NULL, HFILL }
+ },
+ { &hf_diameter_3gpp_feature_list2_s6a_flags_bit17,
+ { "Reset-IDs", "diameter.3gpp.feature_list2_s6a_flags_bit17",
+ FT_BOOLEAN, BASE_NONE, TFS(&tfs_supported_not_supported), 0x0,
+ NULL, HFILL }
+ },
{ &hf_diameter_3gpp_feature_list_gx_flags_bit0,
{ "Rel-8 Gx", "diameter.3gpp.feature_list_gx_flags_bit0",
FT_BOOLEAN, BASE_NONE, TFS(&tfs_supported_not_supported), 0x0,