Discussion and technical support related to USRP, UHD, RFNoC
View all threadsHi,
i wrote a custom block and i'm trying to output packets that are around the
size of the MAX MTU directly from my block. since packets have to be
handled by Zynq's ARM i understand the MTU i have to consider is the one
for int0 which is 8000. my block's MTU is set to 10 which, considering a
chdr width of 64 bits makes 8192 bytes if i'm not wrong. When i try to
generate packets of more than 1500 bytes i start to get very bad errors
such as:
[ERROR] [STREAMER] The receive transport caught a value exception.
ValueError: Bad CHDR header or invalid packet length.
gr::log :WARN: rfnoc_rx_streamer0 - RFNoC Streamer block received error
ERROR_CODE_BAD_PACKET (Code: 0xf)
is there any hard limit on CHDR packet size? is there any setting anywhere
in the code that limits the length of a packet?
note that i set noc shell to automatically calculate packet lengths as i
set SIDEBAND_AT_END to 1.
thanks,
Dario Pennisi
Hi Dario,
The FPGA code has the max MTU hard-coded to 10, which matches your block,
so that's good. That's the hard limit on CHDR packet size. You also need
some headroom for header information, so the limit is less than 8192 bytes
of payload. Make sure the MTU for your Ethernet interface is set to
something larger than what you need (9000 is a common setting). I would
also try setting the streamer args spp, recv_frame_size, and
send_frame_size. The spp is in samples and should match the size your block
is configured to generate. The *_frame_size arguments are in bytes and need
to be bigger than the equivalent spp size. More information on setting
these args can be found here:
https://files.ettus.com/manual/page_configuration.html#config_stream_args_args
Thanks,
Wade
On Mon, Jul 5, 2021 at 8:40 PM Dario Pennisi dario@iptronix.com wrote:
Hi,
i wrote a custom block and i'm trying to output packets that are around
the size of the MAX MTU directly from my block. since packets have to be
handled by Zynq's ARM i understand the MTU i have to consider is the one
for int0 which is 8000. my block's MTU is set to 10 which, considering a
chdr width of 64 bits makes 8192 bytes if i'm not wrong. When i try to
generate packets of more than 1500 bytes i start to get very bad errors
such as:
[ERROR] [STREAMER] The receive transport caught a value exception.
ValueError: Bad CHDR header or invalid packet length.
gr::log :WARN: rfnoc_rx_streamer0 - RFNoC Streamer block received error
ERROR_CODE_BAD_PACKET (Code: 0xf)
is there any hard limit on CHDR packet size? is there any setting anywhere
in the code that limits the length of a packet?
note that i set noc shell to automatically calculate packet lengths as i
set SIDEBAND_AT_END to 1.
thanks,
Dario Pennisi
USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-leave@lists.ettus.com