Skip to contentSkip to conversation

bnxt: ptpclient example doesn't work and produces internal error message

dpdk-dev [email protected] 1 participant 1 message Mar 4, 2021

lore
Share & tools
lore
#0 lore raw

https://bugs.dpdk.org/show_bug.cgi?id=647

            Bug ID: 647
           Summary: bnxt: ptpclient example doesn't work and produces
                    internal error message
           Product: DPDK
           Version: 20.11
          Hardware: x86
                OS: FreeBSD
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: ethdev
          Assignee: [email protected]
          Reporter: [email protected]

Target Milestone: ---

Hello,

I am evaluating the Broadcom P2100G NIC using the bnxt driver. I am currently using DPDK 20.11. Today I attempted to test the IEEE1588/PTP capability of the driver using both testpmd and the ptpclient example that ships with DPDK. I connected the Broadcom card to a different 100G NIC running the ptpd2 server in Ethernet mode.

First, I tried ptpclient. I see valid Master clocks (from the remote NIC) but the Slave clock looks like it was never set. It's showing a time around 1000s and top reports an uptime of 15min (15min = 900s). Also, in each output cycle I see an error message from bnxt_hwrm_port_ts_query().

Master Clock id: 00:07:43:ff:fe:59:21:a0

T2 - Slave  Clock.  997s 2634438ns
T1 - Master Clock.  1614874570s 183027000ns 
T3 - Slave  Clock.  997s 14579369ns
T4 - Master Clock.  1614874570s 194978000ns 

Delta between master and slave clocks:1614873573180395596ns

Comparison between Linux kernel Time and PTP:
Current PTP Time: Wed Aug 10 20:52:37 2489 819922870 ns Current SYS Time: Thu Mar 4 11:16:10 2021 195072 ns Delta between PTP and Linux Kernel time:-3664277886084680101ns [Ctrl+C to quit]
bnxt_hwrm_port_ts_query(): error 1:0:00000000:0000

I checked the master code branch and applied the one PTP-related commit I saw (d3376cdc).

I also tried running testpmd in ieee1588 mode. It shows SYNC messages coming in and bnxt timestamps around 5370s.

dpdk-testpmd -- -i
EAL: Sysctl reports 64 cpus
EAL: Detected 64 lcore(s)
EAL: Detected 1 NUMA nodes
EAL: Multi-process socket /tmp/dpdk/rte/mp_socket
EAL: Selected IOVA mode 'PA'
EAL: Contigmem driver has 4 buffers, each of size 1GB
EAL: Mapped memory segment 0 @ 0x1040000000: physaddr:0x240000000, len 1073741824
EAL: Mapped memory segment 1 @ 0x1080000000: physaddr:0x280000000, len 1073741824
EAL: Mapped memory segment 2 @ 0x10c0000000: physaddr:0x2c0000000, len 1073741824
EAL: Mapped memory segment 3 @ 0x1100000000: physaddr:0x300000000, len 1073741824
EAL: Probe PCI driver: net_bnxt (14e4:1750) device: 0000:48:00.0 (socket 0) Interactive-mode selected
testpmd: create a new mbuf pool <mb_pool_0>: n=651456, size=2176, socket=0
testpmd: preferred mempool ops selected: ring_mp_mc

Warning! port-topology=paired and odd forward ports number, the last port will pair with itself.

Configuring Port 0 (socket 0)

Port 0: link state change event
Port 0: BC:97:E1:DA:38:40
Checking link statuses...
Done
testpmd> set fwd ieee1588
Set ieee1588 packet forwarding mode
testpmd> start
ieee1588 packet forwarding - ports=1 - cores=1 - streams=1 - NUMA support enabled, MP allocation mode: native
Logical Core 1 (socket 0) forwards packets on 1 streams:
RX P=0/Q=0 (socket 0) -> TX P=0/Q=0 (socket 0) peer=02:00:00:00:00:00

ieee1588 packet forwarding packets/burst=32
nb forwarding cores=1 - nb forwarding ports=1
port 0: RX queue number: 1 Tx queue number: 1
Rx offloads=0x0 Tx offloads=0x10000
RX queue: 0
RX desc=512 - RX free threshold=64
RX threshold registers: pthresh=0 hthresh=0 wthresh=0
RX Offloads=0x0
TX queue: 0
TX desc=512 - TX free threshold=64
TX threshold registers: pthresh=0 hthresh=0 wthresh=0
TX offloads=0x10000 - TX RS bit threshold=0
testpmd> Port 0 IEEE1588 PTP V2 SYNC Message filtered by hardware Port 0 RX timestamp value 5376 s 953074162 ns
Port 0 TX timestamp value 5376 s 953115795 ns validated after 0 micro-seconds Port 0 Received PTP V2 Ethernet frame with unexpected message ID 0x8 (expected 0x0 - PTP_SYNC_MESSAGE)
Port 0 Received PTP V2 Ethernet frame with unexpected message ID 0x8 (expected 0x0 - PTP_SYNC_MESSAGE)
Port 0 Received PTP V2 Ethernet frame with unexpected message ID 0xb (expected 0x0 - PTP_SYNC_MESSAGE)
Port 0 IEEE1588 PTP V2 SYNC Message filtered by hardware
Port 0 RX timestamp value 5378 s 60314832 ns
Port 0 TX timestamp value 5378 s 60341959 ns validated after 0 micro-seconds Port 0 Received PTP V2 Ethernet frame with unexpected message ID 0x8 (expected 0x0 - PTP_SYNC_MESSAGE)
Port 0 IEEE1588 PTP V2 SYNC Message filtered by hardware
Port 0 RX timestamp value 5378 s 952731069 ns
Port 0 TX timestamp value 5378 s 952761442 ns validated after 0 micro-seconds Port 0 Received PTP V2 Ethernet frame with unexpected message ID 0x8 (expected 0x0 - PTP_SYNC_MESSAGE)
Port 0 Received PTP V2 Ethernet frame with unexpected message ID 0x8 (expected 0x0 - PTP_SYNC_MESSAGE)
Port 0 Received PTP V2 Ethernet frame with unexpected message ID 0x8 (expected 0x0 - PTP_SYNC_MESSAGE)
Port 0 Received PTP V2 Ethernet frame with unexpected message ID 0xb (expected 0x0 - PTP_SYNC_MESSAGE)
Port 0 IEEE1588 PTP V2 SYNC Message filtered by hardware
Port 0 RX timestamp value 5380 s 138997133 ns
Port 0 TX timestamp value 5380 s 139026602 ns validated after 0 micro-seconds Port 0 Received PTP V2 Ethernet frame with unexpected message ID 0x8 (expected 0x0 - PTP_SYNC_MESSAGE)
Port 0 IEEE1588 PTP V2 SYNC Message filtered by hardware
Port 0 RX timestamp value 5380 s 953180791 ns
Port 0 TX timestamp value 5380 s 953209128 ns validated after 0 micro-seconds Port 0 Received PTP V2 Ethernet frame with unexpected message ID 0x8 (expected 0x0 - PTP_SYNC_MESSAGE)
Port 0 Received PTP V2 Ethernet frame with unexpected message ID 0x8 (expected 0x0 - PTP_SYNC_MESSAGE)
Port 0 Received PTP V2 Ethernet frame with unexpected message ID 0x8 (expected 0x0 - PTP_SYNC_MESSAGE)
Port 0 Received PTP V2 Ethernet frame with unexpected message ID 0xb (expected 0x0 - PTP_SYNC_MESSAGE)
Port 0 IEEE1588 PTP V2 SYNC Message filtered by hardware
Port 0 RX timestamp value 5382 s 57787425 ns
Port 0 TX timestamp value 5382 s 57815073 ns validated after 0 micro-seconds Port 0 Received PTP V2 Ethernet frame with unexpected message ID 0x8 (expected 0x0 - PTP_SYNC_MESSAGE)

I have used both ptpclient and testpmd successfully with other NICs so I believe this is an issue with bnxt. Has it been used for PTP traffic or is there some initialization missing? Thank you for your help.

Signature · 2 lines
You are receiving this mail because:
You are the assignee for the bug.