Skip to content
  • Eran Ben Elisha's avatar
    1880bc4e
    net/mlx5e: Add TX port timestamp support · 1880bc4e
    Eran Ben Elisha authored
    
    
    Transmitted packet timestamping accuracy can be improved when using
    timestamp from the port, instead of packet CQE creation timestamp, as
    it better reflects the actual time of a packet's transmit.
    
    TX port timestamping is supported starting from ConnectX6-DX hardware.
    Although at the original completion, only CQE timestamp can be attached,
    we are able to get TX port timestamping via an additional completion over
    a special CQ associated with the SQ (in addition to the regular CQ).
    
    Driver to ignore the original packet completion timestamp, and report
    back the timestamp of the special CQ completion. If the absolute timestamp
    
    diff between the two completions is greater than 1 / 128 second, ignore
    the TX port timestamp as it has a jitter which is too big.
    No skb will be generate out of the extra completion.
    
    Allocate additional CQ per ptpsq, to receive the TX port timestamp.
    
    Driver to hold an skb FIFO in order to map between transmitted skb to
    the two expected completions. When using ptpsq, hold double refcount on
    the skb, to gaurantee it will not get released before both completions
    arrive.
    
    Expose dedicated counters of the ptp additional CQ and connect it to the
    TX health reporter.
    
    This patch improves TX Hardware timestamping offset to be less than 40ns
    at a 100Gbps line rate, compared to 600ns before.
    
    With that, making our HW compliant with G.8273.2 class C, and allow Linux
    systems to be deployed in the 5G telco edge, where this standard is a
    must.
    
    Signed-off-by: default avatarEran Ben Elisha <eranbe@nvidia.com>
    Reviewed-by: default avatarTariq Toukan <tariqt@nvidia.com>
    Signed-off-by: default avatarSaeed Mahameed <saeedm@nvidia.com>
    1880bc4e
    net/mlx5e: Add TX port timestamp support
    Eran Ben Elisha authored
    
    
    Transmitted packet timestamping accuracy can be improved when using
    timestamp from the port, instead of packet CQE creation timestamp, as
    it better reflects the actual time of a packet's transmit.
    
    TX port timestamping is supported starting from ConnectX6-DX hardware.
    Although at the original completion, only CQE timestamp can be attached,
    we are able to get TX port timestamping via an additional completion over
    a special CQ associated with the SQ (in addition to the regular CQ).
    
    Driver to ignore the original packet completion timestamp, and report
    back the timestamp of the special CQ completion. If the absolute timestamp
    
    diff between the two completions is greater than 1 / 128 second, ignore
    the TX port timestamp as it has a jitter which is too big.
    No skb will be generate out of the extra completion.
    
    Allocate additional CQ per ptpsq, to receive the TX port timestamp.
    
    Driver to hold an skb FIFO in order to map between transmitted skb to
    the two expected completions. When using ptpsq, hold double refcount on
    the skb, to gaurantee it will not get released before both completions
    arrive.
    
    Expose dedicated counters of the ptp additional CQ and connect it to the
    TX health reporter.
    
    This patch improves TX Hardware timestamping offset to be less than 40ns
    at a 100Gbps line rate, compared to 600ns before.
    
    With that, making our HW compliant with G.8273.2 class C, and allow Linux
    systems to be deployed in the 5G telco edge, where this standard is a
    must.
    
    Signed-off-by: default avatarEran Ben Elisha <eranbe@nvidia.com>
    Reviewed-by: default avatarTariq Toukan <tariqt@nvidia.com>
    Signed-off-by: default avatarSaeed Mahameed <saeedm@nvidia.com>
Loading