LoRaWAN1.1-OTA漫游激活流程(10)

这一章节描述当终端设备超出他的hNS的覆盖而在访问的NS覆盖之内的情况下,激活一个新的LoRa会话的流程。NS

假设hNS意识到所访问的NS的漫游功能,并且hNS决定执行哪种类型的漫游。

切换漫游激活

下面的处理流程适用于LoRaWAN1.0和LoRaWAN1.1协议的终端设备。

切换漫游开始


LoRaWAN1.1-OTA漫游激活流程(10)_第1张图片
切换漫游激活流程图

Step 1:

终端设备将传输一个Join-request消息。

Step 2:

当NS2接收这个Join-request消息,NS2将通过DevEUI决定是否作为hNS对于该终端。在这个流程中,假定NS2不是hNS服务对于该终端。

NS2将通过JoinEUI来决定是否被配置成和JS一起工作。如果没有配置,然后NS2将终止这个流程。

如果NS2没有配置额外的机制去配置JS的Ip 地址,NS2将基于接收到的报文里面的JoinEUI去寻找JS的IP地址,如果DNS查找失败,NS2将终止处理流程。

Step 3:

如果NS2已经知道了终端设备的hNS的标识,Step3和4将被跳过。否则,NS2将发送一个HomeNSReq消息到JS,携带着接收到的Join-request消息中的DevEUI。

Step 4:

如果NS2没有在JS的漫游激活的授权网络列表中,JS服务将发送一个携带Result=NoRoamingAgreement的HomeNSAns消息到NS2,并且终止流程。

Step 5:

如果NS2已经知道终端的Device Profile,并且NS2和NS1只有漫游协议,然后Step 5和6被跳过。否则,如果NS2没有通过额外的机制配置NS1的IP地址,NS2将基于Join-request报文中的NetID使用DNS去查找NS1的IP地址。如果DNS查询失败,NS2将终止流程。

NS2将发送ProfileReq消息到NS1,并携带DevEUI。

Step 6:

如果在NS1和NS2之间没有商业协议,NS1将发送一个ProfileAns消息,并携带Result=NoRoamingAgreement。如果NS1没有找到DevEUI对应的终端设备,NS1将发送一个ProfileAns消息,并携带Result=UnknownDevEUI。如果终端设备没有被允许执行漫游激活,NS1将发送一个Result=RoamingActDisallowed消息,并携带Result=RoamingActDisallowed。否则,假定NS1决定使能切换漫游激活,NS1将发送ProfileAns消息,并携带Result=Success、RoamingActivationType=Handover、 Device Profile和 Device Profile Timestamp。(该时间戳是Device Profile最后修改的时间戳)

下面的流程是当漫游激活方式为切换漫游时的流程。

Step 7:

如果收到的ProfileAns消息指示成功,或者如果Step 5和6被跳过,然后NS2将发送ProfileAns到NS1并携带Join-Request的PHYPayload、MACVersion、ULMetadata、DevAddr、DLSettings、RxDelay以及可选项CFList和Device Profile Timestamp。NS2将MACVersion值设置为最高的通用版本在终端设备和NS2之间。

Step 8:

如果NS1和NS2之间没有签署协议或者NS1基于DevEUI没有辨别出终端设备或者终端设备不允许执行漫游激活,当Step 5和6被跳过时,NS1将执行Step 10。

如果NS1确定自接收到的设备概要时间戳所指示的时间以来设备概要发生了更改,NS1断定NS2的Device  Profile信息过于陈旧。在这种情况下,NS1将执行Step10.否则,NS1将发送一个JoinReq到JS,并携带Join-request的PHYPayload,和来自NS2的MACVersion、 DevEUI、DevAddr、DLSettings、RxDelay、和CFList。

Step 9:

JS将按照MACVersion去处理Join-request消息,发送JoinAns到NS1并携带Result=Success,带有Join-accept消息的PHYPayload,网络会话密钥组,加密后的AppSKey或SessionKeyID或者两者都含有、Lifetime;在失败的情况下,返回Result=UnknownDevEUI 或MICFailed。

Step 10:

如果NS1和NS2没有商业协议,然后NS1将发送HRStartAns消息给NS2,并携带Result=NoRoamingAgreement。如果NS1不能够通过DevEUI辨别出终端设备,NS1将返送一个HRStartAns消息到NS2,并携带Result=UnknownDevEUI。如果终端设备不允许执行漫游激活NS1将发送一个HRStartAns消息到NS2,并携带Result= RoamingActDisallowed.

如果NS1认定NS2的Device Profile是陈旧的版本,NS将发送一个HRStartAns消息到NS2,并携带Result=StaleDeviceProfile、最新的Device Profile和它的Device Profile Timestamp。在这种情况下,NS2将跳过Step7去使用它刚刚接收到的新的Device Profile。

否则,NS1将发送HRStartAns到NS2。这个HRStartAns消息将包含在Step 9中描述的相同的对象和终端设备的Service Profile。

对于LoRaWAN1.1终端设备,NS1将缓存接收到的SNwkSIntKey,以便与NS1在转发报文到JS服务前,就可以验证MIC以及后续的Rejoin-Type 0 的消息的正确。

Step 11:

如果HRStartAns消息指示成功,NS1将转发接收到的Join-accept的PHYPayload到终端设备,终端设备基于Join-accept消息将生成网络会话密钥组、AppSKey。

如果由JS到AS生成的加密的AppSKey不可用,然后NS将使用OTA本地激活流程中的Step8中定义的方法,直接从JS服务中恢复该AppSKey。

你可能感兴趣的:(LoRaWAN1.1-OTA漫游激活流程(10))