C++ 如何在NS3中的运行时更改PointPoint链路数据速率
我是NS3的新手。我有一个在运行时更改pointtopoint链接数据速率的查询。我尝试了一个在中提到的解决方案。但是在这里SetDeviceAttribute并没有为我解决C++ 如何在NS3中的运行时更改PointPoint链路数据速率,c++,ns-3,point-to-point,C++,Ns 3,Point To Point,我是NS3的新手。我有一个在运行时更改pointtopoint链接数据速率的查询。我尝试了一个在中提到的解决方案。但是在这里SetDeviceAttribute并没有为我解决 void ModifyLinkRate(PointToPointNetDevice *dev) { dev->SetDeviceAttribute("DataRate", StringValue ("1Mbps")); //dev->SetAttribute(
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 );
}
为了更改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"));
}
void
修改链接速率(NetDeviceContainer*ptp,数据速率lr){
StaticCast(ptp->Get(0))->SetDataRate(lr);
}
int
main(int argc,char*argv[])
{
...
点拓扑在lper pointToPoint中;
pointToPoint.SetDeviceAttribute(“数据速率”,StringValue(链接速率));
...
NetDeviceContainer p2pDevices=pointToPoint.Install(p2pNodes);
...
模拟器:调度(秒(2.0)、修改链接速率和P2P设备、数据速率(“20Mbps”);
}