1066 lines
27 KiB
Markdown
1066 lines
27 KiB
Markdown
# 5GC OMC Http External Restful Interfaces
|
||
|
||
## 1 状态管理
|
||
|
||
* URI:
|
||
|
||
```uri
|
||
/api/rest/systemManagement/v1/elementType/{elementTypeValue}/objectType/systemState
|
||
```
|
||
|
||
说明:
|
||
|
||
```Tips
|
||
** elementTypeValue=smf/amf/..查询的网元网元类型
|
||
```
|
||
* Method:
|
||
|
||
GET
|
||
* Return:
|
||
|
||
```json
|
||
|
||
"data": [
|
||
{
|
||
"AMF_0": {
|
||
"error": {
|
||
"errorCode": "1",
|
||
"errorInfo": "Internal server error, NF connnect refused"
|
||
},
|
||
"ipAddress": "192.168.2.188"
|
||
}
|
||
},
|
||
{
|
||
"SMF_0": {
|
||
"ipAddress": "192.168.1.232",
|
||
"systemState": {
|
||
"capability": 10000,
|
||
"cpuUsage": {
|
||
"nfCpuUsage": 2,
|
||
"sysCpuUsage": 52
|
||
},
|
||
"diskSpace": {
|
||
"partitionInfo": [
|
||
{
|
||
"total": 1920,
|
||
"used": 0
|
||
},
|
||
{
|
||
"total": 393,
|
||
"used": 13
|
||
},
|
||
{
|
||
"total": 48700,
|
||
"used": 32431
|
||
},
|
||
{
|
||
"total": 1965,
|
||
"used": 0
|
||
},
|
||
{
|
||
"total": 5,
|
||
"used": 0
|
||
},
|
||
{
|
||
"total": 1965,
|
||
"used": 0
|
||
},
|
||
{
|
||
"total": 55,
|
||
"used": 55
|
||
},
|
||
{
|
||
"total": 63,
|
||
"used": 63
|
||
},
|
||
{
|
||
"total": 91,
|
||
"used": 91
|
||
},
|
||
{
|
||
"total": 49,
|
||
"used": 49
|
||
},
|
||
{
|
||
"total": 55,
|
||
"used": 55
|
||
},
|
||
{
|
||
"total": 73,
|
||
"used": 73
|
||
},
|
||
{
|
||
"total": 91,
|
||
"used": 91
|
||
},
|
||
{
|
||
"total": 1475,
|
||
"used": 206
|
||
},
|
||
{
|
||
"total": 49,
|
||
"used": 49
|
||
},
|
||
{
|
||
"total": 393,
|
||
"used": 13
|
||
},
|
||
{
|
||
"total": 393,
|
||
"used": 0
|
||
},
|
||
{
|
||
"total": 73,
|
||
"used": 73
|
||
},
|
||
{
|
||
"total": 63,
|
||
"used": 63
|
||
}
|
||
],
|
||
"partitionNum": 19
|
||
},
|
||
"expiryDate": "2025-02-28",
|
||
"memUsage": {
|
||
"nfUsedMem": 163992,
|
||
"sysMemUsage": 1345,
|
||
"totalMem": 4025608
|
||
},
|
||
"serialNum": "13740126",
|
||
"version": "1.5.3.2"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"SMF_1": {
|
||
"ipAddress": "192.168.1.173",
|
||
"systemState": {
|
||
"capability": 10000,
|
||
"cpuUsage": {
|
||
"nfCpuUsage": 0,
|
||
"sysCpuUsage": 69
|
||
},
|
||
"diskSpace": {
|
||
"partitionInfo": [
|
||
{
|
||
"total": 3966,
|
||
"used": 0
|
||
},
|
||
{
|
||
"total": 797,
|
||
"used": 0
|
||
},
|
||
{
|
||
"total": 200559,
|
||
"used": 5968
|
||
},
|
||
{
|
||
"total": 3987,
|
||
"used": 0
|
||
},
|
||
{
|
||
"total": 5,
|
||
"used": 0
|
||
},
|
||
{
|
||
"total": 3987,
|
||
"used": 0
|
||
},
|
||
{
|
||
"total": 797,
|
||
"used": 0
|
||
}
|
||
],
|
||
"partitionNum": 7
|
||
},
|
||
"expiryDate": "2024-12-31",
|
||
"memUsage": {
|
||
"nfUsedMem": 212136,
|
||
"sysMemUsage": 720,
|
||
"totalMem": 8167360
|
||
},
|
||
"serialNum": "13740272",
|
||
"version": "1.5.3.3"
|
||
}
|
||
}
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
## 2 故障管理
|
||
|
||
### 2.1 告警上报
|
||
|
||
* URI
|
||
|
||
```uri
|
||
/api/rest/faultManagement/v1/elementType/{elementTypeValue}/objectType/alarms
|
||
```
|
||
* Method
|
||
|
||
POST
|
||
* Relation
|
||
|
||
NF->OMC
|
||
* Body
|
||
|
||
```json
|
||
type Alarm struct {
|
||
AlarmSeq int `json:"alarmSeq"`
|
||
AlarmId string `json:"alarmId"`
|
||
NeId string `json:"neId"`
|
||
AlarmCode int `json:"alarmCode"`
|
||
AlarmTitle string `json:"alarmTitle"`
|
||
EventTime string `json:"eventTime"`
|
||
AlarmType string `json:"alarmType"`
|
||
OrigSeverity string `json:"origSeverity"`
|
||
PVFlag string `json:"pvFlag"`
|
||
NeName string `json:"neName"`
|
||
NeType string `json:"neType"`
|
||
ObjectName string `json:"objectName"`
|
||
LocationInfo string `json:"locationInfo"`
|
||
Province string `json:"province"`
|
||
AlarmStatus int `json:"alarmStatus"`
|
||
SpecificProblem string `json:"specificProblem"`
|
||
SpecificProblemID string `json:"specificProblemID"`
|
||
AddInfo string `json:"addInfo"`
|
||
}
|
||
```
|
||
|
||
### 2.2 获取网元告警
|
||
|
||
* URI
|
||
|
||
```uri
|
||
/api/rest/faultManagement/v1/elementType/{elementTypeValue}/objectType/alarms
|
||
```
|
||
* Method
|
||
|
||
GET
|
||
* Relation
|
||
|
||
OMC->NF
|
||
* Body
|
||
|
||
n/a
|
||
* Return
|
||
|
||
```json
|
||
type Alarms struct {
|
||
Alarms []struct {
|
||
AlarmSeq int `json:"alarmSeq"`
|
||
AlarmId string `json:"alarmId"`
|
||
NeId string `json:"neId"`
|
||
AlarmCode int `json:"alarmCode"`
|
||
AlarmTitle string `json:"alarmTitle"`
|
||
EventTime string `json:"eventTime"`
|
||
AlarmType string `json:"alarmType"`
|
||
OrigSeverity string `json:"origSeverity"`
|
||
PVFlag string `json:"pvFlag"`
|
||
NeName string `json:"neName"`
|
||
NeType string `json:"neType"`
|
||
ObjectName string `json:"objectName"`
|
||
LocationInfo string `json:"locationInfo"`
|
||
Province string `json:"province"`
|
||
AlarmStatus int `json:"alarmStatus"`
|
||
SpecificProblem string `json:"specificProblem"`
|
||
SpecificProblemID string `json:"specificProblemID"`
|
||
AddInfo string `json:"addInfo"`
|
||
} `json:"Alarms"`
|
||
}
|
||
```
|
||
|
||
## 3 配置管理
|
||
|
||
### 3.1 参数配置表
|
||
|
||
* 类型定义(type)
|
||
|
||
* string
|
||
|
||
> filter指定字符串长度,如:"filter": "6~100" , 字符串的长度范围,如果单个数字表示最大长度
|
||
>
|
||
* ipv4
|
||
|
||
> filter忽略
|
||
>
|
||
* ipv6
|
||
|
||
> filter忽略
|
||
>
|
||
* int
|
||
|
||
> filter指定整型数的范围,如:"filter": "100~999"
|
||
>
|
||
* enum
|
||
|
||
> "filter": '{"0": "http", "1": "https"}'
|
||
>
|
||
* bool
|
||
|
||
> "filter": '{"0": "false", "1": "true"}'
|
||
>
|
||
* regex
|
||
|
||
> filter为正则表达式
|
||
>
|
||
* 可选(optional)
|
||
|
||
* true,默认值,表示该字段为可选填,没有写该属性项时optional为true(兼容以前配置文件)
|
||
* false,表示必填项
|
||
* Example
|
||
|
||
```yaml
|
||
UDM:
|
||
system:
|
||
display: "System"
|
||
list:
|
||
- name: "serviceIP"
|
||
type: "ipv4"
|
||
value: "172.16.5.140"
|
||
optional: "false"
|
||
access: "read-write"
|
||
filter: ''
|
||
display: "Service IP"
|
||
comment: ""
|
||
- name: "servicePort"
|
||
type: "int"
|
||
value: "8080"
|
||
access: "read-write"
|
||
filter: "0~65535"
|
||
display: "Service Port"
|
||
comment: "0~65535"
|
||
subsSmfSelection:
|
||
display: "Subs Smf Selection"
|
||
array:
|
||
- name: "index"
|
||
type: "int"
|
||
value: "0"
|
||
access: "read-write"
|
||
filter: '0~15'
|
||
display: "Index"
|
||
comment: "0~15"
|
||
- name: "name"
|
||
type: "string"
|
||
value: 'def_ambr'
|
||
access: "read-write"
|
||
filter: '^.{1,32}$'
|
||
display: "Name"
|
||
comment: "0~32"
|
||
- name: "snssai"
|
||
type: "string"
|
||
value: '1-000001'
|
||
access: "read-write"
|
||
filter: '^\d{1,3}[A-Fa-f0-9]{6}$'
|
||
display: "Snssai"
|
||
comment: ""
|
||
- name: "dnnList"
|
||
type: "int"
|
||
value: '0'
|
||
access: "read-write"
|
||
filter: '0~3'
|
||
display: "Dnn List"
|
||
comment: ""
|
||
array:
|
||
- name: "index"
|
||
type: "int"
|
||
value: "0"
|
||
access: "read-write"
|
||
filter: '0~15'
|
||
display: "index"
|
||
comment: "0~15"
|
||
- name: "dnn"
|
||
type: "string"
|
||
value: 'cmnet'
|
||
access: "read-write"
|
||
filter: '^.{1,32}$'
|
||
display: "Dnn"
|
||
comment: "0~32"
|
||
- name: "defaultDnnInd"
|
||
type: "bool"
|
||
value: 'true'
|
||
access: "read-write"
|
||
filter: 'false;true;'
|
||
display: "default Dnn Indicator"
|
||
comment: ""
|
||
```
|
||
|
||
完整文件具体请参考 udm_param_config.yaml
|
||
|
||
### 3.2 获取参数
|
||
|
||
* URI
|
||
|
||
```uri
|
||
/api/rest/systemManagement/v1/elementType/{elementTypeValue}/objectType/config/{paraName}?loc={index0}/{paraName1}/{index1}/...
|
||
```
|
||
|
||
说明
|
||
|
||
```Tips
|
||
elementTypeValue: udm, smf, amf... 网元类型
|
||
udm paraName: system, subsUEAmbr, subsSmfSelection ...
|
||
非array的参数,忽略loc
|
||
```
|
||
* Params
|
||
|
||
* loc 多层表的定位信息
|
||
* Method
|
||
|
||
> GET
|
||
>
|
||
* Return
|
||
|
||
```uri
|
||
/api/rest/systemManagement/v1/elementType/udm/objectType/config/system
|
||
```
|
||
|
||
```json
|
||
{
|
||
"data": [
|
||
{
|
||
"serviceIP": "172.16.5.140",
|
||
"servicePort": "8080",
|
||
"...": "..."
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
```uri
|
||
/api/rest/systemManagement/v1/elementType/udm/objectType/config/subsSmfSelection?loc=1/dnnList
|
||
```
|
||
|
||
```json
|
||
{
|
||
"data": [
|
||
{
|
||
"index": "0",
|
||
"dnn": "cmnet",
|
||
"...": "..."
|
||
},
|
||
{
|
||
"index": "1",
|
||
"dnn": "ims",
|
||
"...": "..."
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
### 3.3 配置参数
|
||
|
||
* URI
|
||
|
||
```uri
|
||
/api/rest/systemManagement/v1/elementType/{elementTypeValue}/objectType/config/{paraName}?loc={index0}/{paraName1}/{index1}
|
||
```
|
||
* Params
|
||
|
||
* loc 多层表的定位信息
|
||
* Method
|
||
|
||
> POST/PUT/DELETE
|
||
>
|
||
|
||
说明:
|
||
|
||
```Tips
|
||
单层表不支持POST/DELETE操作
|
||
```
|
||
* Body
|
||
|
||
```json
|
||
{
|
||
"serviceIP": "172.16.5.140",
|
||
"servicePort": "8080",
|
||
"...": "..."
|
||
}
|
||
```
|
||
|
||
说明:
|
||
|
||
```Tips
|
||
DELETE操作不带Body
|
||
```
|
||
|
||
### 3.4 创建网元
|
||
|
||
* URI
|
||
|
||
```uri
|
||
/api/rest/systemManagement/v1/elementType/{elementTypeValue}/objectType/neInfo
|
||
```
|
||
* Params
|
||
|
||
N/A
|
||
* Method
|
||
|
||
> POST
|
||
>
|
||
* Body
|
||
|
||
```json
|
||
{
|
||
|
||
}
|
||
```
|
||
|
||
## 4 性能管理
|
||
|
||
### 4.1 任务管理
|
||
|
||
* URI
|
||
|
||
```uri
|
||
/api/rest/performanceManagement/v1/elementType/{elementTypeValue}/objectType/measureTask?id={taskId1}&id={taskId2}
|
||
```
|
||
* Method
|
||
|
||
POST/PUT/DELETE/PATCH
|
||
* Params
|
||
|
||
taskId=1&taskId=2
|
||
|
||
* POST: 增加测量任务,激活任务,不带id参数,id在body
|
||
* PUT: 修改测量任务,激活任务,不带id参数,id在body
|
||
* DELETE:删除测量任务,不需要带body,带id参数,可带多个
|
||
* PATCH: 暂停测量任务,不需要带body,带id参数,可带多个
|
||
|
||
测量任务创建/修改后暂时存储在OMC数据库,激活任务时再下发到网元
|
||
* Relation NF
|
||
|
||
OMC -> NF/NF -> OMC
|
||
* Body
|
||
|
||
下发测量任务的报文结构
|
||
|
||
```json
|
||
type MeasureTask struct {
|
||
Tasks []struct {
|
||
Id int `json:"Id"`
|
||
|
||
StartTime string `json:"StartTime"`
|
||
EndTime string `json:"EndTime"`
|
||
|
||
Schedule struct {
|
||
Type string `json:"Type"` // 计划类型:Weekly/Monthly, 如果type为"", 则任务以StartTime和EndTime为条件进行统计, 否则以Shedule方式进行
|
||
Days []int `json:"Days"` // Weekly: [0,1,...5,6],0~6表示星期日~星期六, Monthly: [1,2,3,...,30,31]一个月的几天
|
||
Periods []struct {
|
||
Start string `json:"Start"` // 零点或者零点加测量粒度的整数倍 00:15:00
|
||
End string `json:"End"` // 零点加测量粒度的整数倍 08:45:00, 16:15:00
|
||
} `json:"Periods"`
|
||
} `json:"Schedule"`
|
||
|
||
GranulOption string `json:"GranulOption"` // 测量粒度选项:15M/30M/60M/24H
|
||
|
||
KPISet []struct {
|
||
Code string `json:"Code"` // 统计编码 如:SMFHA01
|
||
KPIs []string `json:"KPIs` // 指标项集合 ["SMF.AttCreatePduSession", "SMF.AttCreatePduSession._Dnn"]
|
||
} `json:"KPISet"`
|
||
} `json:"Tasks"`
|
||
|
||
NotifyUrl string `json:"NotifyUrl"` /* 数据上报URL "http://x.x.x.x:xxxx/api/rest/performanceManagement/v1/elementType/smf/objectType/measureReport" */
|
||
}
|
||
```
|
||
* Return
|
||
|
||
### 4.2 订阅任务数据上报
|
||
|
||
* URI
|
||
|
||
```uri
|
||
/api/rest/performanceManagement/v1/elementType/{elementTypeValue}/objectType/measureReport
|
||
```
|
||
* Method
|
||
|
||
POST
|
||
* Relation
|
||
|
||
NF -> OMC
|
||
* Body
|
||
|
||
网元返回测量数据的报文结构
|
||
|
||
```json
|
||
type MeasureReport struct {
|
||
Id int `json:"Id"`
|
||
Timestamp string `json:"TimeStamp"`
|
||
NeName string `json:"NeName"`
|
||
RmUID string `json:"rmUID"`
|
||
NeType string `json:"NeType"`
|
||
|
||
Report struct {
|
||
Period struct {
|
||
StartTime string `json:"StartTime"`
|
||
EndTime string `json:"EndTime"`
|
||
} `json:"Period"`
|
||
|
||
Datas []struct {
|
||
Code string `json:"Code"` // 统计编码 如:SMFHA01
|
||
KPIs []struct {
|
||
KPIID string `json:"KPIID"` // 指标项, 如: SMF.AttCreatePduSession._Dnn
|
||
KPIValues []struct {
|
||
Name string `json:"Name"` // 单个的写"Total", 或者指标项有多个测量项,如Dnn的名称写对应的Dnn"cmnet"/"ims"
|
||
Value int64 `json:"Value"`
|
||
} `json:"KPIValues"`
|
||
} `json:"KPIs"`
|
||
} `json:"Datas"`
|
||
} `json:"Report"`
|
||
}
|
||
```
|
||
|
||
### 4.3 黄金指标上报
|
||
|
||
* URI
|
||
|
||
```uri
|
||
/api/rest/performanceManagement/v1/elementType/{elementTypeValue}/objectType/kpiReport/{index}
|
||
```
|
||
|
||
index取值范围: 0-1439
|
||
* Method
|
||
|
||
POST
|
||
* Body
|
||
|
||
```json
|
||
type KpiReport struct {
|
||
Timestamp string `json:"TimeStamp"`
|
||
Task struct {
|
||
Period struct {
|
||
StartTime string `json:"StartTime"`
|
||
EndTime string `json:"EndTime"`
|
||
} `json:"Period"`
|
||
NE struct {
|
||
NEName string `json:"NEName"`
|
||
RmUID string `json:"rmUID"`
|
||
NeType string `json:"NeType"`
|
||
KPIs []struct {
|
||
KPIID string `json:"KPIID"`
|
||
Value int `json:"Value"`
|
||
Err string `json:"Err"`
|
||
} `json:"KPIs"`
|
||
} `json:"NE"`
|
||
} `json:"Task"`
|
||
}
|
||
```
|
||
|
||
### 4.4 测量数据主动上报
|
||
|
||
* URI
|
||
|
||
```uri
|
||
/api/rest/performanceManagement/v1/elementType/{elementTypeValue}/objectType/measurement/{index}
|
||
```
|
||
* Method
|
||
|
||
POST
|
||
* Relations
|
||
|
||
NF -> OMC
|
||
* Params
|
||
|
||
NA
|
||
* Body
|
||
|
||
网元主动上报测量数据的报文结构
|
||
|
||
```json
|
||
type Measurement struct {
|
||
Index int `json:"Index"` // 1天当中测量时间粒度(如15分钟)的切片索引: 0~95
|
||
Timestamp string `json:"TimeStamp"`
|
||
NeName string `json:"NeName"` // UserLabel
|
||
RmUID string `json:"rmUID"`
|
||
NeType string `json:"NeType"` // 网元类型
|
||
PmVersion string `json:"PmVersion"` // 性能数据版本号
|
||
Dn string `json:"Dn"` // (???)网元标识, 如:RJN-CMZJ-TZ,SubNetwork=5GC88,ManagedElement=SMF53456,SmfFunction=53456
|
||
Period string `json:"Period"` // 测量时间粒度选项:5/15/30/60
|
||
TimeZone string `json:"TimeZone"` // 时区, 如: "UTC+8"
|
||
StartTime string `json:"StartTime"`
|
||
|
||
Datas []struct {
|
||
ObjectType string `json:"ObjectType"` // 网络资源类别名称, Pm指标项列表中为空间粒度 如:SmfFunction
|
||
KPIs []struct {
|
||
KPIID string `json:"KPIID"` // 指标项, 如: SMF.AttCreatePduSession._Dnn
|
||
KPIValues []struct {
|
||
Name string `json:"Name"` // 单个的写"Total", 或者指标项有多个测量项,如Dnn的名称写对应的Dnn"cmnet"/"ims"
|
||
Value int64 `json:"Value"`
|
||
} `json:"KPIValues"`
|
||
} `json:"KPIs"`
|
||
} `json:"Datas"`
|
||
}
|
||
```
|
||
* Return
|
||
|
||
Code: 204, no content
|
||
|
||
### 4.5 测量数据获取/补采
|
||
|
||
* URI
|
||
|
||
```uri
|
||
/api/rest/performanceManagement/v1/elementType/{elementTypeValue}/objectType/measurement/{index}
|
||
```
|
||
* Method
|
||
|
||
GET
|
||
* Relations
|
||
|
||
OMC -> NF
|
||
* Params
|
||
|
||
NA
|
||
* Body
|
||
|
||
NA
|
||
* Return
|
||
|
||
网元返回测量数据的报文结构
|
||
|
||
```json
|
||
type Measurement struct {
|
||
Index int `json:"Index"` // 1天中测量时间粒度(如15分钟)的切片索引: 0~95
|
||
Timestamp string `json:"TimeStamp"`
|
||
NeName string `json:"NeName"` // UserLabel
|
||
RmUID string `json:"rmUID"`
|
||
NeType string `json:"NeType"` // 网元类型
|
||
PmVersion string `json:"PmVersion"` // 性能数据版本号
|
||
Dn string `json:"Dn"` // (???)网元标识, 如:RJN-CMZJ-TZ,SubNetwork=5GC88,ManagedElement=SMF53456,SmfFunction=53456
|
||
Period string `json:"Period"` // 测量时间粒度选项:5/15/30/60
|
||
TimeZone string `json:"TimeZone"`
|
||
StartTime string `json:"StartTime"`
|
||
|
||
Datas []struct {
|
||
ObjectType string `json:"ObjectType"` // 网络资源类别名称, Pm指标项列表中为空间粒度 如:SmfFunction
|
||
KPIs []struct {
|
||
KPIID string `json:"KPIID"` // 指标项, 如: SMF.AttCreatePduSession._Dnn
|
||
KPIValues []struct {
|
||
Name string `json:"Name"` // 单个的写"Total", 或者指标项有多个测量项,如Dnn的名称写对应的Dnn"cmnet"/"ims"
|
||
Value int64 `json:"Value"`
|
||
} `json:"KPIValues"`
|
||
} `json:"KPIs"`
|
||
} `json:"Datas"`
|
||
}
|
||
```
|
||
|
||
## 5 跟踪管理
|
||
|
||
### 5.1 订阅管理
|
||
|
||
* 创建订阅
|
||
|
||
* URI
|
||
|
||
```uri
|
||
/api/rest/traceManagement/v1/subscriptions
|
||
```
|
||
* Method
|
||
|
||
POST
|
||
* Relations
|
||
|
||
OMC front-end->OMC back-end, OMC -> NF
|
||
* Body
|
||
|
||
```json
|
||
type TraceTask struct {
|
||
TraceType string `json:"traceType"`
|
||
StartTime string `json:"startTime"`
|
||
EndTime string `json:"endTime"`
|
||
Imsi string `json:"imsi"`
|
||
Msisdn string `json:"msisdn"`
|
||
SrcIp string `json:"srcIp"`
|
||
DstIp string `json:"dstIp"`
|
||
SignalPort int16 `json:"signalPort"`
|
||
NeType string `json:"neType"`
|
||
NeId string `json:"neId"`
|
||
UeIp string `json:"ueIp"`
|
||
Interfaces []string `json:"interfaces"`
|
||
}
|
||
```
|
||
|
||
Example:
|
||
|
||
```json
|
||
{
|
||
"traceType": "Interface",
|
||
"startTime": "2023-07-04 13:00:00",
|
||
"endTime": "2023-07-04 19:00:00",
|
||
"neType": "UDM",
|
||
"neId": "SZ_01",
|
||
"interfaces": ["N8","N10"]
|
||
}
|
||
```
|
||
* Return
|
||
|
||
Code=204 non-content
|
||
* 修改订阅
|
||
|
||
* URI
|
||
|
||
```uri
|
||
/api/rest/traceManagement/v1/subscriptions
|
||
```
|
||
* Method
|
||
|
||
PUT
|
||
* Relations
|
||
|
||
OMC front-end->OMC back-end, OMC -> NF
|
||
* Body
|
||
|
||
```json
|
||
type TraceTask struct {
|
||
Id int `json:"id"`
|
||
TraceType string `json:"traceType"`
|
||
StartTime string `json:"startTime"`
|
||
EndTime string `json:"endTime"`
|
||
Imsi string `json:"imsi"`
|
||
Msisdn string `json:"msisdn"`
|
||
SrcIp string `json:"srcIp"`
|
||
DstIp string `json:"dstIp"`
|
||
SignalPort int16 `json:"signalPort"`
|
||
NeType string `json:"neType"`
|
||
NeId string `json:"neId"`
|
||
UeIp string `json:"ueIp"`
|
||
Interfaces []string `json:"interfaces"`
|
||
}
|
||
```
|
||
|
||
Example:
|
||
|
||
```json
|
||
{
|
||
"id": 1,
|
||
"traceType": "Interface",
|
||
"startTime": "2023-07-04 13:00:00",
|
||
"endTime": "2023-07-04 19:00:00",
|
||
"neType": "UDM",
|
||
"neId": "SZ_01",
|
||
"interfaces": ["N8","N10", "N11"]
|
||
}
|
||
```
|
||
* Return
|
||
|
||
Code=204 non-content
|
||
* 删除订阅
|
||
|
||
* URI
|
||
|
||
```uri
|
||
/api/rest/traceManagement/v1/subscriptions?id={id1}&id={id2}
|
||
```
|
||
* Method
|
||
|
||
DELETE
|
||
* Relations
|
||
|
||
OMC front-end->OMC back-end, OMC -> NF
|
||
* Params
|
||
|
||
id:订阅任务id,支持多个
|
||
* Body
|
||
|
||
NA
|
||
* Return
|
||
|
||
Code=204, non-content
|
||
* 查询订阅 (暂不实现,直接从数据库查询)
|
||
|
||
* URI
|
||
查询单个订阅:
|
||
|
||
```uri
|
||
/api/rest/traceManagement/v1/subscriptions?id={id}
|
||
```
|
||
|
||
查询所有订阅:
|
||
|
||
```http
|
||
/api/rest/traceManagement/v1/subscriptions
|
||
```
|
||
* Method
|
||
|
||
GET
|
||
* Body
|
||
|
||
NA
|
||
* Return
|
||
|
||
```json
|
||
{
|
||
"data": [
|
||
{
|
||
"id": 1,
|
||
"traceType": "Interface",
|
||
"startTime": "2023-07-04 13:00:00",
|
||
"endTime": "2023-07-04 19:00:00",
|
||
"neType": "UDM",
|
||
"neId": "SZ_01",
|
||
"interfaces": ["N8","N10", "N11"]
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
## 6 操作维护
|
||
|
||
### 6.1 MML命令
|
||
|
||
#### 6.1.1 MML命令格式
|
||
|
||
* 命令格式
|
||
|
||
```mml
|
||
oper object:parameter1={value1},parameter2={value2},parameter3={value3};
|
||
```
|
||
|
||
* 操作(operation)
|
||
|
||
* 根据实际操作可选用如下动作,如果没有合适的可自行增加,要做到简洁直观
|
||
|
||
```list
|
||
add: 增加
|
||
mod(set):修改/设置
|
||
del(rmv):删除
|
||
dsp(lst):查询显示
|
||
bak:备份
|
||
exp:导出
|
||
imp:导入
|
||
bat: 批量
|
||
exec(run):执行
|
||
act/dea: 激活/去激活
|
||
```
|
||
* 与对象之间采用空格分隔
|
||
* 对象(object)
|
||
|
||
* 操作的对象,如签约数据(sub/udmuser)/鉴权数据(auth/authdat), n7接口(n7server)
|
||
* 对象名称用所操作对象的英文名(或缩写), 为字母或者数字的组合, 不含空格, "-", "_"等特殊字符
|
||
* 使用":"与参数进行分隔
|
||
* 参数(param)
|
||
|
||
* 参数名采用英文常用名/约定俗成的缩写/缩略语等, 如imsi,msisdn,ip,port等, 为字母或者数字的组合, 不含空格, "-", "_"等特殊字符
|
||
* 参数值为字符串, 如有":", ",", ";", "\\"字符, 需加"\\"进行转义
|
||
* 参数之间用","进行分隔
|
||
* 命令结束符";", 操作/对象/参数均采用小写字母(HW采用的都是大写字母)
|
||
* 目前现有的各个网元的命令格式
|
||
|
||
除了UDM签约数据/鉴权数据的MML格式和上述格式基本一致, 各个网元的系统参数MML都不一样, 需统一成上述格式
|
||
|
||
* UDM鉴权数据/签约数据
|
||
|
||
```mml
|
||
add authdat:imsi=460000100000030,ki=805DADC6E8A54A0D59D622C7A04D08E0,amf=8000,algo=0,opc=CF7FD414E05754CFE08B4FE7F2EF2A36
|
||
```
|
||
* UDM系统参数
|
||
|
||
```mml
|
||
set n8ip 172.16.5.130
|
||
```
|
||
* AMF系统参数
|
||
|
||
```mml
|
||
set n8_ip 192.168.1.121
|
||
```
|
||
* SMF/UPF系统参数
|
||
|
||
```mml
|
||
set n7 server <http|https> <ip> <port>
|
||
```
|
||
|
||
### 6.2 MML接口
|
||
|
||
* URI
|
||
|
||
```uri
|
||
/api/rest/opeartionManagement/v1/elementType/{elementTypeValue}/objectType/mml?ne_id={neId}
|
||
```
|
||
* Related NF
|
||
|
||
OMC front-end -> OMC back-end
|
||
|
||
OSS -> OMC (北向接口)
|
||
* Params
|
||
|
||
ne_id={neId}
|
||
* Method
|
||
|
||
POST
|
||
* Body
|
||
|
||
```json
|
||
{
|
||
"mml": [
|
||
"date",
|
||
"list ver",
|
||
"list lic",
|
||
"list comm"
|
||
]
|
||
}
|
||
```
|
||
* Return
|
||
|
||
```json
|
||
{
|
||
"data": [
|
||
"2023-05-11 17:52:32.37333745 +0800 CST m=+28762.188435351\n",
|
||
"16.1.1\n",
|
||
"Expiry date: 2024-12-31, sn: 13740272\n",
|
||
"COMMAND NOT FOUND, opr: list, obj: comm\n"
|
||
]
|
||
}
|
||
```
|
||
|
||
## 7 北向资源配置数据接口
|
||
|
||
### 7.1 查询资源数据接口
|
||
|
||
* URI
|
||
|
||
```uri
|
||
/api/rest/resourceManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/{objectTypeValue}?rmUIDs={rmUIDValues}&fields={attributeNames}
|
||
```
|
||
* Related NF
|
||
|
||
OMC -> NF
|
||
|
||
OSS -> OMC (北向接口)
|
||
* Params
|
||
|
||
* rmUIDs={rmUIDValues}
|
||
|
||
可携带多额rmUID(统一资源定位符), OMC->NF不带
|
||
* fields={attributeNames}
|
||
|
||
属性域集合={属性名列表}, 指定资源对象多个属性名的英文逗号分割,一个属性名时无英文逗号。
|
||
* Method
|
||
|
||
GET
|
||
* Body
|
||
|
||
```json
|
||
GET /api/rest/resourceManagement/v1/elementType/SMF/objectType/ManagedElement?rmUIDs=1101AGTHXSMF0000015704000100&fields=UserLabel HTTP/1.1
|
||
accessToken: 52661fbd-6b84-4fc2-aa1e-17879a5c6c9b
|
||
Host: serverIP:port
|
||
Content-Type: application/json; charset=UTF-8
|
||
Content-Length:…
|
||
{
|
||
}
|
||
```
|
||
* Return
|
||
|
||
```json
|
||
HTTP/1.1 200 OK
|
||
Content - Type: application/json
|
||
Content-Length:…
|
||
{
|
||
"data": [{
|
||
"rmUID": "1101AGTHXSMF0000015704000100",
|
||
"UserLabel": "SMFRJBJJC01",
|
||
...
|
||
}]
|
||
}
|
||
```
|