ネットワークインターフェイスのタイムスタンプ機能にはどのような影響がありますか?

ネットワークインターフェイスのタイムスタンプ機能にはどのような影響がありますか?

2つのLinux仮想マシンがありますVirtualBox 7.0

  • マシン1:CentOS 6Linuxカーネルの使用2.6.32-754
  • マシン2:CentOS 8Linuxカーネルの使用4.18.0-448

マシン1のすべてのネットワークインターフェイスサポートしていないマシン2のすべてのネットワークインターフェイスでサポートされているTXタイムスタンプ。

ループバックインターフェイスを考えてみましょう。

出力sudo ethtool -T lo

マシン1:

Time stamping parameters for lo:
Capabilities:
        software-receive      (SOF_TIMESTAMPING_RX_SOFTWARE)
        software-system-clock (SOF_TIMESTAMPING_SOFTWARE)
PTP Hardware Clock: none
Hardware Transmit Timestamp Modes: none
Hardware Receive Filter Modes: none

マシン2:

Time stamping parameters for lo:
Capabilities:
        software-transmit
        software-receive
        software-system-clock
PTP Hardware Clock: none
Hardware Transmit Timestamp Modes: none
Hardware Receive Filter Modes: none

マシン1がTXタイムスタンプをサポートしていない理由は不明です。これは、このカーネルで利用できる必要があるためです。文書

ここでは、ループバックインタフェースはVirtualBox実装の詳細に依存しないと予想しているため、意図的に確認しています。

CentOS6(実際にはすべてのOSで)のTXタイムスタンプを有効にするためにシステムで明示的に設定する必要があるものがあるかどうかを知っていますか?

答え1

私はこれがドライバの書き方に関連していると思います。たとえば、カーネルソースコードには、v4.18次のコードを含むループバックインターフェイス用のドライバが含まれています。

static int loopback_get_ts_info(struct net_device *netdev,
                struct ethtool_ts_info *ts_info)
{
    ts_info->so_timestamping = SOF_TIMESTAMPING_TX_SOFTWARE |
                   SOF_TIMESTAMPING_RX_SOFTWARE |
                   SOF_TIMESTAMPING_SOFTWARE;

    ts_info->phc_index = -1;

    return 0;
};

したがって、これはこのバージョンのループバックインターフェイスドライバがTXタイムスタンプをサポートしていることを意味します。

ただし、カーネルバージョンをたとえばに切り替えると、明らかにv3.10ループバックドライバはTXタイムスタンプ(SOF_TIMESTAMPING_TX_SOFTWARE)をサポートしません。

関連情報