簡體   English   中英

如何在 NS3 運行期間更改點點鏈接數據速率

[英]How to change pointopoint link datarate during run time in NS3

我是NS3的新手。 我有一個關於在運行時更改點對點鏈接數據速率的查詢。 我嘗試了https://stackoverflow.com/a/65514090/13121848中提到的解決方案。 但是這里的 SetDeviceAttribute 並沒有為我解決。

void
ModifyLinkRate(PointToPointNetDevice *dev) {
   dev->SetDeviceAttribute("DataRate", StringValue ("1Mbps"));
   //dev->SetAttribute("DataRate", StringValue ("1Mbps"));
}
int
main (int argc, char *argv[])
{
...
   PointToPointHelper pointToPoint;
   pointToPoint.SetDeviceAttribute ("DataRate", StringValue (linkRate));
...
   Simulator::Schedule(Seconds(2.0), &ModifyLinkRate, &pointToPoint );
}

為了改變點對點鏈路的數據速率,必須檢索安裝在節點中的 PointToPointNetDevice。 這可以使用與節點關聯的 NetDeviceContainer 來完成。 示例代碼如下,

void
ModifyLinkRate(NetDeviceContainer *ptp, DataRate lr) {
    StaticCast<PointToPointNetDevice>(ptp->Get(0))->SetDataRate(lr);
}
int
main (int argc, char *argv[])
{
...
   PointToPointHelper pointToPoint;
   pointToPoint.SetDeviceAttribute ("DataRate", StringValue (linkRate));
...
   NetDeviceContainer p2pDevices = pointToPoint.Install (p2pNodes);
...
    Simulator::Schedule(Seconds(2.0), &ModifyLinkRate, &p2pDevices,DataRate("20Mbps"));
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM