[USRP-users] Determining if an X300 is connected via 10 GigE or 1 GigE
I had been looking at /mboards/0/link_max_rate to determine if an X300 was connected via 10 GigE or 1 GigE. However it seems like sometime between when that was implemented for the X300 ( https://github.com/EttusResearch/uhd/commit/6a72c16ee909af95b6965f26fb588a29 485ef414 ) and now ( https://github.com/EttusResearch/uhd/blob/7ac01c7f979aab8fac5e62f596ff0af52c edec40/host/lib/usrp/x300/x300_impl.cpp#L676 ) that was changed to always return the 10 G rate even when connected via 1 G. Is there another way to determine how an X300 is connected? -Nathan smime.p7s Description: S/MIME cryptographic signature ___ USRP-users mailing list USRP-users@lists.ettus.com http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
Re: [USRP-users] Determining if an X300 is connected via 10 GigE or 1 GigE
Hello Nathan, I think you are referring only to the values that are set in the creation of the "max_link_branch" of the property tree. In one version of the code (the one you highlighted at [1]) has only the branch called "link_max_rate" and this one is created and set to either the PCIE max rate or the 10G max rate with the following statements _tree->create(mb_path / "link_max_rate").set(X300_MAX_RATE_PCIE); //L396 _tree->create(mb_path / "link_max_rate").set(X300_MAX_RATE_10GIGE); //L462 then, depending on the FPGA image that is loaded, this same branch is set to different values for the max rate, including the 1G Ethernet: _tree->access("/mboards/"+boost::lexical_cast(mb_index) / "link_max_rate").set(X300_MAX_RATE_1GIGE); //L1140 For the other version (highlighted at [2]), however, this last assignment is done a little bit differently, but keeping the same logic [2.a]. Now, it is not clear to me if your question raises an unexpected behavior of if you are only asking about the logic behind scenes. I mean, are retrieving this value using different FPGA images and always getting the 10G maximum link rate? or if you are only asking about the how this is done in the code? On a quick view, the branch value is being set to the correct max rate depending on the FPGA image that you are loading into the device, which is the same logic in the two mentioned versions. Regards, -Nicolas [1] https://github.com/EttusResearch/uhd/blob/6a72c16ee909af95b6965f26fb588a29485ef414/host/lib/usrp/x300/x300_impl.cpp [2] https://github.com/EttusResearch/uhd/blob/7ac01c7f979aab8fac5e62f596ff0af52cedec40/host/lib/usrp/x300/x300_impl.cpp [2.a] https://github.com/EttusResearch/uhd/blob/7ac01c7f979aab8fac5e62f596ff0af52cedec40/host/lib/usrp/x300/x300_impl.cpp#L1202 On Fri, Jul 28, 2017 at 1:03 AM, Perelman, Nathan via USRP-users < usrp-users@lists.ettus.com> wrote: > I had been looking at /mboards/0/link_max_rate to determine if an X300 was > connected via 10 GigE or 1 GigE. However it seems like sometime between > when that was implemented for the X300 ( https://github.com/ > EttusResearch/uhd/commit/6a72c16ee909af95b6965f26fb588a29485ef414 ) and > now ( https://github.com/EttusResearch/uhd/blob/ > 7ac01c7f979aab8fac5e62f596ff0af52cedec40/host/lib/usrp/x300/ > x300_impl.cpp#L676 ) that was changed to always return the 10 G rate even > when connected via 1 G. Is there another way to determine how an X300 is > connected? > > -Nathan > > ___ > USRP-users mailing list > USRP-users@lists.ettus.com > http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com > > ___ USRP-users mailing list USRP-users@lists.ettus.com http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
Re: [USRP-users] Determining if an X300 is connected via 10 GigE or 1 GigE
Using the HG image I am seeing a rate greater than 1 billion bytes/second even when connected via 1G (see below). This is with UHD 3.10.1.1. I had missed the part where it does set the rate to the 1 Gig constant in the current code. Looking at the code I think this line might be wrong? https://github.com/EttusResearch/uhd/blob/7ac01c7f979aab8fac5e62f596ff0af52cedec40/host/lib/usrp/x300/x300_impl.hpp#L86 . Shouldn’t that be 1e9 for 1 GigE? $ uhd_usrp_probe --args addr=192.168.20.2 --double /mboards/0/link_max_rate linux; GNU C++ version 5.3.1 20160406 (Red Hat 5.3.1-6); Boost_106000; UHD_003.010.001.001-0-unknown -- X300 initialization sequence... -- Determining maximum frame size... 1472 bytes. -- Setup basic communication... -- Loading values from EEPROM... -- Setup RF frontend clocking... -- Radio 1x clock:200 -- Detecting internal GPSDO Found an internal GPSDO: LC_XO, Firmware Rev 0.929a -- [DMA FIFO] Running BIST for FIFO 0... pass (Throughput: 1172.9MB/s) -- [DMA FIFO] Running BIST for FIFO 1... pass (Throughput: 1184.8MB/s) -- [RFNoC Radio] Performing register loopback test... pass -- [RFNoC Radio] Performing register loopback test... pass -- [RFNoC Radio] Performing register loopback test... pass -- [RFNoC Radio] Performing register loopback test... pass -- Performing timer loopback test... pass -- Performing timer loopback test... pass 1.21333e+09 -Nathan From: Nicolas Cuervo [mailto:nicolas.cue...@ettus.com] Sent: Monday, August 7, 2017 7:42 AM To: Perelman, Nathan Cc: usrp-users Subject: Re: [USRP-users] Determining if an X300 is connected via 10 GigE or 1 GigE Hello Nathan, I think you are referring only to the values that are set in the creation of the "max_link_branch" of the property tree. In one version of the code (the one you highlighted at [1]) has only the branch called "link_max_rate" and this one is created and set to either the PCIE max rate or the 10G max rate with the following statements _tree->create(mb_path / "link_max_rate").set(X300_MAX_RATE_PCIE); //L396 _tree->create(mb_path / "link_max_rate").set(X300_MAX_RATE_10GIGE); //L462 then, depending on the FPGA image that is loaded, this same branch is set to different values for the max rate, including the 1G Ethernet: _tree->access("/mboards/"+boost::lexical_cast(mb_index) / "link_max_rate").set(X300_MAX_RATE_1GIGE); //L1140 For the other version (highlighted at [2]), however, this last assignment is done a little bit differently, but keeping the same logic [2.a]. Now, it is not clear to me if your question raises an unexpected behavior of if you are only asking about the logic behind scenes. I mean, are retrieving this value using different FPGA images and always getting the 10G maximum link rate? or if you are only asking about the how this is done in the code? On a quick view, the branch value is being set to the correct max rate depending on the FPGA image that you are loading into the device, which is the same logic in the two mentioned versions. Regards, -Nicolas [1] https://github.com/EttusResearch/uhd/blob/6a72c16ee909af95b6965f26fb588a29485ef414/host/lib/usrp/x300/x300_impl.cpp [2] https://github.com/EttusResearch/uhd/blob/7ac01c7f979aab8fac5e62f596ff0af52cedec40/host/lib/usrp/x300/x300_impl.cpp [2.a] https://github.com/EttusResearch/uhd/blob/7ac01c7f979aab8fac5e62f596ff0af52cedec40/host/lib/usrp/x300/x300_impl.cpp#L1202 On Fri, Jul 28, 2017 at 1:03 AM, Perelman, Nathan via USRP-users wrote: I had been looking at /mboards/0/link_max_rate to determine if an X300 was connected via 10 GigE or 1 GigE. However it seems like sometime between when that was implemented for the X300 ( https://github.com/EttusResearch/uhd/commit/6a72c16ee909af95b6965f26fb588a29485ef414 ) and now ( https://github.com/EttusResearch/uhd/blob/7ac01c7f979aab8fac5e62f596ff0af52cedec40/host/lib/usrp/x300/x300_impl.cpp#L676 ) that was changed to always return the 10 G rate even when connected via 1 G. Is there another way to determine how an X300 is connected? -Nathan ___ USRP-users mailing list USRP-users@lists.ettus.com <mailto:USRP-users@lists.ettus.com> http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com smime.p7s Description: S/MIME cryptographic signature ___ USRP-users mailing list USRP-users@lists.ettus.com http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
Re: [USRP-users] Determining if an X300 is connected via 10 GigE or 1 GigE
Hi Nathan, we believe you are right. Nice catch! The line you suggested as culprit is already corrected and merged and will be pushed public in the near future. Thanks! -N On Mon, Aug 7, 2017 at 5:07 PM, Perelman, Nathan < nperel...@lgsinnovations.com> wrote: > Using the HG image I am seeing a rate greater than 1 billion bytes/second > even when connected via 1G (see below). This is with UHD 3.10.1.1. I had > missed the part where it does set the rate to the 1 Gig constant in the > current code. Looking at the code I think this line might be wrong? > https://github.com/EttusResearch/uhd/blob/7ac01c7f979aab8fac5e62f596ff0a > f52cedec40/host/lib/usrp/x300/x300_impl.hpp#L86 . Shouldn’t that be 1e9 > for 1 GigE? > > > > $ uhd_usrp_probe --args addr=192.168.20.2 --double /mboards/0/link_max_rate > > linux; GNU C++ version 5.3.1 20160406 (Red Hat 5.3.1-6); Boost_106000; > UHD_003.010.001.001-0-unknown > > > > -- X300 initialization sequence... > > -- Determining maximum frame size... 1472 bytes. > > -- Setup basic communication... > > -- Loading values from EEPROM... > > -- Setup RF frontend clocking... > > -- Radio 1x clock:200 > > -- Detecting internal GPSDO Found an internal GPSDO: LC_XO, Firmware > Rev 0.929a > > -- [DMA FIFO] Running BIST for FIFO 0... pass (Throughput: 1172.9MB/s) > > -- [DMA FIFO] Running BIST for FIFO 1... pass (Throughput: 1184.8MB/s) > > -- [RFNoC Radio] Performing register loopback test... pass > > -- [RFNoC Radio] Performing register loopback test... pass > > -- [RFNoC Radio] Performing register loopback test... pass > > -- [RFNoC Radio] Performing register loopback test... pass > > -- Performing timer loopback test... pass > > -- Performing timer loopback test... pass > > 1.21333e+09 > > > > -Nathan > > > > *From:* Nicolas Cuervo [mailto:nicolas.cue...@ettus.com] > *Sent:* Monday, August 7, 2017 7:42 AM > *To:* Perelman, Nathan > *Cc:* usrp-users > *Subject:* Re: [USRP-users] Determining if an X300 is connected via 10 > GigE or 1 GigE > > > > Hello Nathan, > > > > I think you are referring only to the values that are set in the creation > of the "max_link_branch" of the property tree. In one version of the code > (the one you highlighted at [1]) has only the branch called "link_max_rate" > and this one is created and set to either the PCIE max rate or the 10G max > rate with the following statements > > > > _tree->create(mb_path / "link_max_rate").set(X300_MAX_RATE_PCIE); > //L396 > > _tree->create(mb_path / "link_max_rate").set(X300_MAX_RATE_10GIGE); > //L462 > > > > then, depending on the FPGA image that is loaded, this same branch is set > to different values for the max rate, including the 1G Ethernet: > > > > > _tree->access("/mboards/"+boost::lexical_cast(mb_index) > / "link_max_rate").set(X300_MAX_RATE_1GIGE); //L1140 > > > > For the other version (highlighted at [2]), however, this last assignment > is done a little bit differently, but keeping the same logic [2.a]. > > > > Now, it is not clear to me if your question raises an unexpected behavior > of if you are only asking about the logic behind scenes. I mean, are > retrieving this value using different FPGA images and always getting the > 10G maximum link rate? or if you are only asking about the how this is done > in the code? On a quick view, the branch value is being set to the correct > max rate depending on the FPGA image that you are loading into the device, > which is the same logic in the two mentioned versions. > > Regards, > > -Nicolas > > > > [1] https://github.com/EttusResearch/uhd/blob/ > 6a72c16ee909af95b6965f26fb588a29485ef414/host/lib/usrp/x300/x300_impl.cpp > > [2] https://github.com/EttusResearch/uhd/blob/ > 7ac01c7f979aab8fac5e62f596ff0af52cedec40/host/lib/usrp/x300/x300_impl.cpp > > [2.a] https://github.com/EttusResearch/uhd/blob/ > 7ac01c7f979aab8fac5e62f596ff0af52cedec40/host/lib/usrp/x300/ > x300_impl.cpp#L1202 > > > > On Fri, Jul 28, 2017 at 1:03 AM, Perelman, Nathan via USRP-users < > usrp-users@lists.ettus.com> wrote: > > I had been looking at /mboards/0/link_max_rate to determine if an X300 was > connected via 10 GigE or 1 GigE. However it seems like sometime between > when that was implemented for the X300 ( https://github.com/ > EttusResearch/uhd/commit/6a72c16ee909af95b6965f26fb588a29485ef414 ) and > now ( https://github.com/EttusResearch/uhd/blob/ > 7ac01c7f979aab8fac5e62f596ff0af52cedec40/host/lib/usrp/x300/ > x300_impl.cpp#L676 ) that was changed to always return the 10 G rate even > when connected via 1 G. Is there another way to determine how an X300 is > connected? > > -Nathan > > > ___ > USRP-users mailing list > USRP-users@lists.ettus.com > http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com > > > ___ USRP-users mailing list USRP-users@lists.ettus.com http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com