完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
Z-stack Zigbee Associate对白名单黑名单的限制 Associate是一个MAC层定义的动作,未加入网络的节点向协调器或者路由器发起Associate申请,协调器或者路由器返回一个AssociateRsp,并带有分配的网络地址。 第一种方法,在Zmac_cb.c文件中,找到函数MAC_CbackEvent,这个函数是MAC层把消息上传给NWK层的,可以过滤AssoReq命令。这个地方是判断MAC层生成的消息,并进一步传递给NWK,在传递给NWK前要用osal_msg_allocate分配消息空间,同时会进行一些预处理。其中有个对MAC_MCPS_DATA_IND事件的预处理,就是收到错误的数据包直接return,不上传给NWK。 我们可以在这里添加一个else if(event == MAC_MLME_ASSOCIATE_IND),然后判断pData->associateInd.deviceAddress是否合法,不合法直接return。 第二种方法,在ZDApp.c中找到ZDO_JoinIndicationCB,这里是直接接驳NWK层处理加入网络请求的。可以处理JOIN和REJOIN两种事件。参数type是加入网络的方式,ShortAddress是NWK分配好的网络地址,ExtendedAddress是加入网络的设备的物理地址。在这个地方加入白名单验证,不合法的,直接返回ZFailure。 通过协议分析仪观察,第一种方法,协调器收到AssoReq后不响应AssoRsp,节点超时后重新寻找其它网络。第二种方法,协调器返回的AssoRsp指令,分配的网络地址是0xFFFF,这个地址是不合法的,节点收到后会重新寻找其它网络。 |
|
相关推荐 |
|
只有小组成员才能发言,加入小组>>
3426个成员聚集在这个小组
加入小组物联网工程师必备:怎么选择不同的无线连接威廉希尔官方网站 ,本指南帮你忙!
3291 浏览 1 评论
【DFRobot TinkerNode NB-IoT 物联网开发板试用连载】WIFI功能测试
3943 浏览 0 评论
【DFRobot TinkerNode NB-IoT 物联网开发板试用连载】Arduino的替代SublimeText3+STino
3448 浏览 0 评论
使用端口扩展器轻松高效地向IIoT端点添加具有成本效益的子节点
4014 浏览 1 评论
20689 浏览 11 评论
模组有时候复位重启后输出日志为“REBOOT_CAUSE_SECURITY_PMU_POWER_ON_RESET”的原因?
811浏览 2评论
1041浏览 2评论
1041浏览 1评论
1154浏览 1评论
387浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 04:06 , Processed in 0.878442 second(s), Total 52, Slave 42 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号