mlxsw: pci: PTP: Hook into packet transmit path
On Spectrum-1, timestamps are delivered separately from the packets, and need to paired up. Therefore, at some point after mlxsw_sp_port_xmit() is invoked, it is necessary to involve the chip-specific driver code to allow it to do the necessary bookkeeping and matching. On Spectrum-2, timestamps are delivered in CQE. For that reason, position the point of driver involvement into mlxsw_pci_cqe_sdq_handle() to make it hopefully easier to extend for Spectrum-2 in the future. To tell the driver what port the packet was sent on, keep tx_info in SKB control buffer. Introduce a new driver core interface mlxsw_core_ptp_transmitted(), a driver callback ptp_transmitted, and a PTP op transmitted. The callee is responsible for taking care of releasing the SKB passed to the new interfaces, and correspondingly have the new stub callbacks just call dev_kfree_skb_any(). Follow-up patches will introduce the actual content into mlxsw_sp1_ptp_transmitted() in particular. Signed-off-by:Petr Machata <petrm@mellanox.com> Acked-by:
Jiri Pirko <jiri@mellanox.com> Signed-off-by:
Ido Schimmel <idosch@mellanox.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
Showing
- drivers/net/ethernet/mellanox/mlxsw/core.c 9 additions, 0 deletionsdrivers/net/ethernet/mellanox/mlxsw/core.c
- drivers/net/ethernet/mellanox/mlxsw/core.h 10 additions, 0 deletionsdrivers/net/ethernet/mellanox/mlxsw/core.h
- drivers/net/ethernet/mellanox/mlxsw/pci.c 16 additions, 1 deletiondrivers/net/ethernet/mellanox/mlxsw/pci.c
- drivers/net/ethernet/mellanox/mlxsw/spectrum.c 19 additions, 0 deletionsdrivers/net/ethernet/mellanox/mlxsw/spectrum.c
- drivers/net/ethernet/mellanox/mlxsw/spectrum_ptp.c 6 additions, 0 deletionsdrivers/net/ethernet/mellanox/mlxsw/spectrum_ptp.c
- drivers/net/ethernet/mellanox/mlxsw/spectrum_ptp.h 15 additions, 0 deletionsdrivers/net/ethernet/mellanox/mlxsw/spectrum_ptp.h
Please register or sign in to comment