gpt4 book ai didi

c - 为具有多个接口(interface)的设备设置 MTU

转载 作者:太空宇宙 更新时间:2023-11-04 09:54:58 24 4
gpt4 key购买 nike

我正在使用

ioctl(s, SIOCSIFMTU, (caddr_t)&ifr)

更改接口(interface)的 MTU。

代码类似这样

struct ifreq ifr; 
ifr.ifr_addr.sa_family = AF_INET;
//iap->ifa_name is bond1:xx
strncpy(ifr.ifr_name, iap->ifa_name, sizeof(ifr.ifr_name));
ifr.ifr_mtu = 1492;
ioctl(s, SIOCSIFMTU, (caddr_t)&ifr)

我的问题是设备有多个接口(interface),MTU 设置为 1492对于所有这些。我只想专门针对一个接口(interface)执行此操作,而不会影响所有其他接口(interface)。我该怎么做?

bond1:43 Link encap:Ethernet HWaddr 00:0E:0C:E4:C5:45
inet地址:10.7.181.59广播:10.7.181.255掩码:255.255.255.0 上行广播运行主多播 MTU:1492 指标:1

bond1:48 Link encap:Ethernet HWaddr 00:0E:0C:E4:C5:45
inet地址:10.7.181.60广播:10.7.181.255掩码:255.255.255.0 上行广播运行主多播 MTU:1492 指标:1

bond1:49 Link encap:Ethernet HWaddr 00:0E:0C:E4:C5:45
inet地址:10.7.181.61广播:10.7.181.255掩码:255.255.255.0 上行广播运行主多播 MTU:1492 指标:1

最佳答案

如果你想更新特定接口(interface)的 MTU,你应该将 struct ifreqifr_name 字段设置为接口(interface)的名称

编辑:您的问题出在界面的名称上。接口(interface)名称中列后的数字只是一个别名。实际上,您没有几个不同的界面,它们是同一个界面。这就是为什么您的设置会应用到名称为 "bond:xx"

的所有接口(interface)的原因

关于c - 为具有多个接口(interface)的设备设置 MTU,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6290835/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com