forked from osmocom/wireshark
Compare commits
1 Commits
master
...
pespin/rlc
Author | SHA1 | Date |
---|---|---|
Pau Espin | 5492ca2d6a |
|
@ -49,6 +49,7 @@ void proto_reg_handoff_gsm_rlcmac(void);
|
|||
|
||||
static dissector_handle_t lte_rrc_dl_dcch_handle = NULL;
|
||||
static dissector_handle_t rrc_irat_ho_to_utran_cmd_handle = NULL;
|
||||
static dissector_handle_t llc_handle = NULL;
|
||||
|
||||
/* private typedefs */
|
||||
typedef struct
|
||||
|
@ -8585,6 +8586,7 @@ static guint8 dissect_gprs_data_segments(tvbuff_t *tvb, packet_info *pinfo, prot
|
|||
data_tvb = tvb_new_subset_length(tvb, octet_offset, blk_length - octet_offset);
|
||||
call_data_dissector(data_tvb, pinfo, subtree);
|
||||
octet_offset = blk_length;
|
||||
/* TODO: here store data_tvb for later */
|
||||
break;
|
||||
|
||||
case 63:
|
||||
|
@ -8611,7 +8613,14 @@ static guint8 dissect_gprs_data_segments(tvbuff_t *tvb, packet_info *pinfo, prot
|
|||
"data segment: LI[%d]=%d indicates: (Last segment of) LLC frame (%d octets)",
|
||||
i, li, li);
|
||||
data_tvb = tvb_new_subset_length(tvb, octet_offset, li);
|
||||
call_data_dissector(data_tvb, pinfo, subtree);
|
||||
if(data_tvb) {
|
||||
if (llc_handle) {
|
||||
/* TODO: here used data_tvb previously stored and append current data_tvb to it. */
|
||||
call_dissector(llc_handle, data_tvb, pinfo, subtree);
|
||||
} else {
|
||||
call_data_dissector(data_tvb, pinfo, subtree);
|
||||
}
|
||||
}
|
||||
octet_offset += li;
|
||||
break;
|
||||
}
|
||||
|
@ -8628,6 +8637,7 @@ static guint8 dissect_gprs_data_segments(tvbuff_t *tvb, packet_info *pinfo, prot
|
|||
"data segment: LI not present: \n The Upper Layer PDU in the current RLC data block either fills the current RLC data block precisely \nor continues in the following in-sequence RLC data block");
|
||||
data_tvb = tvb_new_subset_length(tvb, octet_offset, blk_length - octet_offset);
|
||||
call_data_dissector(data_tvb, pinfo, subtree);
|
||||
/* TODO: here store data_tvb for later */
|
||||
} else {
|
||||
proto_tree_add_bytes_item(tree, hf_padding, tvb, octet_offset, blk_length - octet_offset, ENC_BIG_ENDIAN, NULL, NULL, NULL);
|
||||
}
|
||||
|
@ -8730,7 +8740,14 @@ static guint16 dissect_egprs_data_segments(tvbuff_t *tvb, packet_info *pinfo, pr
|
|||
"data segment: LI[%d]=%d indicates: (Last segment of) LLC frame (%d octets)",
|
||||
i, li, li);
|
||||
data_tvb = tvb_new_subset_length(tvb, octet_offset, li);
|
||||
call_data_dissector(data_tvb, pinfo, subtree);
|
||||
if(data_tvb) {
|
||||
if (llc_handle) {
|
||||
/* TODO: here used data_tvb previously stored and append current data_tvb to it. */
|
||||
call_dissector(llc_handle, data_tvb, pinfo, subtree);
|
||||
} else {
|
||||
call_data_dissector(data_tvb, pinfo, subtree);
|
||||
}
|
||||
}
|
||||
octet_offset += li;
|
||||
break;
|
||||
}
|
||||
|
@ -18630,6 +18647,7 @@ void proto_reg_handoff_gsm_rlcmac(void)
|
|||
{
|
||||
lte_rrc_dl_dcch_handle = find_dissector("lte_rrc.dl_dcch");
|
||||
rrc_irat_ho_to_utran_cmd_handle = find_dissector("rrc.irat.ho_to_utran_cmd");
|
||||
llc_handle = find_dissector("llcgprs");
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
Loading…
Reference in New Issue