有没有办法让关联的 MN 到达接入点?

Is there is a way to get the associated MN's to an access point?

我正在使用 INET 并想模拟一个由三个接入点 (AP) 和一个移动节点 (MN) 组成的场景,可能每个 AP 在其范围内都有其他关联的 MN,我想要的是:虽然MN(在我的场景中)四处移动并从 AP 获取信标,在与 AP 关联之前,我能否获得与每个 AP 关联的其他 MN 的数量?我探索了许多源代码,我在 ieee80211MgmtAP 中找到了 MACaddressTable 和类似 stalist 的东西,它们对我有用吗?并将它们用作关联 MN 的总数, 那么我如何评估stalist的长度?或 MAC 地址表?

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

  1. 在 IEEE 802.11 中,AP 不会发送有关关联站数量的信息。因此,为了广播此信息,您必须将自己的 modification/extension 引入 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++; }

如果你想修改标准信标帧,首先,你必须假设你想在信标帧中添加新字段的确切位置,例如在现有字段之后,以及该字段应具有的大小。然后:

  • 在 class Ieee80211BeaconFrameBody 文件 Ieee80211MgmtFrames.msg 中添加新文件(例如 int noOfAssociatedStas;)并在 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

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

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