有没有办法让关联的 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 端放置一个计数器来计算它并通过信标帧发送它吗?如果是这样,请给我一些指南或捷径
问候....
- 在 IEEE 802.11 中,AP 不会发送有关关联站数量的信息。因此,为了广播此信息,您必须将自己的 modification/extension 引入 IEEE 802.11 协议,例如信标帧中的新字段。
在 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.cc
后else 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();
请注意,添加新字段的位置(第二个项目符号)必须与读取它的位置(第三个项目符号)完全匹配。
我正在使用 INET 并想模拟一个由三个接入点 (AP) 和一个移动节点 (MN) 组成的场景,可能每个 AP 在其范围内都有其他关联的 MN,我想要的是:虽然MN(在我的场景中)四处移动并从 AP 获取信标,在与 AP 关联之前,我能否获得与每个 AP 关联的其他 MN 的数量?我探索了许多源代码,我在 ieee80211MgmtAP 中找到了 MACaddressTable 和类似 stalist 的东西,它们对我有用吗?并将它们用作关联 MN 的总数, 那么我如何评估stalist的长度?或 MAC 地址表?
否则我必须在 AP 端放置一个计数器来计算它并通过信标帧发送它吗?如果是这样,请给我一些指南或捷径 问候....
- 在 IEEE 802.11 中,AP 不会发送有关关联站数量的信息。因此,为了广播此信息,您必须将自己的 modification/extension 引入 IEEE 802.11 协议,例如信标帧中的新字段。
在 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.cc
后else 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
indeserialize
添加新字段的反序列化,在case 0x80: //ST_BEACON
之后例如:
unsigned int numSta = b.readByte();
请注意,添加新字段的位置(第二个项目符号)必须与读取它的位置(第三个项目符号)完全匹配。