MTUが1500から9000に変更された理由

MTUが1500から9000に変更された理由

/var/log/messageファイルで興味深いものが見つかりました。

Mar  9 07:08:32 linux54 kernel: ixgbe 0000:0b:00.1 en3j87: changing MTU from 1500 to 9000

インターフェイスカードを見ることができます。 en3j87が1500 MTUから9000に変更されました。

これは普通ですか?

Mar  9 07:07:33 linux54 dbus-daemon: dbus[1153]: [system] Successfully activated service 'org.freedesktop.problems'
Mar  9 07:08:30 linux54 kernel: ixgbe 0000:0b:00.1: registered PHC device on en3j87
Mar  9 07:08:30 linux54 kernel: IPv6: ADDRCONF(NETDEV_UP): en3j87: link is not ready
Mar  9 07:08:31 linux54 kernel: ixgbe 0000:0b:00.1 en3j87: detected SFP+: 5
Mar  9 07:08:31 linux54 kernel: ixgbe 0000:0b:00.1 en3j87: NIC Link is Up 10 Gbps, Flow Control: RX/TX
Mar  9 07:08:31 linux54 kernel: IPv6: ADDRCONF(NETDEV_CHANGE): en3j87: link becomes ready
Mar  9 07:08:32 linux54 kernel: ixgbe 0000:0b:00.1: removed PHC on en3j87
Mar  9 07:08:32 linux54 kernel: ixgbe 0000:0b:00.1 en3j87: changing MTU from 1500 to 9000
Mar  9 07:08:32 linux54 kernel: ixgbe 0000:0b:00.1: registered PHC device on en3j87
Mar  9 07:08:32 linux54 kernel: IPv6: ADDRCONF(NETDEV_UP): en3j87: link is not ready
Mar  9 07:08:32 linux54 kernel: team0: Port device en3j87 added
Mar  9 07:08:32 linux54 kernel: ixgbe 0000:0b:00.1 en3j87: detected SFP+: 5
Mar  9 07:08:33 linux54 kernel: ixgbe 0000:0b:00.1 en3j87: NIC Link is Up 10 Gbps, Flow Control: RX/TX
Mar  9 07:08:33 linux54 kernel: IPv6: ADDRCONF(NETDEV_CHANGE): en3j87: link becomes ready

答え1

これは、インターフェイスがジャンボフレームを使用するように構成されていることを意味します。接続が良好であれば心配する必要はなく、より高いスループットを得ることができます。 (有効な場合、インターフェイスに接続されたネットワークデバイスもジャンボフレームで構成されていることを意味します。)

インターフェイスは1500バイトのレガシーMTUで始まり、必要に応じてネットワーク設定に従って9000に再設定されます(RHELでインターフェイス設定で指定されている場合MTU=9000)。表示されるログメッセージは完全に正常です。

答え2

メッセージはネットワークモジュール()に固有で、ixgbe完全に正常です(問題はありません)。モジュールのソースコードを見ると、ixgbe_main.c6719行目で、MTUの変更が発生するたびにドライバがそれを通知することがわかります。コンテキストコードスニペット:

static int ixgbe_change_mtu(struct net_device *netdev, int new_mtu)
{
    struct ixgbe_adapter *adapter = netdev_priv(netdev);

    if (adapter->xdp_prog) {
        int new_frame_size = new_mtu + ETH_HLEN + ETH_FCS_LEN +
                     VLAN_HLEN;
        int i;

        for (i = 0; i < adapter->num_rx_queues; i++) {
            struct ixgbe_ring *ring = adapter->rx_ring[i];

            if (new_frame_size > ixgbe_rx_bufsz(ring)) {
                e_warn(probe, "Requested MTU size is not supported with XDP\n");
                return -EINVAL;
            }
        }
    }

    /*
     * For 82599EB we cannot allow legacy VFs to enable their receive
     * paths when MTU greater than 1500 is configured.  So display a
     * warning that legacy VFs will be disabled.
     */
    if ((adapter->flags & IXGBE_FLAG_SRIOV_ENABLED) &&
        (adapter->hw.mac.type == ixgbe_mac_82599EB) &&
        (new_mtu > ETH_DATA_LEN))
        e_warn(probe, "Setting MTU > 1500 will disable legacy VFs\n");

    e_info(probe, "changing MTU from %d to %d\n", netdev->mtu, new_mtu);

    /* must set new MTU before calling down or up */
    netdev->mtu = new_mtu;

    if (netif_running(netdev))
        ixgbe_reinit_locked(adapter);

    return 0;
}

MTUが変更されたことを通知する必要がある特定の行は次のとおりです。

e_info(probe, "changing MTU from %d to %d\n", netdev->mtu, new_mtu);

関連情報