DSAタイプスイッチでPTPを使用すると、パケットが歪んでいるように見えます。

DSAタイプスイッチでPTPを使用すると、パケットが歪んでいるように見えます。

BCM53125 rev4スイッチ、3つのLANポート、CPUポート(NIC)を含むLinux 5.7.10を実行するAltera Cyclone V SoCボードがあります。分散スイッチアーキテクチャが使用されるため、設定は次のとおりです。

                 ------- lan1
                 |
eth0 (CPU) --- Switch -- lan2
                 |
                 ------- lan3

このマシンでハードウェアタイムスタンプを使用してPTPを実行したいと思います。 ethtoolはeth0の正しい機能のみを表示します(testを使用ethtool -T eth0)。

# ethtool -T eth0
Time stamping parameters for eth0:
Capabilities:
        hardware-transmit     (SOF_TIMESTAMPING_TX_HARDWARE)
        software-transmit     (SOF_TIMESTAMPING_TX_SOFTWARE)
        hardware-receive      (SOF_TIMESTAMPING_RX_HARDWARE)
        software-receive      (SOF_TIMESTAMPING_RX_SOFTWARE)
        software-system-clock (SOF_TIMESTAMPING_SOFTWARE)
        hardware-raw-clock    (SOF_TIMESTAMPING_RAW_HARDWARE)
PTP Hardware Clock: 0
Hardware Transmit Timestamp Modes:
        off                   (HWTSTAMP_TX_OFF)
        on                    (HWTSTAMP_TX_ON)
Hardware Receive Filter Modes:
        none                  (HWTSTAMP_FILTER_NONE)
        all                   (HWTSTAMP_FILTER_ALL)
        ptpv1-l4-event        (HWTSTAMP_FILTER_PTP_V1_L4_EVENT)
        ptpv1-l4-sync         (HWTSTAMP_FILTER_PTP_V1_L4_SYNC)
        ptpv1-l4-delay-req    (HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ)
        ptpv2-l4-event        (HWTSTAMP_FILTER_PTP_V2_L4_EVENT)
        ptpv2-l4-sync         (HWTSTAMP_FILTER_PTP_V2_L4_SYNC)
        ptpv2-l4-delay-req    (HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ)
        ptpv2-event           (HWTSTAMP_FILTER_PTP_V2_EVENT)
        ptpv2-sync            (HWTSTAMP_FILTER_PTP_V2_SYNC)
        ptpv2-delay-req       (HWTSTAMP_FILTER_PTP_V2_DELAY_REQ)

lan1と友達が失敗しました:

# ethtool -T lan1
Time stamping parameters for lan1:
Cannot get device time stamping settings: Operation not supported

だから私の質問は、eth0とその機能を使ってどのように通信できるかということです。

説明したようにブリッジを設定するか、各LANポートのIPアドレスを設定してみました。ここ。その後、eth0をネットワークインターフェースとして使用して、ボード上でPTPマスターを起動しました。

# ./ptp4l -qmi eth0
ptp4l[3658.796]: selected /dev/ptp0 as PTP clock
ptp4l[3658.807]: port 1: INITIALIZING to LISTENING on INIT_COMPLETE
ptp4l[3658.807]: port 0: INITIALIZING to LISTENING on INIT_COMPLETE
ptp4l[3666.525]: port 1: LISTENING to MASTER on ANNOUNCE_RECEIPT_TIMEOUT_EXPIRES
ptp4l[3666.525]: selected local clock 664975.fffe.e52d47 as best master
ptp4l[3666.525]: port 1: assuming the grand master role

報告された問題はありません。ただし、Wiresharkを使用して一部のパケットをキャプチャすると、PTPのようには見えません。

奇妙なパケットを示す奇妙な出力

さらに、EthernetヘッダーにEtherType(IPの場合は0x8000など)がありませんが、代わりに0x0048や0x005cなどの値があります。これは、ペイロードの長さとして解釈するときの実際のペイロードの長さとも一致しません。 IEEE 802.3 ペイロードの長さ。上の図の最初のパケットの詳細な説明は次のとおりです。

最初のパケットの詳細は上記を説明します。

詳細を含む16進ダンプも次のとおりです。

01 00 5e 00 01 81 66 49 75 e5 2d 47 00 5c 02 48
40 00 01 11 8a 4d 0a 00 01 7b e0 00 01 81 01 40
01 40 00 48 06 d3 0b 02 00 40 00 00 00 08 00 00
00 00 00 00 00 00 00 00 00 00 66 49 75 ff fe e5
2d 47 00 01 00 00 05 01 00 00 00 00 00 00 00 00
00 00 00 25 00 80 f8 fe ff ff 80 66 49 75 ff fe
e5 2d 47 00 00 a0

そのため、リンク層で何らかの理由で問題が発生しました。私の考えでは、これはPTPマスターをCPUポートに接続することに関連しているようです。

だから私は知りたい

  1. LANポートではなくeth0への直接接続の場合
  2. パケットがなぜそんなにひどく混乱したのですか?

ある程度DSAを迂回したい。私はそれだけで詰まっていますが、タイムスタンプ機能を備えたポートは私の目的には十分です。

ベストアンサー1

このような Broadcom チップセットは通常本当のスイッチではなく、すべてのイーサネットポートがそれ自体完全なポートではないことがよくあります。

この点で、BCM53125は低価格で見つけることができる通常のマザーボードよりも優れているように見えますが、それでも商用スイッチとイーサネットポート全体の機能全体を処理することはできません。

PTPサポートもスイッチで見ることができないようです。データシート、奇妙なethtoolがそれを示しています(おそらく私を追い払うでしょう)

私はあなたがそれほど平凡でないチップセットについて非常に高い期待を持っていたと思います。

おすすめ記事