@@ -105,6 +105,7 @@ static int hf_appneta_resp_cb_request_reserved1;
105105static int hf_appneta_resp_cb_request_reserved2 ;
106106static int hf_appneta_resp_cb_ready_reserved1 ;
107107static int hf_appneta_resp_cb_ready_reserved2 ;
108+ static int hf_appneta_resp_ecb_iht ;
108109static int hf_appneta_resp_ecb_request_padding ;
109110static int hf_appneta_resp_ecb_request_flags ;
110111static int hf_appneta_resp_ecb_request_flags_first_seq ;
@@ -638,7 +639,7 @@ add_subtree(tvbuff_t *tvb, int *offset, proto_tree *current_tree,
638639static int
639640dissect_responder_headers_parse (tvbuff_t * tvb , packet_info * pinfo , proto_tree * appneta_resp_tree , int offset , int currentHeader , appneta_pkt_type_t appneta_pkt_type )
640641{
641- int remaining = tvb_captured_length_remaining (tvb , 0 );
642+ int remaining = tvb_captured_length_remaining (tvb , offset );
642643 uint32_t pass = 0 ;
643644
644645 while (currentHeader != HDR_LAST && currentHeader < HDR_INVALID ) {
@@ -1417,9 +1418,18 @@ dissect_appneta_payload(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, voi
14171418
14181419 ++ offset ;
14191420 if (bytes >= ecb_payload_min_size && tvb_captured_length_remaining (tvb , offset ) > 0 ) {
1420- int currentHeader = tvb_get_uint8 (tvb , offset );
1421- /* Get a pointer to our subtree */
1422- // appneta_resp_tree = proto_item_add_subtree(ti, ett_appneta_resp);
1421+ int currentHeader = tvb_get_uint8 (tvb , offset );
1422+ int headerLength = tvb_get_uint8 (tvb , offset + 1 );
1423+ proto_tree * current_tree = data_tree ;
1424+ current_tree = add_subtree (tvb , & offset , current_tree , currentHeader , headerLength ,
1425+ "Enhanced Control Burst Header" );
1426+ iht = tvb_get_ntohl (tvb , offset );
1427+ proto_tree_add_item (current_tree , hf_appneta_resp_ecb_iht , tvb , offset , 4 , ENC_NA );
1428+
1429+ /* set some text in the info column */
1430+ col_append_fstr (pinfo -> cinfo , COL_INFO , " IHT=%u" , iht );
1431+
1432+ offset += headerLength - 2 ;
14231433 offset = dissect_responder_headers_parse (tvb , pinfo , data_tree , offset , currentHeader , appneta_pkt_type );
14241434 if (!offset )
14251435 return 0 ;
@@ -1584,6 +1594,8 @@ register_appneta_responder(void)
15841594 { "Rate Limit CB Ready - reserved1" , "appneta-resp.cb_resp_ratelimit_cb_ready_reserved1" , FT_UINT8 , BASE_DEC , NULL , 0x0 , "" , HFILL } },
15851595 { & hf_appneta_resp_cb_ready_reserved2 ,
15861596 { "Rate Limit CB Ready - reserved2" , "appneta-resp.cb_resp_ratelimit_cb_ready_reserved2" , FT_UINT8 , BASE_DEC , NULL , 0x0 , "" , HFILL } },
1597+ { & hf_appneta_resp_ecb_iht ,
1598+ { "Interrupt Hold Time" , "appneta-resp.ecb.iht" , FT_UINT32 , BASE_DEC , NULL , 0x0 , "" , HFILL } },
15871599 { & hf_appneta_resp_ecb_request_padding ,
15881600 { "ECB Request padding" , "appneta-resp.ecb_request_padding" , FT_UINT8 , BASE_DEC , NULL , 0x0 , "" , HFILL } },
15891601 { & hf_appneta_resp_ecb_request_flags ,
0 commit comments