Zigbee白名单/黑名单

方式一

在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,这个地址是不合法的,节点收到后会重新寻找其它网络。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值