diff options
author | Pascal Quantin <pascal.quantin@gmail.com> | 2016-11-20 17:36:02 +0100 |
---|---|---|
committer | Pascal Quantin <pascal.quantin@gmail.com> | 2016-11-20 18:02:43 +0000 |
commit | a95667b388f75a40f7a63fb9b80e7ed896a836d9 (patch) | |
tree | 3ae6918589de0be769f46674b36aa31e978e2bbc /epan | |
parent | 22f6ab034d75b0bb03cb8f388533b77e024878f1 (diff) |
PDCP LTE: add NB-IoT channels
Change-Id: I3dfb54bc4614ea033ba89ab1fc8be83ad5025473
Reviewed-on: https://code.wireshark.org/review/18900
Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
Diffstat (limited to 'epan')
-rw-r--r-- | epan/dissectors/packet-pdcp-lte.c | 63 | ||||
-rw-r--r-- | epan/dissectors/packet-pdcp-lte.h | 6 |
2 files changed, 58 insertions, 11 deletions
diff --git a/epan/dissectors/packet-pdcp-lte.c b/epan/dissectors/packet-pdcp-lte.c index fa05f0b86e..f5ad91c02c 100644 --- a/epan/dissectors/packet-pdcp-lte.c +++ b/epan/dissectors/packet-pdcp-lte.c @@ -451,6 +451,13 @@ static dissector_handle_t lte_rrc_bcch_bch; static dissector_handle_t lte_rrc_bcch_dl_sch; static dissector_handle_t lte_rrc_ul_dcch; static dissector_handle_t lte_rrc_dl_dcch; +static dissector_handle_t lte_rrc_ul_ccch_nb; +static dissector_handle_t lte_rrc_dl_ccch_nb; +static dissector_handle_t lte_rrc_pcch_nb; +static dissector_handle_t lte_rrc_bcch_bch_nb; +static dissector_handle_t lte_rrc_bcch_dl_sch_nb; +static dissector_handle_t lte_rrc_ul_dcch_nb; +static dissector_handle_t lte_rrc_dl_dcch_nb; #define SEQUENCE_ANALYSIS_RLC_ONLY 1 @@ -1245,6 +1252,35 @@ static dissector_handle_t lookup_rrc_dissector_handle(struct pdcp_lte_info *p_p rrc_handle = lte_rrc_dl_dcch; } break; + case Channel_CCCH_NB: + if (p_pdcp_info->direction == DIRECTION_UPLINK) { + rrc_handle = lte_rrc_ul_ccch_nb; + } + else { + rrc_handle = lte_rrc_dl_ccch_nb; + } + break; + case Channel_PCCH_NB: + rrc_handle = lte_rrc_pcch_nb; + break; + case Channel_BCCH_NB: + switch (p_pdcp_info->BCCHTransport) { + case BCH_TRANSPORT: + rrc_handle = lte_rrc_bcch_bch_nb; + break; + case DLSCH_TRANSPORT: + rrc_handle = lte_rrc_bcch_dl_sch_nb; + break; + } + break; + case Channel_DCCH_NB: + if (p_pdcp_info->direction == DIRECTION_UPLINK) { + rrc_handle = lte_rrc_ul_dcch_nb; + } + else { + rrc_handle = lte_rrc_dl_dcch_nb; + } + break; default: @@ -2948,16 +2984,23 @@ void proto_reg_handoff_pdcp_lte(void) /* Add as a heuristic UDP dissector */ heur_dissector_add("udp", dissect_pdcp_lte_heur, "PDCP-LTE over UDP", "pdcp_lte_udp", proto_pdcp_lte, HEURISTIC_DISABLE); - ip_handle = find_dissector_add_dependency("ip", proto_pdcp_lte); - ipv6_handle = find_dissector_add_dependency("ipv6", proto_pdcp_lte); - rohc_handle = find_dissector_add_dependency("rohc", proto_pdcp_lte); - lte_rrc_ul_ccch = find_dissector_add_dependency("lte_rrc.ul_ccch", proto_pdcp_lte); - lte_rrc_dl_ccch = find_dissector_add_dependency("lte_rrc.dl_ccch", proto_pdcp_lte); - lte_rrc_pcch = find_dissector_add_dependency("lte_rrc.pcch", proto_pdcp_lte); - lte_rrc_bcch_bch = find_dissector_add_dependency("lte_rrc.bcch_bch", proto_pdcp_lte); - lte_rrc_bcch_dl_sch = find_dissector_add_dependency("lte_rrc.bcch_dl_sch", proto_pdcp_lte); - lte_rrc_ul_dcch = find_dissector_add_dependency("lte_rrc.ul_dcch", proto_pdcp_lte); - lte_rrc_dl_dcch = find_dissector_add_dependency("lte_rrc.dl_dcch", proto_pdcp_lte); + ip_handle = find_dissector_add_dependency("ip", proto_pdcp_lte); + ipv6_handle = find_dissector_add_dependency("ipv6", proto_pdcp_lte); + rohc_handle = find_dissector_add_dependency("rohc", proto_pdcp_lte); + lte_rrc_ul_ccch = find_dissector_add_dependency("lte_rrc.ul_ccch", proto_pdcp_lte); + lte_rrc_dl_ccch = find_dissector_add_dependency("lte_rrc.dl_ccch", proto_pdcp_lte); + lte_rrc_pcch = find_dissector_add_dependency("lte_rrc.pcch", proto_pdcp_lte); + lte_rrc_bcch_bch = find_dissector_add_dependency("lte_rrc.bcch_bch", proto_pdcp_lte); + lte_rrc_bcch_dl_sch = find_dissector_add_dependency("lte_rrc.bcch_dl_sch", proto_pdcp_lte); + lte_rrc_ul_dcch = find_dissector_add_dependency("lte_rrc.ul_dcch", proto_pdcp_lte); + lte_rrc_dl_dcch = find_dissector_add_dependency("lte_rrc.dl_dcch", proto_pdcp_lte); + lte_rrc_ul_ccch_nb = find_dissector_add_dependency("lte_rrc.ul_ccch.nb", proto_pdcp_lte); + lte_rrc_dl_ccch_nb = find_dissector_add_dependency("lte_rrc.dl_ccch.nb", proto_pdcp_lte); + lte_rrc_pcch_nb = find_dissector_add_dependency("lte_rrc.pcch.nb", proto_pdcp_lte); + lte_rrc_bcch_bch_nb = find_dissector_add_dependency("lte_rrc.bcch_bch.nb", proto_pdcp_lte); + lte_rrc_bcch_dl_sch_nb = find_dissector_add_dependency("lte_rrc.bcch_dl_sch.nb", proto_pdcp_lte); + lte_rrc_ul_dcch_nb = find_dissector_add_dependency("lte_rrc.ul_dcch.nb", proto_pdcp_lte); + lte_rrc_dl_dcch_nb = find_dissector_add_dependency("lte_rrc.dl_dcch.nb", proto_pdcp_lte); } /* diff --git a/epan/dissectors/packet-pdcp-lte.h b/epan/dissectors/packet-pdcp-lte.h index d5d21a9625..a02626c40c 100644 --- a/epan/dissectors/packet-pdcp-lte.h +++ b/epan/dissectors/packet-pdcp-lte.h @@ -38,7 +38,11 @@ typedef enum LogicalChannelType Channel_DCCH=1, Channel_BCCH=2, Channel_CCCH=3, - Channel_PCCH=4 + Channel_PCCH=4, + Channel_DCCH_NB=5, + Channel_BCCH_NB=6, + Channel_CCCH_NB=7, + Channel_PCCH_NB=8 } LogicalChannelType; typedef enum |