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}";
}
}
}