Add new strings/dissector function for signalling RRC messages that will add
[obnox/wireshark/wip.git] / asn1 / lte-rrc / packet-lte-rrc-template.c
index ac58462cd0a3aba6c137b01ad402b1ffc62c8baa..bd211011629be637986f6da78b1664264902db92 100644 (file)
@@ -80,9 +80,59 @@ dissect_lte_rrc_DL_CCCH(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
                lte_rrc_tree = proto_item_add_subtree(ti, ett_lte_rrc);
                dissect_DL_CCCH_Message_PDU(tvb, pinfo, lte_rrc_tree);
        }
+}
+
+static void
+dissect_lte_rrc_DL_DCCH(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+{
+       proto_item *ti;
+       proto_tree *lte_rrc_tree;
 
+       col_set_str(pinfo->cinfo, COL_PROTOCOL, "LTE RRC DL_DCCH");
+       col_clear(pinfo->cinfo, COL_INFO);
+       if (tree) {
+
+               ti = proto_tree_add_item(tree, proto_lte_rrc, tvb, 0, -1, FALSE);
+               lte_rrc_tree = proto_item_add_subtree(ti, ett_lte_rrc);
+               dissect_DL_DCCH_Message_PDU(tvb, pinfo, lte_rrc_tree);
+       }
 }
 
+
+static void
+dissect_lte_rrc_UL_CCCH(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+{
+       proto_item *ti;
+       proto_tree *lte_rrc_tree;
+
+       col_set_str(pinfo->cinfo, COL_PROTOCOL, "LTE RRC UL_CCCH");
+       col_clear(pinfo->cinfo, COL_INFO);
+       if (tree) {
+
+               ti = proto_tree_add_item(tree, proto_lte_rrc, tvb, 0, -1, FALSE);
+               lte_rrc_tree = proto_item_add_subtree(ti, ett_lte_rrc);
+               dissect_UL_CCCH_Message_PDU(tvb, pinfo, lte_rrc_tree);
+       }
+}
+
+static void
+dissect_lte_rrc_UL_DCCH(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+{
+       proto_item *ti;
+       proto_tree *lte_rrc_tree;
+
+       col_set_str(pinfo->cinfo, COL_PROTOCOL, "LTE RRC UL_DCCH");
+       col_clear(pinfo->cinfo, COL_INFO);
+       if (tree) {
+
+               ti = proto_tree_add_item(tree, proto_lte_rrc, tvb, 0, -1, FALSE);
+               lte_rrc_tree = proto_item_add_subtree(ti, ett_lte_rrc);
+               dissect_UL_DCCH_Message_PDU(tvb, pinfo, lte_rrc_tree);
+       }
+}
+
+
+
 /*--- proto_register_rrc -------------------------------------------*/
 void proto_register_lte_rrc(void) {
 
@@ -101,7 +151,13 @@ void proto_register_lte_rrc(void) {
 
   /* Register protocol */
   proto_lte_rrc = proto_register_protocol(PNAME, PSNAME, PFNAME);
+
+  /* These entry points will first create an lte_rrc root node */
   register_dissector("lte_rrc.dl_ccch", dissect_lte_rrc_DL_CCCH, proto_lte_rrc);
+  register_dissector("lte_rrc.dl_dcch", dissect_lte_rrc_DL_DCCH, proto_lte_rrc);
+  register_dissector("lte_rrc.ul_ccch", dissect_lte_rrc_UL_CCCH, proto_lte_rrc);
+  register_dissector("lte_rrc.ul_dcch", dissect_lte_rrc_UL_DCCH, proto_lte_rrc);
+
   /* Register fields and subtrees */
   proto_register_field_array(proto_lte_rrc, hf, array_length(hf));
   proto_register_subtree_array(ett, array_length(ett));