feat: 网元信令跟踪功能

This commit is contained in:
TsMask
2025-04-22 11:38:19 +08:00
parent 4914eccd79
commit fbcae7ac5a
37 changed files with 1712 additions and 3078 deletions

View File

@@ -2,19 +2,20 @@ package model
// TraceData 跟踪_数据 trace_data
type TraceData struct {
ID string `json:"id" gorm:"column:id;primaryKey;autoIncrement"`
TaskId int64 `json:"taskId" gorm:"task_id"` // 任务ID
IMSI string `json:"imsi" gorm:"imsi"`
MSISDN string `json:"msisdn" gorm:"msisdn"` // 可能存在
SrcAddr string `json:"srcAddr" gorm:"src_addr"` // 源地址带端口
DstAddr string `json:"dstAddr" gorm:"dst_addr"` // 目标地址带端口
IfType int64 `json:"ifType" gorm:"if_type"` // 接口类型,未分类
MsgType int64 `json:"msgType" gorm:"msg_type"`
MsgDirect int64 `json:"msgDirect" gorm:"msg_direct"`
Length int64 `json:"length" gorm:"length"` // 去除头后的原始数据byte长度
Timestamp int64 `json:"timestamp" gorm:"timestamp"` // 毫秒
RawMsg string `json:"rawMsg" gorm:"raw_msg"` // 去除头后的原始数据byteBase64
DecMsg string `json:"decMsg" gorm:"dec_msg"` // TCP内容消息
ID int64 `json:"id" gorm:"column:id;primaryKey;autoIncrement"`
TraceId int64 `json:"traceId" gorm:"column:trace_id"` // 跟踪任务ID
IMSI string `json:"imsi" gorm:"column:imsi"` // UE类型 IMSI
MSISDN string `json:"msisdn" gorm:"column:msisdn"` // UE类型 可能存在
SrcAddr string `json:"srcAddr" gorm:"column:src_addr"` // 源地址
DstAddr string `json:"dstAddr" gorm:"column:dst_addr"` // 目标地址
IfType string `json:"ifType" gorm:"column:if_type"` // 接口类型,未分类
MsgType int64 `json:"msgType" gorm:"column:msg_type"` // 消息类型0-req, 1-rsp
MsgDirect int64 `json:"msgDirect" gorm:"column:msg_direct"` // 消息方向0-recv,1-send
MsgNe string `json:"msgNe" gorm:"column:msg_ne"` // 消息网元
MsgEvent string `json:"msgEvent" gorm:"column:msg_event"` // 消息事件e.g: CreateContextReq
Length int64 `json:"length" gorm:"column:length"` // 原始数据byte长度
Timestamp int64 `json:"timestamp" gorm:"column:timestamp"` // 纳秒时间戳
RawMsg string `json:"rawMsg" gorm:"column:raw_msg"` // 原始数据byteBase64
}
// TableName 表名称

View File

@@ -2,27 +2,21 @@ package model
// TraceTask 跟踪_任务
type TraceTask struct {
ID string `json:"id" gorm:"column:id;primaryKey;autoIncrement"` // 跟踪任务ID
TraceId string `json:"traceId" gorm:"trace_id"` // 任务编号
TraceType string `json:"traceType" gorm:"trace_type"` // 1-Interface,2-Device,3-User
StartTime int64 `json:"startTime" gorm:"start_time"` // 开始时间 毫秒
EndTime int64 `json:"endTime" gorm:"end_time"` // 结束时间 毫秒
Interfaces string `json:"interfaces" gorm:"interfaces"` // 接口跟踪必须 例如 N8,N10
IMSI string `json:"imsi" gorm:"imsi"` // 用户跟踪必须
MSISDN string `json:"msisdn" gorm:"msisdn"` // 用户跟踪可选
UeIp string `json:"ueIp" gorm:"ue_ip"` // 设备跟踪必须 IP
SrcIp string `json:"srcIp" gorm:"src_ip"` // 地址IP
DstIp string `json:"dstIp" gorm:"dst_ip"` // 目标地址IP
SignalPort int64 `json:"signalPort" gorm:"signal_port"` // 地址IP端口
CreateBy string `json:"createBy" gorm:"create_by"` // 创建者
CreateTime int64 `json:"createTime" gorm:"create_time"` // 创建时间
UpdateBy string `json:"updateBy" gorm:"update_by"` // 更新者
UpdateTime int64 `json:"updateTime" gorm:"update_time"` // 更新时间
Remark string `json:"remark" gorm:"remark"` // 备注
NeType string `json:"neType" gorm:"ne_type"` // 网元类型
NeId string `json:"neId" gorm:"ne_id"` // 网元ID
NotifyUrl string `json:"notifyUrl" gorm:"notify_url"` // 信息数据通知回调地址UDP 例如udp:192.168.5.58:29500
FetchMsg string `json:"fetchMsg" gorm:"fetch_msg"` // 任务下发请求响应消息
ID int64 `json:"id" gorm:"column:id;primaryKey;autoIncrement"` // 跟踪任务ID
TraceId string `json:"traceId" gorm:"column:trace_id"` // 任务编号
TraceType string `json:"traceType" gorm:"column:trace_type" binding:"required"` // 1-Interface,2-Device,3-UE
StartTime int64 `json:"startTime" gorm:"column:start_time"` // 开始时间 毫秒
EndTime int64 `json:"endTime" gorm:"column:end_time" binding:"required"` // 结束时间 毫秒
Interfaces string `json:"interfaces" gorm:"column:interfaces"` // 接口跟踪必须 例如 N8,N10
IMSI string `json:"imsi" gorm:"column:imsi"` // 用户跟踪必须
MSISDN string `json:"msisdn" gorm:"column:msisdn"` // 用户跟踪可选
SrcIp string `json:"srcIp" gorm:"column:src_ip"` // 源地址IP
DstIp string `json:"dstIp" gorm:"column:dst_ip"` // 目标地址IP
CreateBy string `json:"createBy" gorm:"column:create_by"` // 创建者
CreateTime int64 `json:"createTime" gorm:"column:create_time"` // 创建时间
Remark string `json:"remark" gorm:"column:remark"` // 备注
NeList string `json:"neList" gorm:"column:ne_list" binding:"required"` // 网元列表 neType_neId 例如 UDM_001,AMF_001
NotifyUrl string `json:"notifyUrl" gorm:"column:notify_url"` // 信息数据通知回调地址UDP 例如udp:192.168.5.58:33033
}
// TableName 表名称

View File

@@ -2,19 +2,19 @@ package model
// TraceTaskHlr 跟踪_任务给HRL网元 trace_task_hlr
type TraceTaskHlr struct {
ID string `json:"id" gorm:"column:id;primaryKey;autoIncrement"`
TraceId string `json:"traceId" gorm:"trace_id"` // 任务编号
IMSI string `json:"imsi" gorm:"imsi"` // IMSI
MSISDN string `json:"msisdn" gorm:"msisdn"` // MSISDN
StartTime int64 `json:"startTime" gorm:"start_time"` // 开始时间
EndTime int64 `json:"endTime" gorm:"end_time"` // 结束时间
Status string `json:"status" gorm:"status"` // 任务状态0停止 1进行
Msg string `json:"msg" gorm:"msg"` // 任务信息
Remark string `json:"remark" gorm:"remark"` // 备注说明
CreateBy string `json:"createBy" gorm:"create_by"` // 创建者
CreateTime int64 `json:"createTime" gorm:"create_time"` // 创建时间
UpdateBy string `json:"updateBy" gorm:"update_by"` // 更新者
UpdateTime int64 `json:"updateTime" gorm:"update_time"` // 更新时间
ID int64 `json:"id" gorm:"column:id;primaryKey;autoIncrement"`
TraceId string `json:"traceId" gorm:"column:trace_id"` // 任务编号
IMSI string `json:"imsi" gorm:"column:imsi"` // IMSI
MSISDN string `json:"msisdn" gorm:"column:msisdn"` // MSISDN
StartTime int64 `json:"startTime" gorm:"column:start_time"` // 开始时间
EndTime int64 `json:"endTime" gorm:"column:end_time"` // 结束时间
Status string `json:"status" gorm:"column:status"` // 任务状态0停止 1进行
Msg string `json:"msg" gorm:"column:msg"` // 任务信息
Remark string `json:"remark" gorm:"column:remark"` // 备注说明
CreateBy string `json:"createBy" gorm:"column:create_by"` // 创建者
CreateTime int64 `json:"createTime" gorm:"column:create_time"` // 创建时间
UpdateBy string `json:"updateBy" gorm:"column:update_by"` // 更新者
UpdateTime int64 `json:"updateTime" gorm:"column:update_time"` // 更新时间
}
// TableName 表名称

View File

@@ -0,0 +1,42 @@
package model
type TraceDefType = int64
const (
MSG_TYPE_REQ TraceDefType = 0
MSG_TYPE_RSP TraceDefType = 1
MSG_DIRECT_RECV TraceDefType = 0
MSG_DIRECT_SEND TraceDefType = 1
// NF_TYPE_AMF = "AMF"
// NF_TYPE_SMF = "SMF"
// NF_TYPE_AUSF = "AUSF"
// NF_TYPE_UDM = "UDM"
// NF_TYPE_PCF = "PCF"
)
// TraceMsg 跟踪_消息
type TraceMsg struct {
TraceId int
MsgType TraceDefType //0-req, 1-rsp
MsgDirect TraceDefType //0-recv,1-send
NfName string
MsgEvent string //e.g: CreateContextReq
IMSI string
IfType string //interface type: N2,N8...
SrcIpStr string
DstIpStr string
Timestamp int64
}
// TraceReq 跟踪_请求
type TraceReq struct {
TraceId int64 `json:"traceId"` // Unique identifier for trace operations:delete...
TraceType string `json:"traceType"` // Type of trace: Interface;UE; Device
StartTime string `json:"startTime"` // Start time of the trace: e.g., "2025-04-12 11:24:59"
EndTime string `json:"endTime"` // End time of the trace: e.g., "2025-04-12 14:24:59"
Interfaces []string `json:"interfaces,omitempty"` // List of interfaces: e.g., ["N8", "N10", "N1/N2"]
IMSI string `json:"imsi,omitempty"` // International Mobile Subscriber Identity
SrcIp string `json:"srcIp,omitempty"` // Source IP address (used for device-level filtering)
DstIp string `json:"dstIp,omitempty"` // Destination IP address (used for device-level filtering)
NotifyUrl string `json:"notifyUrl,omitempty"` // Notification URL: e.g., "udp:192.168.5.58:33033"
}