准备工作
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