私は使っている
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 に設定されていることです。他のすべてのインターフェイスに影響を与えないようにして、1 つのインターフェイスのみに限定して実行したいと考えています。どうすればいいですか?
bond1:43 Link encap:Ethernet HWaddr 00:0E:0C:E4:C5:45
inet addr:10.7.181.59 Bcast:10.7.181.255 Mask:255.255.255.0 UP BROADCAST RUNNING MASTER MULTICAST MTU: 1492 Metric:1
bond1:48 Link encap:Ethernet HWaddr 00:0E:0C:E4:C5:45
inet addr:10.7.181.60 Bcast:10.7.181.255 Mask:255.255.255.0 UP BROADCAST RUNNING MASTER MULTICAST MTU: 1492 Metric:1
bond1:49 Link encap:Ethernet HWaddr 00:0E:0C:E4:C5:45
inet addr:10.7.181.61 Bcast:10.7.181.255 Mask:255.255.255.0 UP BROADCAST RUNNING MASTER MULTICAST MTU: 1492 Metric:1