【发布时间】:2011-09-11 13:27:46
【问题描述】:
我正在使用
ioctl(s, SIOCSIFMTU, (caddr_t)&ifr)
更改接口的 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)
我的问题是设备有多个接口并且 MTU 设置为 1492 对于所有这些。我只想专门为一个接口做这件事,而其他所有接口都不受影响。我该怎么做?
bond1:43 链路封装:以太网 HWaddr 00:0E:0C:E4:C5:45
inet 地址:10.7.181.59 广播:10.7.181.255 掩码:255.255.255.0
UP BROADCAST RUNNING MASTER MULTICAST MTU:1492 Metric:1
bond1:48 链路封装:以太网 HWaddr 00:0E:0C:E4:C5:45
inet 地址:10.7.181.60 广播:10.7.181.255 掩码:255.255.255.0
UP BROADCAST RUNNING MASTER MULTICAST MTU:1492 Metric:1
bond1:49 链路封装:以太网 HWaddr 00:0E:0C:E4:C5:45
inet 地址:10.7.181.61 广播:10.7.181.255 掩码:255.255.255.0
UP BROADCAST RUNNING MASTER MULTICAST MTU:1492 Metric:1
【问题讨论】:
标签: c linux network-programming ioctl mtu