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 lte_rrc_dl_dcch_handle = NULL;
|
||||||
static dissector_handle_t rrc_irat_ho_to_utran_cmd_handle = NULL;
|
static dissector_handle_t rrc_irat_ho_to_utran_cmd_handle = NULL;
|
||||||
|
static dissector_handle_t llc_handle = NULL;
|
||||||
|
|
||||||
/* private typedefs */
|
/* private typedefs */
|
||||||
typedef struct
|
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);
|
data_tvb = tvb_new_subset_length(tvb, octet_offset, blk_length - octet_offset);
|
||||||
call_data_dissector(data_tvb, pinfo, subtree);
|
call_data_dissector(data_tvb, pinfo, subtree);
|
||||||
octet_offset = blk_length;
|
octet_offset = blk_length;
|
||||||
|
/* TODO: here store data_tvb for later */
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 63:
|
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)",
|
"data segment: LI[%d]=%d indicates: (Last segment of) LLC frame (%d octets)",
|
||||||
i, li, li);
|
i, li, li);
|
||||||
data_tvb = tvb_new_subset_length(tvb, octet_offset, li);
|
data_tvb = tvb_new_subset_length(tvb, octet_offset, li);
|
||||||
|
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);
|
call_data_dissector(data_tvb, pinfo, subtree);
|
||||||
|
}
|
||||||
|
}
|
||||||
octet_offset += li;
|
octet_offset += li;
|
||||||
break;
|
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 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);
|
data_tvb = tvb_new_subset_length(tvb, octet_offset, blk_length - octet_offset);
|
||||||
call_data_dissector(data_tvb, pinfo, subtree);
|
call_data_dissector(data_tvb, pinfo, subtree);
|
||||||
|
/* TODO: here store data_tvb for later */
|
||||||
} else {
|
} else {
|
||||||
proto_tree_add_bytes_item(tree, hf_padding, tvb, octet_offset, blk_length - octet_offset, ENC_BIG_ENDIAN, NULL, NULL, NULL);
|
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)",
|
"data segment: LI[%d]=%d indicates: (Last segment of) LLC frame (%d octets)",
|
||||||
i, li, li);
|
i, li, li);
|
||||||
data_tvb = tvb_new_subset_length(tvb, octet_offset, li);
|
data_tvb = tvb_new_subset_length(tvb, octet_offset, li);
|
||||||
|
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);
|
call_data_dissector(data_tvb, pinfo, subtree);
|
||||||
|
}
|
||||||
|
}
|
||||||
octet_offset += li;
|
octet_offset += li;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -18630,6 +18647,7 @@ void proto_reg_handoff_gsm_rlcmac(void)
|
||||||
{
|
{
|
||||||
lte_rrc_dl_dcch_handle = find_dissector("lte_rrc.dl_dcch");
|
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");
|
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