using System; namespace CoreAgent.ProtocolClient.Models { /// /// TMSI匹配结果模型 /// 用于存储通过TMSI匹配的请求UE ID和接收UE ID /// public class TmsiMatchResult { /// /// TMSI标识符 /// public uint Tmsi { get; set; } /// /// 请求UE ID /// public int RequestUeId { get; set; } /// /// 接收UE ID /// public int ReceiveUeId { get; set; } /// /// IMSI标识符 /// public string Imsi { get; set; } = string.Empty; /// /// 构造函数 /// /// TMSI标识符 /// 请求UE ID /// 接收UE ID /// IMSI标识符 public TmsiMatchResult(uint tmsi, int requestUeId, int receiveUeId, string imsi = "") { Tmsi = tmsi; RequestUeId = requestUeId; ReceiveUeId = receiveUeId; Imsi = imsi; } /// /// 重写ToString方法,提供友好的字符串表示 /// /// 格式化的字符串 public override string ToString() { var imsiInfo = string.IsNullOrEmpty(Imsi) ? "" : $", IMSI: {Imsi}"; return $"TMSI: 0x{Tmsi:X8}, RequestUE: {RequestUeId}, ReceiveUE: {ReceiveUeId}{imsiInfo}"; } } /// /// Service Request TMSI映射实体 /// 用于平铺 SrTmsiToUeId 字典数据,包含 IMSI、TMSI、UE ID、Root UE ID 四个字段 /// public class SrTmsiMapping { /// /// IMSI标识符 /// public string Imsi { get; set; } = string.Empty; /// /// Service Request TMSI标识符 /// public uint Tmsi { get; set; } /// /// UE ID /// public int UeId { get; set; } /// /// Root UE ID(链的根节点) /// public int RootUeId { get; set; } /// /// PLMN标识符 /// public string Plmn { get; set; } = string.Empty; /// /// 构造函数 /// /// IMSI标识符 /// Service Request TMSI标识符 /// UE ID /// Root UE ID /// PLMN标识符 public SrTmsiMapping(string imsi, uint tmsi, int ueId, int rootUeId = 0, string plmn = "") { Imsi = imsi; Tmsi = tmsi; UeId = ueId; RootUeId = rootUeId; Plmn = plmn; } /// /// 重写ToString方法,提供友好的字符串表示 /// /// 格式化的字符串 public override string ToString() { var imsiInfo = string.IsNullOrEmpty(Imsi) ? "" : $", IMSI: {Imsi}"; var rootInfo = RootUeId > 0 ? $", Root UE: {RootUeId}" : ""; var plmnInfo = string.IsNullOrEmpty(Plmn) ? "" : $", PLMN: {Plmn}"; return $"SR-TMSI: 0x{Tmsi:X8}, UE ID: {UeId}{imsiInfo}{rootInfo}{plmnInfo}"; } } }