有没有办法将相关的MN连接到接入点?

时间:2015-08-30 16:53:51

标签: c++ omnet++ inet

我正在使用INET并且想要模拟由三个接入点(AP)和一个移动节点(MN)组成的场景,可能每个AP在其范围内具有其他关联的MN,我想要的是:而MN (在我的场景中)移动并从AP获取信标,在与AP关联之前,我可以获得与每个AP关联的其他MN的数量吗?我探索了很多源代码,我在ieee80211MgmtAP中找到了MACaddressTable和类似stalist的东西,它们对我有用吗?并将它们用作相关MN的总数, 那么我如何评估斯大林主义者的长度呢?还是MACaddressTable?

否则我必须把一个计数器计算在AP侧并通过信标帧发射它?如果是这样,请给我一些指南或捷径 问候....

1 个答案:

答案 0 :(得分:1)

  1. 在IEEE 802.11 AP中发送有关相关电台数量的信息。因此,为了广播此信息,您必须将自己的修改/扩展引入IEEE 802.11协议,例如信标帧中的新字段。
  2. 在INET模型中,AP在staList地图中存储自己的电台。要在本地计算当前的关联站数,可以使用以下代码:

    STAList::const_iterator it; int assocSta = 0; for (it = staList.begin(); it != staList.end(); ++it) { if (it->second.status == ASSOCIATED) assocSta++; }

  3. 如果您想要修改标准信标帧,首先,您必须假设您想要在信标帧中添加新字段的位置,例如之后的现有领域,以及此提交的大小应该具有的范围。然后:

    • 在文件int noOfAssociatedStas;的课程Ieee80211BeaconFrameBody中添加新的字段(例如Ieee80211MgmtFrames.msg),并在Ieee80211BeaconFrame定义中更正长度
    • Ieee80211Serializer.ccelse if (dynamic_cast<const Ieee80211BeaconFrame *>(pkt))添加新字段序列化后的
    • ,例如:

      unsigned int numSta = Frame->getBody().getNoOfAssociatedStas(); b.writeByte(numSta); // assuming that the new field is 1 byte length

    • Ieee80211Serializer.cc中的deserialize中添加新字段的反序列化,例如case 0x80: //ST_BEACON之后:
      unsigned int numSta = b.readByte();

    请注意,添加新文件的位置(第二个项目符号)必须与阅读它的位置完全匹配(第三个项目符号)。