Hi Zack,

I cannot say from the top of my head what exactly the difference between addr 
and addr0 is internally. Usually, addr0, addr1 etc. are used for addressing 
multiple devices but /should/ be equivalent to just using addr.
When looking at the output of uhd_find_devices we see that with the 400 MHz 
FPGA image, both QSFP ports seem to be present, that's already good. However, 
when looking at the error message this indicates that something might be wrong 
with some network connection. Can you verify that the QSFP ports on your 
computer are both configured properly? The last time I saw this error was when 
someone set up a new host computer, forgot to configure his 10 Gbps interface 
to match the physically connected X410 and wanted to run an application that 
relied on that connection.

/Martin

From: zackk...@utexas.edu <zackk...@utexas.edu>
Sent: Monday, November 13, 2023 7:54 PM
To: usrp-users@lists.ettus.com
Subject: [USRP-users] X410 recv error on socket: Connection refused

You don't often get email from zackk...@utexas.edu<mailto:zackk...@utexas.edu>. 
Learn why this is important<https://aka.ms/LearnAboutSenderIdentification>

Hello!

We have an X410 connected to a host computer through two QSFP28-to-QSFP28 
connections with IPs 192.168.10.2 and 192.168.20.2 for interfaces 0 and 1 
respectively. The X410 also has an ethernet connection to a router with an IP 
192.168.1.19, which the host computer is also connected to.

When the X410 is loaded with the UC_200 image, everything seems to work as 
desired and running "uhd_find_devices" on its own produces:

[INFO] [UHD] linux; GNU C++ version 9.4.0; Boost_107100; DPDK_19.11; 
UHD_4.5.0.0-0-g471af98f

--------------------------------------------------

-- UHD Device 0

--------------------------------------------------

Device Address:

serial: 326E872

addr: 192.168.20.2

claimed: False

fpga: UC_200

mgmt_addr: 192.168.1.19

mgmt_addr: 192.168.20.2

name: ni-x4xx-326E872

product: x410

type: x4xx

When I try to change images with "uhd_image_loader --args 
type=x4xx,mgmt_address=192.168.1.19,fpga=CG_400 ", it seems to work but then 
errors out:

[INFO] [UHD] linux; GNU C++ version 9.4.0; Boost_107100; DPDK_19.11; 
UHD_4.5.0.0-0-g471af98f

[INFO] [MPMD] Initializing 1 device(s) in parallel with args: 
mgm_addr=192.168.1.19,addr0=192.168.20.2,mgmt_addr=192.168.1.19,type=x4xx,product=x410,serial=326E872,name=ni-x4xx-326E872,fpga=UC_200,claimed=False,addr=192.168.1.19,skip_init=1

[INFO] [MPMD] Claimed device without full initialization.

[INFO] [MPMD IMAGE LOADER] Starting update. This may take a while.

[INFO] [MPM.PeriphManager] Installing component `fpga'

[INFO] [MPM.PeriphManager] Installing component `dts'

[INFO] [MPM.RPCServer] Resetting peripheral manager.

[INFO] [MPM.PeriphManager] Device serial number: 3263584

[INFO] [MPM.PeriphManager.ClkMgr] Using Clock Configuration:

DB0: Master Clock Rate: 491.52 MSps @Converter Rate 2.94912 GHz

DB1: Master Clock Rate: 491.52 MSps @Converter Rate 2.94912 GHz

[INFO] [MPM.PeriphManager] Initialized 2 daughterboard(s).

[INFO] [MPM.PeriphManager] init() called with device args 
`boot_init=True,clock_source=internal,time_source=internal,initializing=True'.

[ERROR] [RPC] Someone tried to claim this device again (From: 192.168.1.20)

[INFO] [MPMD IMAGE LOADER] Update component function succeeded.

[INFO] [MPMD] Initializing 1 device(s) in parallel with args: 
mgm_addr=192.168.1.19,addr0=192.168.20.2,mgmt_addr=192.168.20.2,type=x4xx,product=x410,serial=326E872,name=ni-x4xx-326E872,fpga=CG_400,claimed=False,addr=192.168.20.2,mgmt_address=192.168.1.19,find_all=1

[INFO] [MPM.PeriphManager] init() called with device args 
`addr0=192.168.20.2,find_all=1,fpga=CG_400,mgm_addr=192.168.1.19,mgmt_addr=192.168.20.2,mgmt_address=192.168.1.19,name=ni-x4xx-326E872,product=x410,clock_source=internal,time_source=internal,initializing=True'.

[ERROR] [RFNOC::MGMT] EnvironmentError: IOError: recv error on socket: 
Connection refused

[ERROR] [RFNOC::GRAPH] IO Error during GSM initialization. EnvironmentError: 
IOError: recv error on socket: Connection refused

[ERROR] [RFNOC::GRAPH] Caught exception while initializing graph: 
EnvironmentError: IOError: recv error on socket: Connection refused

Error: RuntimeError: Failure to create rfnoc_graph.

But if I run uhd_find_devices again I get what I expect :

--------------------------------------------------

-- UHD Device 0

--------------------------------------------------

Device Address:

serial: 326E872

addr: 192.168.20.2

claimed: False

fpga: CG_400

mgmt_addr: 192.168.1.19

mgmt_addr: 192.168.10.2

mgmt_addr: 192.168.20.2

name: ni-x4xx-326E872

product: x410

type: x4xx

If I try and run any script though, even specifying the addresses, I get the 
same errors as when changing the image. An example is with 'uhd_usrp_probe 
--args "mgmt_addr=192.168.1.19,type=x4xx" ' even without any arguements:

INFO] [UHD] linux; GNU C++ version 9.4.0; Boost_107100; DPDK_19.11; 
UHD_4.5.0.0-0-g471af98f

[INFO] [MPMD] Initializing 1 device(s) in parallel with args: 
mgm_addr=192.168.1.19,addr0=192.168.20.2,mgmt_addr=192.168.1.19,type=x4xx,product=x410,serial=326E872,name=ni-x4xx-326E872,fpga=CG_400,claimed=False

[INFO] [MPM.PeriphManager] init() called with device args 
`addr0=192.168.20.2,fpga=CG_400,mgm_addr=192.168.1.19,mgmt_addr=192.168.1.19,name=ni-x4xx-326E872,product=x410,clock_source=internal,time_source=internal,initializing=True'.

[ERROR] [RFNOC::MGMT] EnvironmentError: IOError: recv error on socket: 
Connection refused

[ERROR] [RFNOC::GRAPH] IO Error during GSM initialization. EnvironmentError: 
IOError: recv error on socket: Connection refused

[ERROR] [RFNOC::GRAPH] Caught exception while initializing graph: 
EnvironmentError: IOError: recv error on socket: Connection refused

Error: RuntimeError: Failure to create rfnoc_graph.

The errors disappear when I use addr0 instead of mgmt_addr or addr. Since this 
option is not listed in the wiki 
(https://files.ettus.com/manual/page_usrp_x4xx.html#x4xx_usage_args) I am 
curious if I am using it correctly. At the end of the day, I want to make sure 
that when using the CG_400 image that both QSFP28 interfaces are operating, and 
that I can switch between the two images without errors. Previously we used to 
only have a single connection.

Thanks!

Zack

National Instruments Dresden GmbH; Gesch?ftsf?hrer (Managing Directors): John 
Stanton McElroy, Albert Edward Percival III, Kathleen Spurck; Sitz (Registered 
Office): Dresden; HRB (Commercial Register No.): 22081; Registergericht 
(Registration Court): Dresden

This email and any attachments are intended only for the person to whom this 
email is addressed and may contain confidential and/or privileged information. 
If you received this email in error, please do not disclose the contents to 
anyone, but notify the sender by return email and delete this email (and any 
attachments) from your system.
_______________________________________________
USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-le...@lists.ettus.com

Reply via email to