From Yi Zhang:
[obnox/wireshark/wip.git] / plugins / docsis / packet-dcd.c
index 60d5a464506b13d5a472fa8fcc30042e75b78b19..7dec7e067580b5b986f126650b49482b9b2cf6d6 100644 (file)
@@ -102,6 +102,7 @@ static int hf_docsis_dcd_cfr_tcpudp_dstport_end = -1;
 static int hf_docsis_dcd_rule_id = -1;
 static int hf_docsis_dcd_rule_pri = -1;
 static int hf_docsis_dcd_rule_ucid_list = -1;
+static int hf_docsis_dcd_clid_bcast_id = -1;
 static int hf_docsis_dcd_clid_known_mac_addr = -1;
 static int hf_docsis_dcd_clid_ca_sys_id = -1;
 static int hf_docsis_dcd_clid_app_id = -1;
@@ -337,11 +338,21 @@ dissect_dcd_clid (tvbuff_t * tvb, proto_tree * tree, int start, guint16 len)
        
        switch (type)
          {
+               case DCD_CLID_BCAST_ID:
+                       if (length == 2)
+                       {
+                               proto_tree_add_item(dcd_tree, hf_docsis_dcd_clid_bcast_id, tvb, pos, length, ENC_BIG_ENDIAN);
+                       }
+                       else
+                       {
+                               THROW (ReportedBoundsError);
+                       }
+                       break;
            case DCD_CLID_KNOWN_MAC_ADDR:
              if (length == 6)
                {
                  proto_tree_add_item (dcd_tree, hf_docsis_dcd_clid_known_mac_addr, tvb,
-                                      pos, length, FALSE);
+                                      pos, length, ENC_NA);
                }
              else
                {
@@ -426,7 +437,7 @@ dissect_dcd_dsg_rule (tvbuff_t * tvb, proto_tree * tree, int start, guint16 len)
              if (length == 6)
                {
                  proto_tree_add_item (dcd_tree, hf_docsis_dcd_rule_tunl_addr, tvb,
-                                  pos, length, FALSE);
+                                  pos, length, ENC_NA);
                }
               else 
                {
@@ -704,6 +715,15 @@ proto_register_docsis_dcd (void)
       HFILL
       }
     },
+       {&hf_docsis_dcd_clid_bcast_id,
+               {
+                       "DSG Rule Client ID Broadcast ID",
+                       "docsis_dcd.clid_bcast_id",
+                       FT_UINT16, BASE_DEC, NULL, 0x0,
+                       NULL,
+                       HFILL
+               }
+       },
     {&hf_docsis_dcd_clid_known_mac_addr,
       {
       "DSG Rule Client ID Known MAC Address",