diff options
Diffstat (limited to 'host/lib/rfnoc/noc_block_base.cpp')
| -rw-r--r-- | host/lib/rfnoc/noc_block_base.cpp | 15 | 
1 files changed, 15 insertions, 0 deletions
diff --git a/host/lib/rfnoc/noc_block_base.cpp b/host/lib/rfnoc/noc_block_base.cpp index c2db597cb..9719e739b 100644 --- a/host/lib/rfnoc/noc_block_base.cpp +++ b/host/lib/rfnoc/noc_block_base.cpp @@ -316,6 +316,21 @@ size_t noc_block_base::get_mtu(const res_source_info& edge)      return _mtu.at(edge);  } +size_t noc_block_base::get_chdr_hdr_len(const bool account_for_ts) const +{ +    const size_t header_len_bytes = chdr_w_to_bits(_chdr_w) / 8; +    // 64-bit CHDR requires two lines for the header if we use a timestamp, +    // everything else requires one line +    const size_t num_hdr_lines = (account_for_ts && _chdr_w == CHDR_W_64) ? 2 : 1; +    return header_len_bytes * num_hdr_lines; +} + +size_t noc_block_base::get_max_payload_size( +    const res_source_info& edge, const bool account_for_ts) +{ +    return get_mtu(edge) - get_chdr_hdr_len(account_for_ts); +} +  property_base_t* noc_block_base::get_mtu_prop_ref(const res_source_info& edge)  {      for (size_t mtu_prop_idx = 0; mtu_prop_idx < _mtu_props.size(); mtu_prop_idx++) {  | 
