/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-rrc.c */
/* asn2wrs.py -p rrc -c ./rrc.cnf -s ./packet-rrc-template -D . -O ../.. Class-definitions.asn PDU-definitions.asn InformationElements.asn Constant-definitions.asn Internode-definitions.asn */
/* Input file: packet-rrc-template.c */
#line 1 "./asn1/rrc/packet-rrc-template.c"
/* packet-rrc.c
* Routines for Universal Mobile Telecommunications System (UMTS);
* Radio Resource Control (RRC) protocol specification
* (3GPP TS 25.331 packet dissection)
* Copyright 2006-2010, Anders Broman <anders.broman@ericsson.com>
*
* Wireshark - Network traffic analyzer
* By Gerald Combs <gerald@wireshark.org>
* Copyright 1998 Gerald Combs
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
* Ref: 3GPP TS 25.331 V17.1.0 (2022-06)
*/
/**
*
* TODO:
* - Fix ciphering information for circuit switched stuff
*/
#include "config.h"
#include <epan/packet.h>
#include <epan/asn1.h>
#include <epan/conversation.h>
#include <epan/expert.h>
#include <epan/proto_data.h>
#include <epan/prefs.h>
#include "packet-ber.h"
#include "packet-per.h"
#include "packet-rrc.h"
#include "packet-gsm_a_common.h"
#include "packet-nbap.h"
#include "packet-umts_fp.h"
#include "packet-umts_mac.h"
#include "packet-umts_rlc.h"
#ifdef _MSC_VER
/* disable: "warning C4049: compiler limit : terminating line number emission" */
#pragma warning(disable:4049)
/* disable: "warning C4146: unary minus operator applied to unsigned type, result still unsigned" */
#pragma warning(disable:4146)
#endif
#define PNAME "Radio Resource Control (RRC) protocol"
#define PSNAME "RRC"
#define PFNAME "rrc"
extern int proto_fp; /*Handler to FP*/
extern int proto_umts_mac; /*Handler to MAC*/
extern int proto_umts_rlc; /*Handler to RLC*/
GTree * hsdsch_muxed_flows = NULL;
GTree * rrc_ciph_info_tree = NULL;
wmem_tree_t* rrc_global_urnti_crnti_map = NULL;
static int msg_type _U_;
static gboolean rrc_nas_in_root_tree;
enum rrc_sib_segment_type {
RRC_SIB_SEG_NO_SEGMENT = 0,
RRC_SIB_SEG_FIRST = 1,
RRC_SIB_SEG_SUBSEQUENT = 2,
RRC_SIB_SEG_LAST_SHORT = 3,
RRC_SIB_SEG_LAST_AND_FIRST = 4,
RRC_SIB_SEG_LAST_AND_COMP = 5,
RRC_SIB_SEG_LAST_AND_COMP_AND_FIRST = 6,
RRC_SIB_SEG_COMP_LIST = 7,
RRC_SIB_SEG_COMP_AND_FIRST = 8,
RRC_SIB_SEG_COMP = 10,
};
/*****************************************************************************/
/* Packet private data */
/* For this dissector, all access to actx->private_data should be made */
/* through this API, which ensures that they will not overwrite each other!! */
/*****************************************************************************/
typedef struct umts_rrc_private_data_t
{
guint32 s_rnc_id; /* The S-RNC ID part of a U-RNTI */
guint32 s_rnti; /* The S-RNTI part of a U-RNTI */
guint32 new_u_rnti;
guint32 current_u_rnti;
guint32 scrambling_code;
enum nas_sys_info_gsm_map cn_domain;
wmem_strbuf_t* digits_strbuf; /* A collection of digits in a string. Used for reconstructing IMSIs or MCC-MNC pairs */
wmem_strbuf_t* last_mcc_strbuf; /* Last seen MCC digits string */
gboolean digits_strbuf_parsing_failed_flag; /* Whether an error occurred when creating the IMSI/MCC-MNC pair string */
guint32 rbid;
guint32 rlc_ciphering_sqn; /* Sequence number where ciphering starts in a given bearer */
rrc_ciphering_info* ciphering_info;
enum rrc_ue_state rrc_state_indicator;
enum rrc_sib_segment_type curr_sib_segment_type;
guint32 curr_sib_type;
} umts_rrc_private_data_t;
/* Helper function to get or create a struct that will be actx->private_data */
static umts_rrc_private_data_t* umts_rrc_get_private_data(asn1_ctx_t *actx)
{
if (actx->private_data == NULL) {
actx->private_data = wmem_new0(actx->pinfo->pool, umts_rrc_private_data_t);
}
return (umts_rrc_private_data_t*)actx->private_data;
}
static guint32 private_data_get_s_rnc_id(asn1_ctx_t *actx)
{
umts_rrc_private_data_t *private_data = (umts_rrc_private_data_t*)umts_rrc_get_private_data(actx);
return private_data->s_rnc_id;
}
static void private_data_set_s_rnc_id(asn1_ctx_t *actx, guint32 s_rnc_id)
{
umts_rrc_private_data_t *private_data = (umts_rrc_private_data_t*)umts_rrc_get_private_data(actx);
private_data->s_rnc_id = s_rnc_id;
}
static guint32 private_data_get_s_rnti(asn1_ctx_t *actx)
{
umts_rrc_private_data_t *private_data = (umts_rrc_private_data_t*)umts_rrc_get_private_data(actx);
return private_data->s_rnti;
}
static void private_data_set_s_rnti(asn1_ctx_t *actx, guint32 s_rnti)
{
umts_rrc_private_data_t *private_data = (umts_rrc_private_data_t*)umts_rrc_get_private_data(actx);
private_data->s_rnti = s_rnti;
}
static guint32 private_data_get_new_u_rnti(asn1_ctx_t *actx)
{
umts_rrc_private_data_t *private_data = (umts_rrc_private_data_t*)umts_rrc_get_private_data(actx);
return private_data->new_u_rnti;
}
static void private_data_set_new_u_rnti(asn1_ctx_t *actx, guint32 new_u_rnti)
{
umts_rrc_private_data_t *private_data = (umts_rrc_private_data_t*)umts_rrc_get_private_data(actx);
private_data->new_u_rnti = new_u_rnti;
}
static guint32 private_data_get_current_u_rnti(asn1_ctx_t *actx)
{
umts_rrc_private_data_t *private_data = (umts_rrc_private_data_t*)umts_rrc_get_private_data(actx);
return private_data->current_u_rnti;
}
static void private_data_set_current_u_rnti(asn1_ctx_t *actx, guint32 current_u_rnti)
{
umts_rrc_private_data_t *private_data = (umts_rrc_private_data_t*)umts_rrc_get_private_data(actx);
private_data->current_u_rnti = current_u_rnti;
}
static guint32 private_data_get_scrambling_code(asn1_ctx_t *actx)
{
umts_rrc_private_data_t *private_data = (umts_rrc_private_data_t*)umts_rrc_get_private_data(actx);
return private_data->scrambling_code;
}
static void private_data_set_scrambling_code(asn1_ctx_t *actx, guint32 scrambling_code)
{
umts_rrc_private_data_t *private_data = (umts_rrc_private_data_t*)umts_rrc_get_private_data(actx);
private_data->scrambling_code = scrambling_code;
}
static enum nas_sys_info_gsm_map private_data_get_cn_domain(asn1_ctx_t *actx)
{
umts_rrc_private_data_t *private_data = (umts_rrc_private_data_t*)umts_rrc_get_private_data(actx);
return private_data->cn_domain;
}
static void private_data_set_cn_domain(asn1_ctx_t *actx, enum nas_sys_info_gsm_map cn_domain)
{
umts_rrc_private_data_t *private_data = (umts_rrc_private_data_t*)umts_rrc_get_private_data(actx);
private_data->cn_domain = cn_domain;
}
static wmem_strbuf_t* private_data_get_digits_strbuf(asn1_ctx_t *actx)
{
umts_rrc_private_data_t *private_data = (umts_rrc_private_data_t*)umts_rrc_get_private_data(actx);
return private_data->digits_strbuf;
}
static void private_data_set_digits_strbuf(asn1_ctx_t *actx, wmem_strbuf_t* digits_strbuf)
{
umts_rrc_private_data_t *private_data = (umts_rrc_private_data_t*)umts_rrc_get_private_data(actx);
private_data->digits_strbuf = digits_strbuf;
}
static gboolean private_data_get_digits_strbuf_parsing_failed_flag(asn1_ctx_t *actx)
{
umts_rrc_private_data_t *private_data = (umts_rrc_private_data_t*)umts_rrc_get_private_data(actx);
return private_data->digits_strbuf_parsing_failed_flag;
}
static void private_data_set_digits_strbuf_parsing_failed_flag(asn1_ctx_t *actx, gboolean digits_strbuf_parsing_failed_flag)
{
umts_rrc_private_data_t *private_data = (umts_rrc_private_data_t*)umts_rrc_get_private_data(actx);
private_data->digits_strbuf_parsing_failed_flag = digits_strbuf_parsing_failed_flag;
}
static wmem_strbuf_t* private_data_get_last_mcc_strbuf(asn1_ctx_t *actx)
{
umts_rrc_private_data_t *private_data = (umts_rrc_private_data_t*)umts_rrc_get_private_data(actx);
return private_data->last_mcc_strbuf;
}
static void private_data_set_last_mcc_strbuf(asn1_ctx_t *actx
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【资源说明】 1、该资源内项目代码都是经过测试运行成功,功能正常的情况下才上传的,请放心下载使用。 2、适用人群:主要针对计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、数学、电子信息等)的同学或企业员工下载使用,具有较高的学习借鉴价值。 3、不仅适合小白学习实战练习,也可作为大作业、课程设计、毕设项目、初期项目立项演示等,欢迎下载,互相学习,共同进步!
资源推荐
资源详情
资源评论
收起资源包目录
基于Windows系统+qt框架的语音聊天网站源码+项目说明.zip (2000个子文件)
packet-rrc.c 9.48MB
packet-lte-rrc.c 7.46MB
packet-nr-rrc.c 7.14MB
packet-parlay.c 3.74MB
packet-rnsap.c 3.16MB
packet-lpp.c 1.95MB
packet-ieee80211.c 1.92MB
packet-gsm_map.c 1.49MB
packet-f1ap.c 1.44MB
packet-dcerpc-clusapi.c 1.34MB
packet-x2ap.c 1.34MB
usb.c 1.06MB
packet-its.c 1.04MB
packet-s1ap.c 986KB
packet-dcerpc-srvsvc.c 981KB
packet-ansi_map.c 958KB
packet-netflow.c 903KB
packet-h245.c 894KB
packet-zbee-zcl-se.c 873KB
packet-lbmc.c 861KB
packet-pcap.c 831KB
packet-gsm_rlcmac.c 797KB
packet-btatt.c 753KB
packet-btmesh.c 753KB
packet-zbee-zcl-general.c 737KB
packet-qsig.c 711KB
packet-mbim.c 705KB
packet-dcerpc-pn-io.c 695KB
packet-rtps.c 692KB
packet-bgp.c 681KB
packet-opa-mad.c 674KB
packet-pfcp.c 661KB
packet-gsm_a_rr.c 651KB
packet-smb.c 647KB
packet-dcerpc-lsa.c 622KB
packet-dcerpc-winspool.c 621KB
packet-cigi.c 581KB
packet-z3950.c 568KB
packet-amqp.c 554KB
packet-dcerpc-wkssvc.c 552KB
packet-inap.c 551KB
packet-h225.c 525KB
packet-p1.c 513KB
packet-ain.c 510KB
packet-gtpv2.c 508KB
packet-ff.c 491KB
packet-bthci_cmd.c 486KB
packet-nas_5gs.c 485KB
packet-rrlp.c 469KB
packet-camel.c 466KB
packet-nfs.c 463KB
packet-s7comm.c 458KB
packet-openflow_v6.c 457KB
packet-skinny.c 455KB
packet-mms.c 448KB
packet-assa_r3.c 444KB
packet-smb2.c 443KB
packet-mac-lte.c 438KB
packet-bthci_evt.c 436KB
packet-dis.c 433KB
packet-dof.c 432KB
packet-ieee1905.c 432KB
packet-c15ch.c 425KB
packet-openflow_v5.c 417KB
packet-cip.c 413KB
packet-ndps.c 410KB
packet-tds.c 401KB
packet-dhcp.c 400KB
packet-gias.c 399KB
packet-infiniband.c 398KB
packet-docsis-macmgmt.c 396KB
packet-dcerpc-drsuapi.c 394KB
packet-lustre.c 388KB
packet-nvme.c 386KB
packet-dcerpc-netlogon.c 380KB
packet-ptp.c 377KB
packet-kafka.c 376KB
packet-gprscdr.c 373KB
packet-scsi.c 369KB
packet-kerberos.c 358KB
packet-atn-cpdlc.c 350KB
packet-lbmr.c 348KB
packet-sigcomp.c 344KB
packet-wassp.c 331KB
packet-acn.c 330KB
packet-s7comm_szl_ids.c 328KB
packet-ieee17221.c 328KB
packet-isakmp.c 328KB
packet-bssgp.c 325KB
packet-ppp.c 323KB
packet-gsm_a_gm.c 322KB
packet-h248.c 320KB
packet-openflow_v4.c 314KB
packet-ftam.c 308KB
packet-icmpv6.c 307KB
packet-ieee802154.c 306KB
packet-btsdp.c 306KB
packet-tn5250.c 304KB
packet-ceph.c 300KB
packet-gsm_a_dtap.c 300KB
共 2000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 20
资源评论
龙年行大运
- 粉丝: 1006
- 资源: 3853
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功