API文档

API

该部分主要是用于自定义用户需求开放的api接口。

1 网络配置

/api/network/

1.1 网络配置创建

POST /api/network/create/

功能:包含网络、星座、信关站、终端等,仅保存到数据库。

参数

  • 顶级参数(body -- json)
参数名类型是否必需描述
network_nameString网络名称
network_descriptionString网络描述
constellationObject星座配置对象
gs_setArray地面站配置数组
  • constellation 星座参数
参数名类型是否必需描述
nameString星座名称
typeString星座类型,为 "walker_delta"
orbit_altitudeNumber轨道高度(公里)
orbit_inclinationNumber轨道倾角(度)
orbit_numNumber轨道平面数量
sat_num_per_orbitNumber每个轨道的卫星数量
phase_shiftNumber相位偏移
sat_isl_link_numNumber卫星间链路数量,固定为 4
sat_gsl_link_numNumber卫星地面链路数量
sat_access_link_numNumber卫星接入链路数量
  • gs_set 信关站参数
参数名类型是否必需描述
nameString地面站名称
latitudeNumber地面站纬度(度)
longitudeNumber地面站经度(度)
elevationNumber地面站海拔高度(米)
gs_antenna_numNumber地面站天线数量
gs_antenna_angleNumber地面站天线角度(度)范围为[0,90]

返回值

  • 成功响应 - 200
参数名类型描述
statusString操作状态,值为"success"
network_idNumber新创建网络的唯一标识符,用于后续网络监控
  • 错误响应 - 400/500
参数名类型描述
statusString操作状态,值为"error"
msgString错误信息,描述错误原因

示例:

{
  "network_name": "my_network",
  "network_description": "",
  "constellation": {
    "name": "my_constellation",
    "type": "walker_delta", //default walker_delta
    "orbit_altitude": 550,
    "orbit_inclination": 53,
    "orbit_num": 60,
    "sat_num_per_orbit": 60,
    "phase_shift": 1,
    "sat_isl_link_num": 4, //default 4
    "sat_gsl_link_num": 1, //default 1
    "sat_access_link_num": 1 //default 1
  },
  "gs_set": [
    {
      "name": "GS0",
      "latitude": 25.1,
      "longitude": 123.1,
      "elevation": 121.1,
      "gs_antenna_num": 1, //default 1
      "gs_antenna_angle": 1 //default 1
    },
    {
      "name": "GS1",
      "latitude": 24.1,
      "longitude": 125.1,
      "elevation": 126.1,
      "gs_antenna_num": 1, //default 1
      "gs_antenna_angle": 1 //default 1
    }
  ]
}

返回值

  • 成功响应 - 200
{
  "status": "success",
  "network_id": 111, // 返回网络ID,用于网络准备阶段监控
}
  • 失败响应 - 400/500
{
  "status": "error",
  "msg": "错误信息"
}

1.2 配置文件上传

POST /api/network/<network-id>/file/upload

功能:判断上传内容合法性,包括文件格式和文件结构的验证。

参数

url 中的 <network-id> 为整数类型。

POST参数为 form-data ,格式要求:

keyvalue
fileContent-Type: application/zip

返回值参数

  • 成功响应 - 200
参数名类型描述
statusString操作状态,值为 "success"
pathString上传文件在共享盘中的绝对路径
  • 错误响应 - 400/500
参数名类型描述
statusString操作状态,值为"error"
msgString错误信息,描述错误原因

示例

返回值

  • 成功响应 - 200

    {
      "status": "success",
      "path": "/mnt/share/xxxx.zip"
    }
    
  • 错误响应 - 400/500

    {
      "status": "error",
      "msg": "错误信息"
    }
    

1.3 网络列表

GET /api/network/list

功能:数据库中信息分页。

参数

分页参数 (Parameter)

参数名类型是否必需默认值描述
pageInteger1当前页码
pageSizeInteger10每页显示记录数

筛选参数 (Parameter)

参数名类型是否必需描述匹配方式
idNumber网络ID模糊匹配
nameString网络名称模糊匹配
statusNumber网络状态精确匹配
startDateString开始日期大于等于
endDateString结束日期小于等于

排序参数 (Parameter)

参数名类型是否必需可选值描述
sortByString-排序字段名
sortOrderStringasc/desc排序方式,asc-升序,desc-降序

返回值

  • 成功响应 - 200
参数名类型描述
statusString响应状态,固定值 "success"
totalNumber总记录数
pagesNumber总页数
pageNumber当前页码
pageSizeNumber每页记录数
dataArray数据记录数组

data 数组元素参数

参数名类型描述可选值
network_idNumber网络ID-
network_nameString网络名称-
network_statusNumber网络状态0: 暂存、1: 运行中
network_typeNumber网络类型0: 卫星、1: BGP
create_timeString创建时间格式:YYYY-mm-dd HH:mm:ss
  • 错误响应 - 400/500
参数名类型描述
statusString响应状态,固定值 "error"
msgString错误信息描述

示例

GET /api/network/list?page=1&pageSize=10&name=test&status=1&sortBy=create_time&sortOrder=desc
  • 成功响应 - 200
{
  "status": "success",
  "total": 100,
  "pages": 10,
  "page": 1,
  "pageSize": 10,
  "data": [
    {
      "network_id": 111,
      "network_name": "my_network",
      "network_status": 1,
      "network_type": 1,
      "create_time": "2024-03-24 15:10:00"
    }
  ]
}
  • 失败响应 - 400/500
{
  "status": "error",
  "msg": "参数错误"
}

1.4 网络配置运行

GET /api/network/<network-id>/run/

功能:在平台中运行一个网络。调用前做状态检查,是否可以调用。

参数

url 中 <network-id>

返回值

  • 成功响应 - 200
参数名类型描述
statusString响应状态,固定值 "success"
  • 失败响应 - 400/500
参数名类型描述
statusString响应状态,固定值 "error"
msgString错误信息

示例

GET /api/network/60/run/

返回值

  • 成功响应
{
  "status": "success"
}
  • 失败响应
{
  "status": "error",
  "msg": "错误信息"
}

1.5 网络配置销毁

GET /api/network/<network-id>/destroy/

功能:销毁一个运行中的网络。调用前做检查,当前网络ID是否匹配(防止异常调用导致系统出错)。

参数

url 中 <network-id>

返回值

  • 成功响应 - 200
参数名类型描述
statusString响应状态,固定值 "success"
  • 失败响应 - 400/500
参数名类型描述
statusString响应状态,固定值 "error"
msgString错误信息

示例

GET /api/network/60/destroy/

返回值

  • 成功响应
{
  "status": "success"
}
  • 失败响应
{
  "status": "error",
  "msg": "错误信息"
}

1.6 网络重置

GET /api/network/<network-id>/reset/

功能:对当前运行网络中的所有节点,停止容器进程,并重置该节点的所有IP地址及路由信息。

参数

url 中 <network-id>

返回值

  • 成功响应 - 200
参数名类型描述
statusString响应状态,固定值 "success"
  • 失败响应 - 400/500
参数名类型描述
statusString响应状态,固定值 "error"
msgString错误信息

示例

GET /api/network/60/reset/

返回值

  • 成功响应
{
  "status": "success"
}
  • 失败响应
{
  "status": "error",
  "msg": "错误信息"
}

1.7 网络生命周期监控

WebSocket /ws/network/<network-id>/status/

功能:对当前运行网络中的所有节点,停止容器进程,并重置该节点的所有IP地址及路由信息。

参数

url 中 <network-id> , 发送消息,以订阅对应通道

参数名类型描述
messageString固定值,"create" 或 "destroy"

返回值

网络运行、销毁、重置时需要显示进度条,需要用到 image_preparing(容器准备中),topo_creating(网络拓扑建立中), nf_loading(网络功能加载中),nf_starting(网络功能启动中), nf_unloading(网络功能拆卸中), topo_destroying(网络拓扑销毁中)四个状态。

一个网络的生命周期包括如下状态: image_preparing, created, configured, topo_creating, nf_loading, nf_starting. running, nf_unloading, topo_destroying。

补充说明

  • 卫星网络场景生命周期监控

    • 启动:topo_creating,nf_loading
    • 销毁:nf_unloading,topo_destroying
  • BGP网络场景生命周期监控

    • 启动:topo_creating,nf_loading,nf_starting
    • 销毁:nf_unloading,topo_destroying
  • 成功响应

参数名类型描述
typeString"update"
dataObject信息

data 参数

参数名类型描述
statusString"topo_creating"等固定值
progressNumber0.1
estimated_timeNumber10
  • 失败响应
参数名类型描述
typeString响应状态,固定值 "error"
msgString错误信息

示例

WebSocket /ws/network/60/status/

发送

{"message": "create"}
{"message": "destroy"}

返回值

  • 成功响应
{
  "type": "update",
  "data": {
    "status": "topo_creating", //网络拓扑创建中
    "progress": 0.1, //完成进度,10%
    "estimated_time": 10 // 预估时间,分钟(全局预估时间,不是阶段预估时间)
  }
}
  • 失败响应
{
  "type": "error",
  "msg": "Error message here..."
}

1.8 网络配置详情

GET /api/network/<network-id>/info/

功能:返回一个网络的详细信息。

参数

url 中 <network-id>

返回值

  • 成功响应 - 200

通用参数(两种类型共有)

参数名类型描述可选值
statusString响应状态"success"
network_idNumber网络ID-
network_nameString网络名称-
network_descriptionString网络描述-
network_statusNumber网络状态0: 暂存、1: 运行中
network_typeNumber网络类型0: 卫星、1: BGP
create_timeString创建时间格式:YYYY-mm-dd HH:mm:ss

卫星网络特有参数 (network_type = 0)

  • constellation 对象参数
参数名类型描述默认值
nameString星座名称-
typeString星座类型"walker_delta"
orbit_altitudeNumber轨道高度(公里)-
orbit_inclinationNumber轨道倾角(度)-
orbit_numNumber轨道平面数量-
sat_num_per_orbitNumber每个轨道的卫星数量-
phase_shiftNumber相位偏移-
sat_isl_link_numNumber卫星间链路数量4
sat_gsl_link_numNumber卫星地面链路数量1
sat_access_link_numNumber卫星接入链路数量1
  • gs_set 数组元素参数
参数名类型描述默认值
gs_idNumber地面站ID-
node_idNumber节点ID-1
nameString地面站名称-
latitudeNumber纬度(度)-
longitudeNumber经度(度)-
elevationNumber海拔高度(米)-
gs_antenna_numNumber地面站天线数量1
gs_antenna_angleNumber地面站天线角度(度)1
  • user_terminals 数组元素参数
参数名类型描述默认值
end_user_idNumber终端用户ID-1
node_idNumber节点ID-1
nameString终端名称-
latitudeNumber纬度(度)-
longitudeNumber经度(度)-
elevationNumber海拔高度(米)-
  • 失败响应 - 400/500
参数名类型描述
statusString响应状态,固定值 "error"
msgString错误信息

示例

GET /api/network/60/reset/

返回值

  • 成功响应

卫星网络 (network_type = 0)

{
  "status": "success",
  "network_id": 111,
  "network_name": "my_network",
  "network_description": "",
  "network_status": 0, // 0-暂存/1-运行中
  "network_type": 0, // 0-卫星 1-BGP
  "create_time": "2024:03:24 15:10:00", // 创建时间  YYYY-mm-dd HH:mm:ss
  "constellation": {
    "name": "my_constellation",
    "type": "walker_delta", //default walker_delta
    "orbit_altitude": 550,
    "orbit_inclination": 53,
    "orbit_num": 60,
    "sat_num_per_orbit": 60, 
    "phase_shift": 1,
    "sat_isl_link_num": 4, //default 4
    "sat_gsl_link_num": 1, //default 1
    "sat_access_link_num": 1, //default 1
  },
  "gs_set": [
    {
      "gs_id": 0,
      "node_id": -1,
      "name": "GS0",
      "latitude": 25.1,
      "longitude": 123.1,
      "elevation": 121.1,
      "gs_antenna_num": 1, //default 1
      "gs_antenna_angle": 1, //default 1
    },
    {
      "gs_id": 1,
      "node_id": -1,
      "name": "GS1",
      "latitude": 24.1,
      "longitude": 125.1,
      "elevation": 126.1,
      "gs_antenna_num": 1, //default 1
      "gs_antenna_angle": 1, //default 1
    },
  ],
  "user_terminals": [
    {
      "end_user_id": -1,
      "node_id": -1,
      "name": "alice",
      "latitude": 25.1,
      "longitude": 123.1,
      "elevation": 121.1,
    },
    {
      "end_user_id": -1,
      "node_id": -1,
      "name": "bob",
      "latitude": 35.1,
      "longitude": 143.1,
      "elevation": 125.1,
    }
  ]
}

BGP网络 (network_type = 1)

{
  "status": "success",
  "network_id": 111,
  "network_name": "my_network",
  "network_description": "",
  "network_status": 0, // 0-暂存/1-运行中
  "network_type": 1, // 0-卫星 1-BGP
  "create_time": "2024:03:24 15:10:00", // 创建时间  YYYY-mm-dd HH:mm:ss
}
  • 失败响应
{
  "status": "error",
  "msg": "错误信息"
}

1.9 网络配置删除

GET /api/network/<network-id>/remove/

功能:删除一个网络。调用前做检查,不可以删除正在运行的网络。

参数

url 中 <network-id>

返回值

  • 成功响应 - 200
参数名类型描述
statusString响应状态,固定值 "success"
  • 失败响应 - 400/500
参数名类型描述
statusString响应状态,固定值 "error"
msgString错误信息

示例

GET /api/network/60/remove/

返回值

  • 成功响应
{
  "status": "success"
}
  • 失败响应
{
  "status": "error",
  "msg": "错误信息"
}

1.10 配置文件删除

GET /api/network/<int:network-id>/file/delete

功能:判断上传内容合法性,包括文件格式正确和文件结构符合标准。

参数

url 中 <network-id>

返回值

  • 成功响应 - 200
参数名类型描述
statusString响应状态,固定值 "success"
  • 失败响应 - 400/500
参数名类型描述
statusString响应状态,固定值 "error"
msgString错误信息

示例

GET /api/network/60/file/delete

返回值

  • 成功响应
{
  "status": "success"
}
  • 失败响应
{
  "status": "error",
  "msg": "错误信息"
}

1.11 默认配置文件下载

GET /api/network/<int:network-id>/file/default/download

功能:下载一个网络的默认文件。

参数

url 中 <network-id>

返回值

  • 成功响应 - 200

application/zip

  • 失败响应 - 400/500
参数名类型描述
statusString响应状态,固定值 "error"
msgString错误信息

示例

GET /api/network/60/file/default/download

返回值

  • 成功响应

一个zip压缩包下载

  • 失败响应
{
  "status": "error",
  "msg": "错误信息"
}

1.12 容器镜像准备

GET /api/network/<int:network-id>/image/prepare

功能:准备某个网络所需的所有容器镜像(准备工作包括:拉取镜像、提取文件系统)。

参数

url 中 <network-id>

返回值

  • 成功响应 - 200
参数名类型描述
statusString响应状态,固定值 "success"
  • 失败响应 - 400/500
参数名类型描述
statusString响应状态,固定值 "error"
msgString错误信息

示例

GET /api/network/60/image/prepare

返回值

  • 成功响应

zip文件下载

  • 失败响应
{
  "status": "error",
  "msg": "错误信息"
}

1.13 强制清除网络

GET /api/network/force_clean/

功能:强制清理运行中的网络。

参数

返回值

  • 成功响应 - 200
参数名类型描述
statusString响应状态,固定值 "success"
  • 失败响应 - 400/500
参数名类型描述
statusString响应状态,固定值 "error"
msgString错误信息

示例

GET /api/network/force_clean/

返回值

  • 成功响应
{
  "status": "success"
}
  • 失败响应
{
  "status": "error",
  "msg": "错误信息"
}

1.14 当前配置文件下载

GET /api/network/<int:network-id>/file/current/download

功能:下载一个网络的默认文件。

参数

url 中 <network-id>

返回值

  • 成功响应 - 200

application/zip

  • 失败响应 - 400/500
参数名类型描述
statusString响应状态,固定值 "error"
msgString错误信息

示例

GET /api/network/60/file/current/download

返回值

  • 成功响应

一个zip压缩包下载

  • 失败响应
{
  "status": "error",
  "msg": "错误信息"
}

2 集群管理

/api/cluster

2.1 集群健康状态监控

GET /api/cluster/health

功能:获取集群健康状态。

参数

返回值

  • 成功响应 - 200
参数名类型描述
statusString响应状态,固定值 "success"
expected_nodesNumber节点数量
online_nodesNumber在线节点数量
  • 失败响应 - 400/500
参数名类型描述
statusString响应状态,固定值 "error"
msgString错误信息

示例

GET /api/cluster/health

返回值

  • 成功响应
{
  "status": "success",
  "expected_nodes": 8,
  "online_nodes": 8
}
  • 失败响应
{
  "status": "error",
  "msg": "错误信息"
}

3 节点管理

/api/vnode

3.1 虚拟节点列表

GET /api/vnode/list

功能:获取节点列表信息。

参数

控制参数 (Parameter)

参数名类型是否必需默认值描述
liteInteger10是否返回精简版数据:0: 完整版;1: 精简版
注:精简版不支持分页/筛选/排序功能

分页参数 (Parameter) - 仅完整版支持

参数名类型是否必需默认值描述
pageInteger1当前页码
pageSizeInteger10每页显示记录数

筛选参数 (Parameter) - 仅完整版支持

参数名类型是否必需描述匹配方式
node_idNumber虚拟节点ID模糊匹配
node_nameString虚拟节点名称模糊匹配
statusNumber容器状态精确匹配
typeString节点类型模糊匹配

排序参数 (Parameter) - 仅完整版支持

参数名类型是否必需可选值描述
sortByString-排序字段名
sortOrderStringasc/desc排序方式,asc-升序,desc-降序

返回值

  • 成功响应 - 200 - 完整版
参数名类型描述
statusString响应状态,固定值 "success"
totalNumber总记录数
pagesNumber总页数
pageNumber当前页码
pageSizeNumber每页记录数
dataArray虚拟节点数据数组

data 数组元素 - 完整版

参数名类型描述
node_idNumber节点ID
node_nameString节点名称
aliasString节点别名(仅在BGP场景存在)
current_statusNumber当前状态
imageString容器镜像
node_typeString节点类型
physicalBoolean是否物理节点
  • 成功响应 - 200 - 精简版
参数名类型描述
statusString响应状态,固定值 "success"
dataArray虚拟节点数据数组

data 数组元素 - 精简版

参数名类型描述
node_idNumber节点ID
node_nameString节点名称
aliasString节点别名(仅在BGP场景存在)
physicalBoolean是否物理节点
  • 错误响应 - 400/500
参数名类型描述
statusString响应状态,固定值 "error"
msgString错误信息描述

示例

  • 完整版请求
GET /api/vnode/list?page=1&pageSize=10&node_name=test&status=1&sortBy=node_id&sortOrder=desc
  • 精简版请求
GET /api/vnode/list?lite=1

返回值:

  • 完整版响应
{
    "status": "success",
    "total": 4,
    "pages": 1,
    "page": 1,
    "pageSize": 10,
    "data": [
        {
            "node_id": 1,
            "node_name": "node0",
            "alias": "AS1",
            "current_status": 1,
            "image": "ponedo/frr-ubuntu20:tiny",
            "node_type": "test",
            "physical": true
        }
    ]
}
  • 精简版响应
{
    "status": "success",
    "data": [
        {
            "node_id": 0,
            "node_name": "Sat0",
            "alias": "AS1"
        },
        {
            "node_id": 1,
            "node_name": "Sat1",
            "physical": true
        }
    ]
}
  • 失败响应
{
    "status": "error",
    "msg": "参数错误"
}

3.2 虚拟节点修改

GET /api/vnode/<node-id>/update

功能:启动或者停止一个虚拟节点。

参数: (Parameter)

参数名类型是否必需描述
actionString控制节点状态,固定值"up" 或 "down"

url 中 <node-id>

返回值

  • 成功响应 - 200
参数名类型描述
statusString响应状态,固定值 "success"
  • 失败响应 - 400/500
参数名类型描述
statusString响应状态,固定值 "error"
msgString错误信息

示例

GET /api/vnode/30/update?action=down

返回值

  • 成功响应 - 200
{
  "status": "success"
}
  • 失败响应 - 2400/500
{
  "status": "error",
  "msg": "错误信息"
}

3.3 虚拟节点批量修改

POST /api/vnode/update/batch/

功能:多节点批量修改状态。

参数

POST参数为 (body -- json) ,格式要求:

参数名类型是否必需描述
actionString控制节点列表状态,固定值"up" 或 "down"
node_idsArray节点id列表

返回值

  • 成功响应 - 200
参数名类型描述
statusString操作状态,值为 "success"
node_idsString控制节点列表状态,固定值"up" 或 "down"
actionArray节点id列表
  • 错误响应 - 400/500
参数名类型描述
statusString操作状态,值为"error"
msgString错误信息,描述错误原因

示例

{
    "action": "up",
    "node_ids": [1, 2, 3]
}

返回值

  • 成功响应 - 200
{
  "status": "success",
  "action": "up",
  "node_ids": [1, 2, 3]
}
  • 错误响应 - 400/500
{
  "status": "error",
  "msg": "错误信息"
}

3.4 事件列表获取

GET /api/vnode/action/list/

功能:节点事件列表获取。

参数

筛选参数 (Parameter)

参数名类型是否必需描述
typeNumber0-可编辑模板 1-直接执行,默认两种都能查

返回值

  • 成功响应 - 200
参数名类型描述
statusString响应状态,固定值 "success"
action_listArray事件列表

action_list 数组元素

参数名类型描述
action_idNumber事件id
action_nameString事件名称
typeNumber事件类型
  • 失败响应 - 400/500
参数名类型描述
statusString响应状态,固定值 "error"
msgString错误信息

示例

GET /api/vnode/action/list?type=0

返回值

  • 成功响应
{
  "status": "success",
  "action_list": [
      {"action_id": 1, "action_name": "操作名称", "type": 0},
      {"action_id": 12, "action_name": "操作名称", "type": 0},
  ]
}
  • 失败响应
{
  "status": "error",
  "msg": "错误信息"
}

3.5 事件详情获取

GET /api/vnode/action/<action-id>/info

功能:获取某一个操作的代码模板。

参数

url 中 <action-id>

返回值

  • 成功响应 - 200
参数名类型描述
statusString响应状态,固定值 "success"
action_idNumber事件id
action_nameString事件名称
shellString终端
typeNumber0-可编辑模板 1-直接执行
echoNumberecho表示需要返回该命令的输出结果
cmd_listArray命令列表

cmd_list 数组元素

参数名类型描述
cmdString命令内容
  • 失败响应 - 400/500
参数名类型描述
statusString响应状态,固定值 "error"
msgString错误信息

示例

GET /api/vnode/action/12/info

返回值

  • 成功响应
{
    "status": "success",
    "action_id": 12, 
    "action_name": "操作名称",
    "shell": "/bin/bash",
    "type": 1, // 0-可编辑模板 1-直接执行
    "echo": 1, // echo表示需要返回该命令的输出结果
    "cmd_list": [
        {"cmd": "config terminal"},
        {"cmd": "router bgp <input:as_number>"},
        {"cmd": "network <input:cidr_ip>"},  
    ]
}
  • 失败响应
{
  "status": "error",
  "msg": "错误信息"
}

3.6 虚拟节点终端

GET /api/vnode/<node-id>/terminal/

功能:获取节点终端的 websocket 地址。

参数

url 中 <node-id>

控制参数 (Parameter)

参数名类型是否必需默认值描述
cmdStringbashstr执行的终端路径,注意url符号转化,例如/ -> %2F
如:bash、vtysh、sh、/bin/bash等

返回值

  • 成功响应 - 200
参数名类型描述
statusString响应状态,固定值 "success"
terminal_urlStringweb terminal的websocket连接,可执行命令
  • 失败响应 - 400/500
参数名类型描述
statusString响应状态,固定值 "error"
msgString错误信息

示例

GET /api/vnode/<node-id>/terminal/?cmd=%2Fusr%2Fbin%2Fbash

返回值

  • 成功响应
{
   "status": "success",
   "terminal_url": "ws://172.10.80.158:8080/api/virtnet/ws/terminal/?network_id=1&node_id=1&cmd=%2Fusr%2Fbin%2Fbash"
}
  • 失败响应
{
  "status": "error",
  "msg": "错误信息"
}

3.7 删除事件模板

GET /api/vnode/action/<action_id>/delete

功能:删除指定的事件模板。

参数

url 中 <action_id>

返回值

  • 成功响应 - 200
参数名类型描述
statusString响应状态,固定值 "success"
  • 失败响应 - 400/500
参数名类型描述
statusString响应状态,固定值 "error"
msgString错误信息

示例

GET /api/vnode/action/12/delete

返回值

  • 成功响应
{
  "status": "success"
}
  • 失败响应
{
  "status": "error",
  "msg": "错误信息"
}

3.8 节点执行事件

WebSocket /ws/vnode/<node-id>/exec/

功能:在前台执行一个事件,可以拿到实时返回值。

参数

参数名类型描述
cmd_listArray命令列表

返回值

  • 成功响应
参数名类型描述
typeString命令执行状态
dataArray返回值字符串列表
  • 失败响应
参数名类型描述
statusString响应状态,固定值 "error"
msgString错误信息

示例

WebSocket /ws/vnode/<node-id>/exec/

发送

{
  "cmd_list": [
    "config terminal",
    "router bgp <input:as_number>",
    "network <input:cidr_ip>"
  ]
}

返回值

  • 成功响应
{
  "type": "update",
  "data": [
    "1234567890",
    "1234567890",
    "1234567890",
  ]
}
  • 失败响应
{
  "type": "error",
  "msg": "Error message here..."
}

4 链路管理

/api/vlink

4.1 链路修改

POST /api/vlink/<link_id>/update/

功能:修改一条链路的信息。

参数

POST参数为 (body -- json) ,格式要求:

参数名类型是否必需描述
opString固定值 "up"、"down"、"traffic_control"
argsObject需要调节的参数,该字段当op为"traffic_control"时携带。

args 参数

参数名类型是否必需默认值描述
bwNumber-1正整数,如果设置-1,卫星场景下表示由物理引擎接管
delayNumber-1非负整数,如果设置-1,卫星场景下表示由物理引擎接管
lossNumber-10-1范围,如果设置-1,卫星场景下表示由物理引擎接管

返回值

  • 成功响应 - 200
参数名类型描述
statusString响应状态,固定值 "success"
link_idString链路id
opString固定值 "up"、"down"、"traffic_control"
  • 失败响应 - 400/500
参数名类型描述
statusString响应状态,固定值 "error"
msgString错误信息

示例

POST /api/vlink/12-15-30-5/update/

参数

{
  "op": "up",
}

返回值

  • 成功响应 - 200
{
  "status": "success",
   "link_id":"12-15-30-5",
   "op": "up"
}
  • 失败响应 - 400/500
{
  "status": "error",
  "msg": "错误信息"
}

参数

{
  "op": "traffic_control",
  "args": {
    "bw": 1000, //带宽1000Mbps
    "delay": -1, //系统自由管理
    "loss": 0.3, //丢包率30%
  }
}

返回值

  • 成功响应 - 200
{
  "status": "success",
   "link_id":"12-15-30-5",
   "op": "traffic_control"
}
  • 失败响应 - 400/500
{
  "status": "error",
  "msg": "错误信息"
}

4.2 链路批量修改

POST /api/vlink/update/batch/

功能:多链路批量修改状态。

参数

POST参数为 (body -- json) ,格式要求:

参数名类型是否必需描述
opString固定值 "up"、"down"、"traffic_control"
link_idsArray需要修改的链路的id数组
argsObject需要调节的参数,该字段当op为"traffic_control"时携带。

返回值

  • 成功响应 - 200
参数名类型描述
statusString操作状态,值为 "success"
link_idsArray链路的id数组
opString操作
  • 错误响应 - 400/500
参数名类型描述
statusString操作状态,值为"error"
msgString错误信息,描述错误原因

示例

POST /api/vlink/update/batch/

参数

{
    "op":"down",
    "link_ids":["4-25-5-30","3-20-26-159"]
}

返回值

  • 成功响应 - 200
{
  "status": "success",
  "action": "down",
  "link_ids":["4-25-5-30","3-20-26-159"]
}
  • 错误响应 - 400/500
{
  "status": "error",
  "msg": "错误信息"
}

参数

{
    "op":"traffic_control",
    "link_ids":["4-25-5-30","3-20-26-159"],
    "args": {
        "bw": 1000, //带宽1000Mbps
        "delay": -1, //系统自由管理
        "loss": 0.3, //丢包率30%
    }
}

返回值

  • 成功响应 - 200
{
  "status": "success",
  "action": "traffic_control",
  "link_ids":["4-25-5-30","3-20-26-159"]
}
  • 错误响应 - 400/500
{
  "status": "error",
  "msg": "错误信息"
}

5 卫星可视化平台

/api/satvis/

5.1 获取信关站信息

GET api/satvis/ground_station/info

功能:获取信关站信息。

参数

返回值

  • 成功响应 - 200
参数名类型描述
statusString响应状态,固定值 "success"
gs_listArray信关站信息列表

gs_list 元素

参数名类型描述
gs_idNumber信关站id
node_idNumber虚拟节点id
nameString信关站名称
latitudeNumber纬度
longitudeNumber经度
elevationNumber海拔高度
gs_antenna_numNumber天线数量
gs_antenna_angleNumber天线角度
statusString状态 "UP"或者"DOWN"
physicalBoolean是否为实物节点
  • 失败响应 - 400/500
参数名类型描述
statusString响应状态,固定值 "error"
msgString错误信息

示例

GET /api/satvis/ground_station/info

返回值

  • 成功响应
{
    "status": "success",
    "gs_list":[
        {
            "gs_id": 0,
            "node_id": 100, //虚拟节点id
            "name": "GS0",
            "latitude": 25.1,
            "longitude": 123.1,
            "elevation": 121.1,
            "gs_antenna_num": 1,
            "gs_antenna_angle": 1,
            "status": "UP",
            "physical": true
        },
        {
            "gs_id": 1,
            "node_id": 101, //虚拟节点id
            "name": "GS1",
            "latitude": 24.1,
            "longitude": 125.1,
            "elevation": 126.1,
            "gs_antenna_num": 1,
            "gs_antenna_angle": 1,
            "status": "DOWN",
            "physical": false
        },
    ]
}
  • 失败响应
{
  "status": "error",
  "msg": "错误信息"
}

5.2 获取动态场景列表

GET /api/satvis/scenario/list

功能:获取动态场景列表。

参数

返回值

  • 成功响应 - 200
参数名类型描述
statusString响应状态,固定值 "success"
scenario_listArray动态场景列表

scenario_list 元素

参数名类型描述
scenario_idNumber动态场景id
scenario_statusNumber0:未计算,不可选
1:已经计算,可选选
2:运行中
200:计算失败,可选
scenario_nameString动态场景名称
  • 失败响应 - 400/500
参数名类型描述
statusString响应状态,固定值 "error"
msgString错误信息

示例

GET /api/satvis/scenario/list

返回值

  • 成功响应
{
    "status": "success",
    "scenario_list":[
        {
            "scenario_id": 1,
            "scenario_name":"2024年冬至",
            "scenario_status": 1 // 已经计算,可选
        },
        {
            "scenario_id": 2,
            "scenario_name":"2024年冬至",
            "scenario_status": 2 // 运行中
        }
    ]
}
  • 失败响应
{
  "status": "error",
  "msg": "错误信息"
}

5.3 新建动态场景

POST /api/satvis/scenario/create

功能:获取动态场景列表。

参数

POST参数为 (body -- json) ,格式要求:

参数名类型是否必需限制描述
scenario_nameString动态场景名称
start_timeString遵循 ISO 8601 标准,或常用时间格式场景起始时间
durationNumber持续时间必须为正整数,持续时间存在一个最大值,由管理员设置。场景持续时间
granularityNumber物理引擎模型粒度应在大于等于 1。物理引擎模型粒度(秒)
position_update_intervalNumber卫星位置前端渲染更新时间粒度应在 5 到 20 秒之间,卫星位置前端渲染更新时间粒度应为物理引擎模型粒度的倍数。卫星位置前端渲染更新时间粒度(单位为秒,必须被granularity整除,默认与granularity一致)
event_update_intervalNumber链路状态与属性更新时间粒度应在 5 到 20 秒之间,卫星位置前端渲染更新时间粒度应为物理引擎模型粒度的倍数。链路状态与属性更新时间粒度
sun_outage_critical_angleNumber日凌判定链路太阳光夹角应在 0 到 90 度之间。日凌判定链路太阳光夹角
laser_outage_rateNumber异轨星间链路异常发生概率应在 [0, 1]异轨星间链路异常发生概率
gsl_plan_methodString默认为min_distance星地链路切换策略

返回值

  • 成功响应 - 200
参数名类型描述
statusString响应状态,固定值 "success"
scenario_idNumber动态场景id
  • 失败响应 - 400/500
参数名类型描述
statusString响应状态,固定值 "error"
msgString错误信息

示例

GET /api/satvis/scenario/create

参数

{
  "scenario_name": "test", //场景名称
  "start_time": "2024-06-22T00:00:00+08:00", //场景起始时间
  "duration": 60, //场景持续时间
  "granularity": 1, //物理引擎模型粒度(秒)
  "position_update_interval": 10, //卫星位置前端渲染更新时间粒度(单位为秒,必须被granularity整除,默认与granularity一致)
  "event_update_interval": 10, //链路状态与属性更新时间粒度(单位为秒,必须被granularity整除,默认为大于10s的最小值)
  "sun_outage_critical_angle": 5, //日凌判定链路太阳光夹角(单位为度,default 5)
  "laser_outage_rate": 0.1, //异轨星间链路异常发生概率(default 0.1)
  "gsl_plan_method": "min_distance", //星地链路切换策略(预置选项包括min_distance;可选customized,此时用户需要上传星地切换策略至共享盘;默认min_distance)
}

返回值

  • 成功响应
{
    "status": "success",
    "scenario_id": 1,
}
  • 失败响应
{
    "status": "error",
    "msg": "错误信息"
}

5.4 获取单动态场景详情

GET /api/satvis/scenario/<scenario_id>/info

功能:获取单动态场景详情。

参数

url 中 <scenario_id>

返回值

  • 成功响应 - 200
参数名类型描述
statusString响应状态,固定值 "success".
network_idNumber网路id
scenario_idNumber动态场景id
scenario_nameString动态场景名称
start_timeString动态场景起始时间
durationNumber场景持续时间
granularityNumber物理引擎模型粒度(秒)
position_update_intervalNumber星位置前端渲染更新时间粒度
event_update_intervalNumber链路状态与属性更新时间粒度,单位为秒
sun_outage_critical_angleNumber日凌判定链路太阳光夹角,单位为度
laser_outage_rateNumber异轨星间链路异常发生概率
gsl_plan_methodString星地链路切换策略
created_timeString创建时间
scenario_statusNumber场景状态,0-计算中、1-就绪、2-运行中、200-计算失败
  • 失败响应 - 400/500
参数名类型描述
statusString响应状态,固定值 "error"
msgString错误信息

示例

GET /api/satvis/scenario/2/info

返回值

  • 成功响应
{
  "status": "success",
  "network_id": 0,
  "scenario_id": 2,
  "scenario_name": "test", //场景名称
  "start_time": "2024-06-22T00:00:00+08:00", //场景起始时间
  "duration": 60, //场景持续时间
  "granularity": 1, //物理引擎模型粒度(秒)
  "position_update_interval": 10, //卫星位置前端渲染更新时间粒度(单位为秒,必须被granularity整除,默认与granularity一致)
  "event_update_interval": 10, //链路状态与属性更新时间粒度(单位为秒,必须被granularity整除,默认为大于10s的最小值)
  "sun_outage_critical_angle": 5, //日凌判定链路太阳光夹角(单位为度,default 5)
  "laser_outage_rate": 0.1, //异轨星间链路异常发生概率(default 0.1)
  "gsl_plan_method": "min_distance", //星地链路切换策略(预置选项包括min_distance;可选customized,此时用户需要上传星地切换策略至共享盘;默认min_distance)
  "created_time": "2024-06-21T16:00:00+0000", //default 1
  "scenario_status": 0, // 0-计算中 1-就绪 2-运行中 200-计算失败
}
  • 失败响应
{
  "status": "error",
  "msg": "错误信息"
}

5.5 删除动态场景

GET /api/satvis/scenario/<scenario_id>/delete

功能:删除动态场景。

参数

url 中 <scenario_id>

返回值

  • 成功响应 - 200
参数名类型描述
statusString响应状态,固定值 "success"
  • 失败响应 - 400/500
参数名类型描述
statusString响应状态,固定值 "error"
msgString错误信息

示例

GET /api/satvis/scenario/2/delete

返回值

  • 成功响应
{
  "status": "success"
}
  • 失败响应
{
  "status": "error",
  "msg": "错误信息"
}

5.6 动态场景播放

GET /api/satvis/scenario/<scenario_id>/play

功能:仿真动态场景播放操作。

参数

url 中 <scenario_id>

返回值

  • 成功响应 - 200
参数名类型描述
statusString响应状态,固定值 "success"
  • 失败响应 - 400/500
参数名类型描述
statusString响应状态,固定值 "error"
msgString错误信息

示例

GET /api/satvis/scenario/2/play

返回值

  • 成功响应
{
  "status": "success"
}
  • 失败响应
{
  "status": "error",
  "msg": "错误信息"
}

5.7 获取系统当前仿真状态

GET /api/satvis/scenario/status

功能:获取系统当前仿真状态。

参数

返回值

  • 成功响应 - 200
参数名类型描述
statusString响应状态,固定值 "success"
emulation_statusNumber0-无仿真任务 1-正在仿真
network_idNumber当前网络id
scenario_idNumber当前场景id
  • 失败响应 - 400/500
参数名类型描述
statusString响应状态,固定值 "error"
msgString错误信息

示例

GET /api/satvis/scenario/status

返回值

  • 成功响应
{
    "status": "success",
    "emulation_status": 1, // 0-无仿真任务 1-正在仿真
    "network_id": 1, //当前网络id
    "scenario_id": 1 //当前场景id
}
  • 失败响应
{
  "status": "error",
  "msg": "错误信息"
}

5.8 获取卫星轨迹信息

GET /api/satvis/<scenario_id>/sat_trajectory

功能:获取卫星轨迹信息。

参数

url 中 <scenario_id>

返回值

  • 成功响应 - 200
参数名类型描述
statusString响应状态,固定值 "success"
startTimeString全部时间-开始时间,时间格式为 ISO8601
endTimeString全部时间-结束时间,时间格式为 ISO8601
starNetDataArray卫星信息数组

starNetData 元素

参数名类型描述
sat_idNumber卫星id
node_idNumber节点id
statusString状态,"UP" 或者 "DOWN"
physicalBoolean是否为实物节点
hostArray表示该卫星上存在的载荷节点
descriptionString描述
epochTimeString卫星轨迹-开始时间
pathDataArray路径数组

host 元素

参数名类型描述
node_idNumber节点id
node_nameString节点名称

pathData 元素

参数名类型描述
timeString当前时间
timeIntervalNumber当前时间距离开始时间秒数
latNumber纬度
lonNumber经度
heightNumber高度
  • 失败响应 - 400/500
参数名类型描述
statusString响应状态,固定值 "error"
msgString错误信息

示例

GET /api/satvis/2/sat_trajectory

返回值

  • 成功响应
{
  "status": "success",
  "startTime":"2024:03:24T15:10:00Z", //全部时间-开始时间   时间格式为 ISO8601 
  "endTime":"2024:03:24T15:10:00Z", //全部时间-结束时间
  "starNetData": [
    {
      "sat_id": 0,  //星星id
      "node_id": 0, //虚拟节点id
      "status": "DOWN", //状态
      "physical": true,
      "host": [
          {"node_id":100,"node_name":"Sat100_host"}
      ], //host,星载
      "description": "Sat0", //星星描述
      "epochTime":"2024:03:24T15:10:00Z", //星星轨迹-开始时间
      "pathData": [
        {
            "time": "2024:03:24T15:10:00Z", //当前时间
            "timeInterval":0,  //当前时间距离开始时间秒数
            "lat": 30, //纬度
            "lon": 175, //经度
            "height": 15200 //高度
        },
        {
            "time": "2024:03:24T15:10:03Z",
            "timeInterval":300,
            "lat": 30,
            "lon": 175,
            "height": 15200
        }
      ]
    },
    {
      "sat_id": 1,  //星星id
      "node_id": 1, //虚拟节点id
      "status": "UP", //状态
      "physical": false,
      "host": [], //host,星载
      "description": "Sat1", //星星描述
      "epochTime":"2024:03:24T15:10:00Z",
      "pathData":[
        {
          "time": "2024:03:24T15:10:00Z",
          "timeInterval":0,
          "lat": 30,
          "lon": 175,
          "height": 15200
        }
      ]
    }
  ]
}
  • 失败响应
{
  "status": "error",
  "msg": "错误信息"
}

5.9 获取链路预计算信息

GET /api/satvis/<scenario_id>/init_edge_list

功能:获取链路预计算信息。

参数

url 中 <scenario_id>

返回值

  • 成功响应 - 200
参数名类型描述
statusString响应状态,固定值 "success"
current_secondsNumber当前播放进度(秒),相对于start_time的差值
linksArray链路数组

links 元素

参数名类型描述
link_idNumber链路id
source_node_idNumber源节点id
target_node_idNumber目前节点id
linkTypeString节点类型,intra-orbit 或空
linkStatusArray表示当前的节点状态,可能同时处于多种状态。渲染时,按照linkStatus列表中的第一个状态渲染该链路的颜色。
"Normal" 或者其他异常状态,包括:
"User-outage":用户手动控制该链路关闭
"Sun-outage":日凌导致该链路关闭
当链路为"Normal" 表示该链路正常,不存在任何异常,只要存在任何一种异常则链路关闭。
  • 失败响应 - 400/500
参数名类型描述
statusString响应状态,固定值 "error"
msgString错误信息

示例

GET /api/satvis/2/init_edge_list

返回值

  • 成功响应
{
  "status": "success",
  "current_seconds": 12, // 当前播放进度(秒),相对于start_time的差值
  "links": [
    {
      "link_id": "0-1-1-4", //虚拟链路id
      "source_node_id": 0, //开始节点id
      "target_node_id": 1, //结束节点id
      "linkType": "intra-orbit",
      "linkStatus": ["Normal"]
    },
    {
      "link_id": "1-7-11-46", //虚拟链路id
      "source_node_id": 1,
      "target_node_id": 11,
      "linkType": "inter-orbit",
      "linkStatus": ["Sun-outage"]
    },
    {
      "link_id": "1-7-12-51", //虚拟链路id
      "source_node_id": 1,
      "target_node_id": 12,
      "linkType": "inter-orbit",
      "linkStatus": ["User-outage", "Sun-outage"] //链路状态,可能同时处于多种状态。渲染时,按照linkStatus列表中的第一个状态渲染该链路的颜色。
    },
    {
      "link_id": "1-10-101-1123", //虚拟链路id
      "source_node_id": 101,
      "target_node_id": 1,
      "linkType": "",
      "linkStatus": ["Normal"]
    },
    {
      "link_id": "16-111-104-1126", //虚拟链路id
      "source_node_id": 104,
      "target_node_id": 16,
      "linkType": "",
      "linkStatus": ["Normal"]
    }
  ]
}
  • 失败响应
{
  "status": "error",
  "msg": "错误信息"
}

5.10 获取链路实时网络属性

WebSocket /ws/satvis/<scenario-id>/link_attributes/<link-id>

功能:每隔一段时间(event_update_interval秒)推送一条链路的实时时延、带宽、丢包率等信息。

参数

url 中 <scenario-id><link-id>

发送任意消息。

返回值

  • 成功响应
参数名类型描述
current_secondsNumber当前播放进度(秒),相对于start_time的差值
source_node_idNumber源节点id
target_node_idNumber目前节点id
source_node_nameString源节点名称
target_node_nameString目的节点名称
onlineBoolean当前此链路是否在线(没有被用户手动置为Outage),若是则为true,否则为false
bandwidthNumber带宽信息
lossNumber丢包率,[0,1]
delayNumber时延
  • 失败响应

返回服务器错误信息。

示例

WebSocket /ws/satvis/2/link_attributes/12-45-1-3

发送

"SERNES"

返回值

  • 成功响应
{
  "current_seconds": 12, // 当前播放进度(秒),相对于start_time的差值
  "source_node_id": 122,
  "target_node_id": 123,
  "source_node_name": "Sat122",
  "target_node_name": "Sat123",
  "online": true, // 当前此链路是否在线(没有被用户手动置为Outage),若是则为true,否则为false
  "bandwidth": 1000,
  "loss": 0.01,
  "delay": 5000,
}

5.11 动态场景播放停止

GET /api/satvis/<scenario_id>/terminate

功能:仿真动态场景播放停止操作。

参数

url 中 <scenario_id>

返回值

  • 成功响应 - 200
参数名类型描述
statusString响应状态,固定值 "success"
  • 失败响应 - 400/500
参数名类型描述
statusString响应状态,固定值 "error"
msgString错误信息

示例

GET /api/satvis/scenario/2/terminate

返回值

  • 成功响应
{
  "status": "success"
}
  • 失败响应
{
  "status": "error",
  "msg": "错误信息"
}

5.12 网络实时状态推送

WebSocket /ws/satvis/vnode/status/

功能:在网络中节点发生变化时推送增量变化,当用户手动控制该节点启动或者停止时会推送内容。

参数

发送任意值

返回值

  • 成功响应
参数名类型描述
typeString节点类型状态,固定为 "node-update",
dataArray数据列表

data 元素

参数名类型描述
node_idNumber节点id
node_typeString节点类型,为 "sat"、"gs" 和 "end_user"
eventString"UP" 或者 "DOWN"
  • 失败响应

返回服务器错误信息。

示例

WebSocket /ws/satvis/2/link_attributes/12-45-1-3

发送

"SERNES"

返回值

  • 成功响应
{
  "current_seconds": 12, // 当前播放进度(秒),相对于start_time的差值
  "source_node_id": 122,
  "target_node_id": 123,
  "source_node_name": "Sat122",
  "target_node_name": "Sat123",
  "online": true, // 当前此链路是否在线(没有被用户手动置为Outage),若是则为true,否则为false
  "bandwidth": 1000,
  "loss": 0.01,
  "delay": 5000,
}

6 BGP可视化平台

/api/bgpvis/

6.1 获取网络拓扑

GET /api/bgpvis/topology

功能:返回当前时刻运行的网络的状态。

参数

返回值

  • 成功响应 - 200
参数名类型描述
statusString响应状态,固定值 "success"
network_idNumber正在运行的网络id
nodesArray节点信息列表
linksArray链路信息列表

nodes 元素

参数名类型描述
idNumber节点id
nameString节点名称
typeString节点类型,为"host"、"router"、"as"、"monitor"
aliasString节点别称
statusString节点状态,"UP" 或者 "DOWN"
physicalBoolean是否为实物节点
xArray第一个参数为节点在画布中的x位置,中心点是(0, 0),第二个参数为分辨率width
yArray第一个参数为节点在画布中的y位置,中心点是(0, 0),第二个参数为分辨率height
  • 失败响应 - 400/500
参数名类型描述
statusString响应状态,固定值 "error"
msgString错误信息

示例

GET /api/bgpvis/topology

返回值

  • 成功响应
{
    "status": "success",
    "network_id": 0,
    "nodes": [
        {
            "id": 1,
            "name": "AS1",
            "type": "router",
            "alias": "AS1",
            "status": "DOWN",
            "physical": true,
            "x": [
                -591.8478005191374,
                1602
            ],
            "y": [
                31.618981283416005,
                782
            ]
        }
    ],
    "links": [
        {
            "id": "1",
            "source_id": 2,
            "target_id": 3,
            "status": "UP"
        }
    ]
}
  • 失败响应
{
  "status": "error",
  "msg": "错误信息"
}

6.2 保存拓扑布局

POST /api/bgpvis/topology/save

功能:将当前布局保存到 yaml 中。

参数

POST参数为 (body -- json) ,格式要求:

参数名类型描述
多个节点的名称Object包含每一个节点的xy信息

节点 Object 结构

参数名类型描述
xArray第一个参数为节点在画布中的x位置,中心点是(0, 0),第二个参数为分辨率width
yArray第一个参数为节点在画布中的y位置,中心点是(0, 0),第二个参数为分辨率height

返回值

  • 成功响应 - 200
参数名类型描述
statusString响应状态,固定值 "success"
  • 失败响应 - 400/500
参数名类型描述
statusString响应状态,固定值 "error"
msgString错误信息

示例

POST /api/bgpvis/topology/save

参数

{
    "node0" : {
        "x": [
            -163.21903797733037,
            1602
        ],
        "y": [
            -215.65374598931172,
            782
        ]
    },
    "node1": {
        "x": [
            -591.8478005191374,
            1602
        ],
        "y": [
            31.618981283416005,
            782
        ]
    }
} 

返回值

  • 成功响应 - 200
{
  "status": "success",
}
  • 失败响应 - 400/500
{
  "status": "error",
  "msg": "错误信息"
}

6.3 网络实时状态推送

WebSocket /ws/bgpvis/status/

功能:在网络发生变化时推送增量变化。

参数

返回值

  • 成功响应
参数名类型描述
typeString节点类型状态,固定为 "node-update" 或者 "link-update"
dataArray数据列表

data 元素

参数名类型描述
node_idNumber节点id,如果是 "link-update" 则不返回该字段
link_idString链路id,如果是 "node-update" 则不返回该字段
eventString"UP" 或者 "DOWN"
  • 失败响应
参数名类型描述
statusString响应状态,固定值 "error"
msgString错误信息

示例

WebSocket /ws/bgpvis/status/

返回值

  • 成功响应
{
  "type": "link-update",
  "data": [
      {
        "link_id": "link0",
        "event": "UP" // UP DOWN
      },
      {
        "link_id": "link1",
        "event": "DOWN" // UP DOWN
      }
  ]
}

{
  "type": "node-update",
  "data": [
      {
        "node_id": 132,
        "event": "UP" // UP DOWN
      },
      {
        "node_id": 135,
        "event": "DOWN" // UP DOWN
      }
  ]
}
  • 失败响应
{
  "type": "error",
  "msg": "Error message here..."
}

6.4 链路实时属性推送

WebSocket /ws/bgpvis/link_attributes/<link-id>

功能:链路状态实时推送。

参数

发送任意值

返回值

  • 成功响应
参数名类型描述
typeString响应状态,固定值,"success"
source_node_idNumber源节点id
target_node_idNumber目前节点id
source_node_nameString源节点名称
target_node_nameString目的节点名称
onlineBoolean当前此链路是否在线,没有被用户手动置为DOWN,若是则为true,否则为false
bandwidthNumber带宽信息
lossNumber丢包率,[0,1]
delayNumber时延
  • 失败响应
参数名类型描述
statusString响应状态,固定值 "error"
msgString错误信息

示例

WebSocket /ws/bgpvis/link_attributes/Node122-Node123-12-84

发送

"SERNES"

返回值

  • 成功响应
{
  "type": "success",
  "source_node_id": 122,
  "target_node_id": 123,
  "source_node_name": "Node122",
  "target_node_name": "Node123",
  "online": true,
  "bandwidth": 1000,
  "loss": 0.01,
  "delay": 5000,
}
  • 失败响应
{
  "type": "error",
  "msg": "Error message here..."
}

7 平台工具接口

/api/tools/

7.1 工具状态

GET /api/tools/status

功能:对正在运行的网络,查看其各个工具是否正在运行。

参数

返回值

  • 成功响应 - 200
参数名类型描述
statusString响应状态,固定值 "success"
pcap_statusNumber抓包工具状态 0-未运行 1-正在运行
  • 失败响应 - 400/500
参数名类型描述
statusString响应状态,固定值 "error"
msgString错误信息

示例

GET /api/tools/status

返回值

  • 成功响应
{
    "status": "success",
    "pcap_status": 1 //抓包工具状态 0-未运行 1-正在运行
}
  • 失败响应
{
  "status": "error",
  "msg": "错误信息"
}

7.2 日志下载

POST /api/tools/log/download

功能:从正在运行的网络中挑选数个节点,下载其中的日志信息。

参数

POST参数为 (body -- json) ,格式要求:

参数名类型描述
nodesArray节点id的一个列表
volumesString必须是用户在yaml中配置过的volume

返回值

  • 成功响应 - 200

application/zip

  • 失败响应 - 400/500
参数名类型描述
statusString响应状态,固定值 "error"
msgString错误信息

示例

POST /api/tools/log/download

参数

{
    "nodes": [12, 23, 56, 76], // NodeID
    "volumes": "/var/log" //必须是用户在yaml中配置过的volume
} 

返回值

  • 成功响应 - 200

一个zip文件下载

  • 失败响应 - 400/500
{
  "status": "error",
  "msg": "错误信息"
}

7.3 开始抓包

POST /api/tools/pcap/start

功能:开始抓取当前运行网络中的部分节点数据包。

参数

POST参数为 (body -- json) ,格式要求:

参数名类型描述
nodesArray节点id的一个列表

返回值

  • 成功响应 - 200
参数名类型描述
statusString响应状态,固定值 "success"
  • 失败响应 - 400/500
参数名类型描述
statusString响应状态,固定值 "error"
msgString错误信息

示例

POST /api/tools/pcap/start

参数

{
    "nodes": [12, 23, 56, 76], // NodeID
}

返回值

  • 成功响应 - 200
{
    "status": "success",
}
  • 失败响应 - 400/500
{
  "status": "error",
  "msg": "错误信息"
}

7.4 停止抓包

GET /api/tools/pcap/stop

功能:停止抓取当前运行网络中的部分节点数据包。

参数

返回值

  • 成功响应 - 200
参数名类型描述
statusString响应状态,固定值 "success"
  • 失败响应 - 400/500
参数名类型描述
statusString响应状态,固定值 "error"
msgString错误信息

示例

GET /api/tools/pcap/stop

返回值

  • 成功响应 - 200
{
    "status": "success",
}
  • 失败响应 - 400/500
{
  "status": "error",
  "msg": "错误信息"
}

7.5 包文件列表

GET /api/tools/pcap/<network-id>/list

功能:列出在某个网络中已经抓取的数据包文件。

参数

url 中 <network-id>

返回值

  • 成功响应 - 200
参数名类型描述
statusString响应状态,固定值 "success"
dataArray一个包含数据包文件名的列表
  • 失败响应 - 400/500
参数名类型描述
statusString响应状态,固定值 "error"
msgString错误信息

示例

GET /api/tools/pcap/12/list

返回值

  • 成功响应 - 200
{
  "status": "success",
  "data": [
       "20240705_175143.pcap",
       "20240705_175146.pcap"
  ]
}
  • 失败响应 - 400/500
{
  "status": "error",
  "msg": "错误信息"
}

7.6 下载抓包文件

GET /api/tools/pcap/download

功能:下载一个数据包文件。

参数

参数 (Parameter) :

参数名类型描述
network_idNumber网络id
file_nameString需要下载的数据包文件名

返回值

  • 成功响应 - 200

application/zip

  • 失败响应 - 400/500
参数名类型描述
statusString响应状态,固定值 "error"
msgString错误信息

示例

GET /api/tools/pcap/download?network_id=12&file_name=20240705_175146.pcap

参数

{
    "nodes": [12, 23, 56, 76], // NodeID
    "volumes": "/var/log" //必须是用户在yaml中配置过的volume
} 

返回值

  • 成功响应 - 200

一个zip文件下载

  • 失败响应 - 400/500
{
  "status": "error",
  "msg": "错误信息"
}