准备工作
java : jre-8u131-windows-i586.exe(超过37M,无法上传)
jre-8u131-windows-i586.exe
graphviz :
graphviz-2.38.msi
vscode插件两个(直接使用插件管理器在线下载):PlantUML 和 Graphviz Preview
检查环境变量(没有的,需要手动添加系统环境变量):
C:\Program Files (x86)\Graphviz2.38\bin;
C:\ProgramData\Oracle\Java\javapath;
C:\Program Files (x86)\Java\jre1.8.0_131\bin;
VScode画图
新建一个 *.puml 文件
写入 uml code
按“Alt + d” 快捷键,生成预览:
@startuml start : 【B】根据A的决策-New AMF继续处理; if(注册拒绝) then(是) : 发送注册拒绝-结束; else
if(向UE要SUCI) : 需退化为局内注册-流程继续【C】; else if(向Old AMF要上下文) :发现 Old AMF; if(发现失败)
then(是) :退化为局内注册-流程继续【C】; else(发现成功) then(否) :向Old AMF发送UE Context Transfer
Req; if(响应成功) :局间注册流程继续 ; else if(Rsp 403) :设置完保检查失败-流程继续 【D】; else if(Rsp 404)
:退化为局内注册-流程继续【C】; else if(过负荷其他失败非部分备份的超时) :向Old AMF要上下文失败通用处理 ; endif endif
endif stop @enduml
@startuml CONSUMER_NF -> AMF_EE_CREATE_TRANS: 1. HTTP CREATE SUB REQ
AMF_COMMUNICATION <- AMF_EE_CREATE_TRANS: 2. GET SUPI or INNER CREATE SUB REQ
AMF_COMMUNICATION -> AMF_EE_TAKEOVER_TRANS: 3. 决策出来非本局用户,接管通知
AMF_EE_TAKEOVER_TRANS->OTHER_CDB: 4. 拉取other cdb数据
OTHER_CDB->AMF_EE_TAKEOVER_TRANS: 5. 拉取other cdb数据响应 AMF_EE_TAKEOVER_TRANS->
AMF_EE_TAKEOVERDELAY_TRANS: 6. 触发内部消息 AMF_COMMUNICATION -> AMF_EE_CREATE_TRANS:
7. INNER CREATE SUB RSP, 处理当前订阅流程 CONSUMER_NF <- AMF_EE_CREATE_TRANS: 8. HTTP
CREATE SUB RSP AMF_EE_TAKEOVERDELAY_TRANS-> CONSUMER_NF : 9.
此用户其他的订阅subidchange AMF_EE_TAKEOVERDELAY_TRANS-> AMF_COMMUNICATION : 10.
触发内部订阅信息更新 AMF_COMMUNICATION-> AMF_OLD_COMMUNICATION : 11. 触发接管删除
AMF_OLD_COMMUNICATION-> AMF_OLD_EE : 12. 触发接管删除 @enduml