BD
Bogdan Diaconescu
Tue, Mar 10, 2015 2:33 PM
Hi list,
I'm a long time user of USRP and now I'm trying to use my setup with a new laptop that does not have an integrated ethernet card. I am using for now two types of Ethernet 2 USB adapters that have 1Gbps/USB3.0 characteristics.
Apparently, for PC-to-PC connection using the dongles I can get around 935Msps speed using iperf or nc which seems just fine. However, when I do just USRP to PC connection I get many Ds on the command line just using the simple uhd_fft. Those Ds are shown even when using a 1Msps rate. They increase when using higher sample rates.
I wonder if someone tried this and had some success.
My set-up is:
Asus ZenBook UX31A (core i7).Ethernet 1Gbps/USB 3.0 dongles: D-Link DAB-1312 and Edimax EU-4306.Ubuntu 14.04
I should mention that I passed the phase in which the dongles connect to laptop as USB2.0 because on the other side there was not ethernet cable connected. Yes, this happens with both dongles.
Thanks for your support,Bogdan/YO3IIU
Hi list,
I'm a long time user of USRP and now I'm trying to use my setup with a new laptop that does not have an integrated ethernet card. I am using for now two types of Ethernet 2 USB adapters that have 1Gbps/USB3.0 characteristics.
Apparently, for PC-to-PC connection using the dongles I can get around 935Msps speed using iperf or nc which seems just fine. However, when I do just USRP to PC connection I get many Ds on the command line just using the simple uhd_fft. Those Ds are shown even when using a 1Msps rate. They increase when using higher sample rates.
I wonder if someone tried this and had some success.
My set-up is:
Asus ZenBook UX31A (core i7).Ethernet 1Gbps/USB 3.0 dongles: D-Link DAB-1312 and Edimax EU-4306.Ubuntu 14.04
I should mention that I passed the phase in which the dongles connect to laptop as USB2.0 because on the other side there was not ethernet cable connected. Yes, this happens with both dongles.
Thanks for your support,Bogdan/YO3IIU
BD
Bogdan Diaconescu
Tue, Mar 10, 2015 2:42 PM
Sorry, there was a typo in my previous e-mail. For a PC-to-PC connection I get 935Mbit/s not Msps.
On Tuesday, March 10, 2015 4:35 PM, Bogdan Diaconescu via USRP-users <usrp-users@lists.ettus.com> wrote:
Hi list,
I'm a long time user of USRP and now I'm trying to use my setup with a new laptop that does not have an integrated ethernet card. I am using for now two types of Ethernet 2 USB adapters that have 1Gbps/USB3.0 characteristics.
Apparently, for PC-to-PC connection using the dongles I can get around 935Msps speed using iperf or nc which seems just fine. However, when I do just USRP to PC connection I get many Ds on the command line just using the simple uhd_fft. Those Ds are shown even when using a 1Msps rate. They increase when using higher sample rates.
I wonder if someone tried this and had some success.
My set-up is:
Asus ZenBook UX31A (core i7).Ethernet 1Gbps/USB 3.0 dongles: D-Link DAB-1312 and Edimax EU-4306.Ubuntu 14.04
I should mention that I passed the phase in which the dongles connect to laptop as USB2.0 because on the other side there was not ethernet cable connected. Yes, this happens with both dongles.
Thanks for your support,Bogdan/YO3IIU
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
Sorry, there was a typo in my previous e-mail. For a PC-to-PC connection I get 935Mbit/s not Msps.
On Tuesday, March 10, 2015 4:35 PM, Bogdan Diaconescu via USRP-users <usrp-users@lists.ettus.com> wrote:
Hi list,
I'm a long time user of USRP and now I'm trying to use my setup with a new laptop that does not have an integrated ethernet card. I am using for now two types of Ethernet 2 USB adapters that have 1Gbps/USB3.0 characteristics.
Apparently, for PC-to-PC connection using the dongles I can get around 935Msps speed using iperf or nc which seems just fine. However, when I do just USRP to PC connection I get many Ds on the command line just using the simple uhd_fft. Those Ds are shown even when using a 1Msps rate. They increase when using higher sample rates.
I wonder if someone tried this and had some success.
My set-up is:
Asus ZenBook UX31A (core i7).Ethernet 1Gbps/USB 3.0 dongles: D-Link DAB-1312 and Edimax EU-4306.Ubuntu 14.04
I should mention that I passed the phase in which the dongles connect to laptop as USB2.0 because on the other side there was not ethernet cable connected. Yes, this happens with both dongles.
Thanks for your support,Bogdan/YO3IIU
_______________________________________________
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
MM
Marcus Müller
Tue, Mar 10, 2015 2:55 PM
Hi Bogdan,
I must admit that I've never seen anyone have much success with
USB-to-ethernet adapters. In fact, you're the one to report the highest
PC-to-PC bandwidth I've heard of, so I'd be interested to know how many
packet errors and dropped packets you saw with iperf. Also, what is your
CPU load whilst doing that rate? Do these adapters offload checksumming,
or is that an additional burden to your CPU?
Depending on your nc/iperf usage, you might have made advantageous usage
of higher-level flow control in TCP; since the USRPs talk UDP only,
there's no possibility to resend packets.
I've actually often seen these adapters simply drop or reorder packets
under load. Whilst a benchmarking tool might be tolerant to reordering,
UHD is not; maybe that's what you're seeing (though you'd usually see
'S'equence errors instead of 'D's).
You might want to experiment with smaller and bigger packet sizes, see
[1]; the thing is that USB adapters have to cut up the gigabit ethernet
frames (which can be rather long, depending on what your network
hardware supports) into small USB3 packets (which can only be up to 1KB
long), and the CPU then has to reassemble the ethernet packets. That
means a lot of workload, so maybe it's better to sacrifice a bit of
network to overload, but make the UHD sample packets small enough to fit
into one USB packet.
Greetings,
Marcus
[1]
http://files.ettus.com/manual/page_transport.html#transport_udp_params ;
you'd screw around with recv_frame_size, setting it to something like
900 for a start.||
On 03/10/2015 03:33 PM, Bogdan Diaconescu via USRP-users wrote:
Hi list,
I'm a long time user of USRP and now I'm trying to use my setup with a
new laptop that does not have an integrated ethernet card. I am using
for now two types of Ethernet 2 USB adapters that have 1Gbps/USB3.0
characteristics.
Apparently, for PC-to-PC connection using the dongles I can get around
935Msps speed using iperf or nc which seems just fine. However, when I
do just USRP to PC connection I get many Ds on the command line just
using the simple uhd_fft. Those Ds are shown even when using a 1Msps
rate. They increase when using higher sample rates.
I wonder if someone tried this and had some success.
My set-up is:
Asus ZenBook UX31A (core i7).
Ethernet 1Gbps/USB 3.0 dongles: D-Link DAB-1312 and Edimax EU-4306.
Ubuntu 14.04
I should mention that I passed the phase in which the dongles connect
to laptop as USB2.0 because on the other side there was not ethernet
cable connected. Yes, this happens with both dongles.
Thanks for your support,
Bogdan/YO3IIU
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
Hi Bogdan,
I must admit that I've never seen anyone have much success with
USB-to-ethernet adapters. In fact, you're the one to report the highest
PC-to-PC bandwidth I've heard of, so I'd be interested to know how many
packet errors and dropped packets you saw with iperf. Also, what is your
CPU load whilst doing that rate? Do these adapters offload checksumming,
or is that an additional burden to your CPU?
Depending on your nc/iperf usage, you might have made advantageous usage
of higher-level flow control in TCP; since the USRPs talk UDP only,
there's no possibility to resend packets.
I've actually often seen these adapters simply drop or reorder packets
under load. Whilst a benchmarking tool might be tolerant to reordering,
UHD is not; maybe that's what you're seeing (though you'd usually see
'S'equence errors instead of 'D's).
You might want to experiment with smaller and bigger packet sizes, see
[1]; the thing is that USB adapters have to cut up the gigabit ethernet
frames (which can be rather long, depending on what your network
hardware supports) into small USB3 packets (which can only be up to 1KB
long), and the CPU then has to reassemble the ethernet packets. That
means a lot of workload, so maybe it's better to sacrifice a bit of
network to overload, but make the UHD sample packets small enough to fit
into one USB packet.
Greetings,
Marcus
[1]
http://files.ettus.com/manual/page_transport.html#transport_udp_params ;
you'd screw around with recv_frame_size, setting it to something like
900 for a start.||
On 03/10/2015 03:33 PM, Bogdan Diaconescu via USRP-users wrote:
> Hi list,
>
> I'm a long time user of USRP and now I'm trying to use my setup with a
> new laptop that does not have an integrated ethernet card. I am using
> for now two types of Ethernet 2 USB adapters that have 1Gbps/USB3.0
> characteristics.
>
> Apparently, for PC-to-PC connection using the dongles I can get around
> 935Msps speed using iperf or nc which seems just fine. However, when I
> do just USRP to PC connection I get many Ds on the command line just
> using the simple uhd_fft. Those Ds are shown even when using a 1Msps
> rate. They increase when using higher sample rates.
>
> I wonder if someone tried this and had some success.
>
> My set-up is:
>
> Asus ZenBook UX31A (core i7).
> Ethernet 1Gbps/USB 3.0 dongles: D-Link DAB-1312 and Edimax EU-4306.
> Ubuntu 14.04
>
> I should mention that I passed the phase in which the dongles connect
> to laptop as USB2.0 because on the other side there was not ethernet
> cable connected. Yes, this happens with both dongles.
>
> Thanks for your support,
> Bogdan/YO3IIU
>
>
> _______________________________________________
> USRP-users mailing list
> USRP-users@lists.ettus.com
> http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
BD
Bogdan Diaconescu
Tue, Mar 10, 2015 5:24 PM
Hi Marcus,
those dongles are real good ones and they are the winners after almost 1 years of trial and error with different similar devices. I so far used them in a non USRP project though
To answer your questions: in a test with iperf (TCP) sending 10Gbit of data between 2 PCs (consistent at 935Mbit/s) there was no packet error and retransmission. With wireshark I've seen no TCP retransmission at all after several tests.
We did also tests with UDP using the same setup and the speed is about 812Mbit/s which is somehow consistent with the fact that in the linux kernel TCP is optimized for bulk transfer but UDP is optimized for low latency. We actually got the same results when using direct desktop PC-2-PC connections that have onboard 1Gb/s NICs. With the same OS and kernel versions.
So, all above is w/o USRP, just PC to PC.
Now with USRP: I'll try playing with buffers according to the link you gave but for 1Msps uhd_fft should work never the less. I haven't look at VITA and its details but for let's say 64bit/sample over the wire you only get 64Mbit/sample which is very low and should work like a charm.
You are right with the difference between packet size over USB vs. Ethernet. It may be something there.
Played now with UDP Fragmentation Ofload and checksum offload with no difference, the same problems.
I would take the processing power out of question as the processor is quite new (broadwell i7 in 14nm).
Thanks,Bogdan
On Tuesday, March 10, 2015 4:55 PM, Marcus Müller via USRP-users <usrp-users@lists.ettus.com> wrote:
Hi Bogdan,
I must admit that I've never seen anyone have much success with USB-to-ethernet adapters. In fact, you're the one to report the highest PC-to-PC bandwidth I've heard of, so I'd be interested to know how many packet errors and dropped packets you saw with iperf. Also, what is your CPU load whilst doing that rate? Do these adapters offload checksumming, or is that an additional burden to your CPU?
Depending on your nc/iperf usage, you might have made advantageous usage of higher-level flow control in TCP; since the USRPs talk UDP only, there's no possibility to resend packets.
I've actually often seen these adapters simply drop or reorder packets under load. Whilst a benchmarking tool might be tolerant to reordering, UHD is not; maybe that's what you're seeing (though you'd usually see 'S'equence errors instead of 'D's).
You might want to experiment with smaller and bigger packet sizes, see [1]; the thing is that USB adapters have to cut up the gigabit ethernet frames (which can be rather long, depending on what your network hardware supports) into small USB3 packets (which can only be up to 1KB long), and the CPU then has to reassemble the ethernet packets. That means a lot of workload, so maybe it's better to sacrifice a bit of network to overload, but make the UHD sample packets small enough to fit into one USB packet.
Greetings,
Marcus
[1] http://files.ettus.com/manual/page_transport.html#transport_udp_params ; you'd screw around with recv_frame_size, setting it to something like 900 for a start.
On 03/10/2015 03:33 PM, Bogdan Diaconescu via USRP-users wrote:
Hi list,
I'm a long time user of USRP and now I'm trying to use my setup with a new laptop that does not have an integrated ethernet card. I am using for now two types of Ethernet 2 USB adapters that have 1Gbps/USB3.0 characteristics.
Apparently, for PC-to-PC connection using the dongles I can get around 935Msps speed using iperf or nc which seems just fine. However, when I do just USRP to PC connection I get many Ds on the command line just using the simple uhd_fft. Those Ds are shown even when using a 1Msps rate. They increase when using higher sample rates.
I wonder if someone tried this and had some success.
My set-up is:
Asus ZenBook UX31A (core i7). Ethernet 1Gbps/USB 3.0 dongles: D-Link DAB-1312 and Edimax EU-4306. Ubuntu 14.04
I should mention that I passed the phase in which the dongles connect to laptop as USB2.0 because on the other side there was not ethernet cable connected. Yes, this happens with both dongles.
Thanks for your support, Bogdan/YO3IIU
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
Hi Marcus,
those dongles are real good ones and they are the winners after almost 1 years of trial and error with different similar devices. I so far used them in a non USRP project though
To answer your questions: in a test with iperf (TCP) sending 10Gbit of data between 2 PCs (consistent at 935Mbit/s) there was no packet error and retransmission. With wireshark I've seen no TCP retransmission at all after several tests.
We did also tests with UDP using the same setup and the speed is about 812Mbit/s which is somehow consistent with the fact that in the linux kernel TCP is optimized for bulk transfer but UDP is optimized for low latency. We actually got the same results when using direct desktop PC-2-PC connections that have onboard 1Gb/s NICs. With the same OS and kernel versions.
So, all above is w/o USRP, just PC to PC.
Now with USRP: I'll try playing with buffers according to the link you gave but for 1Msps uhd_fft should work never the less. I haven't look at VITA and its details but for let's say 64bit/sample over the wire you only get 64Mbit/sample which is very low and should work like a charm.
You are right with the difference between packet size over USB vs. Ethernet. It may be something there.
Played now with UDP Fragmentation Ofload and checksum offload with no difference, the same problems.
I would take the processing power out of question as the processor is quite new (broadwell i7 in 14nm).
Thanks,Bogdan
On Tuesday, March 10, 2015 4:55 PM, Marcus Müller via USRP-users <usrp-users@lists.ettus.com> wrote:
Hi Bogdan,
I must admit that I've never seen anyone have much success with USB-to-ethernet adapters. In fact, you're the one to report the highest PC-to-PC bandwidth I've heard of, so I'd be interested to know how many packet errors and dropped packets you saw with iperf. Also, what is your CPU load whilst doing that rate? Do these adapters offload checksumming, or is that an additional burden to your CPU?
Depending on your nc/iperf usage, you might have made advantageous usage of higher-level flow control in TCP; since the USRPs talk UDP only, there's no possibility to resend packets.
I've actually often seen these adapters simply drop or reorder packets under load. Whilst a benchmarking tool might be tolerant to reordering, UHD is not; maybe that's what you're seeing (though you'd usually see 'S'equence errors instead of 'D's).
You might want to experiment with smaller and bigger packet sizes, see [1]; the thing is that USB adapters have to cut up the gigabit ethernet frames (which can be rather long, depending on what your network hardware supports) into small USB3 packets (which can only be up to 1KB long), and the CPU then has to reassemble the ethernet packets. That means a lot of workload, so maybe it's better to sacrifice a bit of network to overload, but make the UHD sample packets small enough to fit into one USB packet.
Greetings,
Marcus
[1] http://files.ettus.com/manual/page_transport.html#transport_udp_params ; you'd screw around with recv_frame_size, setting it to something like 900 for a start.
On 03/10/2015 03:33 PM, Bogdan Diaconescu via USRP-users wrote:
Hi list,
I'm a long time user of USRP and now I'm trying to use my setup with a new laptop that does not have an integrated ethernet card. I am using for now two types of Ethernet 2 USB adapters that have 1Gbps/USB3.0 characteristics.
Apparently, for PC-to-PC connection using the dongles I can get around 935Msps speed using iperf or nc which seems just fine. However, when I do just USRP to PC connection I get many Ds on the command line just using the simple uhd_fft. Those Ds are shown even when using a 1Msps rate. They increase when using higher sample rates.
I wonder if someone tried this and had some success.
My set-up is:
Asus ZenBook UX31A (core i7). Ethernet 1Gbps/USB 3.0 dongles: D-Link DAB-1312 and Edimax EU-4306. Ubuntu 14.04
I should mention that I passed the phase in which the dongles connect to laptop as USB2.0 because on the other side there was not ethernet cable connected. Yes, this happens with both dongles.
Thanks for your support, Bogdan/YO3IIU
_______________________________________________
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
BD
Bogdan Diaconescu
Tue, Mar 10, 2015 10:09 PM
Ok, so I did several tests with various buffers passed in the uhd_fft command line:
I tried almost everything in the reference given by you Marcus going wild from min to max and mostly notable lowering sent_frame_size down to 100 does reduce a bit the rate of Ds. However, it seems that the moment when Ds start to appear is delayed because of that but once they start appearing they continue to increase.
And esentially the Ds are showing up in any situation I tried.
It will be nice to have a test built in FPGA so that once triggered from the host, it will send known data to the PC allowing testing the connection.
So, what's next?
On Tuesday, March 10, 2015 7:24 PM, Bogdan Diaconescu <b_diaconescu@yahoo.com> wrote:
Hi Marcus,
those dongles are real good ones and they are the winners after almost 1 years of trial and error with different similar devices. I so far used them in a non USRP project though
To answer your questions: in a test with iperf (TCP) sending 10Gbit of data between 2 PCs (consistent at 935Mbit/s) there was no packet error and retransmission. With wireshark I've seen no TCP retransmission at all after several tests.
We did also tests with UDP using the same setup and the speed is about 812Mbit/s which is somehow consistent with the fact that in the linux kernel TCP is optimized for bulk transfer but UDP is optimized for low latency. We actually got the same results when using direct desktop PC-2-PC connections that have onboard 1Gb/s NICs. With the same OS and kernel versions.
So, all above is w/o USRP, just PC to PC.
Now with USRP: I'll try playing with buffers according to the link you gave but for 1Msps uhd_fft should work never the less. I haven't look at VITA and its details but for let's say 64bit/sample over the wire you only get 64Mbit/sample which is very low and should work like a charm.
You are right with the difference between packet size over USB vs. Ethernet. It may be something there.
Played now with UDP Fragmentation Ofload and checksum offload with no difference, the same problems.
I would take the processing power out of question as the processor is quite new (broadwell i7 in 14nm).
Thanks,Bogdan
On Tuesday, March 10, 2015 4:55 PM, Marcus Müller via USRP-users <usrp-users@lists.ettus.com> wrote:
Hi Bogdan,
I must admit that I've never seen anyone have much success with USB-to-ethernet adapters. In fact, you're the one to report the highest PC-to-PC bandwidth I've heard of, so I'd be interested to know how many packet errors and dropped packets you saw with iperf. Also, what is your CPU load whilst doing that rate? Do these adapters offload checksumming, or is that an additional burden to your CPU?
Depending on your nc/iperf usage, you might have made advantageous usage of higher-level flow control in TCP; since the USRPs talk UDP only, there's no possibility to resend packets.
I've actually often seen these adapters simply drop or reorder packets under load. Whilst a benchmarking tool might be tolerant to reordering, UHD is not; maybe that's what you're seeing (though you'd usually see 'S'equence errors instead of 'D's).
You might want to experiment with smaller and bigger packet sizes, see [1]; the thing is that USB adapters have to cut up the gigabit ethernet frames (which can be rather long, depending on what your network hardware supports) into small USB3 packets (which can only be up to 1KB long), and the CPU then has to reassemble the ethernet packets. That means a lot of workload, so maybe it's better to sacrifice a bit of network to overload, but make the UHD sample packets small enough to fit into one USB packet.
Greetings,
Marcus
[1] http://files.ettus.com/manual/page_transport.html#transport_udp_params ; you'd screw around with recv_frame_size, setting it to something like 900 for a start.
On 03/10/2015 03:33 PM, Bogdan Diaconescu via USRP-users wrote:
Hi list,
I'm a long time user of USRP and now I'm trying to use my setup with a new laptop that does not have an integrated ethernet card. I am using for now two types of Ethernet 2 USB adapters that have 1Gbps/USB3.0 characteristics.
Apparently, for PC-to-PC connection using the dongles I can get around 935Msps speed using iperf or nc which seems just fine. However, when I do just USRP to PC connection I get many Ds on the command line just using the simple uhd_fft. Those Ds are shown even when using a 1Msps rate. They increase when using higher sample rates.
I wonder if someone tried this and had some success.
My set-up is:
Asus ZenBook UX31A (core i7). Ethernet 1Gbps/USB 3.0 dongles: D-Link DAB-1312 and Edimax EU-4306. Ubuntu 14.04
I should mention that I passed the phase in which the dongles connect to laptop as USB2.0 because on the other side there was not ethernet cable connected. Yes, this happens with both dongles.
Thanks for your support, Bogdan/YO3IIU
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
Ok, so I did several tests with various buffers passed in the uhd_fft command line:
I tried almost everything in the reference given by you Marcus going wild from min to max and mostly notable lowering sent_frame_size down to 100 does reduce a bit the rate of Ds. However, it seems that the moment when Ds start to appear is delayed because of that but once they start appearing they continue to increase.
And esentially the Ds are showing up in any situation I tried.
It will be nice to have a test built in FPGA so that once triggered from the host, it will send known data to the PC allowing testing the connection.
So, what's next?
On Tuesday, March 10, 2015 7:24 PM, Bogdan Diaconescu <b_diaconescu@yahoo.com> wrote:
Hi Marcus,
those dongles are real good ones and they are the winners after almost 1 years of trial and error with different similar devices. I so far used them in a non USRP project though
To answer your questions: in a test with iperf (TCP) sending 10Gbit of data between 2 PCs (consistent at 935Mbit/s) there was no packet error and retransmission. With wireshark I've seen no TCP retransmission at all after several tests.
We did also tests with UDP using the same setup and the speed is about 812Mbit/s which is somehow consistent with the fact that in the linux kernel TCP is optimized for bulk transfer but UDP is optimized for low latency. We actually got the same results when using direct desktop PC-2-PC connections that have onboard 1Gb/s NICs. With the same OS and kernel versions.
So, all above is w/o USRP, just PC to PC.
Now with USRP: I'll try playing with buffers according to the link you gave but for 1Msps uhd_fft should work never the less. I haven't look at VITA and its details but for let's say 64bit/sample over the wire you only get 64Mbit/sample which is very low and should work like a charm.
You are right with the difference between packet size over USB vs. Ethernet. It may be something there.
Played now with UDP Fragmentation Ofload and checksum offload with no difference, the same problems.
I would take the processing power out of question as the processor is quite new (broadwell i7 in 14nm).
Thanks,Bogdan
On Tuesday, March 10, 2015 4:55 PM, Marcus Müller via USRP-users <usrp-users@lists.ettus.com> wrote:
Hi Bogdan,
I must admit that I've never seen anyone have much success with USB-to-ethernet adapters. In fact, you're the one to report the highest PC-to-PC bandwidth I've heard of, so I'd be interested to know how many packet errors and dropped packets you saw with iperf. Also, what is your CPU load whilst doing that rate? Do these adapters offload checksumming, or is that an additional burden to your CPU?
Depending on your nc/iperf usage, you might have made advantageous usage of higher-level flow control in TCP; since the USRPs talk UDP only, there's no possibility to resend packets.
I've actually often seen these adapters simply drop or reorder packets under load. Whilst a benchmarking tool might be tolerant to reordering, UHD is not; maybe that's what you're seeing (though you'd usually see 'S'equence errors instead of 'D's).
You might want to experiment with smaller and bigger packet sizes, see [1]; the thing is that USB adapters have to cut up the gigabit ethernet frames (which can be rather long, depending on what your network hardware supports) into small USB3 packets (which can only be up to 1KB long), and the CPU then has to reassemble the ethernet packets. That means a lot of workload, so maybe it's better to sacrifice a bit of network to overload, but make the UHD sample packets small enough to fit into one USB packet.
Greetings,
Marcus
[1] http://files.ettus.com/manual/page_transport.html#transport_udp_params ; you'd screw around with recv_frame_size, setting it to something like 900 for a start.
On 03/10/2015 03:33 PM, Bogdan Diaconescu via USRP-users wrote:
Hi list,
I'm a long time user of USRP and now I'm trying to use my setup with a new laptop that does not have an integrated ethernet card. I am using for now two types of Ethernet 2 USB adapters that have 1Gbps/USB3.0 characteristics.
Apparently, for PC-to-PC connection using the dongles I can get around 935Msps speed using iperf or nc which seems just fine. However, when I do just USRP to PC connection I get many Ds on the command line just using the simple uhd_fft. Those Ds are shown even when using a 1Msps rate. They increase when using higher sample rates.
I wonder if someone tried this and had some success.
My set-up is:
Asus ZenBook UX31A (core i7). Ethernet 1Gbps/USB 3.0 dongles: D-Link DAB-1312 and Edimax EU-4306. Ubuntu 14.04
I should mention that I passed the phase in which the dongles connect to laptop as USB2.0 because on the other side there was not ethernet cable connected. Yes, this happens with both dongles.
Thanks for your support, Bogdan/YO3IIU
_______________________________________________
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
MM
Marcus Müller
Wed, Mar 11, 2015 8:13 AM
You're asking the right question :)
So at this point, you're right, analyzing what goes wrong during
communication sounds wise. I think the tool of choice here is wireshark,
which has an UHD display filter; I haven't used that myself, though, but
from the source code I'd assume it would display sequence numbers.
I was wrong on "S" being the indication for sequence errors, by the way
[1], so what we'd try to find out would be whether there's dropped
packets or reordered packets or something really goes wrong on the UHD
side.
Greetings,
Marcus
[1] lib/transport/super_recv_packet_handler.hpp:571
https://github.com/EttusResearch/uhd/blob/master/host/lib/transport/super_recv_packet_handler.hpp#L571
On 03/10/2015 11:09 PM, Bogdan Diaconescu wrote:
Ok, so I did several tests with various buffers passed in the uhd_fft
command line:
I tried almost everything in the reference given by you Marcus going
wild from min to max and mostly notable lowering sent_frame_size down
to 100 does reduce a bit the rate of Ds. However, it seems that the
moment when Ds start to appear is delayed because of that but once
they start appearing they continue to increase.
And esentially the Ds are showing up in any situation I tried.
It will be nice to have a test built in FPGA so that once triggered
from the host, it will send known data to the PC allowing testing the
connection.
So, what's next?
On Tuesday, March 10, 2015 7:24 PM, Bogdan Diaconescu
b_diaconescu@yahoo.com wrote:
Hi Marcus,
those dongles are real good ones and they are the winners after almost
1 years of trial and error with different similar devices. I so far
used them in a non USRP project though
To answer your questions: in a test with iperf (TCP) sending 10Gbit of
data between 2 PCs (consistent at 935Mbit/s) there was no packet error
and retransmission. With wireshark I've seen no TCP retransmission at
all after several tests.
We did also tests with UDP using the same setup and the speed is about
812Mbit/s which is somehow consistent with the fact that in the linux
kernel TCP is optimized for bulk transfer but UDP is optimized for low
latency. We actually got the same results when using direct desktop
PC-2-PC connections that have onboard 1Gb/s NICs. With the same OS and
kernel versions.
So, all above is w/o USRP, just PC to PC.
Now with USRP: I'll try playing with buffers according to the link you
gave but for 1Msps uhd_fft should work never the less. I haven't look
at VITA and its details but for let's say 64bit/sample over the wire
you only get 64Mbit/sample which is very low and should work like a charm.
You are right with the difference between packet size over USB vs.
Ethernet. It may be something there.
Played now with UDP Fragmentation Ofload and checksum offload with no
difference, the same problems.
I would take the processing power out of question as the processor is
quite new (broadwell i7 in 14nm).
Thanks,
Bogdan
On Tuesday, March 10, 2015 4:55 PM, Marcus Müller via USRP-users
usrp-users@lists.ettus.com wrote:
Hi Bogdan,
I must admit that I've never seen anyone have much success with
USB-to-ethernet adapters. In fact, you're the one to report the
highest PC-to-PC bandwidth I've heard of, so I'd be interested to know
how many packet errors and dropped packets you saw with iperf. Also,
what is your CPU load whilst doing that rate? Do these adapters
offload checksumming, or is that an additional burden to your CPU?
Depending on your nc/iperf usage, you might have made advantageous
usage of higher-level flow control in TCP; since the USRPs talk UDP
only, there's no possibility to resend packets.
I've actually often seen these adapters simply drop or reorder packets
under load. Whilst a benchmarking tool might be tolerant to
reordering, UHD is not; maybe that's what you're seeing (though you'd
usually see 'S'equence errors instead of 'D's).
You might want to experiment with smaller and bigger packet sizes, see
[1]; the thing is that USB adapters have to cut up the gigabit
ethernet frames (which can be rather long, depending on what your
network hardware supports) into small USB3 packets (which can only be
up to 1KB long), and the CPU then has to reassemble the ethernet
packets. That means a lot of workload, so maybe it's better to
sacrifice a bit of network to overload, but make the UHD sample
packets small enough to fit into one USB packet.
Greetings,
Marcus
[1]
http://files.ettus.com/manual/page_transport.html#transport_udp_params
; you'd screw around with recv_frame_size, setting it to something
like 900 for a start.||
On 03/10/2015 03:33 PM, Bogdan Diaconescu via USRP-users wrote:
Hi list,
I'm a long time user of USRP and now I'm trying to use my setup with
a new laptop that does not have an integrated ethernet card. I am
using for now two types of Ethernet 2 USB adapters that have
1Gbps/USB3.0 characteristics.
Apparently, for PC-to-PC connection using the dongles I can get
around 935Msps speed using iperf or nc which seems just fine.
However, when I do just USRP to PC connection I get many Ds on the
command line just using the simple uhd_fft. Those Ds are shown even
when using a 1Msps rate. They increase when using higher sample rates.
I wonder if someone tried this and had some success.
My set-up is:
Asus ZenBook UX31A (core i7).
Ethernet 1Gbps/USB 3.0 dongles: D-Link DAB-1312 and Edimax EU-4306.
Ubuntu 14.04
I should mention that I passed the phase in which the dongles connect
to laptop as USB2.0 because on the other side there was not ethernet
cable connected. Yes, this happens with both dongles.
Thanks for your support,
Bogdan/YO3IIU
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
> So, what's next?
You're asking the right question :)
So at this point, you're right, analyzing what goes wrong during
communication sounds wise. I think the tool of choice here is wireshark,
which has an UHD display filter; I haven't used that myself, though, but
from the source code I'd assume it would display sequence numbers.
I was wrong on "S" being the indication for sequence errors, by the way
[1], so what we'd try to find out would be whether there's dropped
packets or reordered packets or something really goes wrong on the UHD
side.
Greetings,
Marcus
[1] lib/transport/super_recv_packet_handler.hpp:571
https://github.com/EttusResearch/uhd/blob/master/host/lib/transport/super_recv_packet_handler.hpp#L571
On 03/10/2015 11:09 PM, Bogdan Diaconescu wrote:
> Ok, so I did several tests with various buffers passed in the uhd_fft
> command line:
>
> I tried almost everything in the reference given by you Marcus going
> wild from min to max and mostly notable lowering sent_frame_size down
> to 100 does reduce a bit the rate of Ds. However, it seems that the
> moment when Ds start to appear is delayed because of that but once
> they start appearing they continue to increase.
>
> And esentially the Ds are showing up in any situation I tried.
>
> It will be nice to have a test built in FPGA so that once triggered
> from the host, it will send known data to the PC allowing testing the
> connection.
>
> So, what's next?
>
>
>
>
> On Tuesday, March 10, 2015 7:24 PM, Bogdan Diaconescu
> <b_diaconescu@yahoo.com> wrote:
>
>
> Hi Marcus,
>
> those dongles are real good ones and they are the winners after almost
> 1 years of trial and error with different similar devices. I so far
> used them in a non USRP project though
>
> To answer your questions: in a test with iperf (TCP) sending 10Gbit of
> data between 2 PCs (consistent at 935Mbit/s) there was no packet error
> and retransmission. With wireshark I've seen no TCP retransmission at
> all after several tests.
>
> We did also tests with UDP using the same setup and the speed is about
> 812Mbit/s which is somehow consistent with the fact that in the linux
> kernel TCP is optimized for bulk transfer but UDP is optimized for low
> latency. We actually got the same results when using direct desktop
> PC-2-PC connections that have onboard 1Gb/s NICs. With the same OS and
> kernel versions.
>
> So, all above is w/o USRP, just PC to PC.
>
> Now with USRP: I'll try playing with buffers according to the link you
> gave but for 1Msps uhd_fft should work never the less. I haven't look
> at VITA and its details but for let's say 64bit/sample over the wire
> you only get 64Mbit/sample which is very low and should work like a charm.
>
> You are right with the difference between packet size over USB vs.
> Ethernet. It may be something there.
>
> Played now with UDP Fragmentation Ofload and checksum offload with no
> difference, the same problems.
>
> I would take the processing power out of question as the processor is
> quite new (broadwell i7 in 14nm).
>
> Thanks,
> Bogdan
>
>
>
>
> On Tuesday, March 10, 2015 4:55 PM, Marcus Müller via USRP-users
> <usrp-users@lists.ettus.com> wrote:
>
>
> Hi Bogdan,
>
> I must admit that I've never seen anyone have much success with
> USB-to-ethernet adapters. In fact, you're the one to report the
> highest PC-to-PC bandwidth I've heard of, so I'd be interested to know
> how many packet errors and dropped packets you saw with iperf. Also,
> what is your CPU load whilst doing that rate? Do these adapters
> offload checksumming, or is that an additional burden to your CPU?
>
> Depending on your nc/iperf usage, you might have made advantageous
> usage of higher-level flow control in TCP; since the USRPs talk UDP
> only, there's no possibility to resend packets.
>
> I've actually often seen these adapters simply drop or reorder packets
> under load. Whilst a benchmarking tool might be tolerant to
> reordering, UHD is not; maybe that's what you're seeing (though you'd
> usually see 'S'equence errors instead of 'D's).
>
> You might want to experiment with smaller and bigger packet sizes, see
> [1]; the thing is that USB adapters have to cut up the gigabit
> ethernet frames (which can be rather long, depending on what your
> network hardware supports) into small USB3 packets (which can only be
> up to 1KB long), and the CPU then has to reassemble the ethernet
> packets. That means a lot of workload, so maybe it's better to
> sacrifice a bit of network to overload, but make the UHD sample
> packets small enough to fit into one USB packet.
>
> Greetings,
> Marcus
>
> [1]
> http://files.ettus.com/manual/page_transport.html#transport_udp_params
> ; you'd screw around with recv_frame_size, setting it to something
> like 900 for a start.||
>
> On 03/10/2015 03:33 PM, Bogdan Diaconescu via USRP-users wrote:
>> Hi list,
>>
>> I'm a long time user of USRP and now I'm trying to use my setup with
>> a new laptop that does not have an integrated ethernet card. I am
>> using for now two types of Ethernet 2 USB adapters that have
>> 1Gbps/USB3.0 characteristics.
>>
>> Apparently, for PC-to-PC connection using the dongles I can get
>> around 935Msps speed using iperf or nc which seems just fine.
>> However, when I do just USRP to PC connection I get many Ds on the
>> command line just using the simple uhd_fft. Those Ds are shown even
>> when using a 1Msps rate. They increase when using higher sample rates.
>>
>> I wonder if someone tried this and had some success.
>>
>> My set-up is:
>>
>> Asus ZenBook UX31A (core i7).
>> Ethernet 1Gbps/USB 3.0 dongles: D-Link DAB-1312 and Edimax EU-4306.
>> Ubuntu 14.04
>>
>> I should mention that I passed the phase in which the dongles connect
>> to laptop as USB2.0 because on the other side there was not ethernet
>> cable connected. Yes, this happens with both dongles.
>>
>> Thanks for your support,
>> Bogdan/YO3IIU
>>
>>
>> _______________________________________________
>> 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
>
>
> _______________________________________________
> 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
>
>
>
>
BD
Bogdan Diaconescu
Wed, Mar 11, 2015 12:10 PM
Hi Marcus,
is the UHD display filter already in wireshark (which version?) or it needs to be installed as a patch? More info is be welcomed here.
Looking at the questions on the list for couple of years back, the Os, Us, Ss, Ds meaning were always misleading to users and I see now the confirmation :) I wonder why meaning of those single characters is not shown as a message when UHD starts.
I guess there could be a starting point by having a small server/client app that shows sequencing/packet loss problems when doing UDP communication between 2 PCs over the dongles.
Bogdan
On Wednesday, March 11, 2015 10:13 AM, Marcus Müller <marcus.mueller@ettus.com> wrote:
So, what's next?
You're asking the right question :)
So at this point, you're right, analyzing what goes wrong during communication sounds wise. I think the tool of choice here is wireshark, which has an UHD display filter; I haven't used that myself, though, but from the source code I'd assume it would display sequence numbers.
I was wrong on "S" being the indication for sequence errors, by the way [1], so what we'd try to find out would be whether there's dropped packets or reordered packets or something really goes wrong on the UHD side.
Greetings,
Marcus
[1] lib/transport/super_recv_packet_handler.hpp:571
https://github.com/EttusResearch/uhd/blob/master/host/lib/transport/super_recv_packet_handler.hpp#L571
On 03/10/2015 11:09 PM, Bogdan Diaconescu wrote:
Ok, so I did several tests with various buffers passed in the uhd_fft command line:
I tried almost everything in the reference given by you Marcus going wild from min to max and mostly notable lowering sent_frame_size down to 100 does reduce a bit the rate of Ds. However, it seems that the moment when Ds start to appear is delayed because of that but once they start appearing they continue to increase.
And esentially the Ds are showing up in any situation I tried.
It will be nice to have a test built in FPGA so that once triggered from the host, it will send known data to the PC allowing testing the connection.
So, what's next?
On Tuesday, March 10, 2015 7:24 PM, Bogdan Diaconescu <b_diaconescu@yahoo.com> wrote:
Hi Marcus,
those dongles are real good ones and they are the winners after almost 1 years of trial and error with different similar devices. I so far used them in a non USRP project though
To answer your questions: in a test with iperf (TCP) sending 10Gbit of data between 2 PCs (consistent at 935Mbit/s) there was no packet error and retransmission. With wireshark I've seen no TCP retransmission at all after several tests.
We did also tests with UDP using the same setup and the speed is about 812Mbit/s which is somehow consistent with the fact that in the linux kernel TCP is optimized for bulk transfer but UDP is optimized for low latency. We actually got the same results when using direct desktop PC-2-PC connections that have onboard 1Gb/s NICs. With the same OS and kernel versions.
So, all above is w/o USRP, just PC to PC.
Now with USRP: I'll try playing with buffers according to the link you gave but for 1Msps uhd_fft should work never the less. I haven't look at VITA and its details but for let's say 64bit/sample over the wire you only get 64Mbit/sample which is very low and should work like a charm.
You are right with the difference between packet size over USB vs. Ethernet. It may be something there.
Played now with UDP Fragmentation Ofload and checksum offload with no difference, the same problems.
I would take the processing power out of question as the processor is quite new (broadwell i7 in 14nm).
Thanks, Bogdan
On Tuesday, March 10, 2015 4:55 PM, Marcus Müller via USRP-users <usrp-users@lists.ettus.com> wrote:
Hi Bogdan,
I must admit that I've never seen anyone have much success with USB-to-ethernet adapters. In fact, you're the one to report the highest PC-to-PC bandwidth I've heard of, so I'd be interested to know how many packet errors and dropped packets you saw with iperf. Also, what is your CPU load whilst doing that rate? Do these adapters offload checksumming, or is that an additional burden to your CPU?
Depending on your nc/iperf usage, you might have made advantageous usage of higher-level flow control in TCP; since the USRPs talk UDP only, there's no possibility to resend packets.
I've actually often seen these adapters simply drop or reorder packets under load. Whilst a benchmarking tool might be tolerant to reordering, UHD is not; maybe that's what you're seeing (though you'd usually see 'S'equence errors instead of 'D's).
You might want to experiment with smaller and bigger packet sizes, see [1]; the thing is that USB adapters have to cut up the gigabit ethernet frames (which can be rather long, depending on what your network hardware supports) into small USB3 packets (which can only be up to 1KB long), and the CPU then has to reassemble the ethernet packets. That means a lot of workload, so maybe it's better to sacrifice a bit of network to overload, but make the UHD sample packets small enough to fit into one USB packet.
Greetings,
Marcus
[1] http://files.ettus.com/manual/page_transport.html#transport_udp_params ; you'd screw around with recv_frame_size, setting it to something like 900 for a start.
On 03/10/2015 03:33 PM, Bogdan Diaconescu via USRP-users wrote:
Hi list,
I'm a long time user of USRP and now I'm trying to use my setup with a new laptop that does not have an integrated ethernet card. I am using for now two types of Ethernet 2 USB adapters that have 1Gbps/USB3.0 characteristics.
Apparently, for PC-to-PC connection using the dongles I can get around 935Msps speed using iperf or nc which seems just fine. However, when I do just USRP to PC connection I get many Ds on the command line just using the simple uhd_fft. Those Ds are shown even when using a 1Msps rate. They increase when using higher sample rates.
I wonder if someone tried this and had some success.
My set-up is:
Asus ZenBook UX31A (core i7). Ethernet 1Gbps/USB 3.0 dongles: D-Link DAB-1312 and Edimax EU-4306. Ubuntu 14.04
I should mention that I passed the phase in which the dongles connect to laptop as USB2.0 because on the other side there was not ethernet cable connected. Yes, this happens with both dongles.
Thanks for your support, Bogdan/YO3IIU
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
Hi Marcus,
is the UHD display filter already in wireshark (which version?) or it needs to be installed as a patch? More info is be welcomed here.
Looking at the questions on the list for couple of years back, the Os, Us, Ss, Ds meaning were always misleading to users and I see now the confirmation :) I wonder why meaning of those single characters is not shown as a message when UHD starts.
I guess there could be a starting point by having a small server/client app that shows sequencing/packet loss problems when doing UDP communication between 2 PCs over the dongles.
Bogdan
On Wednesday, March 11, 2015 10:13 AM, Marcus Müller <marcus.mueller@ettus.com> wrote:
So, what's next?
You're asking the right question :)
So at this point, you're right, analyzing what goes wrong during communication sounds wise. I think the tool of choice here is wireshark, which has an UHD display filter; I haven't used that myself, though, but from the source code I'd assume it would display sequence numbers.
I was wrong on "S" being the indication for sequence errors, by the way [1], so what we'd try to find out would be whether there's dropped packets or reordered packets or something really goes wrong on the UHD side.
Greetings,
Marcus
[1] lib/transport/super_recv_packet_handler.hpp:571
https://github.com/EttusResearch/uhd/blob/master/host/lib/transport/super_recv_packet_handler.hpp#L571
On 03/10/2015 11:09 PM, Bogdan Diaconescu wrote:
Ok, so I did several tests with various buffers passed in the uhd_fft command line:
I tried almost everything in the reference given by you Marcus going wild from min to max and mostly notable lowering sent_frame_size down to 100 does reduce a bit the rate of Ds. However, it seems that the moment when Ds start to appear is delayed because of that but once they start appearing they continue to increase.
And esentially the Ds are showing up in any situation I tried.
It will be nice to have a test built in FPGA so that once triggered from the host, it will send known data to the PC allowing testing the connection.
So, what's next?
On Tuesday, March 10, 2015 7:24 PM, Bogdan Diaconescu <b_diaconescu@yahoo.com> wrote:
Hi Marcus,
those dongles are real good ones and they are the winners after almost 1 years of trial and error with different similar devices. I so far used them in a non USRP project though
To answer your questions: in a test with iperf (TCP) sending 10Gbit of data between 2 PCs (consistent at 935Mbit/s) there was no packet error and retransmission. With wireshark I've seen no TCP retransmission at all after several tests.
We did also tests with UDP using the same setup and the speed is about 812Mbit/s which is somehow consistent with the fact that in the linux kernel TCP is optimized for bulk transfer but UDP is optimized for low latency. We actually got the same results when using direct desktop PC-2-PC connections that have onboard 1Gb/s NICs. With the same OS and kernel versions.
So, all above is w/o USRP, just PC to PC.
Now with USRP: I'll try playing with buffers according to the link you gave but for 1Msps uhd_fft should work never the less. I haven't look at VITA and its details but for let's say 64bit/sample over the wire you only get 64Mbit/sample which is very low and should work like a charm.
You are right with the difference between packet size over USB vs. Ethernet. It may be something there.
Played now with UDP Fragmentation Ofload and checksum offload with no difference, the same problems.
I would take the processing power out of question as the processor is quite new (broadwell i7 in 14nm).
Thanks, Bogdan
On Tuesday, March 10, 2015 4:55 PM, Marcus Müller via USRP-users <usrp-users@lists.ettus.com> wrote:
Hi Bogdan,
I must admit that I've never seen anyone have much success with USB-to-ethernet adapters. In fact, you're the one to report the highest PC-to-PC bandwidth I've heard of, so I'd be interested to know how many packet errors and dropped packets you saw with iperf. Also, what is your CPU load whilst doing that rate? Do these adapters offload checksumming, or is that an additional burden to your CPU?
Depending on your nc/iperf usage, you might have made advantageous usage of higher-level flow control in TCP; since the USRPs talk UDP only, there's no possibility to resend packets.
I've actually often seen these adapters simply drop or reorder packets under load. Whilst a benchmarking tool might be tolerant to reordering, UHD is not; maybe that's what you're seeing (though you'd usually see 'S'equence errors instead of 'D's).
You might want to experiment with smaller and bigger packet sizes, see [1]; the thing is that USB adapters have to cut up the gigabit ethernet frames (which can be rather long, depending on what your network hardware supports) into small USB3 packets (which can only be up to 1KB long), and the CPU then has to reassemble the ethernet packets. That means a lot of workload, so maybe it's better to sacrifice a bit of network to overload, but make the UHD sample packets small enough to fit into one USB packet.
Greetings,
Marcus
[1] http://files.ettus.com/manual/page_transport.html#transport_udp_params ; you'd screw around with recv_frame_size, setting it to something like 900 for a start.
On 03/10/2015 03:33 PM, Bogdan Diaconescu via USRP-users wrote:
Hi list,
I'm a long time user of USRP and now I'm trying to use my setup with a new laptop that does not have an integrated ethernet card. I am using for now two types of Ethernet 2 USB adapters that have 1Gbps/USB3.0 characteristics.
Apparently, for PC-to-PC connection using the dongles I can get around 935Msps speed using iperf or nc which seems just fine. However, when I do just USRP to PC connection I get many Ds on the command line just using the simple uhd_fft. Those Ds are shown even when using a 1Msps rate. They increase when using higher sample rates.
I wonder if someone tried this and had some success.
My set-up is:
Asus ZenBook UX31A (core i7). Ethernet 1Gbps/USB 3.0 dongles: D-Link DAB-1312 and Edimax EU-4306. Ubuntu 14.04
I should mention that I passed the phase in which the dongles connect to laptop as USB2.0 because on the other side there was not ethernet cable connected. Yes, this happens with both dongles.
Thanks for your support, Bogdan/YO3IIU
_______________________________________________
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
MM
Marcus Müller
Wed, Mar 11, 2015 2:00 PM
is the UHD display filter already in wireshark (which version?) or it
needs to be installed as a patch? More info is be welcomed here.
Um, good question. My version (1.12.3 as installed in Fedora 21) has the
dissector, but you might need to explicitely do "decode as..." on the
packets; I'm sorry, I haven't tested that with actual traffic myself.
Looking at the questions on the list for couple of years back, the Os,
Us, Ss, Ds meaning were always misleading to users and I see now the
confirmation :) I wonder why meaning of those single characters is not
shown as a message when UHD starts.
Actually, you've got a point, but on the other hand, printing
documentation is kind of undesirable for a library (too much chattering
annoys users).
I guess there could be a starting point by having a small
server/client app that shows sequencing/packet loss problems when
doing UDP communication between 2 PCs over the dongles.
Well, that's what iperf/nc can already do. Simulating a USRP down to the
finer aspects of network behaviour is inherently complex (part of the
network handling being spread across different firmwares and FPGA
implementations), so I'd argue that this is not really something that
should be done in the UHD framework.
However, maybe we should canonize our test set ups. What I'm currently
doing is on my laptop, simulating a single threaded, single buffer
application
netstat -s|grep -i udp: -A 6 > before
iperf -u -s -P 1 -p 7000
netstat -s|grep -i udp: -A 6 > after
and on the server here that I randomly have access to (simulating the
data rate of 25MS/s complex 16 bit)
iperf -P4 -c $laptop -u -p7000 -b $(( 25* 1000000 216 ))
which yields:
Client connecting to $laptop, UDP port 7000
Sending 1470 byte datagrams
UDP buffer size: 224 KByte (default)
[ 3] local $server port 56983 connected with $laptop port 7000
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 1001 MBytes 840 Mbits/sec
[ 3] Sent 714285 datagrams
[ 3] Server Report:
[ 3] 0.0-10.0 sec 964 MBytes 808 Mbits/sec 0.022 ms
26851/714284 (3.8%)
[ 3] 0.0-10.0 sec 1 datagrams received out-of-order
I've varied some parameters, but at these rates, I'm constantly getting
a packet loss of 3.7-3.8% for my network hardware. Comparing the
statistics before and after:
diff before after
yields exactly the number of lost packets iperf reports as buffer and as
packet recv errors, so these are things that have reached my card's
driver, but my laptop was unable to process. I blame the aged CPU of my
X201.
Can you try the same?
Greetings,
Marcus
On 03/11/2015 01:10 PM, Bogdan Diaconescu wrote:
Hi Marcus,
is the UHD display filter already in wireshark (which version?) or it
needs to be installed as a patch? More info is be welcomed here.
Looking at the questions on the list for couple of years back, the Os,
Us, Ss, Ds meaning were always misleading to users and I see now the
confirmation :) I wonder why meaning of those single characters is not
shown as a message when UHD starts.
I guess there could be a starting point by having a small
server/client app that shows sequencing/packet loss problems when
doing UDP communication between 2 PCs over the dongles.
Bogdan
On Wednesday, March 11, 2015 10:13 AM, Marcus Müller
marcus.mueller@ettus.com wrote:
You're asking the right question :)
So at this point, you're right, analyzing what goes wrong during
communication sounds wise. I think the tool of choice here is
wireshark, which has an UHD display filter; I haven't used that
myself, though, but from the source code I'd assume it would display
sequence numbers.
I was wrong on "S" being the indication for sequence errors, by the
way [1], so what we'd try to find out would be whether there's dropped
packets or reordered packets or something really goes wrong on the UHD
side.
Greetings,
Marcus
[1] lib/transport/super_recv_packet_handler.hpp:571
https://github.com/EttusResearch/uhd/blob/master/host/lib/transport/super_recv_packet_handler.hpp#L571
On 03/10/2015 11:09 PM, Bogdan Diaconescu wrote:
Ok, so I did several tests with various buffers passed in the uhd_fft
command line:
I tried almost everything in the reference given by you Marcus going
wild from min to max and mostly notable lowering sent_frame_size down
to 100 does reduce a bit the rate of Ds. However, it seems that the
moment when Ds start to appear is delayed because of that but once
they start appearing they continue to increase.
And esentially the Ds are showing up in any situation I tried.
It will be nice to have a test built in FPGA so that once triggered
from the host, it will send known data to the PC allowing testing the
connection.
So, what's next?
On Tuesday, March 10, 2015 7:24 PM, Bogdan Diaconescu
b_diaconescu@yahoo.com mailto:b_diaconescu@yahoo.com wrote:
Hi Marcus,
those dongles are real good ones and they are the winners after
almost 1 years of trial and error with different similar devices. I
so far used them in a non USRP project though
To answer your questions: in a test with iperf (TCP) sending 10Gbit
of data between 2 PCs (consistent at 935Mbit/s) there was no packet
error and retransmission. With wireshark I've seen no TCP
retransmission at all after several tests.
We did also tests with UDP using the same setup and the speed is
about 812Mbit/s which is somehow consistent with the fact that in the
linux kernel TCP is optimized for bulk transfer but UDP is optimized
for low latency. We actually got the same results when using direct
desktop PC-2-PC connections that have onboard 1Gb/s NICs. With the
same OS and kernel versions.
So, all above is w/o USRP, just PC to PC.
Now with USRP: I'll try playing with buffers according to the link
you gave but for 1Msps uhd_fft should work never the less. I haven't
look at VITA and its details but for let's say 64bit/sample over the
wire you only get 64Mbit/sample which is very low and should work
like a charm.
You are right with the difference between packet size over USB vs.
Ethernet. It may be something there.
Played now with UDP Fragmentation Ofload and checksum offload with no
difference, the same problems.
I would take the processing power out of question as the processor is
quite new (broadwell i7 in 14nm).
Thanks,
Bogdan
On Tuesday, March 10, 2015 4:55 PM, Marcus Müller via USRP-users
usrp-users@lists.ettus.com mailto:usrp-users@lists.ettus.com wrote:
Hi Bogdan,
I must admit that I've never seen anyone have much success with
USB-to-ethernet adapters. In fact, you're the one to report the
highest PC-to-PC bandwidth I've heard of, so I'd be interested to
know how many packet errors and dropped packets you saw with iperf.
Also, what is your CPU load whilst doing that rate? Do these adapters
offload checksumming, or is that an additional burden to your CPU?
Depending on your nc/iperf usage, you might have made advantageous
usage of higher-level flow control in TCP; since the USRPs talk UDP
only, there's no possibility to resend packets.
I've actually often seen these adapters simply drop or reorder
packets under load. Whilst a benchmarking tool might be tolerant to
reordering, UHD is not; maybe that's what you're seeing (though you'd
usually see 'S'equence errors instead of 'D's).
You might want to experiment with smaller and bigger packet sizes,
see [1]; the thing is that USB adapters have to cut up the gigabit
ethernet frames (which can be rather long, depending on what your
network hardware supports) into small USB3 packets (which can only be
up to 1KB long), and the CPU then has to reassemble the ethernet
packets. That means a lot of workload, so maybe it's better to
sacrifice a bit of network to overload, but make the UHD sample
packets small enough to fit into one USB packet.
Greetings,
Marcus
[1]
http://files.ettus.com/manual/page_transport.html#transport_udp_params ;
you'd screw around with recv_frame_size, setting it to something like
900 for a start.||
On 03/10/2015 03:33 PM, Bogdan Diaconescu via USRP-users wrote:
Hi list,
I'm a long time user of USRP and now I'm trying to use my setup with
a new laptop that does not have an integrated ethernet card. I am
using for now two types of Ethernet 2 USB adapters that have
1Gbps/USB3.0 characteristics.
Apparently, for PC-to-PC connection using the dongles I can get
around 935Msps speed using iperf or nc which seems just fine.
However, when I do just USRP to PC connection I get many Ds on the
command line just using the simple uhd_fft. Those Ds are shown even
when using a 1Msps rate. They increase when using higher sample rates.
I wonder if someone tried this and had some success.
My set-up is:
Asus ZenBook UX31A (core i7).
Ethernet 1Gbps/USB 3.0 dongles: D-Link DAB-1312 and Edimax EU-4306.
Ubuntu 14.04
I should mention that I passed the phase in which the dongles
connect to laptop as USB2.0 because on the other side there was not
ethernet cable connected. Yes, this happens with both dongles.
Thanks for your support,
Bogdan/YO3IIU
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
Hi Bogdan,
> is the UHD display filter already in wireshark (which version?) or it
> needs to be installed as a patch? More info is be welcomed here.
Um, good question. My version (1.12.3 as installed in Fedora 21) has the
dissector, but you might need to explicitely do "decode as..." on the
packets; I'm sorry, I haven't tested that with actual traffic myself.
> Looking at the questions on the list for couple of years back, the Os,
> Us, Ss, Ds meaning were always misleading to users and I see now the
> confirmation :) I wonder why meaning of those single characters is not
> shown as a message when UHD starts.
Actually, you've got a point, but on the other hand, printing
documentation is kind of undesirable for a library (too much chattering
annoys users).
> I guess there could be a starting point by having a small
> server/client app that shows sequencing/packet loss problems when
> doing UDP communication between 2 PCs over the dongles.
Well, that's what iperf/nc can already do. Simulating a USRP down to the
finer aspects of network behaviour is inherently complex (part of the
network handling being spread across different firmwares and FPGA
implementations), so I'd argue that this is not really something that
should be done in the UHD framework.
However, maybe we should canonize our test set ups. What I'm currently
doing is on my laptop, simulating a single threaded, single buffer
application
netstat -s|grep -i udp: -A 6 > before
iperf -u -s -P 1 -p 7000
netstat -s|grep -i udp: -A 6 > after
and on the server here that I randomly have access to (simulating the
data rate of 25MS/s complex 16 bit)
iperf -P4 -c $laptop -u -p7000 -b $(( 25* 1000000 *2*16 ))
which yields:
------------------------------------------------------------
Client connecting to $laptop, UDP port 7000
Sending 1470 byte datagrams
UDP buffer size: 224 KByte (default)
------------------------------------------------------------
[ 3] local $server port 56983 connected with $laptop port 7000
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 1001 MBytes 840 Mbits/sec
[ 3] Sent 714285 datagrams
[ 3] Server Report:
[ 3] 0.0-10.0 sec 964 MBytes 808 Mbits/sec 0.022 ms
26851/714284 (3.8%)
[ 3] 0.0-10.0 sec 1 datagrams received out-of-order
I've varied some parameters, but at these rates, I'm constantly getting
a packet loss of 3.7-3.8% for my network hardware. Comparing the
statistics before and after:
diff before after
yields exactly the number of lost packets iperf reports as buffer and as
packet recv errors, so these are things that have reached my card's
driver, but my laptop was unable to process. I blame the aged CPU of my
X201.
Can you try the same?
Greetings,
Marcus
On 03/11/2015 01:10 PM, Bogdan Diaconescu wrote:
> Hi Marcus,
>
> is the UHD display filter already in wireshark (which version?) or it
> needs to be installed as a patch? More info is be welcomed here.
>
> Looking at the questions on the list for couple of years back, the Os,
> Us, Ss, Ds meaning were always misleading to users and I see now the
> confirmation :) I wonder why meaning of those single characters is not
> shown as a message when UHD starts.
>
> I guess there could be a starting point by having a small
> server/client app that shows sequencing/packet loss problems when
> doing UDP communication between 2 PCs over the dongles.
>
> Bogdan
>
>
> On Wednesday, March 11, 2015 10:13 AM, Marcus Müller
> <marcus.mueller@ettus.com> wrote:
>
>
>> So, what's next?
> You're asking the right question :)
> So at this point, you're right, analyzing what goes wrong during
> communication sounds wise. I think the tool of choice here is
> wireshark, which has an UHD display filter; I haven't used that
> myself, though, but from the source code I'd assume it would display
> sequence numbers.
>
> I was wrong on "S" being the indication for sequence errors, by the
> way [1], so what we'd try to find out would be whether there's dropped
> packets or reordered packets or something really goes wrong on the UHD
> side.
>
> Greetings,
> Marcus
>
> [1] lib/transport/super_recv_packet_handler.hpp:571
> https://github.com/EttusResearch/uhd/blob/master/host/lib/transport/super_recv_packet_handler.hpp#L571
>
>
> On 03/10/2015 11:09 PM, Bogdan Diaconescu wrote:
>> Ok, so I did several tests with various buffers passed in the uhd_fft
>> command line:
>>
>> I tried almost everything in the reference given by you Marcus going
>> wild from min to max and mostly notable lowering sent_frame_size down
>> to 100 does reduce a bit the rate of Ds. However, it seems that the
>> moment when Ds start to appear is delayed because of that but once
>> they start appearing they continue to increase.
>>
>> And esentially the Ds are showing up in any situation I tried.
>>
>> It will be nice to have a test built in FPGA so that once triggered
>> from the host, it will send known data to the PC allowing testing the
>> connection.
>>
>> So, what's next?
>>
>>
>>
>>
>> On Tuesday, March 10, 2015 7:24 PM, Bogdan Diaconescu
>> <b_diaconescu@yahoo.com> <mailto:b_diaconescu@yahoo.com> wrote:
>>
>>
>> Hi Marcus,
>>
>> those dongles are real good ones and they are the winners after
>> almost 1 years of trial and error with different similar devices. I
>> so far used them in a non USRP project though
>>
>> To answer your questions: in a test with iperf (TCP) sending 10Gbit
>> of data between 2 PCs (consistent at 935Mbit/s) there was no packet
>> error and retransmission. With wireshark I've seen no TCP
>> retransmission at all after several tests.
>>
>> We did also tests with UDP using the same setup and the speed is
>> about 812Mbit/s which is somehow consistent with the fact that in the
>> linux kernel TCP is optimized for bulk transfer but UDP is optimized
>> for low latency. We actually got the same results when using direct
>> desktop PC-2-PC connections that have onboard 1Gb/s NICs. With the
>> same OS and kernel versions.
>>
>> So, all above is w/o USRP, just PC to PC.
>>
>> Now with USRP: I'll try playing with buffers according to the link
>> you gave but for 1Msps uhd_fft should work never the less. I haven't
>> look at VITA and its details but for let's say 64bit/sample over the
>> wire you only get 64Mbit/sample which is very low and should work
>> like a charm.
>>
>> You are right with the difference between packet size over USB vs.
>> Ethernet. It may be something there.
>>
>> Played now with UDP Fragmentation Ofload and checksum offload with no
>> difference, the same problems.
>>
>> I would take the processing power out of question as the processor is
>> quite new (broadwell i7 in 14nm).
>>
>> Thanks,
>> Bogdan
>>
>>
>>
>>
>> On Tuesday, March 10, 2015 4:55 PM, Marcus Müller via USRP-users
>> <usrp-users@lists.ettus.com> <mailto:usrp-users@lists.ettus.com> wrote:
>>
>>
>> Hi Bogdan,
>>
>> I must admit that I've never seen anyone have much success with
>> USB-to-ethernet adapters. In fact, you're the one to report the
>> highest PC-to-PC bandwidth I've heard of, so I'd be interested to
>> know how many packet errors and dropped packets you saw with iperf.
>> Also, what is your CPU load whilst doing that rate? Do these adapters
>> offload checksumming, or is that an additional burden to your CPU?
>>
>> Depending on your nc/iperf usage, you might have made advantageous
>> usage of higher-level flow control in TCP; since the USRPs talk UDP
>> only, there's no possibility to resend packets.
>>
>> I've actually often seen these adapters simply drop or reorder
>> packets under load. Whilst a benchmarking tool might be tolerant to
>> reordering, UHD is not; maybe that's what you're seeing (though you'd
>> usually see 'S'equence errors instead of 'D's).
>>
>> You might want to experiment with smaller and bigger packet sizes,
>> see [1]; the thing is that USB adapters have to cut up the gigabit
>> ethernet frames (which can be rather long, depending on what your
>> network hardware supports) into small USB3 packets (which can only be
>> up to 1KB long), and the CPU then has to reassemble the ethernet
>> packets. That means a lot of workload, so maybe it's better to
>> sacrifice a bit of network to overload, but make the UHD sample
>> packets small enough to fit into one USB packet.
>>
>> Greetings,
>> Marcus
>>
>> [1]
>> http://files.ettus.com/manual/page_transport.html#transport_udp_params ;
>> you'd screw around with recv_frame_size, setting it to something like
>> 900 for a start.||
>>
>> On 03/10/2015 03:33 PM, Bogdan Diaconescu via USRP-users wrote:
>>> Hi list,
>>>
>>> I'm a long time user of USRP and now I'm trying to use my setup with
>>> a new laptop that does not have an integrated ethernet card. I am
>>> using for now two types of Ethernet 2 USB adapters that have
>>> 1Gbps/USB3.0 characteristics.
>>>
>>> Apparently, for PC-to-PC connection using the dongles I can get
>>> around 935Msps speed using iperf or nc which seems just fine.
>>> However, when I do just USRP to PC connection I get many Ds on the
>>> command line just using the simple uhd_fft. Those Ds are shown even
>>> when using a 1Msps rate. They increase when using higher sample rates.
>>>
>>> I wonder if someone tried this and had some success.
>>>
>>> My set-up is:
>>>
>>> Asus ZenBook UX31A (core i7).
>>> Ethernet 1Gbps/USB 3.0 dongles: D-Link DAB-1312 and Edimax EU-4306.
>>> Ubuntu 14.04
>>>
>>> I should mention that I passed the phase in which the dongles
>>> connect to laptop as USB2.0 because on the other side there was not
>>> ethernet cable connected. Yes, this happens with both dongles.
>>>
>>> Thanks for your support,
>>> Bogdan/YO3IIU
>>>
>>>
>>> _______________________________________________
>>> 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
>>
>>
>> _______________________________________________
>> 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
>>
>>
>>
>>
>
>
>
BD
Bogdan Diaconescu
Wed, Mar 11, 2015 3:25 PM
Hi Marcus,
Ok, I checked my wireshark and UHD dissector is there.
You are using 25Msps for testing, this is fine but my problems appear with just 1Msps.
I did 2 type of tests:
- with 25Msps, 10Msps, 1Msps with 1 dongle installed
- with just cable between the two PCs.
See the attached file for results.
The conclusions is that on 25Msps I get some errors with the dongle but I also get errors with just cable back to back. Instead, on 10Msps and 1Msps I do not get any errors in both situations.
I guess on 25Msps there are problems with the NIC card on your PC. I have (not here) an old core i3 computer with 1Gig NIC Intel card that worked for years on 25Msps flawlessly, I haven't seen a D at all.
Regards,
Bogdan
On Wednesday, March 11, 2015 4:01 PM, Marcus Müller marcus.mueller@ettus.com wrote:
Hi Bogdan,
is the UHD display filter already in wireshark (which version?) or it needs to be installed as a patch? More info is be welcomed here.
Um, good question. My version (1.12.3 as installed in Fedora 21) has the dissector, but you might need to explicitely do "decode as..." on the packets; I'm sorry, I haven't tested that with actual traffic myself.
Looking at the questions on the list for couple of years back, the Os, Us, Ss, Ds meaning were always misleading to users and I see now the confirmation :) I wonder why meaning of those single characters is not shown as a message when UHD starts.
Actually, you've got a point, but on the other hand, printing documentation is kind of undesirable for a library (too much chattering annoys users).
I guess there could be a starting point by having a small server/client app that shows sequencing/packet loss problems when doing UDP communication between 2 PCs over the dongles.
Well, that's what iperf/nc can already do. Simulating a USRP down to the finer aspects of network behaviour is inherently complex (part of the network handling being spread across different firmwares and FPGA implementations), so I'd argue that this is not really something that should be done in the UHD framework.
However, maybe we should canonize our test set ups. What I'm currently doing is on my laptop, simulating a single threaded, single buffer application
netstat -s|grep -i udp: -A 6 > before
iperf -u -s -P 1 -p 7000
netstat -s|grep -i udp: -A 6 > after
and on the server here that I randomly have access to (simulating the data rate of 25MS/s complex 16 bit)
iperf -P4 -c $laptop -u -p7000 -b $(( 25* 1000000 216 ))
which yields:
Client connecting to $laptop, UDP port 7000
Sending 1470 byte datagrams
UDP buffer size: 224 KByte (default)
[ 3] local $server port 56983 connected with $laptop port 7000
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 1001 MBytes 840 Mbits/sec
[ 3] Sent 714285 datagrams
[ 3] Server Report:
[ 3] 0.0-10.0 sec 964 MBytes 808 Mbits/sec 0.022 ms 26851/714284 (3.8%)
[ 3] 0.0-10.0 sec 1 datagrams received out-of-order
I've varied some parameters, but at these rates, I'm constantly getting a packet loss of 3.7-3.8% for my network hardware. Comparing the statistics before and after:
diff before after
yields exactly the number of lost packets iperf reports as buffer and as packet recv errors, so these are things that have reached my card's driver, but my laptop was unable to process. I blame the aged CPU of my X201.
Can you try the same?
Greetings,
Marcus
On 03/11/2015 01:10 PM, Bogdan Diaconescu wrote:
Hi Marcus,
is the UHD display filter already in wireshark (which version?) or it needs to be installed as a patch? More info is be welcomed here.
Looking at the questions on the list for couple of years back, the Os, Us, Ss, Ds meaning were always misleading to users and I see now the confirmation :) I wonder why meaning of those single characters is not shown as a message when UHD starts.
I guess there could be a starting point by having a small server/client app that shows sequencing/packet loss problems when doing UDP communication between 2 PCs over the dongles.
Bogdan
On Wednesday, March 11, 2015 10:13 AM, Marcus Müller <marcus.mueller@ettus.com> wrote:
So, what's next?
You're asking the right question :)
So at this point, you're right, analyzing what goes wrong during communication sounds wise. I think the tool of choice here is wireshark, which has an UHD display filter; I haven't used that myself, though, but from the source code I'd assume it would display sequence numbers.
I was wrong on "S" being the indication for sequence errors, by the way [1], so what we'd try to find out would be whether there's dropped packets or reordered packets or something really goes wrong on the UHD side.
Greetings,
Marcus
[1] lib/transport/super_recv_packet_handler.hpp:571
https://github.com/EttusResearch/uhd/blob/master/host/lib/transport/super_recv_packet_handler.hpp#L571
On 03/10/2015 11:09 PM, Bogdan Diaconescu wrote:
Ok, so I did several tests with various buffers passed in the uhd_fft command line:
I tried almost everything in the reference given by you Marcus going wild from min to max and mostly notable lowering sent_frame_size down to 100 does reduce a bit the rate of Ds. However, it seems that the moment when Ds start to appear is delayed because of that but once they start appearing they continue to increase.
And esentially the Ds are showing up in any situation I tried.
It will be nice to have a test built in FPGA so that once triggered from the host, it will send known data to the PC allowing testing the connection.
So, what's next?
On Tuesday, March 10, 2015 7:24 PM, Bogdan Diaconescu <b_diaconescu@yahoo.com> wrote:
Hi Marcus,
those dongles are real good ones and they are the winners after almost 1 years of trial and error with different similar devices. I so far used them in a non USRP project though
To answer your questions: in a test with iperf (TCP) sending 10Gbit of data between 2 PCs (consistent at 935Mbit/s) there was no packet error and retransmission. With wireshark I've seen no TCP retransmission at all after several tests.
We did also tests with UDP using the same setup and the speed is about 812Mbit/s which is somehow consistent with the fact that in the linux kernel TCP is optimized for bulk transfer but UDP is optimized for low latency. We actually got the same results when using direct desktop PC-2-PC connections that have onboard 1Gb/s NICs. With the same OS and kernel versions.
So, all above is w/o USRP, just PC to PC.
Now with USRP: I'll try playing with buffers according to the link you gave but for 1Msps uhd_fft should work never the less. I haven't look at VITA and its details but for let's say 64bit/sample over the wire you only get 64Mbit/sample which is very low and should work like a charm.
You are right with the difference between packet size over USB vs. Ethernet. It may be something there.
Played now with UDP Fragmentation Ofload and checksum offload with no difference, the same problems.
I would take the processing power out of question as the processor is quite new (broadwell i7 in 14nm).
Thanks, Bogdan
On Tuesday, March 10, 2015 4:55 PM, Marcus Müller via USRP-users <usrp-users@lists.ettus.com> wrote:
Hi Bogdan,
I must admit that I've never seen anyone have much success with USB-to-ethernet adapters. In fact, you're the one to report the highest PC-to-PC bandwidth I've heard of, so I'd be interested to know how many packet errors and dropped packets you saw with iperf. Also, what is your CPU load whilst doing that rate? Do these adapters offload checksumming, or is that an additional burden to your CPU?
Depending on your nc/iperf usage, you might have made advantageous usage of higher-level flow control in TCP; since the USRPs talk UDP only, there's no possibility to resend packets.
I've actually often seen these adapters simply drop or reorder packets under load. Whilst a benchmarking tool might be tolerant to reordering, UHD is not; maybe that's what you're seeing (though you'd usually see 'S'equence errors instead of 'D's).
You might want to experiment with smaller and bigger packet sizes, see [1]; the thing is that USB adapters have to cut up the gigabit ethernet frames (which can be rather long, depending on what your network hardware supports) into small USB3 packets (which can only be up to 1KB long), and the CPU then has to reassemble the ethernet packets. That means a lot of workload, so maybe it's better to sacrifice a bit of network to overload, but make the UHD sample packets small enough to fit into one USB packet.
Greetings,
Marcus
[1] http://files.ettus.com/manual/page_transport.html#transport_udp_params ; you'd screw around with recv_frame_size, setting it to something like 900 for a start.
On 03/10/2015 03:33 PM, Bogdan Diaconescu via USRP-users wrote:
Hi list,
I'm a long time user of USRP and now I'm trying to use my setup with a new laptop that does not have an integrated ethernet card. I am using for now two types of Ethernet 2 USB adapters that have 1Gbps/USB3.0 characteristics.
Apparently, for PC-to-PC connection using the dongles I can get around 935Msps speed using iperf or nc which seems just fine. However, when I do just USRP to PC connection I get many Ds on the command line just using the simple uhd_fft. Those Ds are shown even when using a 1Msps rate. They increase when using higher sample rates.
I wonder if someone tried this and had some success.
My set-up is:
Asus ZenBook UX31A (core i7). Ethernet 1Gbps/USB 3.0 dongles: D-Link DAB-1312 and Edimax EU-4306. Ubuntu 14.04
I should mention that I passed the phase in which the dongles connect to laptop as USB2.0 because on the other side there was not ethernet cable connected. Yes, this happens with both dongles.
Thanks for your support, Bogdan/YO3IIU
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
Hi Marcus,
Ok, I checked my wireshark and UHD dissector is there.
You are using 25Msps for testing, this is fine but my problems appear with just 1Msps.
I did 2 type of tests:
1. with 25Msps, 10Msps, 1Msps with 1 dongle installed
2. with just cable between the two PCs.
See the attached file for results.
The conclusions is that on 25Msps I get some errors with the dongle but I also get errors with just cable back to back. Instead, on 10Msps and 1Msps I do not get any errors in both situations.
I guess on 25Msps there are problems with the NIC card on your PC. I have (not here) an old core i3 computer with 1Gig NIC Intel card that worked for years on 25Msps flawlessly, I haven't seen a D at all.
Regards,
Bogdan
On Wednesday, March 11, 2015 4:01 PM, Marcus Müller <marcus.mueller@ettus.com> wrote:
Hi Bogdan,
is the UHD display filter already in wireshark (which version?) or it needs to be installed as a patch? More info is be welcomed here.
Um, good question. My version (1.12.3 as installed in Fedora 21) has the dissector, but you might need to explicitely do "decode as..." on the packets; I'm sorry, I haven't tested that with actual traffic myself.
Looking at the questions on the list for couple of years back, the Os, Us, Ss, Ds meaning were always misleading to users and I see now the confirmation :) I wonder why meaning of those single characters is not shown as a message when UHD starts.
Actually, you've got a point, but on the other hand, printing documentation is kind of undesirable for a library (too much chattering annoys users).
I guess there could be a starting point by having a small server/client app that shows sequencing/packet loss problems when doing UDP communication between 2 PCs over the dongles.
Well, that's what iperf/nc can already do. Simulating a USRP down to the finer aspects of network behaviour is inherently complex (part of the network handling being spread across different firmwares and FPGA implementations), so I'd argue that this is not really something that should be done in the UHD framework.
However, maybe we should canonize our test set ups. What I'm currently doing is on my laptop, simulating a single threaded, single buffer application
netstat -s|grep -i udp: -A 6 > before
iperf -u -s -P 1 -p 7000
netstat -s|grep -i udp: -A 6 > after
and on the server here that I randomly have access to (simulating the data rate of 25MS/s complex 16 bit)
iperf -P4 -c $laptop -u -p7000 -b $(( 25* 1000000 *2*16 ))
which yields:
------------------------------------------------------------
Client connecting to $laptop, UDP port 7000
Sending 1470 byte datagrams
UDP buffer size: 224 KByte (default)
------------------------------------------------------------
[ 3] local $server port 56983 connected with $laptop port 7000
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 1001 MBytes 840 Mbits/sec
[ 3] Sent 714285 datagrams
[ 3] Server Report:
[ 3] 0.0-10.0 sec 964 MBytes 808 Mbits/sec 0.022 ms 26851/714284 (3.8%)
[ 3] 0.0-10.0 sec 1 datagrams received out-of-order
I've varied some parameters, but at these rates, I'm constantly getting a packet loss of 3.7-3.8% for my network hardware. Comparing the statistics before and after:
diff before after
yields exactly the number of lost packets iperf reports as buffer and as packet recv errors, so these are things that have reached my card's driver, but my laptop was unable to process. I blame the aged CPU of my X201.
Can you try the same?
Greetings,
Marcus
On 03/11/2015 01:10 PM, Bogdan Diaconescu wrote:
Hi Marcus,
is the UHD display filter already in wireshark (which version?) or it needs to be installed as a patch? More info is be welcomed here.
Looking at the questions on the list for couple of years back, the Os, Us, Ss, Ds meaning were always misleading to users and I see now the confirmation :) I wonder why meaning of those single characters is not shown as a message when UHD starts.
I guess there could be a starting point by having a small server/client app that shows sequencing/packet loss problems when doing UDP communication between 2 PCs over the dongles.
Bogdan
On Wednesday, March 11, 2015 10:13 AM, Marcus Müller <marcus.mueller@ettus.com> wrote:
So, what's next?
You're asking the right question :)
So at this point, you're right, analyzing what goes wrong during communication sounds wise. I think the tool of choice here is wireshark, which has an UHD display filter; I haven't used that myself, though, but from the source code I'd assume it would display sequence numbers.
I was wrong on "S" being the indication for sequence errors, by the way [1], so what we'd try to find out would be whether there's dropped packets or reordered packets or something really goes wrong on the UHD side.
Greetings,
Marcus
[1] lib/transport/super_recv_packet_handler.hpp:571
https://github.com/EttusResearch/uhd/blob/master/host/lib/transport/super_recv_packet_handler.hpp#L571
On 03/10/2015 11:09 PM, Bogdan Diaconescu wrote:
Ok, so I did several tests with various buffers passed in the uhd_fft command line:
I tried almost everything in the reference given by you Marcus going wild from min to max and mostly notable lowering sent_frame_size down to 100 does reduce a bit the rate of Ds. However, it seems that the moment when Ds start to appear is delayed because of that but once they start appearing they continue to increase.
And esentially the Ds are showing up in any situation I tried.
It will be nice to have a test built in FPGA so that once triggered from the host, it will send known data to the PC allowing testing the connection.
So, what's next?
On Tuesday, March 10, 2015 7:24 PM, Bogdan Diaconescu <b_diaconescu@yahoo.com> wrote:
Hi Marcus,
those dongles are real good ones and they are the winners after almost 1 years of trial and error with different similar devices. I so far used them in a non USRP project though
To answer your questions: in a test with iperf (TCP) sending 10Gbit of data between 2 PCs (consistent at 935Mbit/s) there was no packet error and retransmission. With wireshark I've seen no TCP retransmission at all after several tests.
We did also tests with UDP using the same setup and the speed is about 812Mbit/s which is somehow consistent with the fact that in the linux kernel TCP is optimized for bulk transfer but UDP is optimized for low latency. We actually got the same results when using direct desktop PC-2-PC connections that have onboard 1Gb/s NICs. With the same OS and kernel versions.
So, all above is w/o USRP, just PC to PC.
Now with USRP: I'll try playing with buffers according to the link you gave but for 1Msps uhd_fft should work never the less. I haven't look at VITA and its details but for let's say 64bit/sample over the wire you only get 64Mbit/sample which is very low and should work like a charm.
You are right with the difference between packet size over USB vs. Ethernet. It may be something there.
Played now with UDP Fragmentation Ofload and checksum offload with no difference, the same problems.
I would take the processing power out of question as the processor is quite new (broadwell i7 in 14nm).
Thanks, Bogdan
On Tuesday, March 10, 2015 4:55 PM, Marcus Müller via USRP-users <usrp-users@lists.ettus.com> wrote:
Hi Bogdan,
I must admit that I've never seen anyone have much success with USB-to-ethernet adapters. In fact, you're the one to report the highest PC-to-PC bandwidth I've heard of, so I'd be interested to know how many packet errors and dropped packets you saw with iperf. Also, what is your CPU load whilst doing that rate? Do these adapters offload checksumming, or is that an additional burden to your CPU?
Depending on your nc/iperf usage, you might have made advantageous usage of higher-level flow control in TCP; since the USRPs talk UDP only, there's no possibility to resend packets.
I've actually often seen these adapters simply drop or reorder packets under load. Whilst a benchmarking tool might be tolerant to reordering, UHD is not; maybe that's what you're seeing (though you'd usually see 'S'equence errors instead of 'D's).
You might want to experiment with smaller and bigger packet sizes, see [1]; the thing is that USB adapters have to cut up the gigabit ethernet frames (which can be rather long, depending on what your network hardware supports) into small USB3 packets (which can only be up to 1KB long), and the CPU then has to reassemble the ethernet packets. That means a lot of workload, so maybe it's better to sacrifice a bit of network to overload, but make the UHD sample packets small enough to fit into one USB packet.
Greetings,
Marcus
[1] http://files.ettus.com/manual/page_transport.html#transport_udp_params ; you'd screw around with recv_frame_size, setting it to something like 900 for a start.
On 03/10/2015 03:33 PM, Bogdan Diaconescu via USRP-users wrote:
Hi list,
I'm a long time user of USRP and now I'm trying to use my setup with a new laptop that does not have an integrated ethernet card. I am using for now two types of Ethernet 2 USB adapters that have 1Gbps/USB3.0 characteristics.
Apparently, for PC-to-PC connection using the dongles I can get around 935Msps speed using iperf or nc which seems just fine. However, when I do just USRP to PC connection I get many Ds on the command line just using the simple uhd_fft. Those Ds are shown even when using a 1Msps rate. They increase when using higher sample rates.
I wonder if someone tried this and had some success.
My set-up is:
Asus ZenBook UX31A (core i7). Ethernet 1Gbps/USB 3.0 dongles: D-Link DAB-1312 and Edimax EU-4306. Ubuntu 14.04
I should mention that I passed the phase in which the dongles connect to laptop as USB2.0 because on the other side there was not ethernet cable connected. Yes, this happens with both dongles.
Thanks for your support, Bogdan/YO3IIU
_______________________________________________
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
MM
Marcus Müller
Wed, Mar 11, 2015 3:53 PM
Yeah; I get the same feeling, something's fishy with my NIC; actually,
my Laptop has an i5 and an intel controller, too, so I don't really know
what's going wrong at my end. Anyway, that doesn't really contribute to
solving your issue, so let's leave the poor thing alone.
So the idea is to capture UDP traffic coming from / going to the IP
address of your USRP:
when using wireshark, open the "capture options" dialog, then use "host
XXX.XXX.XXX.XXX && udp" in the "capture filter field" (of course,
replacing XXX with your USRP's IP address). The overall dialog
should/could somewhat like the attached picture.
Then, run a small test (rx_samples_to_file --nsamps 10000 or something,
the minimum amount necessary to get a D), and have a look at the
incoming packets. Maybe you could save the capture, and share it
(compressed?) somehow. I think it would be nice to find out whether
there's reordering or dropping taking place; or if there's simply some
packets that fail checksum checks or so.
Greetings,
Marcus
On 03/11/2015 04:25 PM, Bogdan Diaconescu wrote:
Hi Marcus,
Ok, I checked my wireshark and UHD dissector is there.
You are using 25Msps for testing, this is fine but my problems appear
with just 1Msps.
I did 2 type of tests:
- with 25Msps, 10Msps, 1Msps with 1 dongle installed
- with just cable between the two PCs.
See the attached file for results.
The conclusions is that on 25Msps I get some errors with the dongle
but I also get errors with just cable back to back. Instead, on 10Msps
and 1Msps I do not get any errors in both situations.
I guess on 25Msps there are problems with the NIC card on your PC. I
have (not here) an old core i3 computer with 1Gig NIC Intel card that
worked for years on 25Msps flawlessly, I haven't seen a D at all.
Regards,
Bogdan
On Wednesday, March 11, 2015 4:01 PM, Marcus Müller
marcus.mueller@ettus.com wrote:
Hi Bogdan,
is the UHD display filter already in wireshark (which version?) or it
needs to be installed as a patch? More info is be welcomed here.
Um, good question. My version (1.12.3 as installed in Fedora 21) has
the dissector, but you might need to explicitely do "decode as..." on
the packets; I'm sorry, I haven't tested that with actual traffic myself.
Looking at the questions on the list for couple of years back, the
Os, Us, Ss, Ds meaning were always misleading to users and I see now
the confirmation :) I wonder why meaning of those single characters
is not shown as a message when UHD starts.
Actually, you've got a point, but on the other hand, printing
documentation is kind of undesirable for a library (too much
chattering annoys users).
I guess there could be a starting point by having a small
server/client app that shows sequencing/packet loss problems when
doing UDP communication between 2 PCs over the dongles.
Well, that's what iperf/nc can already do. Simulating a USRP down to
the finer aspects of network behaviour is inherently complex (part of
the network handling being spread across different firmwares and FPGA
implementations), so I'd argue that this is not really something that
should be done in the UHD framework.
However, maybe we should canonize our test set ups. What I'm currently
doing is on my laptop, simulating a single threaded, single buffer
application
netstat -s|grep -i udp: -A 6 > before
iperf -u -s -P 1 -p 7000
netstat -s|grep -i udp: -A 6 > after
and on the server here that I randomly have access to (simulating the
data rate of 25MS/s complex 16 bit)
iperf -P4 -c $laptop -u -p7000 -b $(( 25* 1000000 216 ))
which yields:
Client connecting to $laptop, UDP port 7000
Sending 1470 byte datagrams
UDP buffer size: 224 KByte (default)
[ 3] local $server port 56983 connected with $laptop port 7000
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 1001 MBytes 840 Mbits/sec
[ 3] Sent 714285 datagrams
[ 3] Server Report:
[ 3] 0.0-10.0 sec 964 MBytes 808 Mbits/sec 0.022 ms
26851/714284 (3.8%)
[ 3] 0.0-10.0 sec 1 datagrams received out-of-order
I've varied some parameters, but at these rates, I'm constantly
getting a packet loss of 3.7-3.8% for my network hardware. Comparing
the statistics before and after:
diff before after
yields exactly the number of lost packets iperf reports as buffer and
as packet recv errors, so these are things that have reached my card's
driver, but my laptop was unable to process. I blame the aged CPU of
my X201.
Can you try the same?
Greetings,
Marcus
On 03/11/2015 01:10 PM, Bogdan Diaconescu wrote:
Hi Marcus,
is the UHD display filter already in wireshark (which version?) or it
needs to be installed as a patch? More info is be welcomed here.
Looking at the questions on the list for couple of years back, the
Os, Us, Ss, Ds meaning were always misleading to users and I see now
the confirmation :) I wonder why meaning of those single characters
is not shown as a message when UHD starts.
I guess there could be a starting point by having a small
server/client app that shows sequencing/packet loss problems when
doing UDP communication between 2 PCs over the dongles.
Bogdan
On Wednesday, March 11, 2015 10:13 AM, Marcus Müller
marcus.mueller@ettus.com mailto:marcus.mueller@ettus.com wrote:
You're asking the right question :)
So at this point, you're right, analyzing what goes wrong during
communication sounds wise. I think the tool of choice here is
wireshark, which has an UHD display filter; I haven't used that
myself, though, but from the source code I'd assume it would display
sequence numbers.
I was wrong on "S" being the indication for sequence errors, by the
way [1], so what we'd try to find out would be whether there's
dropped packets or reordered packets or something really goes wrong
on the UHD side.
Greetings,
Marcus
[1] lib/transport/super_recv_packet_handler.hpp:571
https://github.com/EttusResearch/uhd/blob/master/host/lib/transport/super_recv_packet_handler.hpp#L571
On 03/10/2015 11:09 PM, Bogdan Diaconescu wrote:
Ok, so I did several tests with various buffers passed in the
uhd_fft command line:
I tried almost everything in the reference given by you Marcus going
wild from min to max and mostly notable lowering sent_frame_size
down to 100 does reduce a bit the rate of Ds. However, it seems that
the moment when Ds start to appear is delayed because of that but
once they start appearing they continue to increase.
And esentially the Ds are showing up in any situation I tried.
It will be nice to have a test built in FPGA so that once triggered
from the host, it will send known data to the PC allowing testing
the connection.
So, what's next?
On Tuesday, March 10, 2015 7:24 PM, Bogdan Diaconescu
b_diaconescu@yahoo.com mailto:b_diaconescu@yahoo.com wrote:
Hi Marcus,
those dongles are real good ones and they are the winners after
almost 1 years of trial and error with different similar devices. I
so far used them in a non USRP project though
To answer your questions: in a test with iperf (TCP) sending 10Gbit
of data between 2 PCs (consistent at 935Mbit/s) there was no packet
error and retransmission. With wireshark I've seen no TCP
retransmission at all after several tests.
We did also tests with UDP using the same setup and the speed is
about 812Mbit/s which is somehow consistent with the fact that in
the linux kernel TCP is optimized for bulk transfer but UDP is
optimized for low latency. We actually got the same results when
using direct desktop PC-2-PC connections that have onboard 1Gb/s
NICs. With the same OS and kernel versions.
So, all above is w/o USRP, just PC to PC.
Now with USRP: I'll try playing with buffers according to the link
you gave but for 1Msps uhd_fft should work never the less. I haven't
look at VITA and its details but for let's say 64bit/sample over the
wire you only get 64Mbit/sample which is very low and should work
like a charm.
You are right with the difference between packet size over USB vs.
Ethernet. It may be something there.
Played now with UDP Fragmentation Ofload and checksum offload with
no difference, the same problems.
I would take the processing power out of question as the processor
is quite new (broadwell i7 in 14nm).
Thanks,
Bogdan
On Tuesday, March 10, 2015 4:55 PM, Marcus Müller via USRP-users
usrp-users@lists.ettus.com mailto:usrp-users@lists.ettus.com wrote:
Hi Bogdan,
I must admit that I've never seen anyone have much success with
USB-to-ethernet adapters. In fact, you're the one to report the
highest PC-to-PC bandwidth I've heard of, so I'd be interested to
know how many packet errors and dropped packets you saw with iperf.
Also, what is your CPU load whilst doing that rate? Do these
adapters offload checksumming, or is that an additional burden to
your CPU?
Depending on your nc/iperf usage, you might have made advantageous
usage of higher-level flow control in TCP; since the USRPs talk UDP
only, there's no possibility to resend packets.
I've actually often seen these adapters simply drop or reorder
packets under load. Whilst a benchmarking tool might be tolerant to
reordering, UHD is not; maybe that's what you're seeing (though
you'd usually see 'S'equence errors instead of 'D's).
You might want to experiment with smaller and bigger packet sizes,
see [1]; the thing is that USB adapters have to cut up the gigabit
ethernet frames (which can be rather long, depending on what your
network hardware supports) into small USB3 packets (which can only
be up to 1KB long), and the CPU then has to reassemble the ethernet
packets. That means a lot of workload, so maybe it's better to
sacrifice a bit of network to overload, but make the UHD sample
packets small enough to fit into one USB packet.
Greetings,
Marcus
[1]
http://files.ettus.com/manual/page_transport.html#transport_udp_params
; you'd screw around with recv_frame_size, setting it to something
like 900 for a start.||
On 03/10/2015 03:33 PM, Bogdan Diaconescu via USRP-users wrote:
Hi list,
I'm a long time user of USRP and now I'm trying to use my setup
with a new laptop that does not have an integrated ethernet card. I
am using for now two types of Ethernet 2 USB adapters that have
1Gbps/USB3.0 characteristics.
Apparently, for PC-to-PC connection using the dongles I can get
around 935Msps speed using iperf or nc which seems just fine.
However, when I do just USRP to PC connection I get many Ds on the
command line just using the simple uhd_fft. Those Ds are shown even
when using a 1Msps rate. They increase when using higher sample rates.
I wonder if someone tried this and had some success.
My set-up is:
Asus ZenBook UX31A (core i7).
Ethernet 1Gbps/USB 3.0 dongles: D-Link DAB-1312 and Edimax EU-4306.
Ubuntu 14.04
I should mention that I passed the phase in which the dongles
connect to laptop as USB2.0 because on the other side there was not
ethernet cable connected. Yes, this happens with both dongles.
Thanks for your support,
Bogdan/YO3IIU
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
Yeah; I get the same feeling, something's fishy with my NIC; actually,
my Laptop has an i5 and an intel controller, too, so I don't really know
what's going wrong at my end. Anyway, that doesn't really contribute to
solving your issue, so let's leave the poor thing alone.
So the idea is to capture UDP traffic coming from / going to the IP
address of your USRP:
when using wireshark, open the "capture options" dialog, then use "host
XXX.XXX.XXX.XXX && udp" in the "capture filter field" (of course,
replacing XXX with your USRP's IP address). The overall dialog
should/could somewhat like the attached picture.
Then, run a small test (rx_samples_to_file --nsamps 10000 or something,
the minimum amount necessary to get a D), and have a look at the
incoming packets. Maybe you could save the capture, and share it
(compressed?) somehow. I think it would be nice to find out whether
there's reordering or dropping taking place; or if there's simply some
packets that fail checksum checks or so.
Greetings,
Marcus
On 03/11/2015 04:25 PM, Bogdan Diaconescu wrote:
> Hi Marcus,
>
> Ok, I checked my wireshark and UHD dissector is there.
>
> You are using 25Msps for testing, this is fine but my problems appear
> with just 1Msps.
>
> I did 2 type of tests:
>
> 1. with 25Msps, 10Msps, 1Msps with 1 dongle installed
> 2. with just cable between the two PCs.
>
> See the attached file for results.
>
> The conclusions is that on 25Msps I get some errors with the dongle
> but I also get errors with just cable back to back. Instead, on 10Msps
> and 1Msps I do not get any errors in both situations.
>
> I guess on 25Msps there are problems with the NIC card on your PC. I
> have (not here) an old core i3 computer with 1Gig NIC Intel card that
> worked for years on 25Msps flawlessly, I haven't seen a D at all.
>
> Regards,
> Bogdan
> On Wednesday, March 11, 2015 4:01 PM, Marcus Müller
> <marcus.mueller@ettus.com> wrote:
>
>
> Hi Bogdan,
>
>> is the UHD display filter already in wireshark (which version?) or it
>> needs to be installed as a patch? More info is be welcomed here.
> Um, good question. My version (1.12.3 as installed in Fedora 21) has
> the dissector, but you might need to explicitely do "decode as..." on
> the packets; I'm sorry, I haven't tested that with actual traffic myself.
>
>> Looking at the questions on the list for couple of years back, the
>> Os, Us, Ss, Ds meaning were always misleading to users and I see now
>> the confirmation :) I wonder why meaning of those single characters
>> is not shown as a message when UHD starts.
> Actually, you've got a point, but on the other hand, printing
> documentation is kind of undesirable for a library (too much
> chattering annoys users).
>
>> I guess there could be a starting point by having a small
>> server/client app that shows sequencing/packet loss problems when
>> doing UDP communication between 2 PCs over the dongles.
> Well, that's what iperf/nc can already do. Simulating a USRP down to
> the finer aspects of network behaviour is inherently complex (part of
> the network handling being spread across different firmwares and FPGA
> implementations), so I'd argue that this is not really something that
> should be done in the UHD framework.
>
> However, maybe we should canonize our test set ups. What I'm currently
> doing is on my laptop, simulating a single threaded, single buffer
> application
>
> netstat -s|grep -i udp: -A 6 > before
> iperf -u -s -P 1 -p 7000
> netstat -s|grep -i udp: -A 6 > after
>
> and on the server here that I randomly have access to (simulating the
> data rate of 25MS/s complex 16 bit)
>
> iperf -P4 -c $laptop -u -p7000 -b $(( 25* 1000000 *2*16 ))
>
> which yields:
>
> ------------------------------------------------------------
> Client connecting to $laptop, UDP port 7000
> Sending 1470 byte datagrams
> UDP buffer size: 224 KByte (default)
> ------------------------------------------------------------
> [ 3] local $server port 56983 connected with $laptop port 7000
> [ ID] Interval Transfer Bandwidth
> [ 3] 0.0-10.0 sec 1001 MBytes 840 Mbits/sec
> [ 3] Sent 714285 datagrams
> [ 3] Server Report:
> [ 3] 0.0-10.0 sec 964 MBytes 808 Mbits/sec 0.022 ms
> 26851/714284 (3.8%)
> [ 3] 0.0-10.0 sec 1 datagrams received out-of-order
>
> I've varied some parameters, but at these rates, I'm constantly
> getting a packet loss of 3.7-3.8% for my network hardware. Comparing
> the statistics before and after:
>
> diff before after
>
> yields exactly the number of lost packets iperf reports as buffer and
> as packet recv errors, so these are things that have reached my card's
> driver, but my laptop was unable to process. I blame the aged CPU of
> my X201.
>
> Can you try the same?
>
> Greetings,
> Marcus
>
>
> On 03/11/2015 01:10 PM, Bogdan Diaconescu wrote:
>> Hi Marcus,
>>
>> is the UHD display filter already in wireshark (which version?) or it
>> needs to be installed as a patch? More info is be welcomed here.
>>
>> Looking at the questions on the list for couple of years back, the
>> Os, Us, Ss, Ds meaning were always misleading to users and I see now
>> the confirmation :) I wonder why meaning of those single characters
>> is not shown as a message when UHD starts.
>>
>> I guess there could be a starting point by having a small
>> server/client app that shows sequencing/packet loss problems when
>> doing UDP communication between 2 PCs over the dongles.
>>
>> Bogdan
>>
>>
>> On Wednesday, March 11, 2015 10:13 AM, Marcus Müller
>> <marcus.mueller@ettus.com> <mailto:marcus.mueller@ettus.com> wrote:
>>
>>
>>> So, what's next?
>> You're asking the right question :)
>> So at this point, you're right, analyzing what goes wrong during
>> communication sounds wise. I think the tool of choice here is
>> wireshark, which has an UHD display filter; I haven't used that
>> myself, though, but from the source code I'd assume it would display
>> sequence numbers.
>>
>> I was wrong on "S" being the indication for sequence errors, by the
>> way [1], so what we'd try to find out would be whether there's
>> dropped packets or reordered packets or something really goes wrong
>> on the UHD side.
>>
>> Greetings,
>> Marcus
>>
>> [1] lib/transport/super_recv_packet_handler.hpp:571
>> https://github.com/EttusResearch/uhd/blob/master/host/lib/transport/super_recv_packet_handler.hpp#L571
>>
>>
>> On 03/10/2015 11:09 PM, Bogdan Diaconescu wrote:
>>> Ok, so I did several tests with various buffers passed in the
>>> uhd_fft command line:
>>>
>>> I tried almost everything in the reference given by you Marcus going
>>> wild from min to max and mostly notable lowering sent_frame_size
>>> down to 100 does reduce a bit the rate of Ds. However, it seems that
>>> the moment when Ds start to appear is delayed because of that but
>>> once they start appearing they continue to increase.
>>>
>>> And esentially the Ds are showing up in any situation I tried.
>>>
>>> It will be nice to have a test built in FPGA so that once triggered
>>> from the host, it will send known data to the PC allowing testing
>>> the connection.
>>>
>>> So, what's next?
>>>
>>>
>>>
>>>
>>> On Tuesday, March 10, 2015 7:24 PM, Bogdan Diaconescu
>>> <b_diaconescu@yahoo.com> <mailto:b_diaconescu@yahoo.com> wrote:
>>>
>>>
>>> Hi Marcus,
>>>
>>> those dongles are real good ones and they are the winners after
>>> almost 1 years of trial and error with different similar devices. I
>>> so far used them in a non USRP project though
>>>
>>> To answer your questions: in a test with iperf (TCP) sending 10Gbit
>>> of data between 2 PCs (consistent at 935Mbit/s) there was no packet
>>> error and retransmission. With wireshark I've seen no TCP
>>> retransmission at all after several tests.
>>>
>>> We did also tests with UDP using the same setup and the speed is
>>> about 812Mbit/s which is somehow consistent with the fact that in
>>> the linux kernel TCP is optimized for bulk transfer but UDP is
>>> optimized for low latency. We actually got the same results when
>>> using direct desktop PC-2-PC connections that have onboard 1Gb/s
>>> NICs. With the same OS and kernel versions.
>>>
>>> So, all above is w/o USRP, just PC to PC.
>>>
>>> Now with USRP: I'll try playing with buffers according to the link
>>> you gave but for 1Msps uhd_fft should work never the less. I haven't
>>> look at VITA and its details but for let's say 64bit/sample over the
>>> wire you only get 64Mbit/sample which is very low and should work
>>> like a charm.
>>>
>>> You are right with the difference between packet size over USB vs.
>>> Ethernet. It may be something there.
>>>
>>> Played now with UDP Fragmentation Ofload and checksum offload with
>>> no difference, the same problems.
>>>
>>> I would take the processing power out of question as the processor
>>> is quite new (broadwell i7 in 14nm).
>>>
>>> Thanks,
>>> Bogdan
>>>
>>>
>>>
>>>
>>> On Tuesday, March 10, 2015 4:55 PM, Marcus Müller via USRP-users
>>> <usrp-users@lists.ettus.com> <mailto:usrp-users@lists.ettus.com> wrote:
>>>
>>>
>>> Hi Bogdan,
>>>
>>> I must admit that I've never seen anyone have much success with
>>> USB-to-ethernet adapters. In fact, you're the one to report the
>>> highest PC-to-PC bandwidth I've heard of, so I'd be interested to
>>> know how many packet errors and dropped packets you saw with iperf.
>>> Also, what is your CPU load whilst doing that rate? Do these
>>> adapters offload checksumming, or is that an additional burden to
>>> your CPU?
>>>
>>> Depending on your nc/iperf usage, you might have made advantageous
>>> usage of higher-level flow control in TCP; since the USRPs talk UDP
>>> only, there's no possibility to resend packets.
>>>
>>> I've actually often seen these adapters simply drop or reorder
>>> packets under load. Whilst a benchmarking tool might be tolerant to
>>> reordering, UHD is not; maybe that's what you're seeing (though
>>> you'd usually see 'S'equence errors instead of 'D's).
>>>
>>> You might want to experiment with smaller and bigger packet sizes,
>>> see [1]; the thing is that USB adapters have to cut up the gigabit
>>> ethernet frames (which can be rather long, depending on what your
>>> network hardware supports) into small USB3 packets (which can only
>>> be up to 1KB long), and the CPU then has to reassemble the ethernet
>>> packets. That means a lot of workload, so maybe it's better to
>>> sacrifice a bit of network to overload, but make the UHD sample
>>> packets small enough to fit into one USB packet.
>>>
>>> Greetings,
>>> Marcus
>>>
>>> [1]
>>> http://files.ettus.com/manual/page_transport.html#transport_udp_params
>>> ; you'd screw around with recv_frame_size, setting it to something
>>> like 900 for a start.||
>>>
>>> On 03/10/2015 03:33 PM, Bogdan Diaconescu via USRP-users wrote:
>>>> Hi list,
>>>>
>>>> I'm a long time user of USRP and now I'm trying to use my setup
>>>> with a new laptop that does not have an integrated ethernet card. I
>>>> am using for now two types of Ethernet 2 USB adapters that have
>>>> 1Gbps/USB3.0 characteristics.
>>>>
>>>> Apparently, for PC-to-PC connection using the dongles I can get
>>>> around 935Msps speed using iperf or nc which seems just fine.
>>>> However, when I do just USRP to PC connection I get many Ds on the
>>>> command line just using the simple uhd_fft. Those Ds are shown even
>>>> when using a 1Msps rate. They increase when using higher sample rates.
>>>>
>>>> I wonder if someone tried this and had some success.
>>>>
>>>> My set-up is:
>>>>
>>>> Asus ZenBook UX31A (core i7).
>>>> Ethernet 1Gbps/USB 3.0 dongles: D-Link DAB-1312 and Edimax EU-4306.
>>>> Ubuntu 14.04
>>>>
>>>> I should mention that I passed the phase in which the dongles
>>>> connect to laptop as USB2.0 because on the other side there was not
>>>> ethernet cable connected. Yes, this happens with both dongles.
>>>>
>>>> Thanks for your support,
>>>> Bogdan/YO3IIU
>>>>
>>>>
>>>> _______________________________________________
>>>> 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
>>>
>>>
>>> _______________________________________________
>>> 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
>>>
>>>
>>>
>>>
>>
>>
>>
>
>
>
IB
Ian Buckley
Wed, Mar 11, 2015 6:02 PM
S is most definitely a sequence error….but on TX….note a sequence error can indicate 2 things packet re-ordering or lost packet.
D is the equivalent RX direction error.
Ok, so I did several tests with various buffers passed in the uhd_fft command line:
I tried almost everything in the reference given by you Marcus going wild from min to max and mostly notable lowering sent_frame_size down to 100 does reduce a bit the rate of Ds. However, it seems that the moment when Ds start to appear is delayed because of that but once they start appearing they continue to increase.
And esentially the Ds are showing up in any situation I tried.
It will be nice to have a test built in FPGA so that once triggered from the host, it will send known data to the PC allowing testing the connection.
So, what's next?
On Tuesday, March 10, 2015 7:24 PM, Bogdan Diaconescu b_diaconescu@yahoo.com wrote:
Hi Marcus,
those dongles are real good ones and they are the winners after almost 1 years of trial and error with different similar devices. I so far used them in a non USRP project though
To answer your questions: in a test with iperf (TCP) sending 10Gbit of data between 2 PCs (consistent at 935Mbit/s) there was no packet error and retransmission. With wireshark I've seen no TCP retransmission at all after several tests.
We did also tests with UDP using the same setup and the speed is about 812Mbit/s which is somehow consistent with the fact that in the linux kernel TCP is optimized for bulk transfer but UDP is optimized for low latency. We actually got the same results when using direct desktop PC-2-PC connections that have onboard 1Gb/s NICs. With the same OS and kernel versions.
So, all above is w/o USRP, just PC to PC.
Now with USRP: I'll try playing with buffers according to the link you gave but for 1Msps uhd_fft should work never the less. I haven't look at VITA and its details but for let's say 64bit/sample over the wire you only get 64Mbit/sample which is very low and should work like a charm.
You are right with the difference between packet size over USB vs. Ethernet. It may be something there.
Played now with UDP Fragmentation Ofload and checksum offload with no difference, the same problems.
I would take the processing power out of question as the processor is quite new (broadwell i7 in 14nm).
Thanks,
Bogdan
On Tuesday, March 10, 2015 4:55 PM, Marcus Müller via USRP-users usrp-users@lists.ettus.com wrote:
Hi Bogdan,
I must admit that I've never seen anyone have much success with USB-to-ethernet adapters. In fact, you're the one to report the highest PC-to-PC bandwidth I've heard of, so I'd be interested to know how many packet errors and dropped packets you saw with iperf. Also, what is your CPU load whilst doing that rate? Do these adapters offload checksumming, or is that an additional burden to your CPU?
Depending on your nc/iperf usage, you might have made advantageous usage of higher-level flow control in TCP; since the USRPs talk UDP only, there's no possibility to resend packets.
I've actually often seen these adapters simply drop or reorder packets under load. Whilst a benchmarking tool might be tolerant to reordering, UHD is not; maybe that's what you're seeing (though you'd usually see 'S'equence errors instead of 'D's).
You might want to experiment with smaller and bigger packet sizes, see [1]; the thing is that USB adapters have to cut up the gigabit ethernet frames (which can be rather long, depending on what your network hardware supports) into small USB3 packets (which can only be up to 1KB long), and the CPU then has to reassemble the ethernet packets. That means a lot of workload, so maybe it's better to sacrifice a bit of network to overload, but make the UHD sample packets small enough to fit into one USB packet.
Greetings,
Marcus
[1] http://files.ettus.com/manual/page_transport.html#transport_udp_params ; you'd screw around with recv_frame_size, setting it to something like 900 for a start.
On 03/10/2015 03:33 PM, Bogdan Diaconescu via USRP-users wrote:
Hi list,
I'm a long time user of USRP and now I'm trying to use my setup with a new laptop that does not have an integrated ethernet card. I am using for now two types of Ethernet 2 USB adapters that have 1Gbps/USB3.0 characteristics.
Apparently, for PC-to-PC connection using the dongles I can get around 935Msps speed using iperf or nc which seems just fine. However, when I do just USRP to PC connection I get many Ds on the command line just using the simple uhd_fft. Those Ds are shown even when using a 1Msps rate. They increase when using higher sample rates.
I wonder if someone tried this and had some success.
My set-up is:
Asus ZenBook UX31A (core i7).
Ethernet 1Gbps/USB 3.0 dongles: D-Link DAB-1312 and Edimax EU-4306.
Ubuntu 14.04
I should mention that I passed the phase in which the dongles connect to laptop as USB2.0 because on the other side there was not ethernet cable connected. Yes, this happens with both dongles.
Thanks for your support,
Bogdan/YO3IIU
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
S is most definitely a sequence error….but on TX….note a sequence error can indicate 2 things packet re-ordering or lost packet.
D is the equivalent RX direction error.
>
>
> I was wrong on "S" being the indication for sequence errors, by the way [1], so what we'd try to find out would be whether there's dropped packets or reordered packets or something really goes wrong on the UHD side.
>
> Greetings,
> Marcus
>
> [1] lib/transport/super_recv_packet_handler.hpp:571
> https://github.com/EttusResearch/uhd/blob/master/host/lib/transport/super_recv_packet_handler.hpp#L571
>
>
> On 03/10/2015 11:09 PM, Bogdan Diaconescu wrote:
>> Ok, so I did several tests with various buffers passed in the uhd_fft command line:
>>
>> I tried almost everything in the reference given by you Marcus going wild from min to max and mostly notable lowering sent_frame_size down to 100 does reduce a bit the rate of Ds. However, it seems that the moment when Ds start to appear is delayed because of that but once they start appearing they continue to increase.
>>
>> And esentially the Ds are showing up in any situation I tried.
>>
>> It will be nice to have a test built in FPGA so that once triggered from the host, it will send known data to the PC allowing testing the connection.
>>
>> So, what's next?
>>
>>
>>
>>
>> On Tuesday, March 10, 2015 7:24 PM, Bogdan Diaconescu <b_diaconescu@yahoo.com> wrote:
>>
>>
>> Hi Marcus,
>>
>> those dongles are real good ones and they are the winners after almost 1 years of trial and error with different similar devices. I so far used them in a non USRP project though
>>
>> To answer your questions: in a test with iperf (TCP) sending 10Gbit of data between 2 PCs (consistent at 935Mbit/s) there was no packet error and retransmission. With wireshark I've seen no TCP retransmission at all after several tests.
>>
>> We did also tests with UDP using the same setup and the speed is about 812Mbit/s which is somehow consistent with the fact that in the linux kernel TCP is optimized for bulk transfer but UDP is optimized for low latency. We actually got the same results when using direct desktop PC-2-PC connections that have onboard 1Gb/s NICs. With the same OS and kernel versions.
>>
>> So, all above is w/o USRP, just PC to PC.
>>
>> Now with USRP: I'll try playing with buffers according to the link you gave but for 1Msps uhd_fft should work never the less. I haven't look at VITA and its details but for let's say 64bit/sample over the wire you only get 64Mbit/sample which is very low and should work like a charm.
>>
>> You are right with the difference between packet size over USB vs. Ethernet. It may be something there.
>>
>> Played now with UDP Fragmentation Ofload and checksum offload with no difference, the same problems.
>>
>> I would take the processing power out of question as the processor is quite new (broadwell i7 in 14nm).
>>
>> Thanks,
>> Bogdan
>>
>>
>>
>>
>> On Tuesday, March 10, 2015 4:55 PM, Marcus Müller via USRP-users <usrp-users@lists.ettus.com> wrote:
>>
>>
>> Hi Bogdan,
>>
>> I must admit that I've never seen anyone have much success with USB-to-ethernet adapters. In fact, you're the one to report the highest PC-to-PC bandwidth I've heard of, so I'd be interested to know how many packet errors and dropped packets you saw with iperf. Also, what is your CPU load whilst doing that rate? Do these adapters offload checksumming, or is that an additional burden to your CPU?
>>
>> Depending on your nc/iperf usage, you might have made advantageous usage of higher-level flow control in TCP; since the USRPs talk UDP only, there's no possibility to resend packets.
>>
>> I've actually often seen these adapters simply drop or reorder packets under load. Whilst a benchmarking tool might be tolerant to reordering, UHD is not; maybe that's what you're seeing (though you'd usually see 'S'equence errors instead of 'D's).
>>
>> You might want to experiment with smaller and bigger packet sizes, see [1]; the thing is that USB adapters have to cut up the gigabit ethernet frames (which can be rather long, depending on what your network hardware supports) into small USB3 packets (which can only be up to 1KB long), and the CPU then has to reassemble the ethernet packets. That means a lot of workload, so maybe it's better to sacrifice a bit of network to overload, but make the UHD sample packets small enough to fit into one USB packet.
>>
>> Greetings,
>> Marcus
>>
>> [1] http://files.ettus.com/manual/page_transport.html#transport_udp_params ; you'd screw around with recv_frame_size, setting it to something like 900 for a start.
>>
>> On 03/10/2015 03:33 PM, Bogdan Diaconescu via USRP-users wrote:
>>> Hi list,
>>>
>>> I'm a long time user of USRP and now I'm trying to use my setup with a new laptop that does not have an integrated ethernet card. I am using for now two types of Ethernet 2 USB adapters that have 1Gbps/USB3.0 characteristics.
>>>
>>> Apparently, for PC-to-PC connection using the dongles I can get around 935Msps speed using iperf or nc which seems just fine. However, when I do just USRP to PC connection I get many Ds on the command line just using the simple uhd_fft. Those Ds are shown even when using a 1Msps rate. They increase when using higher sample rates.
>>>
>>> I wonder if someone tried this and had some success.
>>>
>>> My set-up is:
>>>
>>> Asus ZenBook UX31A (core i7).
>>> Ethernet 1Gbps/USB 3.0 dongles: D-Link DAB-1312 and Edimax EU-4306.
>>> Ubuntu 14.04
>>>
>>> I should mention that I passed the phase in which the dongles connect to laptop as USB2.0 because on the other side there was not ethernet cable connected. Yes, this happens with both dongles.
>>>
>>> Thanks for your support,
>>> Bogdan/YO3IIU
>>>
>>>
>>> _______________________________________________
>>> 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
>>
>>
>>
>>
>
> _______________________________________________
> USRP-users mailing list
> USRP-users@lists.ettus.com
> http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
BD
Bogdan Diaconescu
Wed, Mar 11, 2015 8:27 PM
Thanks Ian, good to know that D is for both reordering and missing packets.
Now, I did a wireshark capture for a spectrum capture with 1Ghz frequency and 1Msps until I saw severals Ds on command line.
I attach a screenshot of the packet decoding which looks ugly and perhaps tells that my wireshark v1.10.x, the default in Ubuntu 14.04, is old. I'm I right here?
I wonder if the 1516 frame size that I see is good for UHD?
I will put the pcap and spectrum record on a server in the wild tomorrow mornig.
Thanks,
Bogdan
On Wednesday, March 11, 2015 8:02 PM, Ian Buckley <ianb@ionconcepts.com> wrote:
S is most definitely a sequence error….but on TX….note a sequence error can indicate 2 things packet re-ordering or lost packet.D is the equivalent RX direction error.
I was wrong on "S" being the indication for sequence errors, by the way [1], so what we'd try to find out would be whether there's dropped packets or reordered packets or something really goes wrong on the UHD side.
Greetings,
Marcus
[1] lib/transport/super_recv_packet_handler.hpp:571
https://github.com/EttusResearch/uhd/blob/master/host/lib/transport/super_recv_packet_handler.hpp#L571
On 03/10/2015 11:09 PM, Bogdan Diaconescu wrote:
Ok, so I did several tests with various buffers passed in the uhd_fft command line:
I tried almost everything in the reference given by you Marcus going wild from min to max and mostly notable lowering sent_frame_size down to 100 does reduce a bit the rate of Ds. However, it seems that the moment when Ds start to appear is delayed because of that but once they start appearing they continue to increase.
And esentially the Ds are showing up in any situation I tried.
It will be nice to have a test built in FPGA so that once triggered from the host, it will send known data to the PC allowing testing the connection.
So, what's next?
On Tuesday, March 10, 2015 7:24 PM, Bogdan Diaconescu <b_diaconescu@yahoo.com> wrote:
Hi Marcus,
those dongles are real good ones and they are the winners after almost 1 years of trial and error with different similar devices. I so far used them in a non USRP project though
To answer your questions: in a test with iperf (TCP) sending 10Gbit of data between 2 PCs (consistent at 935Mbit/s) there was no packet error and retransmission. With wireshark I've seen no TCP retransmission at all after several tests.
We did also tests with UDP using the same setup and the speed is about 812Mbit/s which is somehow consistent with the fact that in the linux kernel TCP is optimized for bulk transfer but UDP is optimized for low latency. We actually got the same results when using direct desktop PC-2-PC connections that have onboard 1Gb/s NICs. With the same OS and kernel versions.
So, all above is w/o USRP, just PC to PC.
Now with USRP: I'll try playing with buffers according to the link you gave but for 1Msps uhd_fft should work never the less. I haven't look at VITA and its details but for let's say 64bit/sample over the wire you only get 64Mbit/sample which is very low and should work like a charm.
You are right with the difference between packet size over USB vs. Ethernet. It may be something there.
Played now with UDP Fragmentation Ofload and checksum offload with no difference, the same problems.
I would take the processing power out of question as the processor is quite new (broadwell i7 in 14nm).
Thanks, Bogdan
On Tuesday, March 10, 2015 4:55 PM, Marcus Müller via USRP-users <usrp-users@lists.ettus.com> wrote:
Hi Bogdan,
I must admit that I've never seen anyone have much success with USB-to-ethernet adapters. In fact, you're the one to report the highest PC-to-PC bandwidth I've heard of, so I'd be interested to know how many packet errors and dropped packets you saw with iperf. Also, what is your CPU load whilst doing that rate? Do these adapters offload checksumming, or is that an additional burden to your CPU?
Depending on your nc/iperf usage, you might have made advantageous usage of higher-level flow control in TCP; since the USRPs talk UDP only, there's no possibility to resend packets.
I've actually often seen these adapters simply drop or reorder packets under load. Whilst a benchmarking tool might be tolerant to reordering, UHD is not; maybe that's what you're seeing (though you'd usually see 'S'equence errors instead of 'D's).
You might want to experiment with smaller and bigger packet sizes, see [1]; the thing is that USB adapters have to cut up the gigabit ethernet frames (which can be rather long, depending on what your network hardware supports) into small USB3 packets (which can only be up to 1KB long), and the CPU then has to reassemble the ethernet packets. That means a lot of workload, so maybe it's better to sacrifice a bit of network to overload, but make the UHD sample packets small enough to fit into one USB packet.
Greetings,
Marcus
[1] http://files.ettus.com/manual/page_transport.html#transport_udp_params ; you'd screw around with recv_frame_size, setting it to something like 900 for a start.
On 03/10/2015 03:33 PM, Bogdan Diaconescu via USRP-users wrote:
Hi list,
I'm a long time user of USRP and now I'm trying to use my setup with a new laptop that does not have an integrated ethernet card. I am using for now two types of Ethernet 2 USB adapters that have 1Gbps/USB3.0 characteristics.
Apparently, for PC-to-PC connection using the dongles I can get around 935Msps speed using iperf or nc which seems just fine. However, when I do just USRP to PC connection I get many Ds on the command line just using the simple uhd_fft. Those Ds are shown even when using a 1Msps rate. They increase when using higher sample rates.
I wonder if someone tried this and had some success.
My set-up is:
Asus ZenBook UX31A (core i7). Ethernet 1Gbps/USB 3.0 dongles: D-Link DAB-1312 and Edimax EU-4306. Ubuntu 14.04
I should mention that I passed the phase in which the dongles connect to laptop as USB2.0 because on the other side there was not ethernet cable connected. Yes, this happens with both dongles.
Thanks for your support, Bogdan/YO3IIU
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
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
Thanks Ian, good to know that D is for both reordering and missing packets.
Now, I did a wireshark capture for a spectrum capture with 1Ghz frequency and 1Msps until I saw severals Ds on command line.
I attach a screenshot of the packet decoding which looks ugly and perhaps tells that my wireshark v1.10.x, the default in Ubuntu 14.04, is old. I'm I right here?
I wonder if the 1516 frame size that I see is good for UHD?
I will put the pcap and spectrum record on a server in the wild tomorrow mornig.
Thanks,
Bogdan
On Wednesday, March 11, 2015 8:02 PM, Ian Buckley <ianb@ionconcepts.com> wrote:
S is most definitely a sequence error….but on TX….note a sequence error can indicate 2 things packet re-ordering or lost packet.D is the equivalent RX direction error.
I was wrong on "S" being the indication for sequence errors, by the way [1], so what we'd try to find out would be whether there's dropped packets or reordered packets or something really goes wrong on the UHD side.
Greetings,
Marcus
[1] lib/transport/super_recv_packet_handler.hpp:571
https://github.com/EttusResearch/uhd/blob/master/host/lib/transport/super_recv_packet_handler.hpp#L571
On 03/10/2015 11:09 PM, Bogdan Diaconescu wrote:
Ok, so I did several tests with various buffers passed in the uhd_fft command line:
I tried almost everything in the reference given by you Marcus going wild from min to max and mostly notable lowering sent_frame_size down to 100 does reduce a bit the rate of Ds. However, it seems that the moment when Ds start to appear is delayed because of that but once they start appearing they continue to increase.
And esentially the Ds are showing up in any situation I tried.
It will be nice to have a test built in FPGA so that once triggered from the host, it will send known data to the PC allowing testing the connection.
So, what's next?
On Tuesday, March 10, 2015 7:24 PM, Bogdan Diaconescu <b_diaconescu@yahoo.com> wrote:
Hi Marcus,
those dongles are real good ones and they are the winners after almost 1 years of trial and error with different similar devices. I so far used them in a non USRP project though
To answer your questions: in a test with iperf (TCP) sending 10Gbit of data between 2 PCs (consistent at 935Mbit/s) there was no packet error and retransmission. With wireshark I've seen no TCP retransmission at all after several tests.
We did also tests with UDP using the same setup and the speed is about 812Mbit/s which is somehow consistent with the fact that in the linux kernel TCP is optimized for bulk transfer but UDP is optimized for low latency. We actually got the same results when using direct desktop PC-2-PC connections that have onboard 1Gb/s NICs. With the same OS and kernel versions.
So, all above is w/o USRP, just PC to PC.
Now with USRP: I'll try playing with buffers according to the link you gave but for 1Msps uhd_fft should work never the less. I haven't look at VITA and its details but for let's say 64bit/sample over the wire you only get 64Mbit/sample which is very low and should work like a charm.
You are right with the difference between packet size over USB vs. Ethernet. It may be something there.
Played now with UDP Fragmentation Ofload and checksum offload with no difference, the same problems.
I would take the processing power out of question as the processor is quite new (broadwell i7 in 14nm).
Thanks, Bogdan
On Tuesday, March 10, 2015 4:55 PM, Marcus Müller via USRP-users <usrp-users@lists.ettus.com> wrote:
Hi Bogdan,
I must admit that I've never seen anyone have much success with USB-to-ethernet adapters. In fact, you're the one to report the highest PC-to-PC bandwidth I've heard of, so I'd be interested to know how many packet errors and dropped packets you saw with iperf. Also, what is your CPU load whilst doing that rate? Do these adapters offload checksumming, or is that an additional burden to your CPU?
Depending on your nc/iperf usage, you might have made advantageous usage of higher-level flow control in TCP; since the USRPs talk UDP only, there's no possibility to resend packets.
I've actually often seen these adapters simply drop or reorder packets under load. Whilst a benchmarking tool might be tolerant to reordering, UHD is not; maybe that's what you're seeing (though you'd usually see 'S'equence errors instead of 'D's).
You might want to experiment with smaller and bigger packet sizes, see [1]; the thing is that USB adapters have to cut up the gigabit ethernet frames (which can be rather long, depending on what your network hardware supports) into small USB3 packets (which can only be up to 1KB long), and the CPU then has to reassemble the ethernet packets. That means a lot of workload, so maybe it's better to sacrifice a bit of network to overload, but make the UHD sample packets small enough to fit into one USB packet.
Greetings,
Marcus
[1] http://files.ettus.com/manual/page_transport.html#transport_udp_params ; you'd screw around with recv_frame_size, setting it to something like 900 for a start.
On 03/10/2015 03:33 PM, Bogdan Diaconescu via USRP-users wrote:
Hi list,
I'm a long time user of USRP and now I'm trying to use my setup with a new laptop that does not have an integrated ethernet card. I am using for now two types of Ethernet 2 USB adapters that have 1Gbps/USB3.0 characteristics.
Apparently, for PC-to-PC connection using the dongles I can get around 935Msps speed using iperf or nc which seems just fine. However, when I do just USRP to PC connection I get many Ds on the command line just using the simple uhd_fft. Those Ds are shown even when using a 1Msps rate. They increase when using higher sample rates.
I wonder if someone tried this and had some success.
My set-up is:
Asus ZenBook UX31A (core i7). Ethernet 1Gbps/USB 3.0 dongles: D-Link DAB-1312 and Edimax EU-4306. Ubuntu 14.04
I should mention that I passed the phase in which the dongles connect to laptop as USB2.0 because on the other side there was not ethernet cable connected. Yes, this happens with both dongles.
Thanks for your support, Bogdan/YO3IIU
_______________________________________________
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
_______________________________________________
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
MM
Marcus Müller
Thu, Mar 12, 2015 6:54 AM
Thanks so much!
On 03/11/2015 09:27 PM, Bogdan Diaconescu wrote:
Thanks Ian, good to know that D is for both reordering and missing
packets.
Now, I did a wireshark capture for a spectrum capture with 1Ghz
frequency and 1Msps until I saw severals Ds on command line.
I attach a screenshot of the packet decoding which looks ugly and
perhaps tells that my wireshark v1.10.x, the default in Ubuntu 14.04,
is old. I'm I right here?
I wonder if the 1516 frame size that I see is good for UHD?
I will put the pcap and spectrum record on a server in the wild
tomorrow mornig.
Thanks,
Bogdan
On Wednesday, March 11, 2015 8:02 PM, Ian Buckley
ianb@ionconcepts.com wrote:
S is most definitely a sequence error….but on TX….note a sequence
error can indicate 2 things packet re-ordering or lost packet.
D is the equivalent RX direction error.
Ok, so I did several tests with various buffers passed in the
uhd_fft command line:
I tried almost everything in the reference given by you Marcus going
wild from min to max and mostly notable lowering sent_frame_size
down to 100 does reduce a bit the rate of Ds. However, it seems that
the moment when Ds start to appear is delayed because of that but
once they start appearing they continue to increase.
And esentially the Ds are showing up in any situation I tried.
It will be nice to have a test built in FPGA so that once triggered
from the host, it will send known data to the PC allowing testing
the connection.
So, what's next?
On Tuesday, March 10, 2015 7:24 PM, Bogdan Diaconescu
b_diaconescu@yahoo.com mailto:b_diaconescu@yahoo.com wrote:
Hi Marcus,
those dongles are real good ones and they are the winners after
almost 1 years of trial and error with different similar devices. I
so far used them in a non USRP project though
To answer your questions: in a test with iperf (TCP) sending 10Gbit
of data between 2 PCs (consistent at 935Mbit/s) there was no packet
error and retransmission. With wireshark I've seen no TCP
retransmission at all after several tests.
We did also tests with UDP using the same setup and the speed is
about 812Mbit/s which is somehow consistent with the fact that in
the linux kernel TCP is optimized for bulk transfer but UDP is
optimized for low latency. We actually got the same results when
using direct desktop PC-2-PC connections that have onboard 1Gb/s
NICs. With the same OS and kernel versions.
So, all above is w/o USRP, just PC to PC.
Now with USRP: I'll try playing with buffers according to the link
you gave but for 1Msps uhd_fft should work never the less. I haven't
look at VITA and its details but for let's say 64bit/sample over the
wire you only get 64Mbit/sample which is very low and should work
like a charm.
You are right with the difference between packet size over USB vs.
Ethernet. It may be something there.
Played now with UDP Fragmentation Ofload and checksum offload with
no difference, the same problems.
I would take the processing power out of question as the processor
is quite new (broadwell i7 in 14nm).
Thanks,
Bogdan
On Tuesday, March 10, 2015 4:55 PM, Marcus Müller via USRP-users
usrp-users@lists.ettus.com mailto:usrp-users@lists.ettus.com wrote:
Hi Bogdan,
I must admit that I've never seen anyone have much success with
USB-to-ethernet adapters. In fact, you're the one to report the
highest PC-to-PC bandwidth I've heard of, so I'd be interested to
know how many packet errors and dropped packets you saw with iperf.
Also, what is your CPU load whilst doing that rate? Do these
adapters offload checksumming, or is that an additional burden to
your CPU?
Depending on your nc/iperf usage, you might have made advantageous
usage of higher-level flow control in TCP; since the USRPs talk UDP
only, there's no possibility to resend packets.
I've actually often seen these adapters simply drop or reorder
packets under load. Whilst a benchmarking tool might be tolerant to
reordering, UHD is not; maybe that's what you're seeing (though
you'd usually see 'S'equence errors instead of 'D's).
You might want to experiment with smaller and bigger packet sizes,
see [1]; the thing is that USB adapters have to cut up the gigabit
ethernet frames (which can be rather long, depending on what your
network hardware supports) into small USB3 packets (which can only
be up to 1KB long), and the CPU then has to reassemble the ethernet
packets. That means a lot of workload, so maybe it's better to
sacrifice a bit of network to overload, but make the UHD sample
packets small enough to fit into one USB packet.
Greetings,
Marcus
[1]
http://files.ettus.com/manual/page_transport.html#transport_udp_params
; you'd screw around with recv_frame_size, setting it to something
like 900 for a start.||
On 03/10/2015 03:33 PM, Bogdan Diaconescu via USRP-users wrote:
Hi list,
I'm a long time user of USRP and now I'm trying to use my setup
with a new laptop that does not have an integrated ethernet card. I
am using for now two types of Ethernet 2 USB adapters that have
1Gbps/USB3.0 characteristics.
Apparently, for PC-to-PC connection using the dongles I can get
around 935Msps speed using iperf or nc which seems just fine.
However, when I do just USRP to PC connection I get many Ds on the
command line just using the simple uhd_fft. Those Ds are shown even
when using a 1Msps rate. They increase when using higher sample rates.
I wonder if someone tried this and had some success.
My set-up is:
Asus ZenBook UX31A (core i7).
Ethernet 1Gbps/USB 3.0 dongles: D-Link DAB-1312 and Edimax EU-4306.
Ubuntu 14.04
I should mention that I passed the phase in which the dongles
connect to laptop as USB2.0 because on the other side there was not
ethernet cable connected. Yes, this happens with both dongles.
Thanks for your support,
Bogdan/YO3IIU
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
Thanks so much!
On 03/11/2015 09:27 PM, Bogdan Diaconescu wrote:
> Thanks Ian, good to know that D is for both reordering and missing
> packets.
>
> Now, I did a wireshark capture for a spectrum capture with 1Ghz
> frequency and 1Msps until I saw severals Ds on command line.
>
> I attach a screenshot of the packet decoding which looks ugly and
> perhaps tells that my wireshark v1.10.x, the default in Ubuntu 14.04,
> is old. I'm I right here?
>
> I wonder if the 1516 frame size that I see is good for UHD?
>
> I will put the pcap and spectrum record on a server in the wild
> tomorrow mornig.
>
> Thanks,
> Bogdan
>
>
> On Wednesday, March 11, 2015 8:02 PM, Ian Buckley
> <ianb@ionconcepts.com> wrote:
>
>
> S is most definitely a sequence error….but on TX….note a sequence
> error can indicate 2 things packet re-ordering or lost packet.
> D is the equivalent RX direction error.
>
>>
>>
>> I was wrong on "S" being the indication for sequence errors, by the
>> way [1], so what we'd try to find out would be whether there's
>> dropped packets or reordered packets or something really goes wrong
>> on the UHD side.
>>
>> Greetings,
>> Marcus
>>
>> [1] lib/transport/super_recv_packet_handler.hpp:571
>> https://github.com/EttusResearch/uhd/blob/master/host/lib/transport/super_recv_packet_handler.hpp#L571
>>
>>
>> On 03/10/2015 11:09 PM, Bogdan Diaconescu wrote:
>>> Ok, so I did several tests with various buffers passed in the
>>> uhd_fft command line:
>>>
>>> I tried almost everything in the reference given by you Marcus going
>>> wild from min to max and mostly notable lowering sent_frame_size
>>> down to 100 does reduce a bit the rate of Ds. However, it seems that
>>> the moment when Ds start to appear is delayed because of that but
>>> once they start appearing they continue to increase.
>>>
>>> And esentially the Ds are showing up in any situation I tried.
>>>
>>> It will be nice to have a test built in FPGA so that once triggered
>>> from the host, it will send known data to the PC allowing testing
>>> the connection.
>>>
>>> So, what's next?
>>>
>>>
>>>
>>>
>>> On Tuesday, March 10, 2015 7:24 PM, Bogdan Diaconescu
>>> <b_diaconescu@yahoo.com> <mailto:b_diaconescu@yahoo.com> wrote:
>>>
>>>
>>> Hi Marcus,
>>>
>>> those dongles are real good ones and they are the winners after
>>> almost 1 years of trial and error with different similar devices. I
>>> so far used them in a non USRP project though
>>>
>>> To answer your questions: in a test with iperf (TCP) sending 10Gbit
>>> of data between 2 PCs (consistent at 935Mbit/s) there was no packet
>>> error and retransmission. With wireshark I've seen no TCP
>>> retransmission at all after several tests.
>>>
>>> We did also tests with UDP using the same setup and the speed is
>>> about 812Mbit/s which is somehow consistent with the fact that in
>>> the linux kernel TCP is optimized for bulk transfer but UDP is
>>> optimized for low latency. We actually got the same results when
>>> using direct desktop PC-2-PC connections that have onboard 1Gb/s
>>> NICs. With the same OS and kernel versions.
>>>
>>> So, all above is w/o USRP, just PC to PC.
>>>
>>> Now with USRP: I'll try playing with buffers according to the link
>>> you gave but for 1Msps uhd_fft should work never the less. I haven't
>>> look at VITA and its details but for let's say 64bit/sample over the
>>> wire you only get 64Mbit/sample which is very low and should work
>>> like a charm.
>>>
>>> You are right with the difference between packet size over USB vs.
>>> Ethernet. It may be something there.
>>>
>>> Played now with UDP Fragmentation Ofload and checksum offload with
>>> no difference, the same problems.
>>>
>>> I would take the processing power out of question as the processor
>>> is quite new (broadwell i7 in 14nm).
>>>
>>> Thanks,
>>> Bogdan
>>>
>>>
>>>
>>>
>>> On Tuesday, March 10, 2015 4:55 PM, Marcus Müller via USRP-users
>>> <usrp-users@lists.ettus.com> <mailto:usrp-users@lists.ettus.com> wrote:
>>>
>>>
>>> Hi Bogdan,
>>>
>>> I must admit that I've never seen anyone have much success with
>>> USB-to-ethernet adapters. In fact, you're the one to report the
>>> highest PC-to-PC bandwidth I've heard of, so I'd be interested to
>>> know how many packet errors and dropped packets you saw with iperf.
>>> Also, what is your CPU load whilst doing that rate? Do these
>>> adapters offload checksumming, or is that an additional burden to
>>> your CPU?
>>>
>>> Depending on your nc/iperf usage, you might have made advantageous
>>> usage of higher-level flow control in TCP; since the USRPs talk UDP
>>> only, there's no possibility to resend packets.
>>>
>>> I've actually often seen these adapters simply drop or reorder
>>> packets under load. Whilst a benchmarking tool might be tolerant to
>>> reordering, UHD is not; maybe that's what you're seeing (though
>>> you'd usually see 'S'equence errors instead of 'D's).
>>>
>>> You might want to experiment with smaller and bigger packet sizes,
>>> see [1]; the thing is that USB adapters have to cut up the gigabit
>>> ethernet frames (which can be rather long, depending on what your
>>> network hardware supports) into small USB3 packets (which can only
>>> be up to 1KB long), and the CPU then has to reassemble the ethernet
>>> packets. That means a lot of workload, so maybe it's better to
>>> sacrifice a bit of network to overload, but make the UHD sample
>>> packets small enough to fit into one USB packet.
>>>
>>> Greetings,
>>> Marcus
>>>
>>> [1]
>>> http://files.ettus.com/manual/page_transport.html#transport_udp_params
>>> ; you'd screw around with recv_frame_size, setting it to something
>>> like 900 for a start.||
>>>
>>> On 03/10/2015 03:33 PM, Bogdan Diaconescu via USRP-users wrote:
>>>> Hi list,
>>>>
>>>> I'm a long time user of USRP and now I'm trying to use my setup
>>>> with a new laptop that does not have an integrated ethernet card. I
>>>> am using for now two types of Ethernet 2 USB adapters that have
>>>> 1Gbps/USB3.0 characteristics.
>>>>
>>>> Apparently, for PC-to-PC connection using the dongles I can get
>>>> around 935Msps speed using iperf or nc which seems just fine.
>>>> However, when I do just USRP to PC connection I get many Ds on the
>>>> command line just using the simple uhd_fft. Those Ds are shown even
>>>> when using a 1Msps rate. They increase when using higher sample rates.
>>>>
>>>> I wonder if someone tried this and had some success.
>>>>
>>>> My set-up is:
>>>>
>>>> Asus ZenBook UX31A (core i7).
>>>> Ethernet 1Gbps/USB 3.0 dongles: D-Link DAB-1312 and Edimax EU-4306.
>>>> Ubuntu 14.04
>>>>
>>>> I should mention that I passed the phase in which the dongles
>>>> connect to laptop as USB2.0 because on the other side there was not
>>>> ethernet cable connected. Yes, this happens with both dongles.
>>>>
>>>> Thanks for your support,
>>>> Bogdan/YO3IIU
>>>>
>>>>
>>>> _______________________________________________
>>>> 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
>>>
>>>
>>> _______________________________________________
>>> 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
>>>
>>>
>>>
>>>
>>
>> _______________________________________________
>> 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
>
>
>
BD
Bogdan Diaconescu
Thu, Mar 12, 2015 9:01 AM
Hi Marcus,
here is the info: http://iot.mobil4.org/uhd/
Let me know your thoughts and findings.
Thanks,Bogdan
On Thursday, March 12, 2015 8:54 AM, Marcus Müller <marcus.mueller@ettus.com> wrote:
Thanks so much!
On 03/11/2015 09:27 PM, Bogdan Diaconescu wrote:
Thanks Ian, good to know that D is for both reordering and missing packets.
Now, I did a wireshark capture for a spectrum capture with 1Ghz frequency and 1Msps until I saw severals Ds on command line.
I attach a screenshot of the packet decoding which looks ugly and perhaps tells that my wireshark v1.10.x, the default in Ubuntu 14.04, is old. I'm I right here?
I wonder if the 1516 frame size that I see is good for UHD?
I will put the pcap and spectrum record on a server in the wild tomorrow mornig.
Thanks,
Bogdan
On Wednesday, March 11, 2015 8:02 PM, Ian Buckley <ianb@ionconcepts.com> wrote:
S is most definitely a sequence error….but on TX….note a sequence error can indicate 2 things packet re-ordering or lost packet. D is the equivalent RX direction error.
I was wrong on "S" being the indication for sequence errors, by the way [1], so what we'd try to find out would be whether there's dropped packets or reordered packets or something really goes wrong on the UHD side.
Greetings,
Marcus
[1] lib/transport/super_recv_packet_handler.hpp:571
https://github.com/EttusResearch/uhd/blob/master/host/lib/transport/super_recv_packet_handler.hpp#L571
On 03/10/2015 11:09 PM, Bogdan Diaconescu wrote:
Ok, so I did several tests with various buffers passed in the uhd_fft command line:
I tried almost everything in the reference given by you Marcus going wild from min to max and mostly notable lowering sent_frame_size down to 100 does reduce a bit the rate of Ds. However, it seems that the moment when Ds start to appear is delayed because of that but once they start appearing they continue to increase.
And esentially the Ds are showing up in any situation I tried.
It will be nice to have a test built in FPGA so that once triggered from the host, it will send known data to the PC allowing testing the connection.
So, what's next?
On Tuesday, March 10, 2015 7:24 PM, Bogdan Diaconescu <b_diaconescu@yahoo.com> wrote:
Hi Marcus,
those dongles are real good ones and they are the winners after almost 1 years of trial and error with different similar devices. I so far used them in a non USRP project though
To answer your questions: in a test with iperf (TCP) sending 10Gbit of data between 2 PCs (consistent at 935Mbit/s) there was no packet error and retransmission. With wireshark I've seen no TCP retransmission at all after several tests.
We did also tests with UDP using the same setup and the speed is about 812Mbit/s which is somehow consistent with the fact that in the linux kernel TCP is optimized for bulk transfer but UDP is optimized for low latency. We actually got the same results when using direct desktop PC-2-PC connections that have onboard 1Gb/s NICs. With the same OS and kernel versions.
So, all above is w/o USRP, just PC to PC.
Now with USRP: I'll try playing with buffers according to the link you gave but for 1Msps uhd_fft should work never the less. I haven't look at VITA and its details but for let's say 64bit/sample over the wire you only get 64Mbit/sample which is very low and should work like a charm.
You are right with the difference between packet size over USB vs. Ethernet. It may be something there.
Played now with UDP Fragmentation Ofload and checksum offload with no difference, the same problems.
I would take the processing power out of question as the processor is quite new (broadwell i7 in 14nm).
Thanks, Bogdan
On Tuesday, March 10, 2015 4:55 PM, Marcus Müller via USRP-users <usrp-users@lists.ettus.com> wrote:
Hi Bogdan,
I must admit that I've never seen anyone have much success with USB-to-ethernet adapters. In fact, you're the one to report the highest PC-to-PC bandwidth I've heard of, so I'd be interested to know how many packet errors and dropped packets you saw with iperf. Also, what is your CPU load whilst doing that rate? Do these adapters offload checksumming, or is that an additional burden to your CPU?
Depending on your nc/iperf usage, you might have made advantageous usage of higher-level flow control in TCP; since the USRPs talk UDP only, there's no possibility to resend packets.
I've actually often seen these adapters simply drop or reorder packets under load. Whilst a benchmarking tool might be tolerant to reordering, UHD is not; maybe that's what you're seeing (though you'd usually see 'S'equence errors instead of 'D's).
You might want to experiment with smaller and bigger packet sizes, see [1]; the thing is that USB adapters have to cut up the gigabit ethernet frames (which can be rather long, depending on what your network hardware supports) into small USB3 packets (which can only be up to 1KB long), and the CPU then has to reassemble the ethernet packets. That means a lot of workload, so maybe it's better to sacrifice a bit of network to overload, but make the UHD sample packets small enough to fit into one USB packet.
Greetings,
Marcus
[1] http://files.ettus.com/manual/page_transport.html#transport_udp_params ; you'd screw around with recv_frame_size, setting it to something like 900 for a start.
On 03/10/2015 03:33 PM, Bogdan Diaconescu via USRP-users wrote:
Hi list,
I'm a long time user of USRP and now I'm trying to use my setup with a new laptop that does not have an integrated ethernet card. I am using for now two types of Ethernet 2 USB adapters that have 1Gbps/USB3.0 characteristics.
Apparently, for PC-to-PC connection using the dongles I can get around 935Msps speed using iperf or nc which seems just fine. However, when I do just USRP to PC connection I get many Ds on the command line just using the simple uhd_fft. Those Ds are shown even when using a 1Msps rate. They increase when using higher sample rates.
I wonder if someone tried this and had some success.
My set-up is:
Asus ZenBook UX31A (core i7). Ethernet 1Gbps/USB 3.0 dongles: D-Link DAB-1312 and Edimax EU-4306. Ubuntu 14.04
I should mention that I passed the phase in which the dongles connect to laptop as USB2.0 because on the other side there was not ethernet cable connected. Yes, this happens with both dongles.
Thanks for your support, Bogdan/YO3IIU
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
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
Hi Marcus,
here is the info: http://iot.mobil4.org/uhd/
Let me know your thoughts and findings.
Thanks,Bogdan
On Thursday, March 12, 2015 8:54 AM, Marcus Müller <marcus.mueller@ettus.com> wrote:
Thanks so much!
On 03/11/2015 09:27 PM, Bogdan Diaconescu wrote:
Thanks Ian, good to know that D is for both reordering and missing packets.
Now, I did a wireshark capture for a spectrum capture with 1Ghz frequency and 1Msps until I saw severals Ds on command line.
I attach a screenshot of the packet decoding which looks ugly and perhaps tells that my wireshark v1.10.x, the default in Ubuntu 14.04, is old. I'm I right here?
I wonder if the 1516 frame size that I see is good for UHD?
I will put the pcap and spectrum record on a server in the wild tomorrow mornig.
Thanks,
Bogdan
On Wednesday, March 11, 2015 8:02 PM, Ian Buckley <ianb@ionconcepts.com> wrote:
S is most definitely a sequence error….but on TX….note a sequence error can indicate 2 things packet re-ordering or lost packet. D is the equivalent RX direction error.
I was wrong on "S" being the indication for sequence errors, by the way [1], so what we'd try to find out would be whether there's dropped packets or reordered packets or something really goes wrong on the UHD side.
Greetings,
Marcus
[1] lib/transport/super_recv_packet_handler.hpp:571
https://github.com/EttusResearch/uhd/blob/master/host/lib/transport/super_recv_packet_handler.hpp#L571
On 03/10/2015 11:09 PM, Bogdan Diaconescu wrote:
Ok, so I did several tests with various buffers passed in the uhd_fft command line:
I tried almost everything in the reference given by you Marcus going wild from min to max and mostly notable lowering sent_frame_size down to 100 does reduce a bit the rate of Ds. However, it seems that the moment when Ds start to appear is delayed because of that but once they start appearing they continue to increase.
And esentially the Ds are showing up in any situation I tried.
It will be nice to have a test built in FPGA so that once triggered from the host, it will send known data to the PC allowing testing the connection.
So, what's next?
On Tuesday, March 10, 2015 7:24 PM, Bogdan Diaconescu <b_diaconescu@yahoo.com> wrote:
Hi Marcus,
those dongles are real good ones and they are the winners after almost 1 years of trial and error with different similar devices. I so far used them in a non USRP project though
To answer your questions: in a test with iperf (TCP) sending 10Gbit of data between 2 PCs (consistent at 935Mbit/s) there was no packet error and retransmission. With wireshark I've seen no TCP retransmission at all after several tests.
We did also tests with UDP using the same setup and the speed is about 812Mbit/s which is somehow consistent with the fact that in the linux kernel TCP is optimized for bulk transfer but UDP is optimized for low latency. We actually got the same results when using direct desktop PC-2-PC connections that have onboard 1Gb/s NICs. With the same OS and kernel versions.
So, all above is w/o USRP, just PC to PC.
Now with USRP: I'll try playing with buffers according to the link you gave but for 1Msps uhd_fft should work never the less. I haven't look at VITA and its details but for let's say 64bit/sample over the wire you only get 64Mbit/sample which is very low and should work like a charm.
You are right with the difference between packet size over USB vs. Ethernet. It may be something there.
Played now with UDP Fragmentation Ofload and checksum offload with no difference, the same problems.
I would take the processing power out of question as the processor is quite new (broadwell i7 in 14nm).
Thanks, Bogdan
On Tuesday, March 10, 2015 4:55 PM, Marcus Müller via USRP-users <usrp-users@lists.ettus.com> wrote:
Hi Bogdan,
I must admit that I've never seen anyone have much success with USB-to-ethernet adapters. In fact, you're the one to report the highest PC-to-PC bandwidth I've heard of, so I'd be interested to know how many packet errors and dropped packets you saw with iperf. Also, what is your CPU load whilst doing that rate? Do these adapters offload checksumming, or is that an additional burden to your CPU?
Depending on your nc/iperf usage, you might have made advantageous usage of higher-level flow control in TCP; since the USRPs talk UDP only, there's no possibility to resend packets.
I've actually often seen these adapters simply drop or reorder packets under load. Whilst a benchmarking tool might be tolerant to reordering, UHD is not; maybe that's what you're seeing (though you'd usually see 'S'equence errors instead of 'D's).
You might want to experiment with smaller and bigger packet sizes, see [1]; the thing is that USB adapters have to cut up the gigabit ethernet frames (which can be rather long, depending on what your network hardware supports) into small USB3 packets (which can only be up to 1KB long), and the CPU then has to reassemble the ethernet packets. That means a lot of workload, so maybe it's better to sacrifice a bit of network to overload, but make the UHD sample packets small enough to fit into one USB packet.
Greetings,
Marcus
[1] http://files.ettus.com/manual/page_transport.html#transport_udp_params ; you'd screw around with recv_frame_size, setting it to something like 900 for a start.
On 03/10/2015 03:33 PM, Bogdan Diaconescu via USRP-users wrote:
Hi list,
I'm a long time user of USRP and now I'm trying to use my setup with a new laptop that does not have an integrated ethernet card. I am using for now two types of Ethernet 2 USB adapters that have 1Gbps/USB3.0 characteristics.
Apparently, for PC-to-PC connection using the dongles I can get around 935Msps speed using iperf or nc which seems just fine. However, when I do just USRP to PC connection I get many Ds on the command line just using the simple uhd_fft. Those Ds are shown even when using a 1Msps rate. They increase when using higher sample rates.
I wonder if someone tried this and had some success.
My set-up is:
Asus ZenBook UX31A (core i7). Ethernet 1Gbps/USB 3.0 dongles: D-Link DAB-1312 and Edimax EU-4306. Ubuntu 14.04
I should mention that I passed the phase in which the dongles connect to laptop as USB2.0 because on the other side there was not ethernet cable connected. Yes, this happens with both dongles.
Thanks for your support, Bogdan/YO3IIU
_______________________________________________
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
_______________________________________________
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
MM
Marcus Müller
Thu, Mar 12, 2015 12:14 PM
Hi Bogdan,
my initial analysis shows no dropped packets (yay), but strangely
reordered ones (wut?). The UHD dissector doesn't seem to be that useful
anymore.
Thus: You can find my own analysis script at[1].
I've first filtered the capture to only contain sample packets coming
from the device by UDP source port.
Then, I've saved that filtered output in PCAP (as opposed to PCAPng)
format, since dpkt (which is the only packet capture analysis python
module I'm somewhat familiar with) only knows how to deal with that. See
the capture file[2]
https://gist.github.com/marcusmueller/b0ccc0c9b07e6704905a/raw/58e9f4be9636ac194478886c6d0648ac08369f51/n210_capture_samples_only.pcap
Then, I've run the script on that:
|./analyze.py n210_capture_samples_only.pcap
|
giving me
|Packet 45788: Seq. Nr 7 does not follow 5. Time 1426104210.261552, length 1472B
Packet 45789: Seq. Nr 6 does not follow 7. Time 1426104210.261187, length 1472B
Packet 45790: Seq. Nr 8 does not follow 6. Time 1426104210.261913, length 1472B
Packet 53602: Seq. Nr D does not follow B. Time 1426104213.097992, length 1472B
Packet 53606: Seq. Nr C does not follow 0. Time 1426104213.097629, length 1472B
Packet 53607: Seq. Nr 1 does not follow C. Time 1426104213.099440, length 1472B
|
Packets 45788 and 45789 came in reordered, and 53606 should have come
after 53601.
- 45788/45789: Ok, hm, switched places on consecutive packets.
- 53602/53606: a packet delayed by four packets? I'm a bit confused.
Now, I must admit I have no idea whether that reordering takes place
in the device (that would require at least 5*(1516 B/ethernet packet)
buffer) or in the kernel. In the latter case, there might be something
that one can do about it. I'd have to investigate that myself, though,
since I have no idea if one could enforce non-reordering behaviour (I
don't even know which advantage reordering packets would have).
Greetings,
Marcus
[1] https://gist.github.com/marcusmueller/b0ccc0c9b07e6704905a
[2]
https://gist.github.com/marcusmueller/b0ccc0c9b07e6704905a/raw/58e9f4be9636ac194478886c6d0648ac08369f51/n210_capture_samples_only.pcap
On 03/12/2015 10:01 AM, Bogdan Diaconescu wrote:
Hi Marcus,
here is the info: http://iot.mobil4.org/uhd/
Let me know your thoughts and findings.
Thanks,
Bogdan
On Thursday, March 12, 2015 8:54 AM, Marcus Müller
marcus.mueller@ettus.com wrote:
Thanks so much!
On 03/11/2015 09:27 PM, Bogdan Diaconescu wrote:
Thanks Ian, good to know that D is for both reordering and missing
packets.
Now, I did a wireshark capture for a spectrum capture with 1Ghz
frequency and 1Msps until I saw severals Ds on command line.
I attach a screenshot of the packet decoding which looks ugly and
perhaps tells that my wireshark v1.10.x, the default in Ubuntu 14.04,
is old. I'm I right here?
I wonder if the 1516 frame size that I see is good for UHD?
I will put the pcap and spectrum record on a server in the wild
tomorrow mornig.
Thanks,
Bogdan
On Wednesday, March 11, 2015 8:02 PM, Ian Buckley
ianb@ionconcepts.com mailto:ianb@ionconcepts.com wrote:
S is most definitely a sequence error….but on TX….note a sequence
error can indicate 2 things packet re-ordering or lost packet.
D is the equivalent RX direction error.
Ok, so I did several tests with various buffers passed in the
uhd_fft command line:
I tried almost everything in the reference given by you Marcus
going wild from min to max and mostly notable lowering
sent_frame_size down to 100 does reduce a bit the rate of Ds.
However, it seems that the moment when Ds start to appear is
delayed because of that but once they start appearing they continue
to increase.
And esentially the Ds are showing up in any situation I tried.
It will be nice to have a test built in FPGA so that once triggered
from the host, it will send known data to the PC allowing testing
the connection.
So, what's next?
On Tuesday, March 10, 2015 7:24 PM, Bogdan Diaconescu
b_diaconescu@yahoo.com mailto:b_diaconescu@yahoo.com wrote:
Hi Marcus,
those dongles are real good ones and they are the winners after
almost 1 years of trial and error with different similar devices. I
so far used them in a non USRP project though
To answer your questions: in a test with iperf (TCP) sending 10Gbit
of data between 2 PCs (consistent at 935Mbit/s) there was no packet
error and retransmission. With wireshark I've seen no TCP
retransmission at all after several tests.
We did also tests with UDP using the same setup and the speed is
about 812Mbit/s which is somehow consistent with the fact that in
the linux kernel TCP is optimized for bulk transfer but UDP is
optimized for low latency. We actually got the same results when
using direct desktop PC-2-PC connections that have onboard 1Gb/s
NICs. With the same OS and kernel versions.
So, all above is w/o USRP, just PC to PC.
Now with USRP: I'll try playing with buffers according to the link
you gave but for 1Msps uhd_fft should work never the less. I
haven't look at VITA and its details but for let's say 64bit/sample
over the wire you only get 64Mbit/sample which is very low and
should work like a charm.
You are right with the difference between packet size over USB vs.
Ethernet. It may be something there.
Played now with UDP Fragmentation Ofload and checksum offload with
no difference, the same problems.
I would take the processing power out of question as the processor
is quite new (broadwell i7 in 14nm).
Thanks,
Bogdan
On Tuesday, March 10, 2015 4:55 PM, Marcus Müller via USRP-users
usrp-users@lists.ettus.com mailto:usrp-users@lists.ettus.com wrote:
Hi Bogdan,
I must admit that I've never seen anyone have much success with
USB-to-ethernet adapters. In fact, you're the one to report the
highest PC-to-PC bandwidth I've heard of, so I'd be interested to
know how many packet errors and dropped packets you saw with iperf.
Also, what is your CPU load whilst doing that rate? Do these
adapters offload checksumming, or is that an additional burden to
your CPU?
Depending on your nc/iperf usage, you might have made advantageous
usage of higher-level flow control in TCP; since the USRPs talk UDP
only, there's no possibility to resend packets.
I've actually often seen these adapters simply drop or reorder
packets under load. Whilst a benchmarking tool might be tolerant to
reordering, UHD is not; maybe that's what you're seeing (though
you'd usually see 'S'equence errors instead of 'D's).
You might want to experiment with smaller and bigger packet sizes,
see [1]; the thing is that USB adapters have to cut up the gigabit
ethernet frames (which can be rather long, depending on what your
network hardware supports) into small USB3 packets (which can only
be up to 1KB long), and the CPU then has to reassemble the ethernet
packets. That means a lot of workload, so maybe it's better to
sacrifice a bit of network to overload, but make the UHD sample
packets small enough to fit into one USB packet.
Greetings,
Marcus
[1]
http://files.ettus.com/manual/page_transport.html#transport_udp_params
; you'd screw around with recv_frame_size, setting it to something
like 900 for a start.||
On 03/10/2015 03:33 PM, Bogdan Diaconescu via USRP-users wrote:
Hi list,
I'm a long time user of USRP and now I'm trying to use my setup
with a new laptop that does not have an integrated ethernet card.
I am using for now two types of Ethernet 2 USB adapters that have
1Gbps/USB3.0 characteristics.
Apparently, for PC-to-PC connection using the dongles I can get
around 935Msps speed using iperf or nc which seems just fine.
However, when I do just USRP to PC connection I get many Ds on the
command line just using the simple uhd_fft. Those Ds are shown
even when using a 1Msps rate. They increase when using higher
sample rates.
I wonder if someone tried this and had some success.
My set-up is:
Asus ZenBook UX31A (core i7).
Ethernet 1Gbps/USB 3.0 dongles: D-Link DAB-1312 and Edimax EU-4306.
Ubuntu 14.04
I should mention that I passed the phase in which the dongles
connect to laptop as USB2.0 because on the other side there was
not ethernet cable connected. Yes, this happens with both dongles.
Thanks for your support,
Bogdan/YO3IIU
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
Hi Bogdan,
my initial analysis shows no dropped packets (yay), but strangely
reordered ones (wut?). The UHD dissector doesn't seem to be that useful
anymore.
Thus: You can find my own analysis script at[1].
I've first filtered the capture to only contain sample packets coming
from the device by UDP source port.
Then, I've saved that filtered output in PCAP (as opposed to PCAPng)
format, since dpkt (which is the only packet capture analysis python
module I'm somewhat familiar with) only knows how to deal with that. See
the capture file[2]
<https://gist.github.com/marcusmueller/b0ccc0c9b07e6704905a/raw/58e9f4be9636ac194478886c6d0648ac08369f51/n210_capture_samples_only.pcap>
Then, I've run the script on that:
|./analyze.py n210_capture_samples_only.pcap
|
giving me
|Packet 45788: Seq. Nr 7 does not follow 5. Time 1426104210.261552, length 1472B
Packet 45789: Seq. Nr 6 does not follow 7. Time 1426104210.261187, length 1472B
Packet 45790: Seq. Nr 8 does not follow 6. Time 1426104210.261913, length 1472B
Packet 53602: Seq. Nr D does not follow B. Time 1426104213.097992, length 1472B
Packet 53606: Seq. Nr C does not follow 0. Time 1426104213.097629, length 1472B
Packet 53607: Seq. Nr 1 does not follow C. Time 1426104213.099440, length 1472B
|
Packets 45788 and 45789 came in reordered, and 53606 should have come
after 53601.
* 45788/45789: Ok, hm, switched places on consecutive packets.
* 53602/53606: a packet delayed by four packets? I'm a bit confused.
Now, I must admit I have *no* idea whether that reordering takes place
in the device (that would require at least 5*(1516 B/ethernet packet)
buffer) or in the kernel. In the latter case, there might be something
that one can do about it. I'd have to investigate that myself, though,
since I have no idea if one could enforce non-reordering behaviour (I
don't even know which advantage reordering packets would have).
Greetings,
Marcus
[1] https://gist.github.com/marcusmueller/b0ccc0c9b07e6704905a
[2]
https://gist.github.com/marcusmueller/b0ccc0c9b07e6704905a/raw/58e9f4be9636ac194478886c6d0648ac08369f51/n210_capture_samples_only.pcap
On 03/12/2015 10:01 AM, Bogdan Diaconescu wrote:
> Hi Marcus,
>
> here is the info: http://iot.mobil4.org/uhd/
>
> Let me know your thoughts and findings.
>
> Thanks,
> Bogdan
>
>
> On Thursday, March 12, 2015 8:54 AM, Marcus Müller
> <marcus.mueller@ettus.com> wrote:
>
>
> Thanks so much!
>
> On 03/11/2015 09:27 PM, Bogdan Diaconescu wrote:
>> Thanks Ian, good to know that D is for both reordering and missing
>> packets.
>>
>> Now, I did a wireshark capture for a spectrum capture with 1Ghz
>> frequency and 1Msps until I saw severals Ds on command line.
>>
>> I attach a screenshot of the packet decoding which looks ugly and
>> perhaps tells that my wireshark v1.10.x, the default in Ubuntu 14.04,
>> is old. I'm I right here?
>>
>> I wonder if the 1516 frame size that I see is good for UHD?
>>
>> I will put the pcap and spectrum record on a server in the wild
>> tomorrow mornig.
>>
>> Thanks,
>> Bogdan
>>
>>
>> On Wednesday, March 11, 2015 8:02 PM, Ian Buckley
>> <ianb@ionconcepts.com> <mailto:ianb@ionconcepts.com> wrote:
>>
>>
>> S is most definitely a sequence error….but on TX….note a sequence
>> error can indicate 2 things packet re-ordering or lost packet.
>> D is the equivalent RX direction error.
>>
>>>
>>>
>>> I was wrong on "S" being the indication for sequence errors, by the
>>> way [1], so what we'd try to find out would be whether there's
>>> dropped packets or reordered packets or something really goes wrong
>>> on the UHD side.
>>>
>>> Greetings,
>>> Marcus
>>>
>>> [1] lib/transport/super_recv_packet_handler.hpp:571
>>> https://github.com/EttusResearch/uhd/blob/master/host/lib/transport/super_recv_packet_handler.hpp#L571
>>>
>>>
>>> On 03/10/2015 11:09 PM, Bogdan Diaconescu wrote:
>>>> Ok, so I did several tests with various buffers passed in the
>>>> uhd_fft command line:
>>>>
>>>> I tried almost everything in the reference given by you Marcus
>>>> going wild from min to max and mostly notable lowering
>>>> sent_frame_size down to 100 does reduce a bit the rate of Ds.
>>>> However, it seems that the moment when Ds start to appear is
>>>> delayed because of that but once they start appearing they continue
>>>> to increase.
>>>>
>>>> And esentially the Ds are showing up in any situation I tried.
>>>>
>>>> It will be nice to have a test built in FPGA so that once triggered
>>>> from the host, it will send known data to the PC allowing testing
>>>> the connection.
>>>>
>>>> So, what's next?
>>>>
>>>>
>>>>
>>>>
>>>> On Tuesday, March 10, 2015 7:24 PM, Bogdan Diaconescu
>>>> <b_diaconescu@yahoo.com> <mailto:b_diaconescu@yahoo.com> wrote:
>>>>
>>>>
>>>> Hi Marcus,
>>>>
>>>> those dongles are real good ones and they are the winners after
>>>> almost 1 years of trial and error with different similar devices. I
>>>> so far used them in a non USRP project though
>>>>
>>>> To answer your questions: in a test with iperf (TCP) sending 10Gbit
>>>> of data between 2 PCs (consistent at 935Mbit/s) there was no packet
>>>> error and retransmission. With wireshark I've seen no TCP
>>>> retransmission at all after several tests.
>>>>
>>>> We did also tests with UDP using the same setup and the speed is
>>>> about 812Mbit/s which is somehow consistent with the fact that in
>>>> the linux kernel TCP is optimized for bulk transfer but UDP is
>>>> optimized for low latency. We actually got the same results when
>>>> using direct desktop PC-2-PC connections that have onboard 1Gb/s
>>>> NICs. With the same OS and kernel versions.
>>>>
>>>> So, all above is w/o USRP, just PC to PC.
>>>>
>>>> Now with USRP: I'll try playing with buffers according to the link
>>>> you gave but for 1Msps uhd_fft should work never the less. I
>>>> haven't look at VITA and its details but for let's say 64bit/sample
>>>> over the wire you only get 64Mbit/sample which is very low and
>>>> should work like a charm.
>>>>
>>>> You are right with the difference between packet size over USB vs.
>>>> Ethernet. It may be something there.
>>>>
>>>> Played now with UDP Fragmentation Ofload and checksum offload with
>>>> no difference, the same problems.
>>>>
>>>> I would take the processing power out of question as the processor
>>>> is quite new (broadwell i7 in 14nm).
>>>>
>>>> Thanks,
>>>> Bogdan
>>>>
>>>>
>>>>
>>>>
>>>> On Tuesday, March 10, 2015 4:55 PM, Marcus Müller via USRP-users
>>>> <usrp-users@lists.ettus.com> <mailto:usrp-users@lists.ettus.com> wrote:
>>>>
>>>>
>>>> Hi Bogdan,
>>>>
>>>> I must admit that I've never seen anyone have much success with
>>>> USB-to-ethernet adapters. In fact, you're the one to report the
>>>> highest PC-to-PC bandwidth I've heard of, so I'd be interested to
>>>> know how many packet errors and dropped packets you saw with iperf.
>>>> Also, what is your CPU load whilst doing that rate? Do these
>>>> adapters offload checksumming, or is that an additional burden to
>>>> your CPU?
>>>>
>>>> Depending on your nc/iperf usage, you might have made advantageous
>>>> usage of higher-level flow control in TCP; since the USRPs talk UDP
>>>> only, there's no possibility to resend packets.
>>>>
>>>> I've actually often seen these adapters simply drop or reorder
>>>> packets under load. Whilst a benchmarking tool might be tolerant to
>>>> reordering, UHD is not; maybe that's what you're seeing (though
>>>> you'd usually see 'S'equence errors instead of 'D's).
>>>>
>>>> You might want to experiment with smaller and bigger packet sizes,
>>>> see [1]; the thing is that USB adapters have to cut up the gigabit
>>>> ethernet frames (which can be rather long, depending on what your
>>>> network hardware supports) into small USB3 packets (which can only
>>>> be up to 1KB long), and the CPU then has to reassemble the ethernet
>>>> packets. That means a lot of workload, so maybe it's better to
>>>> sacrifice a bit of network to overload, but make the UHD sample
>>>> packets small enough to fit into one USB packet.
>>>>
>>>> Greetings,
>>>> Marcus
>>>>
>>>> [1]
>>>> http://files.ettus.com/manual/page_transport.html#transport_udp_params
>>>> ; you'd screw around with recv_frame_size, setting it to something
>>>> like 900 for a start.||
>>>>
>>>> On 03/10/2015 03:33 PM, Bogdan Diaconescu via USRP-users wrote:
>>>>> Hi list,
>>>>>
>>>>> I'm a long time user of USRP and now I'm trying to use my setup
>>>>> with a new laptop that does not have an integrated ethernet card.
>>>>> I am using for now two types of Ethernet 2 USB adapters that have
>>>>> 1Gbps/USB3.0 characteristics.
>>>>>
>>>>> Apparently, for PC-to-PC connection using the dongles I can get
>>>>> around 935Msps speed using iperf or nc which seems just fine.
>>>>> However, when I do just USRP to PC connection I get many Ds on the
>>>>> command line just using the simple uhd_fft. Those Ds are shown
>>>>> even when using a 1Msps rate. They increase when using higher
>>>>> sample rates.
>>>>>
>>>>> I wonder if someone tried this and had some success.
>>>>>
>>>>> My set-up is:
>>>>>
>>>>> Asus ZenBook UX31A (core i7).
>>>>> Ethernet 1Gbps/USB 3.0 dongles: D-Link DAB-1312 and Edimax EU-4306.
>>>>> Ubuntu 14.04
>>>>>
>>>>> I should mention that I passed the phase in which the dongles
>>>>> connect to laptop as USB2.0 because on the other side there was
>>>>> not ethernet cable connected. Yes, this happens with both dongles.
>>>>>
>>>>> Thanks for your support,
>>>>> Bogdan/YO3IIU
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> 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
>>>>
>>>>
>>>> _______________________________________________
>>>> 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
>>>>
>>>>
>>>>
>>>>
>>>
>>> _______________________________________________
>>> 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
>>
>>
>>
>
>
>
MM
Marcus Müller
Thu, Mar 12, 2015 12:31 PM
Hello,
so the question is: When you run iperf in UDP mode at 32MBit/s (equiv.
1MS/s @16bit), do you see any message about reordered packets?
Greetings,
Marcus
On 03/12/2015 01:14 PM, Marcus Müller wrote:
Hi Bogdan,
my initial analysis shows no dropped packets (yay), but strangely
reordered ones (wut?). The UHD dissector doesn't seem to be that
useful anymore.
Thus: You can find my own analysis script at[1].
I've first filtered the capture to only contain sample packets coming
from the device by UDP source port.
Then, I've saved that filtered output in PCAP (as opposed to PCAPng)
format, since dpkt (which is the only packet capture analysis python
module I'm somewhat familiar with) only knows how to deal with that.
See the capture file[2]
https://gist.github.com/marcusmueller/b0ccc0c9b07e6704905a/raw/58e9f4be9636ac194478886c6d0648ac08369f51/n210_capture_samples_only.pcap
Then, I've run the script on that:
|./analyze.py n210_capture_samples_only.pcap
|
giving me
|Packet 45788: Seq. Nr 7 does not follow 5. Time 1426104210.261552, length 1472B
Packet 45789: Seq. Nr 6 does not follow 7. Time 1426104210.261187, length 1472B
Packet 45790: Seq. Nr 8 does not follow 6. Time 1426104210.261913, length 1472B
Packet 53602: Seq. Nr D does not follow B. Time 1426104213.097992, length 1472B
Packet 53606: Seq. Nr C does not follow 0. Time 1426104213.097629, length 1472B
Packet 53607: Seq. Nr 1 does not follow C. Time 1426104213.099440, length 1472B
|
Packets 45788 and 45789 came in reordered, and 53606 should have come
after 53601.
- 45788/45789: Ok, hm, switched places on consecutive packets.
- 53602/53606: a packet delayed by four packets? I'm a bit confused.
Now, I must admit I have no idea whether that reordering takes place
in the device (that would require at least 5*(1516 B/ethernet packet)
buffer) or in the kernel. In the latter case, there might be something
that one can do about it. I'd have to investigate that myself, though,
since I have no idea if one could enforce non-reordering behaviour (I
don't even know which advantage reordering packets would have).
Greetings,
Marcus
[1] https://gist.github.com/marcusmueller/b0ccc0c9b07e6704905a
[2]
https://gist.github.com/marcusmueller/b0ccc0c9b07e6704905a/raw/58e9f4be9636ac194478886c6d0648ac08369f51/n210_capture_samples_only.pcap
On 03/12/2015 10:01 AM, Bogdan Diaconescu wrote:
Hi Marcus,
here is the info: http://iot.mobil4.org/uhd/
Let me know your thoughts and findings.
Thanks,
Bogdan
On Thursday, March 12, 2015 8:54 AM, Marcus Müller
marcus.mueller@ettus.com wrote:
Thanks so much!
On 03/11/2015 09:27 PM, Bogdan Diaconescu wrote:
Thanks Ian, good to know that D is for both reordering and missing
packets.
Now, I did a wireshark capture for a spectrum capture with 1Ghz
frequency and 1Msps until I saw severals Ds on command line.
I attach a screenshot of the packet decoding which looks ugly and
perhaps tells that my wireshark v1.10.x, the default in Ubuntu
14.04, is old. I'm I right here?
I wonder if the 1516 frame size that I see is good for UHD?
I will put the pcap and spectrum record on a server in the wild
tomorrow mornig.
Thanks,
Bogdan
On Wednesday, March 11, 2015 8:02 PM, Ian Buckley
ianb@ionconcepts.com mailto:ianb@ionconcepts.com wrote:
S is most definitely a sequence error….but on TX….note a sequence
error can indicate 2 things packet re-ordering or lost packet.
D is the equivalent RX direction error.
Ok, so I did several tests with various buffers passed in the
uhd_fft command line:
I tried almost everything in the reference given by you Marcus
going wild from min to max and mostly notable lowering
sent_frame_size down to 100 does reduce a bit the rate of Ds.
However, it seems that the moment when Ds start to appear is
delayed because of that but once they start appearing they
continue to increase.
And esentially the Ds are showing up in any situation I tried.
It will be nice to have a test built in FPGA so that once
triggered from the host, it will send known data to the PC
allowing testing the connection.
So, what's next?
On Tuesday, March 10, 2015 7:24 PM, Bogdan Diaconescu
b_diaconescu@yahoo.com mailto:b_diaconescu@yahoo.com wrote:
Hi Marcus,
those dongles are real good ones and they are the winners after
almost 1 years of trial and error with different similar devices.
I so far used them in a non USRP project though
To answer your questions: in a test with iperf (TCP) sending
10Gbit of data between 2 PCs (consistent at 935Mbit/s) there was
no packet error and retransmission. With wireshark I've seen no
TCP retransmission at all after several tests.
We did also tests with UDP using the same setup and the speed is
about 812Mbit/s which is somehow consistent with the fact that in
the linux kernel TCP is optimized for bulk transfer but UDP is
optimized for low latency. We actually got the same results when
using direct desktop PC-2-PC connections that have onboard 1Gb/s
NICs. With the same OS and kernel versions.
So, all above is w/o USRP, just PC to PC.
Now with USRP: I'll try playing with buffers according to the link
you gave but for 1Msps uhd_fft should work never the less. I
haven't look at VITA and its details but for let's say
64bit/sample over the wire you only get 64Mbit/sample which is
very low and should work like a charm.
You are right with the difference between packet size over USB vs.
Ethernet. It may be something there.
Played now with UDP Fragmentation Ofload and checksum offload with
no difference, the same problems.
I would take the processing power out of question as the processor
is quite new (broadwell i7 in 14nm).
Thanks,
Bogdan
On Tuesday, March 10, 2015 4:55 PM, Marcus Müller via USRP-users
usrp-users@lists.ettus.com mailto:usrp-users@lists.ettus.com
wrote:
Hi Bogdan,
I must admit that I've never seen anyone have much success with
USB-to-ethernet adapters. In fact, you're the one to report the
highest PC-to-PC bandwidth I've heard of, so I'd be interested to
know how many packet errors and dropped packets you saw with
iperf. Also, what is your CPU load whilst doing that rate? Do
these adapters offload checksumming, or is that an additional
burden to your CPU?
Depending on your nc/iperf usage, you might have made advantageous
usage of higher-level flow control in TCP; since the USRPs talk
UDP only, there's no possibility to resend packets.
I've actually often seen these adapters simply drop or reorder
packets under load. Whilst a benchmarking tool might be tolerant
to reordering, UHD is not; maybe that's what you're seeing (though
you'd usually see 'S'equence errors instead of 'D's).
You might want to experiment with smaller and bigger packet sizes,
see [1]; the thing is that USB adapters have to cut up the gigabit
ethernet frames (which can be rather long, depending on what your
network hardware supports) into small USB3 packets (which can only
be up to 1KB long), and the CPU then has to reassemble the
ethernet packets. That means a lot of workload, so maybe it's
better to sacrifice a bit of network to overload, but make the UHD
sample packets small enough to fit into one USB packet.
Greetings,
Marcus
[1]
http://files.ettus.com/manual/page_transport.html#transport_udp_params
; you'd screw around with recv_frame_size, setting it to something
like 900 for a start.||
On 03/10/2015 03:33 PM, Bogdan Diaconescu via USRP-users wrote:
Hi list,
I'm a long time user of USRP and now I'm trying to use my setup
with a new laptop that does not have an integrated ethernet card.
I am using for now two types of Ethernet 2 USB adapters that have
1Gbps/USB3.0 characteristics.
Apparently, for PC-to-PC connection using the dongles I can get
around 935Msps speed using iperf or nc which seems just fine.
However, when I do just USRP to PC connection I get many Ds on
the command line just using the simple uhd_fft. Those Ds are
shown even when using a 1Msps rate. They increase when using
higher sample rates.
I wonder if someone tried this and had some success.
My set-up is:
Asus ZenBook UX31A (core i7).
Ethernet 1Gbps/USB 3.0 dongles: D-Link DAB-1312 and Edimax EU-4306.
Ubuntu 14.04
I should mention that I passed the phase in which the dongles
connect to laptop as USB2.0 because on the other side there was
not ethernet cable connected. Yes, this happens with both dongles.
Thanks for your support,
Bogdan/YO3IIU
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
Hello,
so the question is: When you run iperf in UDP mode at 32MBit/s (equiv.
1MS/s @16bit), do you see any message about reordered packets?
Greetings,
Marcus
On 03/12/2015 01:14 PM, Marcus Müller wrote:
> Hi Bogdan,
>
> my initial analysis shows no dropped packets (yay), but strangely
> reordered ones (wut?). The UHD dissector doesn't seem to be that
> useful anymore.
> Thus: You can find my own analysis script at[1].
>
> I've first filtered the capture to only contain sample packets coming
> from the device by UDP source port.
>
> Then, I've saved that filtered output in PCAP (as opposed to PCAPng)
> format, since dpkt (which is the only packet capture analysis python
> module I'm somewhat familiar with) only knows how to deal with that.
> See the capture file[2]
> <https://gist.github.com/marcusmueller/b0ccc0c9b07e6704905a/raw/58e9f4be9636ac194478886c6d0648ac08369f51/n210_capture_samples_only.pcap>
>
> Then, I've run the script on that:
>
> |./analyze.py n210_capture_samples_only.pcap
> |
>
> giving me
>
> |Packet 45788: Seq. Nr 7 does not follow 5. Time 1426104210.261552, length 1472B
> Packet 45789: Seq. Nr 6 does not follow 7. Time 1426104210.261187, length 1472B
> Packet 45790: Seq. Nr 8 does not follow 6. Time 1426104210.261913, length 1472B
> Packet 53602: Seq. Nr D does not follow B. Time 1426104213.097992, length 1472B
> Packet 53606: Seq. Nr C does not follow 0. Time 1426104213.097629, length 1472B
> Packet 53607: Seq. Nr 1 does not follow C. Time 1426104213.099440, length 1472B
> |
>
> Packets 45788 and 45789 came in reordered, and 53606 should have come
> after 53601.
>
> * 45788/45789: Ok, hm, switched places on consecutive packets.
> * 53602/53606: a packet delayed by four packets? I'm a bit confused.
>
> Now, I must admit I have *no* idea whether that reordering takes place
> in the device (that would require at least 5*(1516 B/ethernet packet)
> buffer) or in the kernel. In the latter case, there might be something
> that one can do about it. I'd have to investigate that myself, though,
> since I have no idea if one could enforce non-reordering behaviour (I
> don't even know which advantage reordering packets would have).
>
> Greetings,
> Marcus
>
> [1] https://gist.github.com/marcusmueller/b0ccc0c9b07e6704905a
> [2]
> https://gist.github.com/marcusmueller/b0ccc0c9b07e6704905a/raw/58e9f4be9636ac194478886c6d0648ac08369f51/n210_capture_samples_only.pcap
>
> On 03/12/2015 10:01 AM, Bogdan Diaconescu wrote:
>> Hi Marcus,
>>
>> here is the info: http://iot.mobil4.org/uhd/
>>
>> Let me know your thoughts and findings.
>>
>> Thanks,
>> Bogdan
>>
>>
>> On Thursday, March 12, 2015 8:54 AM, Marcus Müller
>> <marcus.mueller@ettus.com> wrote:
>>
>>
>> Thanks so much!
>>
>> On 03/11/2015 09:27 PM, Bogdan Diaconescu wrote:
>>> Thanks Ian, good to know that D is for both reordering and missing
>>> packets.
>>>
>>> Now, I did a wireshark capture for a spectrum capture with 1Ghz
>>> frequency and 1Msps until I saw severals Ds on command line.
>>>
>>> I attach a screenshot of the packet decoding which looks ugly and
>>> perhaps tells that my wireshark v1.10.x, the default in Ubuntu
>>> 14.04, is old. I'm I right here?
>>>
>>> I wonder if the 1516 frame size that I see is good for UHD?
>>>
>>> I will put the pcap and spectrum record on a server in the wild
>>> tomorrow mornig.
>>>
>>> Thanks,
>>> Bogdan
>>>
>>>
>>> On Wednesday, March 11, 2015 8:02 PM, Ian Buckley
>>> <ianb@ionconcepts.com> <mailto:ianb@ionconcepts.com> wrote:
>>>
>>>
>>> S is most definitely a sequence error….but on TX….note a sequence
>>> error can indicate 2 things packet re-ordering or lost packet.
>>> D is the equivalent RX direction error.
>>>
>>>>
>>>>
>>>> I was wrong on "S" being the indication for sequence errors, by the
>>>> way [1], so what we'd try to find out would be whether there's
>>>> dropped packets or reordered packets or something really goes wrong
>>>> on the UHD side.
>>>>
>>>> Greetings,
>>>> Marcus
>>>>
>>>> [1] lib/transport/super_recv_packet_handler.hpp:571
>>>> https://github.com/EttusResearch/uhd/blob/master/host/lib/transport/super_recv_packet_handler.hpp#L571
>>>>
>>>>
>>>> On 03/10/2015 11:09 PM, Bogdan Diaconescu wrote:
>>>>> Ok, so I did several tests with various buffers passed in the
>>>>> uhd_fft command line:
>>>>>
>>>>> I tried almost everything in the reference given by you Marcus
>>>>> going wild from min to max and mostly notable lowering
>>>>> sent_frame_size down to 100 does reduce a bit the rate of Ds.
>>>>> However, it seems that the moment when Ds start to appear is
>>>>> delayed because of that but once they start appearing they
>>>>> continue to increase.
>>>>>
>>>>> And esentially the Ds are showing up in any situation I tried.
>>>>>
>>>>> It will be nice to have a test built in FPGA so that once
>>>>> triggered from the host, it will send known data to the PC
>>>>> allowing testing the connection.
>>>>>
>>>>> So, what's next?
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Tuesday, March 10, 2015 7:24 PM, Bogdan Diaconescu
>>>>> <b_diaconescu@yahoo.com> <mailto:b_diaconescu@yahoo.com> wrote:
>>>>>
>>>>>
>>>>> Hi Marcus,
>>>>>
>>>>> those dongles are real good ones and they are the winners after
>>>>> almost 1 years of trial and error with different similar devices.
>>>>> I so far used them in a non USRP project though
>>>>>
>>>>> To answer your questions: in a test with iperf (TCP) sending
>>>>> 10Gbit of data between 2 PCs (consistent at 935Mbit/s) there was
>>>>> no packet error and retransmission. With wireshark I've seen no
>>>>> TCP retransmission at all after several tests.
>>>>>
>>>>> We did also tests with UDP using the same setup and the speed is
>>>>> about 812Mbit/s which is somehow consistent with the fact that in
>>>>> the linux kernel TCP is optimized for bulk transfer but UDP is
>>>>> optimized for low latency. We actually got the same results when
>>>>> using direct desktop PC-2-PC connections that have onboard 1Gb/s
>>>>> NICs. With the same OS and kernel versions.
>>>>>
>>>>> So, all above is w/o USRP, just PC to PC.
>>>>>
>>>>> Now with USRP: I'll try playing with buffers according to the link
>>>>> you gave but for 1Msps uhd_fft should work never the less. I
>>>>> haven't look at VITA and its details but for let's say
>>>>> 64bit/sample over the wire you only get 64Mbit/sample which is
>>>>> very low and should work like a charm.
>>>>>
>>>>> You are right with the difference between packet size over USB vs.
>>>>> Ethernet. It may be something there.
>>>>>
>>>>> Played now with UDP Fragmentation Ofload and checksum offload with
>>>>> no difference, the same problems.
>>>>>
>>>>> I would take the processing power out of question as the processor
>>>>> is quite new (broadwell i7 in 14nm).
>>>>>
>>>>> Thanks,
>>>>> Bogdan
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Tuesday, March 10, 2015 4:55 PM, Marcus Müller via USRP-users
>>>>> <usrp-users@lists.ettus.com> <mailto:usrp-users@lists.ettus.com>
>>>>> wrote:
>>>>>
>>>>>
>>>>> Hi Bogdan,
>>>>>
>>>>> I must admit that I've never seen anyone have much success with
>>>>> USB-to-ethernet adapters. In fact, you're the one to report the
>>>>> highest PC-to-PC bandwidth I've heard of, so I'd be interested to
>>>>> know how many packet errors and dropped packets you saw with
>>>>> iperf. Also, what is your CPU load whilst doing that rate? Do
>>>>> these adapters offload checksumming, or is that an additional
>>>>> burden to your CPU?
>>>>>
>>>>> Depending on your nc/iperf usage, you might have made advantageous
>>>>> usage of higher-level flow control in TCP; since the USRPs talk
>>>>> UDP only, there's no possibility to resend packets.
>>>>>
>>>>> I've actually often seen these adapters simply drop or reorder
>>>>> packets under load. Whilst a benchmarking tool might be tolerant
>>>>> to reordering, UHD is not; maybe that's what you're seeing (though
>>>>> you'd usually see 'S'equence errors instead of 'D's).
>>>>>
>>>>> You might want to experiment with smaller and bigger packet sizes,
>>>>> see [1]; the thing is that USB adapters have to cut up the gigabit
>>>>> ethernet frames (which can be rather long, depending on what your
>>>>> network hardware supports) into small USB3 packets (which can only
>>>>> be up to 1KB long), and the CPU then has to reassemble the
>>>>> ethernet packets. That means a lot of workload, so maybe it's
>>>>> better to sacrifice a bit of network to overload, but make the UHD
>>>>> sample packets small enough to fit into one USB packet.
>>>>>
>>>>> Greetings,
>>>>> Marcus
>>>>>
>>>>> [1]
>>>>> http://files.ettus.com/manual/page_transport.html#transport_udp_params
>>>>> ; you'd screw around with recv_frame_size, setting it to something
>>>>> like 900 for a start.||
>>>>>
>>>>> On 03/10/2015 03:33 PM, Bogdan Diaconescu via USRP-users wrote:
>>>>>> Hi list,
>>>>>>
>>>>>> I'm a long time user of USRP and now I'm trying to use my setup
>>>>>> with a new laptop that does not have an integrated ethernet card.
>>>>>> I am using for now two types of Ethernet 2 USB adapters that have
>>>>>> 1Gbps/USB3.0 characteristics.
>>>>>>
>>>>>> Apparently, for PC-to-PC connection using the dongles I can get
>>>>>> around 935Msps speed using iperf or nc which seems just fine.
>>>>>> However, when I do just USRP to PC connection I get many Ds on
>>>>>> the command line just using the simple uhd_fft. Those Ds are
>>>>>> shown even when using a 1Msps rate. They increase when using
>>>>>> higher sample rates.
>>>>>>
>>>>>> I wonder if someone tried this and had some success.
>>>>>>
>>>>>> My set-up is:
>>>>>>
>>>>>> Asus ZenBook UX31A (core i7).
>>>>>> Ethernet 1Gbps/USB 3.0 dongles: D-Link DAB-1312 and Edimax EU-4306.
>>>>>> Ubuntu 14.04
>>>>>>
>>>>>> I should mention that I passed the phase in which the dongles
>>>>>> connect to laptop as USB2.0 because on the other side there was
>>>>>> not ethernet cable connected. Yes, this happens with both dongles.
>>>>>>
>>>>>> Thanks for your support,
>>>>>> Bogdan/YO3IIU
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> 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
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> 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
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>> _______________________________________________
>>>> 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
>>>
>>>
>>>
>>
>>
>>
>
MM
Marcus Müller
Thu, Mar 12, 2015 12:54 PM
Ah yet another question (having skimmed through the AX88179_178a.c
kernel driver): There's no reordering happening in the device driver, as
far as I can tell. You don't happen to have a switch or router between
your USB/ethernet adapter and the USRP?
On 03/12/2015 01:31 PM, Marcus Müller wrote:
Hello,
so the question is: When you run iperf in UDP mode at 32MBit/s (equiv.
1MS/s @16bit), do you see any message about reordered packets?
Greetings,
Marcus
On 03/12/2015 01:14 PM, Marcus Müller wrote:
Hi Bogdan,
my initial analysis shows no dropped packets (yay), but strangely
reordered ones (wut?). The UHD dissector doesn't seem to be that
useful anymore.
Thus: You can find my own analysis script at[1].
I've first filtered the capture to only contain sample packets coming
from the device by UDP source port.
Then, I've saved that filtered output in PCAP (as opposed to PCAPng)
format, since dpkt (which is the only packet capture analysis python
module I'm somewhat familiar with) only knows how to deal with that.
See the capture file[2]
https://gist.github.com/marcusmueller/b0ccc0c9b07e6704905a/raw/58e9f4be9636ac194478886c6d0648ac08369f51/n210_capture_samples_only.pcap
Then, I've run the script on that:
|./analyze.py n210_capture_samples_only.pcap
|
giving me
|Packet 45788: Seq. Nr 7 does not follow 5. Time 1426104210.261552, length 1472B
Packet 45789: Seq. Nr 6 does not follow 7. Time 1426104210.261187, length 1472B
Packet 45790: Seq. Nr 8 does not follow 6. Time 1426104210.261913, length 1472B
Packet 53602: Seq. Nr D does not follow B. Time 1426104213.097992, length 1472B
Packet 53606: Seq. Nr C does not follow 0. Time 1426104213.097629, length 1472B
Packet 53607: Seq. Nr 1 does not follow C. Time 1426104213.099440, length 1472B
|
Packets 45788 and 45789 came in reordered, and 53606 should have come
after 53601.
- 45788/45789: Ok, hm, switched places on consecutive packets.
- 53602/53606: a packet delayed by four packets? I'm a bit confused.
Now, I must admit I have no idea whether that reordering takes
place in the device (that would require at least 5*(1516 B/ethernet
packet) buffer) or in the kernel. In the latter case, there might be
something that one can do about it. I'd have to investigate that
myself, though, since I have no idea if one could enforce
non-reordering behaviour (I don't even know which advantage
reordering packets would have).
Greetings,
Marcus
[1] https://gist.github.com/marcusmueller/b0ccc0c9b07e6704905a
[2]
https://gist.github.com/marcusmueller/b0ccc0c9b07e6704905a/raw/58e9f4be9636ac194478886c6d0648ac08369f51/n210_capture_samples_only.pcap
On 03/12/2015 10:01 AM, Bogdan Diaconescu wrote:
Hi Marcus,
here is the info: http://iot.mobil4.org/uhd/
Let me know your thoughts and findings.
Thanks,
Bogdan
On Thursday, March 12, 2015 8:54 AM, Marcus Müller
marcus.mueller@ettus.com wrote:
Thanks so much!
On 03/11/2015 09:27 PM, Bogdan Diaconescu wrote:
Thanks Ian, good to know that D is for both reordering and missing
packets.
Now, I did a wireshark capture for a spectrum capture with 1Ghz
frequency and 1Msps until I saw severals Ds on command line.
I attach a screenshot of the packet decoding which looks ugly and
perhaps tells that my wireshark v1.10.x, the default in Ubuntu
14.04, is old. I'm I right here?
I wonder if the 1516 frame size that I see is good for UHD?
I will put the pcap and spectrum record on a server in the wild
tomorrow mornig.
Thanks,
Bogdan
On Wednesday, March 11, 2015 8:02 PM, Ian Buckley
ianb@ionconcepts.com mailto:ianb@ionconcepts.com wrote:
S is most definitely a sequence error….but on TX….note a sequence
error can indicate 2 things packet re-ordering or lost packet.
D is the equivalent RX direction error.
Ok, so I did several tests with various buffers passed in the
uhd_fft command line:
I tried almost everything in the reference given by you Marcus
going wild from min to max and mostly notable lowering
sent_frame_size down to 100 does reduce a bit the rate of Ds.
However, it seems that the moment when Ds start to appear is
delayed because of that but once they start appearing they
continue to increase.
And esentially the Ds are showing up in any situation I tried.
It will be nice to have a test built in FPGA so that once
triggered from the host, it will send known data to the PC
allowing testing the connection.
So, what's next?
On Tuesday, March 10, 2015 7:24 PM, Bogdan Diaconescu
b_diaconescu@yahoo.com mailto:b_diaconescu@yahoo.com wrote:
Hi Marcus,
those dongles are real good ones and they are the winners after
almost 1 years of trial and error with different similar devices.
I so far used them in a non USRP project though
To answer your questions: in a test with iperf (TCP) sending
10Gbit of data between 2 PCs (consistent at 935Mbit/s) there was
no packet error and retransmission. With wireshark I've seen no
TCP retransmission at all after several tests.
We did also tests with UDP using the same setup and the speed is
about 812Mbit/s which is somehow consistent with the fact that in
the linux kernel TCP is optimized for bulk transfer but UDP is
optimized for low latency. We actually got the same results when
using direct desktop PC-2-PC connections that have onboard 1Gb/s
NICs. With the same OS and kernel versions.
So, all above is w/o USRP, just PC to PC.
Now with USRP: I'll try playing with buffers according to the
link you gave but for 1Msps uhd_fft should work never the less. I
haven't look at VITA and its details but for let's say
64bit/sample over the wire you only get 64Mbit/sample which is
very low and should work like a charm.
You are right with the difference between packet size over USB
vs. Ethernet. It may be something there.
Played now with UDP Fragmentation Ofload and checksum offload
with no difference, the same problems.
I would take the processing power out of question as the
processor is quite new (broadwell i7 in 14nm).
Thanks,
Bogdan
On Tuesday, March 10, 2015 4:55 PM, Marcus Müller via USRP-users
usrp-users@lists.ettus.com mailto:usrp-users@lists.ettus.com
wrote:
Hi Bogdan,
I must admit that I've never seen anyone have much success with
USB-to-ethernet adapters. In fact, you're the one to report the
highest PC-to-PC bandwidth I've heard of, so I'd be interested to
know how many packet errors and dropped packets you saw with
iperf. Also, what is your CPU load whilst doing that rate? Do
these adapters offload checksumming, or is that an additional
burden to your CPU?
Depending on your nc/iperf usage, you might have made
advantageous usage of higher-level flow control in TCP; since the
USRPs talk UDP only, there's no possibility to resend packets.
I've actually often seen these adapters simply drop or reorder
packets under load. Whilst a benchmarking tool might be tolerant
to reordering, UHD is not; maybe that's what you're seeing
(though you'd usually see 'S'equence errors instead of 'D's).
You might want to experiment with smaller and bigger packet
sizes, see [1]; the thing is that USB adapters have to cut up the
gigabit ethernet frames (which can be rather long, depending on
what your network hardware supports) into small USB3 packets
(which can only be up to 1KB long), and the CPU then has to
reassemble the ethernet packets. That means a lot of workload, so
maybe it's better to sacrifice a bit of network to overload, but
make the UHD sample packets small enough to fit into one USB packet.
Greetings,
Marcus
[1]
http://files.ettus.com/manual/page_transport.html#transport_udp_params
; you'd screw around with recv_frame_size, setting it to
something like 900 for a start.||
On 03/10/2015 03:33 PM, Bogdan Diaconescu via USRP-users wrote:
Hi list,
I'm a long time user of USRP and now I'm trying to use my setup
with a new laptop that does not have an integrated ethernet
card. I am using for now two types of Ethernet 2 USB adapters
that have 1Gbps/USB3.0 characteristics.
Apparently, for PC-to-PC connection using the dongles I can get
around 935Msps speed using iperf or nc which seems just fine.
However, when I do just USRP to PC connection I get many Ds on
the command line just using the simple uhd_fft. Those Ds are
shown even when using a 1Msps rate. They increase when using
higher sample rates.
I wonder if someone tried this and had some success.
My set-up is:
Asus ZenBook UX31A (core i7).
Ethernet 1Gbps/USB 3.0 dongles: D-Link DAB-1312 and Edimax EU-4306.
Ubuntu 14.04
I should mention that I passed the phase in which the dongles
connect to laptop as USB2.0 because on the other side there was
not ethernet cable connected. Yes, this happens with both dongles.
Thanks for your support,
Bogdan/YO3IIU
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
Ah yet another question (having skimmed through the AX88179_178a.c
kernel driver): There's no reordering happening in the device driver, as
far as I can tell. You don't happen to have a switch or router between
your USB/ethernet adapter and the USRP?
On 03/12/2015 01:31 PM, Marcus Müller wrote:
> Hello,
>
> so the question is: When you run iperf in UDP mode at 32MBit/s (equiv.
> 1MS/s @16bit), do you see any message about reordered packets?
>
> Greetings,
> Marcus
>
> On 03/12/2015 01:14 PM, Marcus Müller wrote:
>> Hi Bogdan,
>>
>> my initial analysis shows no dropped packets (yay), but strangely
>> reordered ones (wut?). The UHD dissector doesn't seem to be that
>> useful anymore.
>> Thus: You can find my own analysis script at[1].
>>
>> I've first filtered the capture to only contain sample packets coming
>> from the device by UDP source port.
>>
>> Then, I've saved that filtered output in PCAP (as opposed to PCAPng)
>> format, since dpkt (which is the only packet capture analysis python
>> module I'm somewhat familiar with) only knows how to deal with that.
>> See the capture file[2]
>> <https://gist.github.com/marcusmueller/b0ccc0c9b07e6704905a/raw/58e9f4be9636ac194478886c6d0648ac08369f51/n210_capture_samples_only.pcap>
>>
>> Then, I've run the script on that:
>>
>> |./analyze.py n210_capture_samples_only.pcap
>> |
>>
>> giving me
>>
>> |Packet 45788: Seq. Nr 7 does not follow 5. Time 1426104210.261552, length 1472B
>> Packet 45789: Seq. Nr 6 does not follow 7. Time 1426104210.261187, length 1472B
>> Packet 45790: Seq. Nr 8 does not follow 6. Time 1426104210.261913, length 1472B
>> Packet 53602: Seq. Nr D does not follow B. Time 1426104213.097992, length 1472B
>> Packet 53606: Seq. Nr C does not follow 0. Time 1426104213.097629, length 1472B
>> Packet 53607: Seq. Nr 1 does not follow C. Time 1426104213.099440, length 1472B
>> |
>>
>> Packets 45788 and 45789 came in reordered, and 53606 should have come
>> after 53601.
>>
>> * 45788/45789: Ok, hm, switched places on consecutive packets.
>> * 53602/53606: a packet delayed by four packets? I'm a bit confused.
>>
>> Now, I must admit I have *no* idea whether that reordering takes
>> place in the device (that would require at least 5*(1516 B/ethernet
>> packet) buffer) or in the kernel. In the latter case, there might be
>> something that one can do about it. I'd have to investigate that
>> myself, though, since I have no idea if one could enforce
>> non-reordering behaviour (I don't even know which advantage
>> reordering packets would have).
>>
>> Greetings,
>> Marcus
>>
>> [1] https://gist.github.com/marcusmueller/b0ccc0c9b07e6704905a
>> [2]
>> https://gist.github.com/marcusmueller/b0ccc0c9b07e6704905a/raw/58e9f4be9636ac194478886c6d0648ac08369f51/n210_capture_samples_only.pcap
>>
>> On 03/12/2015 10:01 AM, Bogdan Diaconescu wrote:
>>> Hi Marcus,
>>>
>>> here is the info: http://iot.mobil4.org/uhd/
>>>
>>> Let me know your thoughts and findings.
>>>
>>> Thanks,
>>> Bogdan
>>>
>>>
>>> On Thursday, March 12, 2015 8:54 AM, Marcus Müller
>>> <marcus.mueller@ettus.com> wrote:
>>>
>>>
>>> Thanks so much!
>>>
>>> On 03/11/2015 09:27 PM, Bogdan Diaconescu wrote:
>>>> Thanks Ian, good to know that D is for both reordering and missing
>>>> packets.
>>>>
>>>> Now, I did a wireshark capture for a spectrum capture with 1Ghz
>>>> frequency and 1Msps until I saw severals Ds on command line.
>>>>
>>>> I attach a screenshot of the packet decoding which looks ugly and
>>>> perhaps tells that my wireshark v1.10.x, the default in Ubuntu
>>>> 14.04, is old. I'm I right here?
>>>>
>>>> I wonder if the 1516 frame size that I see is good for UHD?
>>>>
>>>> I will put the pcap and spectrum record on a server in the wild
>>>> tomorrow mornig.
>>>>
>>>> Thanks,
>>>> Bogdan
>>>>
>>>>
>>>> On Wednesday, March 11, 2015 8:02 PM, Ian Buckley
>>>> <ianb@ionconcepts.com> <mailto:ianb@ionconcepts.com> wrote:
>>>>
>>>>
>>>> S is most definitely a sequence error….but on TX….note a sequence
>>>> error can indicate 2 things packet re-ordering or lost packet.
>>>> D is the equivalent RX direction error.
>>>>
>>>>>
>>>>>
>>>>> I was wrong on "S" being the indication for sequence errors, by
>>>>> the way [1], so what we'd try to find out would be whether there's
>>>>> dropped packets or reordered packets or something really goes
>>>>> wrong on the UHD side.
>>>>>
>>>>> Greetings,
>>>>> Marcus
>>>>>
>>>>> [1] lib/transport/super_recv_packet_handler.hpp:571
>>>>> https://github.com/EttusResearch/uhd/blob/master/host/lib/transport/super_recv_packet_handler.hpp#L571
>>>>>
>>>>>
>>>>> On 03/10/2015 11:09 PM, Bogdan Diaconescu wrote:
>>>>>> Ok, so I did several tests with various buffers passed in the
>>>>>> uhd_fft command line:
>>>>>>
>>>>>> I tried almost everything in the reference given by you Marcus
>>>>>> going wild from min to max and mostly notable lowering
>>>>>> sent_frame_size down to 100 does reduce a bit the rate of Ds.
>>>>>> However, it seems that the moment when Ds start to appear is
>>>>>> delayed because of that but once they start appearing they
>>>>>> continue to increase.
>>>>>>
>>>>>> And esentially the Ds are showing up in any situation I tried.
>>>>>>
>>>>>> It will be nice to have a test built in FPGA so that once
>>>>>> triggered from the host, it will send known data to the PC
>>>>>> allowing testing the connection.
>>>>>>
>>>>>> So, what's next?
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Tuesday, March 10, 2015 7:24 PM, Bogdan Diaconescu
>>>>>> <b_diaconescu@yahoo.com> <mailto:b_diaconescu@yahoo.com> wrote:
>>>>>>
>>>>>>
>>>>>> Hi Marcus,
>>>>>>
>>>>>> those dongles are real good ones and they are the winners after
>>>>>> almost 1 years of trial and error with different similar devices.
>>>>>> I so far used them in a non USRP project though
>>>>>>
>>>>>> To answer your questions: in a test with iperf (TCP) sending
>>>>>> 10Gbit of data between 2 PCs (consistent at 935Mbit/s) there was
>>>>>> no packet error and retransmission. With wireshark I've seen no
>>>>>> TCP retransmission at all after several tests.
>>>>>>
>>>>>> We did also tests with UDP using the same setup and the speed is
>>>>>> about 812Mbit/s which is somehow consistent with the fact that in
>>>>>> the linux kernel TCP is optimized for bulk transfer but UDP is
>>>>>> optimized for low latency. We actually got the same results when
>>>>>> using direct desktop PC-2-PC connections that have onboard 1Gb/s
>>>>>> NICs. With the same OS and kernel versions.
>>>>>>
>>>>>> So, all above is w/o USRP, just PC to PC.
>>>>>>
>>>>>> Now with USRP: I'll try playing with buffers according to the
>>>>>> link you gave but for 1Msps uhd_fft should work never the less. I
>>>>>> haven't look at VITA and its details but for let's say
>>>>>> 64bit/sample over the wire you only get 64Mbit/sample which is
>>>>>> very low and should work like a charm.
>>>>>>
>>>>>> You are right with the difference between packet size over USB
>>>>>> vs. Ethernet. It may be something there.
>>>>>>
>>>>>> Played now with UDP Fragmentation Ofload and checksum offload
>>>>>> with no difference, the same problems.
>>>>>>
>>>>>> I would take the processing power out of question as the
>>>>>> processor is quite new (broadwell i7 in 14nm).
>>>>>>
>>>>>> Thanks,
>>>>>> Bogdan
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Tuesday, March 10, 2015 4:55 PM, Marcus Müller via USRP-users
>>>>>> <usrp-users@lists.ettus.com> <mailto:usrp-users@lists.ettus.com>
>>>>>> wrote:
>>>>>>
>>>>>>
>>>>>> Hi Bogdan,
>>>>>>
>>>>>> I must admit that I've never seen anyone have much success with
>>>>>> USB-to-ethernet adapters. In fact, you're the one to report the
>>>>>> highest PC-to-PC bandwidth I've heard of, so I'd be interested to
>>>>>> know how many packet errors and dropped packets you saw with
>>>>>> iperf. Also, what is your CPU load whilst doing that rate? Do
>>>>>> these adapters offload checksumming, or is that an additional
>>>>>> burden to your CPU?
>>>>>>
>>>>>> Depending on your nc/iperf usage, you might have made
>>>>>> advantageous usage of higher-level flow control in TCP; since the
>>>>>> USRPs talk UDP only, there's no possibility to resend packets.
>>>>>>
>>>>>> I've actually often seen these adapters simply drop or reorder
>>>>>> packets under load. Whilst a benchmarking tool might be tolerant
>>>>>> to reordering, UHD is not; maybe that's what you're seeing
>>>>>> (though you'd usually see 'S'equence errors instead of 'D's).
>>>>>>
>>>>>> You might want to experiment with smaller and bigger packet
>>>>>> sizes, see [1]; the thing is that USB adapters have to cut up the
>>>>>> gigabit ethernet frames (which can be rather long, depending on
>>>>>> what your network hardware supports) into small USB3 packets
>>>>>> (which can only be up to 1KB long), and the CPU then has to
>>>>>> reassemble the ethernet packets. That means a lot of workload, so
>>>>>> maybe it's better to sacrifice a bit of network to overload, but
>>>>>> make the UHD sample packets small enough to fit into one USB packet.
>>>>>>
>>>>>> Greetings,
>>>>>> Marcus
>>>>>>
>>>>>> [1]
>>>>>> http://files.ettus.com/manual/page_transport.html#transport_udp_params
>>>>>> ; you'd screw around with recv_frame_size, setting it to
>>>>>> something like 900 for a start.||
>>>>>>
>>>>>> On 03/10/2015 03:33 PM, Bogdan Diaconescu via USRP-users wrote:
>>>>>>> Hi list,
>>>>>>>
>>>>>>> I'm a long time user of USRP and now I'm trying to use my setup
>>>>>>> with a new laptop that does not have an integrated ethernet
>>>>>>> card. I am using for now two types of Ethernet 2 USB adapters
>>>>>>> that have 1Gbps/USB3.0 characteristics.
>>>>>>>
>>>>>>> Apparently, for PC-to-PC connection using the dongles I can get
>>>>>>> around 935Msps speed using iperf or nc which seems just fine.
>>>>>>> However, when I do just USRP to PC connection I get many Ds on
>>>>>>> the command line just using the simple uhd_fft. Those Ds are
>>>>>>> shown even when using a 1Msps rate. They increase when using
>>>>>>> higher sample rates.
>>>>>>>
>>>>>>> I wonder if someone tried this and had some success.
>>>>>>>
>>>>>>> My set-up is:
>>>>>>>
>>>>>>> Asus ZenBook UX31A (core i7).
>>>>>>> Ethernet 1Gbps/USB 3.0 dongles: D-Link DAB-1312 and Edimax EU-4306.
>>>>>>> Ubuntu 14.04
>>>>>>>
>>>>>>> I should mention that I passed the phase in which the dongles
>>>>>>> connect to laptop as USB2.0 because on the other side there was
>>>>>>> not ethernet cable connected. Yes, this happens with both dongles.
>>>>>>>
>>>>>>> Thanks for your support,
>>>>>>> Bogdan/YO3IIU
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> 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
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> 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
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> 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
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>
>
BD
Bogdan Diaconescu
Thu, Mar 12, 2015 2:06 PM
Hi Marcus,
so the results are that there are some reordered packets. The number of reordered packets seem to be about the number of Ds I was seeing.
To answer to your questions:
"so the question is: When you run iperf in UDP mode at 32MBit/s (equiv. 1MS/s @16bit), do you see any message about reordered packets?"
I don't see reordered packets reported by iperf except one each time. I attach the txt file with results from iperf in various situations (attached later too).
"Ah yet another question (having skimmed through the AX88179_178a.c kernel driver): There's no reordering happening in the device driver, as far as I can tell. You don't happen to have a switch or router between your USB/ethernet adapter and the USRP?"
It is just the USRP connected directly to the dongle. No switch/router between.
Bogdan
On Thursday, March 12, 2015 3:01 PM, Marcus Müller <marcus.mueller@ettus.com> wrote:
Ah yet another question (having skimmed through the AX88179_178a.c kernel driver): There's no reordering happening in the device driver, as far as I can tell. You don't happen to have a switch or router between your USB/ethernet adapter and the USRP?
On 03/12/2015 01:31 PM, Marcus Müller wrote:
Hello,
so the question is: When you run iperf in UDP mode at 32MBit/s (equiv. 1MS/s @16bit), do you see any message about reordered packets?
Greetings,
Marcus
On 03/12/2015 01:14 PM, Marcus Müller wrote:
Hi Bogdan,
my initial analysis shows no dropped packets (yay), but strangely reordered ones (wut?). The UHD dissector doesn't seem to be that useful anymore.
Thus: You can find my own analysis script at[1].
I've first filtered the capture to only contain sample packets coming from the device by UDP source port. Then, I've saved that filtered output in PCAP (as opposed to PCAPng) format, since dpkt (which is the only packet capture analysis python module I'm somewhat familiar with) only knows how to deal with that. See the capture file[2] Then, I've run the script on that: ./analyze.py n210_capture_samples_only.pcap
giving me Packet 45788: Seq. Nr 7 does not follow 5. Time 1426104210.261552, length 1472B
Packet 45789: Seq. Nr 6 does not follow 7. Time 1426104210.261187, length 1472B
Packet 45790: Seq. Nr 8 does not follow 6. Time 1426104210.261913, length 1472B
Packet 53602: Seq. Nr D does not follow B. Time 1426104213.097992, length 1472B
Packet 53606: Seq. Nr C does not follow 0. Time 1426104213.097629, length 1472B
Packet 53607: Seq. Nr 1 does not follow C. Time 1426104213.099440, length 1472B
Packets 45788 and 45789 came in reordered, and 53606 should have come after 53601.
- 45788/45789: Ok, hm, switched places on consecutive packets.
- 53602/53606: a packet delayed by four packets? I'm a bit confused.
Now, I must admit I have no idea whether that reordering takes place in the device (that would require at least 5*(1516 B/ethernet packet) buffer) or in the kernel. In the latter case, there might be something that one can do about it. I'd have to investigate that myself, though, since I have no idea if one could enforce non-reordering behaviour (I don't even know which advantage reordering packets would have).
Greetings,
Marcus
[1] https://gist.github.com/marcusmueller/b0ccc0c9b07e6704905a
[2] https://gist.github.com/marcusmueller/b0ccc0c9b07e6704905a/raw/58e9f4be9636ac194478886c6d0648ac08369f51/n210_capture_samples_only.pcap
On 03/12/2015 10:01 AM, Bogdan Diaconescu wrote:
Hi Marcus,
here is the info: http://iot.mobil4.org/uhd/
Let me know your thoughts and findings.
Thanks, Bogdan
On Thursday, March 12, 2015 8:54 AM, Marcus Müller <marcus.mueller@ettus.com> wrote:
Thanks so much!
On 03/11/2015 09:27 PM, Bogdan Diaconescu wrote:
Thanks Ian, good to know that D is for both reordering and missing packets.
Now, I did a wireshark capture for a spectrum capture with 1Ghz frequency and 1Msps until I saw severals Ds on command line.
I attach a screenshot of the packet decoding which looks ugly and perhaps tells that my wireshark v1.10.x, the default in Ubuntu 14.04, is old. I'm I right here?
I wonder if the 1516 frame size that I see is good for UHD?
I will put the pcap and spectrum record on a server in the wild tomorrow mornig.
Thanks,
Bogdan
On Wednesday, March 11, 2015 8:02 PM, Ian Buckley <ianb@ionconcepts.com> wrote:
S is most definitely a sequence error….but on TX….note a sequence error can indicate 2 things packet re-ordering or lost packet. D is the equivalent RX direction error.
I was wrong on "S" being the indication for sequence errors, by the way [1], so what we'd try to find out would be whether there's dropped packets or reordered packets or something really goes wrong on the UHD side.
Greetings,
Marcus
[1] lib/transport/super_recv_packet_handler.hpp:571
https://github.com/EttusResearch/uhd/blob/master/host/lib/transport/super_recv_packet_handler.hpp#L571
On 03/10/2015 11:09 PM, Bogdan Diaconescu wrote:
Ok, so I did several tests with various buffers passed in the uhd_fft command line:
I tried almost everything in the reference given by you Marcus going wild from min to max and mostly notable lowering sent_frame_size down to 100 does reduce a bit the rate of Ds. However, it seems that the moment when Ds start to appear is delayed because of that but once they start appearing they continue to increase.
And esentially the Ds are showing up in any situation I tried.
It will be nice to have a test built in FPGA so that once triggered from the host, it will send known data to the PC allowing testing the connection.
So, what's next?
On Tuesday, March 10, 2015 7:24 PM, Bogdan Diaconescu <b_diaconescu@yahoo.com> wrote:
Hi Marcus,
those dongles are real good ones and they are the winners after almost 1 years of trial and error with different similar devices. I so far used them in a non USRP project though
To answer your questions: in a test with iperf (TCP) sending 10Gbit of data between 2 PCs (consistent at 935Mbit/s) there was no packet error and retransmission. With wireshark I've seen no TCP retransmission at all after several tests.
We did also tests with UDP using the same setup and the speed is about 812Mbit/s which is somehow consistent with the fact that in the linux kernel TCP is optimized for bulk transfer but UDP is optimized for low latency. We actually got the same results when using direct desktop PC-2-PC connections that have onboard 1Gb/s NICs. With the same OS and kernel versions.
So, all above is w/o USRP, just PC to PC.
Now with USRP: I'll try playing with buffers according to the link you gave but for 1Msps uhd_fft should work never the less. I haven't look at VITA and its details but for let's say 64bit/sample over the wire you only get 64Mbit/sample which is very low and should work like a charm.
You are right with the difference between packet size over USB vs. Ethernet. It may be something there.
Played now with UDP Fragmentation Ofload and checksum offload with no difference, the same problems.
I would take the processing power out of question as the processor is quite new (broadwell i7 in 14nm).
Thanks, Bogdan
On Tuesday, March 10, 2015 4:55 PM, Marcus Müller via USRP-users <usrp-users@lists.ettus.com> wrote:
Hi Bogdan,
I must admit that I've never seen anyone have much success with USB-to-ethernet adapters. In fact, you're the one to report the highest PC-to-PC bandwidth I've heard of, so I'd be interested to know how many packet errors and dropped packets you saw with iperf. Also, what is your CPU load whilst doing that rate? Do these adapters offload checksumming, or is that an additional burden to your CPU?
Depending on your nc/iperf usage, you might have made advantageous usage of higher-level flow control in TCP; since the USRPs talk UDP only, there's no possibility to resend packets.
I've actually often seen these adapters simply drop or reorder packets under load. Whilst a benchmarking tool might be tolerant to reordering, UHD is not; maybe that's what you're seeing (though you'd usually see 'S'equence errors instead of 'D's).
You might want to experiment with smaller and bigger packet sizes, see [1]; the thing is that USB adapters have to cut up the gigabit ethernet frames (which can be rather long, depending on what your network hardware supports) into small USB3 packets (which can only be up to 1KB long), and the CPU then has to reassemble the ethernet packets. That means a lot of workload, so maybe it's better to sacrifice a bit of network to overload, but make the UHD sample packets small enough to fit into one USB packet.
Greetings,
Marcus
[1] http://files.ettus.com/manual/page_transport.html#transport_udp_params ; you'd screw around with recv_frame_size, setting it to something like 900 for a start.
On 03/10/2015 03:33 PM, Bogdan Diaconescu via USRP-users wrote:
Hi list,
I'm a long time user of USRP and now I'm trying to use my setup with a new laptop that does not have an integrated ethernet card. I am using for now two types of Ethernet 2 USB adapters that have 1Gbps/USB3.0 characteristics.
Apparently, for PC-to-PC connection using the dongles I can get around 935Msps speed using iperf or nc which seems just fine. However, when I do just USRP to PC connection I get many Ds on the command line just using the simple uhd_fft. Those Ds are shown even when using a 1Msps rate. They increase when using higher sample rates.
I wonder if someone tried this and had some success.
My set-up is:
Asus ZenBook UX31A (core i7). Ethernet 1Gbps/USB 3.0 dongles: D-Link DAB-1312 and Edimax EU-4306. Ubuntu 14.04
I should mention that I passed the phase in which the dongles connect to laptop as USB2.0 because on the other side there was not ethernet cable connected. Yes, this happens with both dongles.
Thanks for your support, Bogdan/YO3IIU
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
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
Hi Marcus,
so the results are that there are some reordered packets. The number of reordered packets seem to be about the number of Ds I was seeing.
To answer to your questions:
"so the question is: When you run iperf in UDP mode at 32MBit/s (equiv. 1MS/s @16bit), do you see any message about reordered packets?"
>> I don't see reordered packets reported by iperf except one each time. I attach the txt file with results from iperf in various situations (attached later too).
"Ah yet another question (having skimmed through the AX88179_178a.c kernel driver): There's no reordering happening in the device driver, as far as I can tell. You don't happen to have a switch or router between your USB/ethernet adapter and the USRP?"
>> It is just the USRP connected directly to the dongle. No switch/router between.
Bogdan
On Thursday, March 12, 2015 3:01 PM, Marcus Müller <marcus.mueller@ettus.com> wrote:
Ah yet another question (having skimmed through the AX88179_178a.c kernel driver): There's no reordering happening in the device driver, as far as I can tell. You don't happen to have a switch or router between your USB/ethernet adapter and the USRP?
On 03/12/2015 01:31 PM, Marcus Müller wrote:
Hello,
so the question is: When you run iperf in UDP mode at 32MBit/s (equiv. 1MS/s @16bit), do you see any message about reordered packets?
Greetings,
Marcus
On 03/12/2015 01:14 PM, Marcus Müller wrote:
Hi Bogdan,
my initial analysis shows no dropped packets (yay), but strangely reordered ones (wut?). The UHD dissector doesn't seem to be that useful anymore.
Thus: You can find my own analysis script at[1].
I've first filtered the capture to only contain sample packets coming from the device by UDP source port. Then, I've saved that filtered output in PCAP (as opposed to PCAPng) format, since dpkt (which is the only packet capture analysis python module I'm somewhat familiar with) only knows how to deal with that. See the capture file[2] Then, I've run the script on that: ./analyze.py n210_capture_samples_only.pcap
giving me Packet 45788: Seq. Nr 7 does not follow 5. Time 1426104210.261552, length 1472B
Packet 45789: Seq. Nr 6 does not follow 7. Time 1426104210.261187, length 1472B
Packet 45790: Seq. Nr 8 does not follow 6. Time 1426104210.261913, length 1472B
Packet 53602: Seq. Nr D does not follow B. Time 1426104213.097992, length 1472B
Packet 53606: Seq. Nr C does not follow 0. Time 1426104213.097629, length 1472B
Packet 53607: Seq. Nr 1 does not follow C. Time 1426104213.099440, length 1472B
Packets 45788 and 45789 came in reordered, and 53606 should have come after 53601.
- 45788/45789: Ok, hm, switched places on consecutive packets.
- 53602/53606: a packet delayed by four packets? I'm a bit confused.
Now, I must admit I have *no* idea whether that reordering takes place in the device (that would require at least 5*(1516 B/ethernet packet) buffer) or in the kernel. In the latter case, there might be something that one can do about it. I'd have to investigate that myself, though, since I have no idea if one could enforce non-reordering behaviour (I don't even know which advantage reordering packets would have).
Greetings,
Marcus
[1] https://gist.github.com/marcusmueller/b0ccc0c9b07e6704905a
[2] https://gist.github.com/marcusmueller/b0ccc0c9b07e6704905a/raw/58e9f4be9636ac194478886c6d0648ac08369f51/n210_capture_samples_only.pcap
On 03/12/2015 10:01 AM, Bogdan Diaconescu wrote:
Hi Marcus,
here is the info: http://iot.mobil4.org/uhd/
Let me know your thoughts and findings.
Thanks, Bogdan
On Thursday, March 12, 2015 8:54 AM, Marcus Müller <marcus.mueller@ettus.com> wrote:
Thanks so much!
On 03/11/2015 09:27 PM, Bogdan Diaconescu wrote:
Thanks Ian, good to know that D is for both reordering and missing packets.
Now, I did a wireshark capture for a spectrum capture with 1Ghz frequency and 1Msps until I saw severals Ds on command line.
I attach a screenshot of the packet decoding which looks ugly and perhaps tells that my wireshark v1.10.x, the default in Ubuntu 14.04, is old. I'm I right here?
I wonder if the 1516 frame size that I see is good for UHD?
I will put the pcap and spectrum record on a server in the wild tomorrow mornig.
Thanks,
Bogdan
On Wednesday, March 11, 2015 8:02 PM, Ian Buckley <ianb@ionconcepts.com> wrote:
S is most definitely a sequence error….but on TX….note a sequence error can indicate 2 things packet re-ordering or lost packet. D is the equivalent RX direction error.
I was wrong on "S" being the indication for sequence errors, by the way [1], so what we'd try to find out would be whether there's dropped packets or reordered packets or something really goes wrong on the UHD side.
Greetings,
Marcus
[1] lib/transport/super_recv_packet_handler.hpp:571
https://github.com/EttusResearch/uhd/blob/master/host/lib/transport/super_recv_packet_handler.hpp#L571
On 03/10/2015 11:09 PM, Bogdan Diaconescu wrote:
Ok, so I did several tests with various buffers passed in the uhd_fft command line:
I tried almost everything in the reference given by you Marcus going wild from min to max and mostly notable lowering sent_frame_size down to 100 does reduce a bit the rate of Ds. However, it seems that the moment when Ds start to appear is delayed because of that but once they start appearing they continue to increase.
And esentially the Ds are showing up in any situation I tried.
It will be nice to have a test built in FPGA so that once triggered from the host, it will send known data to the PC allowing testing the connection.
So, what's next?
On Tuesday, March 10, 2015 7:24 PM, Bogdan Diaconescu <b_diaconescu@yahoo.com> wrote:
Hi Marcus,
those dongles are real good ones and they are the winners after almost 1 years of trial and error with different similar devices. I so far used them in a non USRP project though
To answer your questions: in a test with iperf (TCP) sending 10Gbit of data between 2 PCs (consistent at 935Mbit/s) there was no packet error and retransmission. With wireshark I've seen no TCP retransmission at all after several tests.
We did also tests with UDP using the same setup and the speed is about 812Mbit/s which is somehow consistent with the fact that in the linux kernel TCP is optimized for bulk transfer but UDP is optimized for low latency. We actually got the same results when using direct desktop PC-2-PC connections that have onboard 1Gb/s NICs. With the same OS and kernel versions.
So, all above is w/o USRP, just PC to PC.
Now with USRP: I'll try playing with buffers according to the link you gave but for 1Msps uhd_fft should work never the less. I haven't look at VITA and its details but for let's say 64bit/sample over the wire you only get 64Mbit/sample which is very low and should work like a charm.
You are right with the difference between packet size over USB vs. Ethernet. It may be something there.
Played now with UDP Fragmentation Ofload and checksum offload with no difference, the same problems.
I would take the processing power out of question as the processor is quite new (broadwell i7 in 14nm).
Thanks, Bogdan
On Tuesday, March 10, 2015 4:55 PM, Marcus Müller via USRP-users <usrp-users@lists.ettus.com> wrote:
Hi Bogdan,
I must admit that I've never seen anyone have much success with USB-to-ethernet adapters. In fact, you're the one to report the highest PC-to-PC bandwidth I've heard of, so I'd be interested to know how many packet errors and dropped packets you saw with iperf. Also, what is your CPU load whilst doing that rate? Do these adapters offload checksumming, or is that an additional burden to your CPU?
Depending on your nc/iperf usage, you might have made advantageous usage of higher-level flow control in TCP; since the USRPs talk UDP only, there's no possibility to resend packets.
I've actually often seen these adapters simply drop or reorder packets under load. Whilst a benchmarking tool might be tolerant to reordering, UHD is not; maybe that's what you're seeing (though you'd usually see 'S'equence errors instead of 'D's).
You might want to experiment with smaller and bigger packet sizes, see [1]; the thing is that USB adapters have to cut up the gigabit ethernet frames (which can be rather long, depending on what your network hardware supports) into small USB3 packets (which can only be up to 1KB long), and the CPU then has to reassemble the ethernet packets. That means a lot of workload, so maybe it's better to sacrifice a bit of network to overload, but make the UHD sample packets small enough to fit into one USB packet.
Greetings,
Marcus
[1] http://files.ettus.com/manual/page_transport.html#transport_udp_params ; you'd screw around with recv_frame_size, setting it to something like 900 for a start.
On 03/10/2015 03:33 PM, Bogdan Diaconescu via USRP-users wrote:
Hi list,
I'm a long time user of USRP and now I'm trying to use my setup with a new laptop that does not have an integrated ethernet card. I am using for now two types of Ethernet 2 USB adapters that have 1Gbps/USB3.0 characteristics.
Apparently, for PC-to-PC connection using the dongles I can get around 935Msps speed using iperf or nc which seems just fine. However, when I do just USRP to PC connection I get many Ds on the command line just using the simple uhd_fft. Those Ds are shown even when using a 1Msps rate. They increase when using higher sample rates.
I wonder if someone tried this and had some success.
My set-up is:
Asus ZenBook UX31A (core i7). Ethernet 1Gbps/USB 3.0 dongles: D-Link DAB-1312 and Edimax EU-4306. Ubuntu 14.04
I should mention that I passed the phase in which the dongles connect to laptop as USB2.0 because on the other side there was not ethernet cable connected. Yes, this happens with both dongles.
Thanks for your support, Bogdan/YO3IIU
_______________________________________________
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
_______________________________________________
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
MM
Marcus Müller
Thu, Mar 12, 2015 2:18 PM
Ah, right, I forgot you've already attached the iperf results. Thanks!
I'm currently trying to understand some linux low-level networking; I
really want to know where that reordering happens.
On 03/12/2015 03:06 PM, Bogdan Diaconescu wrote:
Hi Marcus,
so the results are that there are some reordered packets. The number
of reordered packets seem to be about the number of Ds I was seeing.
To answer to your questions:
"so the question is: When you run iperf in UDP mode at 32MBit/s
(equiv. 1MS/s @16bit), do you see any message about reordered packets?"
I don't see reordered packets reported by iperf except one each
time. I attach the txt file with results from iperf in various
situations (attached later too).
"Ah yet another question (having skimmed through the AX88179_178a.c
kernel driver): There's no reordering happening in the device driver,
as far as I can tell. You don't happen to have a switch or router
between your USB/ethernet adapter and the USRP?"
It is just the USRP connected directly to the dongle. No
switch/router between.
Bogdan
On Thursday, March 12, 2015 3:01 PM, Marcus Müller
marcus.mueller@ettus.com wrote:
Ah yet another question (having skimmed through the AX88179_178a.c
kernel driver): There's no reordering happening in the device driver,
as far as I can tell. You don't happen to have a switch or router
between your USB/ethernet adapter and the USRP?
On 03/12/2015 01:31 PM, Marcus Müller wrote:
Hello,
so the question is: When you run iperf in UDP mode at 32MBit/s (equiv.
1MS/s @16bit), do you see any message about reordered packets?
Greetings,
Marcus
On 03/12/2015 01:14 PM, Marcus Müller wrote:
Hi Bogdan,
my initial analysis shows no dropped packets (yay), but strangely
reordered ones (wut?). The UHD dissector doesn't seem to be that
useful anymore.
Thus: You can find my own analysis script at[1].
I've first filtered the capture to only contain sample packets coming
from the device by UDP source port.
Then, I've saved that filtered output in PCAP (as opposed to PCAPng)
format, since dpkt (which is the only packet capture analysis python
module I'm somewhat familiar with) only knows how to deal with that.
See the capture file[2]
https://gist.github.com/marcusmueller/b0ccc0c9b07e6704905a/raw/58e9f4be9636ac194478886c6d0648ac08369f51/n210_capture_samples_only.pcap
Then, I've run the script on that:
|./analyze.py n210_capture_samples_only.pcap
|
giving me
|Packet 45788: Seq. Nr 7 does not follow 5. Time 1426104210.261552, length 1472B
Packet 45789: Seq. Nr 6 does not follow 7. Time 1426104210.261187, length 1472B
Packet 45790: Seq. Nr 8 does not follow 6. Time 1426104210.261913, length 1472B
Packet 53602: Seq. Nr D does not follow B. Time 1426104213.097992, length 1472B
Packet 53606: Seq. Nr C does not follow 0. Time 1426104213.097629, length 1472B
Packet 53607: Seq. Nr 1 does not follow C. Time 1426104213.099440, length 1472B
|
Packets 45788 and 45789 came in reordered, and 53606 should have come
after 53601.
- 45788/45789: Ok, hm, switched places on consecutive packets.
- 53602/53606: a packet delayed by four packets? I'm a bit confused.
Now, I must admit I have no idea whether that reordering takes place
in the device (that would require at least 5*(1516 B/ethernet packet)
buffer) or in the kernel. In the latter case, there might be something
that one can do about it. I'd have to investigate that myself, though,
since I have no idea if one could enforce non-reordering behaviour (I
don't even know which advantage reordering packets would have).
Greetings,
Marcus
[1] https://gist.github.com/marcusmueller/b0ccc0c9b07e6704905a
[2]
https://gist.github.com/marcusmueller/b0ccc0c9b07e6704905a/raw/58e9f4be9636ac194478886c6d0648ac08369f51/n210_capture_samples_only.pcap
On 03/12/2015 10:01 AM, Bogdan Diaconescu wrote:
Thanks Ian, good to know that D is for both reordering and missing
packets.
Now, I did a wireshark capture for a spectrum capture with 1Ghz
frequency and 1Msps until I saw severals Ds on command line.
I attach a screenshot of the packet decoding which looks ugly and
perhaps tells that my wireshark v1.10.x, the default in Ubuntu
14.04, is old. I'm I right here?
I wonder if the 1516 frame size that I see is good for UHD?
I will put the pcap and spectrum record on a server in the wild
tomorrow mornig.
Thanks,
Bogdan
On Wednesday, March 11, 2015 8:02 PM, Ian Buckley
ianb@ionconcepts.com mailto:ianb@ionconcepts.com wrote:
S is most definitely a sequence error….but on TX….note a sequence
error can indicate 2 things packet re-ordering or lost packet.
D is the equivalent RX direction error.
Ok, so I did several tests with various buffers passed in the
uhd_fft command line:
I tried almost everything in the reference given by you Marcus
going wild from min to max and mostly notable lowering
sent_frame_size down to 100 does reduce a bit the rate of Ds.
However, it seems that the moment when Ds start to appear is
delayed because of that but once they start appearing they
continue to increase.
And esentially the Ds are showing up in any situation I tried.
It will be nice to have a test built in FPGA so that once
triggered from the host, it will send known data to the PC
allowing testing the connection.
So, what's next?
On Tuesday, March 10, 2015 7:24 PM, Bogdan Diaconescu
b_diaconescu@yahoo.com mailto:b_diaconescu@yahoo.com wrote:
Hi Marcus,
those dongles are real good ones and they are the winners after
almost 1 years of trial and error with different similar devices.
I so far used them in a non USRP project though
To answer your questions: in a test with iperf (TCP) sending
10Gbit of data between 2 PCs (consistent at 935Mbit/s) there was
no packet error and retransmission. With wireshark I've seen no
TCP retransmission at all after several tests.
We did also tests with UDP using the same setup and the speed is
about 812Mbit/s which is somehow consistent with the fact that in
the linux kernel TCP is optimized for bulk transfer but UDP is
optimized for low latency. We actually got the same results when
using direct desktop PC-2-PC connections that have onboard 1Gb/s
NICs. With the same OS and kernel versions.
So, all above is w/o USRP, just PC to PC.
Now with USRP: I'll try playing with buffers according to the link
you gave but for 1Msps uhd_fft should work never the less. I
haven't look at VITA and its details but for let's say
64bit/sample over the wire you only get 64Mbit/sample which is
very low and should work like a charm.
You are right with the difference between packet size over USB vs.
Ethernet. It may be something there.
Played now with UDP Fragmentation Ofload and checksum offload with
no difference, the same problems.
I would take the processing power out of question as the processor
is quite new (broadwell i7 in 14nm).
Thanks,
Bogdan
On Tuesday, March 10, 2015 4:55 PM, Marcus Müller via USRP-users
usrp-users@lists.ettus.com mailto:usrp-users@lists.ettus.com
wrote:
Hi Bogdan,
I must admit that I've never seen anyone have much success with
USB-to-ethernet adapters. In fact, you're the one to report the
highest PC-to-PC bandwidth I've heard of, so I'd be interested to
know how many packet errors and dropped packets you saw with
iperf. Also, what is your CPU load whilst doing that rate? Do
these adapters offload checksumming, or is that an additional
burden to your CPU?
Depending on your nc/iperf usage, you might have made advantageous
usage of higher-level flow control in TCP; since the USRPs talk
UDP only, there's no possibility to resend packets.
I've actually often seen these adapters simply drop or reorder
packets under load. Whilst a benchmarking tool might be tolerant
to reordering, UHD is not; maybe that's what you're seeing (though
you'd usually see 'S'equence errors instead of 'D's).
You might want to experiment with smaller and bigger packet sizes,
see [1]; the thing is that USB adapters have to cut up the gigabit
ethernet frames (which can be rather long, depending on what your
network hardware supports) into small USB3 packets (which can only
be up to 1KB long), and the CPU then has to reassemble the
ethernet packets. That means a lot of workload, so maybe it's
better to sacrifice a bit of network to overload, but make the UHD
sample packets small enough to fit into one USB packet.
Greetings,
Marcus
[1]
http://files.ettus.com/manual/page_transport.html#transport_udp_params
; you'd screw around with recv_frame_size, setting it to something
like 900 for a start.||
On 03/10/2015 03:33 PM, Bogdan Diaconescu via USRP-users wrote:
Hi list,
I'm a long time user of USRP and now I'm trying to use my setup
with a new laptop that does not have an integrated ethernet card.
I am using for now two types of Ethernet 2 USB adapters that have
1Gbps/USB3.0 characteristics.
Apparently, for PC-to-PC connection using the dongles I can get
around 935Msps speed using iperf or nc which seems just fine.
However, when I do just USRP to PC connection I get many Ds on
the command line just using the simple uhd_fft. Those Ds are
shown even when using a 1Msps rate. They increase when using
higher sample rates.
I wonder if someone tried this and had some success.
My set-up is:
Asus ZenBook UX31A (core i7).
Ethernet 1Gbps/USB 3.0 dongles: D-Link DAB-1312 and Edimax EU-4306.
Ubuntu 14.04
I should mention that I passed the phase in which the dongles
connect to laptop as USB2.0 because on the other side there was
not ethernet cable connected. Yes, this happens with both dongles.
Thanks for your support,
Bogdan/YO3IIU
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
Ah, right, I forgot you've already attached the iperf results. Thanks!
I'm currently trying to understand some linux low-level networking; I
really want to know where that reordering happens.
On 03/12/2015 03:06 PM, Bogdan Diaconescu wrote:
> Hi Marcus,
>
> so the results are that there are some reordered packets. The number
> of reordered packets seem to be about the number of Ds I was seeing.
>
> To answer to your questions:
>
> "so the question is: When you run iperf in UDP mode at 32MBit/s
> (equiv. 1MS/s @16bit), do you see any message about reordered packets?"
>
> >> I don't see reordered packets reported by iperf except one each
> time. I attach the txt file with results from iperf in various
> situations (attached later too).
>
> "Ah yet another question (having skimmed through the AX88179_178a.c
> kernel driver): There's no reordering happening in the device driver,
> as far as I can tell. You don't happen to have a switch or router
> between your USB/ethernet adapter and the USRP?"
>
> >> It is just the USRP connected directly to the dongle. No
> switch/router between.
>
> Bogdan
>
>
>
> On Thursday, March 12, 2015 3:01 PM, Marcus Müller
> <marcus.mueller@ettus.com> wrote:
>
>
> Ah yet another question (having skimmed through the AX88179_178a.c
> kernel driver): There's no reordering happening in the device driver,
> as far as I can tell. You don't happen to have a switch or router
> between your USB/ethernet adapter and the USRP?
>
>
> On 03/12/2015 01:31 PM, Marcus Müller wrote:
> Hello,
>
> so the question is: When you run iperf in UDP mode at 32MBit/s (equiv.
> 1MS/s @16bit), do you see any message about reordered packets?
>
> Greetings,
> Marcus
>
> On 03/12/2015 01:14 PM, Marcus Müller wrote:
> Hi Bogdan,
>
> my initial analysis shows no dropped packets (yay), but strangely
> reordered ones (wut?). The UHD dissector doesn't seem to be that
> useful anymore.
> Thus: You can find my own analysis script at[1].
> I've first filtered the capture to only contain sample packets coming
> from the device by UDP source port.
> Then, I've saved that filtered output in PCAP (as opposed to PCAPng)
> format, since dpkt (which is the only packet capture analysis python
> module I'm somewhat familiar with) only knows how to deal with that.
> See the capture file[2]
> <https://gist.github.com/marcusmueller/b0ccc0c9b07e6704905a/raw/58e9f4be9636ac194478886c6d0648ac08369f51/n210_capture_samples_only.pcap>
> Then, I've run the script on that:
> |./analyze.py n210_capture_samples_only.pcap
> |
> giving me
> |Packet 45788: Seq. Nr 7 does not follow 5. Time 1426104210.261552, length 1472B
> Packet 45789: Seq. Nr 6 does not follow 7. Time 1426104210.261187, length 1472B
> Packet 45790: Seq. Nr 8 does not follow 6. Time 1426104210.261913, length 1472B
> Packet 53602: Seq. Nr D does not follow B. Time 1426104213.097992, length 1472B
> Packet 53606: Seq. Nr C does not follow 0. Time 1426104213.097629, length 1472B
> Packet 53607: Seq. Nr 1 does not follow C. Time 1426104213.099440, length 1472B
> |
> Packets 45788 and 45789 came in reordered, and 53606 should have come
> after 53601.
>
> * 45788/45789: Ok, hm, switched places on consecutive packets.
> * 53602/53606: a packet delayed by four packets? I'm a bit confused.
>
> Now, I must admit I have *no* idea whether that reordering takes place
> in the device (that would require at least 5*(1516 B/ethernet packet)
> buffer) or in the kernel. In the latter case, there might be something
> that one can do about it. I'd have to investigate that myself, though,
> since I have no idea if one could enforce non-reordering behaviour (I
> don't even know which advantage reordering packets would have).
>
> Greetings,
> Marcus
>
> [1] https://gist.github.com/marcusmueller/b0ccc0c9b07e6704905a
> [2]
> https://gist.github.com/marcusmueller/b0ccc0c9b07e6704905a/raw/58e9f4be9636ac194478886c6d0648ac08369f51/n210_capture_samples_only.pcap
>
> On 03/12/2015 10:01 AM, Bogdan Diaconescu wrote:
>> Hi Marcus,
>>
>> here is the info: http://iot.mobil4.org/uhd/
>>
>> Let me know your thoughts and findings.
>>
>> Thanks,
>> Bogdan
>>
>>
>> On Thursday, March 12, 2015 8:54 AM, Marcus Müller
>> <marcus.mueller@ettus.com> <mailto:marcus.mueller@ettus.com> wrote:
>>
>>
>> Thanks so much!
>>
>> On 03/11/2015 09:27 PM, Bogdan Diaconescu wrote:
>>> Thanks Ian, good to know that D is for both reordering and missing
>>> packets.
>>>
>>> Now, I did a wireshark capture for a spectrum capture with 1Ghz
>>> frequency and 1Msps until I saw severals Ds on command line.
>>>
>>> I attach a screenshot of the packet decoding which looks ugly and
>>> perhaps tells that my wireshark v1.10.x, the default in Ubuntu
>>> 14.04, is old. I'm I right here?
>>>
>>> I wonder if the 1516 frame size that I see is good for UHD?
>>>
>>> I will put the pcap and spectrum record on a server in the wild
>>> tomorrow mornig.
>>>
>>> Thanks,
>>> Bogdan
>>>
>>>
>>> On Wednesday, March 11, 2015 8:02 PM, Ian Buckley
>>> <ianb@ionconcepts.com> <mailto:ianb@ionconcepts.com> wrote:
>>>
>>>
>>> S is most definitely a sequence error….but on TX….note a sequence
>>> error can indicate 2 things packet re-ordering or lost packet.
>>> D is the equivalent RX direction error.
>>>
>>>>
>>>>
>>>> I was wrong on "S" being the indication for sequence errors, by the
>>>> way [1], so what we'd try to find out would be whether there's
>>>> dropped packets or reordered packets or something really goes wrong
>>>> on the UHD side.
>>>>
>>>> Greetings,
>>>> Marcus
>>>>
>>>> [1] lib/transport/super_recv_packet_handler.hpp:571
>>>> https://github.com/EttusResearch/uhd/blob/master/host/lib/transport/super_recv_packet_handler.hpp#L571
>>>>
>>>>
>>>> On 03/10/2015 11:09 PM, Bogdan Diaconescu wrote:
>>>>> Ok, so I did several tests with various buffers passed in the
>>>>> uhd_fft command line:
>>>>>
>>>>> I tried almost everything in the reference given by you Marcus
>>>>> going wild from min to max and mostly notable lowering
>>>>> sent_frame_size down to 100 does reduce a bit the rate of Ds.
>>>>> However, it seems that the moment when Ds start to appear is
>>>>> delayed because of that but once they start appearing they
>>>>> continue to increase.
>>>>>
>>>>> And esentially the Ds are showing up in any situation I tried.
>>>>>
>>>>> It will be nice to have a test built in FPGA so that once
>>>>> triggered from the host, it will send known data to the PC
>>>>> allowing testing the connection.
>>>>>
>>>>> So, what's next?
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Tuesday, March 10, 2015 7:24 PM, Bogdan Diaconescu
>>>>> <b_diaconescu@yahoo.com> <mailto:b_diaconescu@yahoo.com> wrote:
>>>>>
>>>>>
>>>>> Hi Marcus,
>>>>>
>>>>> those dongles are real good ones and they are the winners after
>>>>> almost 1 years of trial and error with different similar devices.
>>>>> I so far used them in a non USRP project though
>>>>>
>>>>> To answer your questions: in a test with iperf (TCP) sending
>>>>> 10Gbit of data between 2 PCs (consistent at 935Mbit/s) there was
>>>>> no packet error and retransmission. With wireshark I've seen no
>>>>> TCP retransmission at all after several tests.
>>>>>
>>>>> We did also tests with UDP using the same setup and the speed is
>>>>> about 812Mbit/s which is somehow consistent with the fact that in
>>>>> the linux kernel TCP is optimized for bulk transfer but UDP is
>>>>> optimized for low latency. We actually got the same results when
>>>>> using direct desktop PC-2-PC connections that have onboard 1Gb/s
>>>>> NICs. With the same OS and kernel versions.
>>>>>
>>>>> So, all above is w/o USRP, just PC to PC.
>>>>>
>>>>> Now with USRP: I'll try playing with buffers according to the link
>>>>> you gave but for 1Msps uhd_fft should work never the less. I
>>>>> haven't look at VITA and its details but for let's say
>>>>> 64bit/sample over the wire you only get 64Mbit/sample which is
>>>>> very low and should work like a charm.
>>>>>
>>>>> You are right with the difference between packet size over USB vs.
>>>>> Ethernet. It may be something there.
>>>>>
>>>>> Played now with UDP Fragmentation Ofload and checksum offload with
>>>>> no difference, the same problems.
>>>>>
>>>>> I would take the processing power out of question as the processor
>>>>> is quite new (broadwell i7 in 14nm).
>>>>>
>>>>> Thanks,
>>>>> Bogdan
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Tuesday, March 10, 2015 4:55 PM, Marcus Müller via USRP-users
>>>>> <usrp-users@lists.ettus.com> <mailto:usrp-users@lists.ettus.com>
>>>>> wrote:
>>>>>
>>>>>
>>>>> Hi Bogdan,
>>>>>
>>>>> I must admit that I've never seen anyone have much success with
>>>>> USB-to-ethernet adapters. In fact, you're the one to report the
>>>>> highest PC-to-PC bandwidth I've heard of, so I'd be interested to
>>>>> know how many packet errors and dropped packets you saw with
>>>>> iperf. Also, what is your CPU load whilst doing that rate? Do
>>>>> these adapters offload checksumming, or is that an additional
>>>>> burden to your CPU?
>>>>>
>>>>> Depending on your nc/iperf usage, you might have made advantageous
>>>>> usage of higher-level flow control in TCP; since the USRPs talk
>>>>> UDP only, there's no possibility to resend packets.
>>>>>
>>>>> I've actually often seen these adapters simply drop or reorder
>>>>> packets under load. Whilst a benchmarking tool might be tolerant
>>>>> to reordering, UHD is not; maybe that's what you're seeing (though
>>>>> you'd usually see 'S'equence errors instead of 'D's).
>>>>>
>>>>> You might want to experiment with smaller and bigger packet sizes,
>>>>> see [1]; the thing is that USB adapters have to cut up the gigabit
>>>>> ethernet frames (which can be rather long, depending on what your
>>>>> network hardware supports) into small USB3 packets (which can only
>>>>> be up to 1KB long), and the CPU then has to reassemble the
>>>>> ethernet packets. That means a lot of workload, so maybe it's
>>>>> better to sacrifice a bit of network to overload, but make the UHD
>>>>> sample packets small enough to fit into one USB packet.
>>>>>
>>>>> Greetings,
>>>>> Marcus
>>>>>
>>>>> [1]
>>>>> http://files.ettus.com/manual/page_transport.html#transport_udp_params
>>>>> ; you'd screw around with recv_frame_size, setting it to something
>>>>> like 900 for a start.||
>>>>>
>>>>> On 03/10/2015 03:33 PM, Bogdan Diaconescu via USRP-users wrote:
>>>>>> Hi list,
>>>>>>
>>>>>> I'm a long time user of USRP and now I'm trying to use my setup
>>>>>> with a new laptop that does not have an integrated ethernet card.
>>>>>> I am using for now two types of Ethernet 2 USB adapters that have
>>>>>> 1Gbps/USB3.0 characteristics.
>>>>>>
>>>>>> Apparently, for PC-to-PC connection using the dongles I can get
>>>>>> around 935Msps speed using iperf or nc which seems just fine.
>>>>>> However, when I do just USRP to PC connection I get many Ds on
>>>>>> the command line just using the simple uhd_fft. Those Ds are
>>>>>> shown even when using a 1Msps rate. They increase when using
>>>>>> higher sample rates.
>>>>>>
>>>>>> I wonder if someone tried this and had some success.
>>>>>>
>>>>>> My set-up is:
>>>>>>
>>>>>> Asus ZenBook UX31A (core i7).
>>>>>> Ethernet 1Gbps/USB 3.0 dongles: D-Link DAB-1312 and Edimax EU-4306.
>>>>>> Ubuntu 14.04
>>>>>>
>>>>>> I should mention that I passed the phase in which the dongles
>>>>>> connect to laptop as USB2.0 because on the other side there was
>>>>>> not ethernet cable connected. Yes, this happens with both dongles.
>>>>>>
>>>>>> Thanks for your support,
>>>>>> Bogdan/YO3IIU
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> 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
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> 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
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>> _______________________________________________
>>>> 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
>>>
>>>
>>>
>>
>>
>>
>
>
>
>
>
BD
Bogdan Diaconescu
Thu, Mar 12, 2015 3:16 PM
Yeah, in this case there is an added subsystem that is USB that the packets go through in the first place.
One question revolves in my mind, though: are we sure that USRP sends correctly the packets?
Bogdan
On Thursday, March 12, 2015 4:19 PM, Marcus Müller <marcus.mueller@ettus.com> wrote:
Ah, right, I forgot you've already attached the iperf results. Thanks!
I'm currently trying to understand some linux low-level networking; I really want to know where that reordering happens.
On 03/12/2015 03:06 PM, Bogdan Diaconescu wrote:
Hi Marcus,
so the results are that there are some reordered packets. The number of reordered packets seem to be about the number of Ds I was seeing.
To answer to your questions:
"so the question is: When you run iperf in UDP mode at 32MBit/s (equiv. 1MS/s @16bit), do you see any message about reordered packets?"
I don't see reordered packets reported by iperf except one each time. I attach the txt file with results from iperf in various situations (attached later too).
"Ah yet another question (having skimmed through the AX88179_178a.c kernel driver): There's no reordering happening in the device driver, as far as I can tell. You don't happen to have a switch or router between your USB/ethernet adapter and the USRP?"
It is just the USRP connected directly to the dongle. No switch/router between.
Bogdan
On Thursday, March 12, 2015 3:01 PM, Marcus Müller <marcus.mueller@ettus.com> wrote:
Ah yet another question (having skimmed through the AX88179_178a.c kernel driver): There's no reordering happening in the device driver, as far as I can tell. You don't happen to have a switch or router between your USB/ethernet adapter and the USRP?
On 03/12/2015 01:31 PM, Marcus Müller wrote:
Hello,
so the question is: When you run iperf in UDP mode at 32MBit/s (equiv. 1MS/s @16bit), do you see any message about reordered packets?
Greetings,
Marcus
On 03/12/2015 01:14 PM, Marcus Müller wrote:
Hi Bogdan,
my initial analysis shows no dropped packets (yay), but strangely reordered ones (wut?). The UHD dissector doesn't seem to be that useful anymore.
Thus: You can find my own analysis script at[1].
I've first filtered the capture to only contain sample packets coming from the device by UDP source port. Then, I've saved that filtered output in PCAP (as opposed to PCAPng) format, since dpkt (which is the only packet capture analysis python module I'm somewhat familiar with) only knows how to deal with that. See the capture file[2] Then, I've run the script on that: ./analyze.py n210_capture_samples_only.pcap
giving me Packet 45788: Seq. Nr 7 does not follow 5. Time 1426104210.261552, length 1472B
Packet 45789: Seq. Nr 6 does not follow 7. Time 1426104210.261187, length 1472B
Packet 45790: Seq. Nr 8 does not follow 6. Time 1426104210.261913, length 1472B
Packet 53602: Seq. Nr D does not follow B. Time 1426104213.097992, length 1472B
Packet 53606: Seq. Nr C does not follow 0. Time 1426104213.097629, length 1472B
Packet 53607: Seq. Nr 1 does not follow C. Time 1426104213.099440, length 1472B
Packets 45788 and 45789 came in reordered, and 53606 should have come after 53601.
- 45788/45789: Ok, hm, switched places on consecutive packets.
- 53602/53606: a packet delayed by four packets? I'm a bit confused.
Now, I must admit I have no idea whether that reordering takes place in the device (that would require at least 5*(1516 B/ethernet packet) buffer) or in the kernel. In the latter case, there might be something that one can do about it. I'd have to investigate that myself, though, since I have no idea if one could enforce non-reordering behaviour (I don't even know which advantage reordering packets would have).
Greetings,
Marcus
[1] https://gist.github.com/marcusmueller/b0ccc0c9b07e6704905a
[2] https://gist.github.com/marcusmueller/b0ccc0c9b07e6704905a/raw/58e9f4be9636ac194478886c6d0648ac08369f51/n210_capture_samples_only.pcap
On 03/12/2015 10:01 AM, Bogdan Diaconescu wrote:
Hi Marcus,
here is the info: http://iot.mobil4.org/uhd/
Let me know your thoughts and findings.
Thanks, Bogdan
On Thursday, March 12, 2015 8:54 AM, Marcus Müller <marcus.mueller@ettus.com> wrote:
Thanks so much!
On 03/11/2015 09:27 PM, Bogdan Diaconescu wrote:
Thanks Ian, good to know that D is for both reordering and missing packets.
Now, I did a wireshark capture for a spectrum capture with 1Ghz frequency and 1Msps until I saw severals Ds on command line.
I attach a screenshot of the packet decoding which looks ugly and perhaps tells that my wireshark v1.10.x, the default in Ubuntu 14.04, is old. I'm I right here?
I wonder if the 1516 frame size that I see is good for UHD?
I will put the pcap and spectrum record on a server in the wild tomorrow mornig.
Thanks,
Bogdan
On Wednesday, March 11, 2015 8:02 PM, Ian Buckley <ianb@ionconcepts.com> wrote:
S is most definitely a sequence error….but on TX….note a sequence error can indicate 2 things packet re-ordering or lost packet. D is the equivalent RX direction error.
I was wrong on "S" being the indication for sequence errors, by the way [1], so what we'd try to find out would be whether there's dropped packets or reordered packets or something really goes wrong on the UHD side.
Greetings,
Marcus
[1] lib/transport/super_recv_packet_handler.hpp:571
https://github.com/EttusResearch/uhd/blob/master/host/lib/transport/super_recv_packet_handler.hpp#L571
On 03/10/2015 11:09 PM, Bogdan Diaconescu wrote:
Ok, so I did several tests with various buffers passed in the uhd_fft command line:
I tried almost everything in the reference given by you Marcus going wild from min to max and mostly notable lowering sent_frame_size down to 100 does reduce a bit the rate of Ds. However, it seems that the moment when Ds start to appear is delayed because of that but once they start appearing they continue to increase.
And esentially the Ds are showing up in any situation I tried.
It will be nice to have a test built in FPGA so that once triggered from the host, it will send known data to the PC allowing testing the connection.
So, what's next?
On Tuesday, March 10, 2015 7:24 PM, Bogdan Diaconescu <b_diaconescu@yahoo.com> wrote:
Hi Marcus,
those dongles are real good ones and they are the winners after almost 1 years of trial and error with different similar devices. I so far used them in a non USRP project though
To answer your questions: in a test with iperf (TCP) sending 10Gbit of data between 2 PCs (consistent at 935Mbit/s) there was no packet error and retransmission. With wireshark I've seen no TCP retransmission at all after several tests.
We did also tests with UDP using the same setup and the speed is about 812Mbit/s which is somehow consistent with the fact that in the linux kernel TCP is optimized for bulk transfer but UDP is optimized for low latency. We actually got the same results when using direct desktop PC-2-PC connections that have onboard 1Gb/s NICs. With the same OS and kernel versions.
So, all above is w/o USRP, just PC to PC.
Now with USRP: I'll try playing with buffers according to the link you gave but for 1Msps uhd_fft should work never the less. I haven't look at VITA and its details but for let's say 64bit/sample over the wire you only get 64Mbit/sample which is very low and should work like a charm.
You are right with the difference between packet size over USB vs. Ethernet. It may be something there.
Played now with UDP Fragmentation Ofload and checksum offload with no difference, the same problems.
I would take the processing power out of question as the processor is quite new (broadwell i7 in 14nm).
Thanks, Bogdan
On Tuesday, March 10, 2015 4:55 PM, Marcus Müller via USRP-users <usrp-users@lists.ettus.com> wrote:
Hi Bogdan,
I must admit that I've never seen anyone have much success with USB-to-ethernet adapters. In fact, you're the one to report the highest PC-to-PC bandwidth I've heard of, so I'd be interested to know how many packet errors and dropped packets you saw with iperf. Also, what is your CPU load whilst doing that rate? Do these adapters offload checksumming, or is that an additional burden to your CPU?
Depending on your nc/iperf usage, you might have made advantageous usage of higher-level flow control in TCP; since the USRPs talk UDP only, there's no possibility to resend packets.
I've actually often seen these adapters simply drop or reorder packets under load. Whilst a benchmarking tool might be tolerant to reordering, UHD is not; maybe that's what you're seeing (though you'd usually see 'S'equence errors instead of 'D's).
You might want to experiment with smaller and bigger packet sizes, see [1]; the thing is that USB adapters have to cut up the gigabit ethernet frames (which can be rather long, depending on what your network hardware supports) into small USB3 packets (which can only be up to 1KB long), and the CPU then has to reassemble the ethernet packets. That means a lot of workload, so maybe it's better to sacrifice a bit of network to overload, but make the UHD sample packets small enough to fit into one USB packet.
Greetings,
Marcus
[1] http://files.ettus.com/manual/page_transport.html#transport_udp_params ; you'd screw around with recv_frame_size, setting it to something like 900 for a start.
On 03/10/2015 03:33 PM, Bogdan Diaconescu via USRP-users wrote:
Hi list,
I'm a long time user of USRP and now I'm trying to use my setup with a new laptop that does not have an integrated ethernet card. I am using for now two types of Ethernet 2 USB adapters that have 1Gbps/USB3.0 characteristics.
Apparently, for PC-to-PC connection using the dongles I can get around 935Msps speed using iperf or nc which seems just fine. However, when I do just USRP to PC connection I get many Ds on the command line just using the simple uhd_fft. Those Ds are shown even when using a 1Msps rate. They increase when using higher sample rates.
I wonder if someone tried this and had some success.
My set-up is:
Asus ZenBook UX31A (core i7). Ethernet 1Gbps/USB 3.0 dongles: D-Link DAB-1312 and Edimax EU-4306. Ubuntu 14.04
I should mention that I passed the phase in which the dongles connect to laptop as USB2.0 because on the other side there was not ethernet cable connected. Yes, this happens with both dongles.
Thanks for your support, Bogdan/YO3IIU
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
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
Yeah, in this case there is an added subsystem that is USB that the packets go through in the first place.
One question revolves in my mind, though: are we sure that USRP sends correctly the packets?
Bogdan
On Thursday, March 12, 2015 4:19 PM, Marcus Müller <marcus.mueller@ettus.com> wrote:
Ah, right, I forgot you've already attached the iperf results. Thanks!
I'm currently trying to understand some linux low-level networking; I really want to know where that reordering happens.
On 03/12/2015 03:06 PM, Bogdan Diaconescu wrote:
Hi Marcus,
so the results are that there are some reordered packets. The number of reordered packets seem to be about the number of Ds I was seeing.
To answer to your questions:
"so the question is: When you run iperf in UDP mode at 32MBit/s (equiv. 1MS/s @16bit), do you see any message about reordered packets?"
>> I don't see reordered packets reported by iperf except one each time. I attach the txt file with results from iperf in various situations (attached later too).
"Ah yet another question (having skimmed through the AX88179_178a.c kernel driver): There's no reordering happening in the device driver, as far as I can tell. You don't happen to have a switch or router between your USB/ethernet adapter and the USRP?"
>> It is just the USRP connected directly to the dongle. No switch/router between.
Bogdan
On Thursday, March 12, 2015 3:01 PM, Marcus Müller <marcus.mueller@ettus.com> wrote:
Ah yet another question (having skimmed through the AX88179_178a.c kernel driver): There's no reordering happening in the device driver, as far as I can tell. You don't happen to have a switch or router between your USB/ethernet adapter and the USRP?
On 03/12/2015 01:31 PM, Marcus Müller wrote:
Hello,
so the question is: When you run iperf in UDP mode at 32MBit/s (equiv. 1MS/s @16bit), do you see any message about reordered packets?
Greetings,
Marcus
On 03/12/2015 01:14 PM, Marcus Müller wrote:
Hi Bogdan,
my initial analysis shows no dropped packets (yay), but strangely reordered ones (wut?). The UHD dissector doesn't seem to be that useful anymore.
Thus: You can find my own analysis script at[1].
I've first filtered the capture to only contain sample packets coming from the device by UDP source port. Then, I've saved that filtered output in PCAP (as opposed to PCAPng) format, since dpkt (which is the only packet capture analysis python module I'm somewhat familiar with) only knows how to deal with that. See the capture file[2] Then, I've run the script on that: ./analyze.py n210_capture_samples_only.pcap
giving me Packet 45788: Seq. Nr 7 does not follow 5. Time 1426104210.261552, length 1472B
Packet 45789: Seq. Nr 6 does not follow 7. Time 1426104210.261187, length 1472B
Packet 45790: Seq. Nr 8 does not follow 6. Time 1426104210.261913, length 1472B
Packet 53602: Seq. Nr D does not follow B. Time 1426104213.097992, length 1472B
Packet 53606: Seq. Nr C does not follow 0. Time 1426104213.097629, length 1472B
Packet 53607: Seq. Nr 1 does not follow C. Time 1426104213.099440, length 1472B
Packets 45788 and 45789 came in reordered, and 53606 should have come after 53601.
- 45788/45789: Ok, hm, switched places on consecutive packets.
- 53602/53606: a packet delayed by four packets? I'm a bit confused.
Now, I must admit I have *no* idea whether that reordering takes place in the device (that would require at least 5*(1516 B/ethernet packet) buffer) or in the kernel. In the latter case, there might be something that one can do about it. I'd have to investigate that myself, though, since I have no idea if one could enforce non-reordering behaviour (I don't even know which advantage reordering packets would have).
Greetings,
Marcus
[1] https://gist.github.com/marcusmueller/b0ccc0c9b07e6704905a
[2] https://gist.github.com/marcusmueller/b0ccc0c9b07e6704905a/raw/58e9f4be9636ac194478886c6d0648ac08369f51/n210_capture_samples_only.pcap
On 03/12/2015 10:01 AM, Bogdan Diaconescu wrote:
Hi Marcus,
here is the info: http://iot.mobil4.org/uhd/
Let me know your thoughts and findings.
Thanks, Bogdan
On Thursday, March 12, 2015 8:54 AM, Marcus Müller <marcus.mueller@ettus.com> wrote:
Thanks so much!
On 03/11/2015 09:27 PM, Bogdan Diaconescu wrote:
Thanks Ian, good to know that D is for both reordering and missing packets.
Now, I did a wireshark capture for a spectrum capture with 1Ghz frequency and 1Msps until I saw severals Ds on command line.
I attach a screenshot of the packet decoding which looks ugly and perhaps tells that my wireshark v1.10.x, the default in Ubuntu 14.04, is old. I'm I right here?
I wonder if the 1516 frame size that I see is good for UHD?
I will put the pcap and spectrum record on a server in the wild tomorrow mornig.
Thanks,
Bogdan
On Wednesday, March 11, 2015 8:02 PM, Ian Buckley <ianb@ionconcepts.com> wrote:
S is most definitely a sequence error….but on TX….note a sequence error can indicate 2 things packet re-ordering or lost packet. D is the equivalent RX direction error.
I was wrong on "S" being the indication for sequence errors, by the way [1], so what we'd try to find out would be whether there's dropped packets or reordered packets or something really goes wrong on the UHD side.
Greetings,
Marcus
[1] lib/transport/super_recv_packet_handler.hpp:571
https://github.com/EttusResearch/uhd/blob/master/host/lib/transport/super_recv_packet_handler.hpp#L571
On 03/10/2015 11:09 PM, Bogdan Diaconescu wrote:
Ok, so I did several tests with various buffers passed in the uhd_fft command line:
I tried almost everything in the reference given by you Marcus going wild from min to max and mostly notable lowering sent_frame_size down to 100 does reduce a bit the rate of Ds. However, it seems that the moment when Ds start to appear is delayed because of that but once they start appearing they continue to increase.
And esentially the Ds are showing up in any situation I tried.
It will be nice to have a test built in FPGA so that once triggered from the host, it will send known data to the PC allowing testing the connection.
So, what's next?
On Tuesday, March 10, 2015 7:24 PM, Bogdan Diaconescu <b_diaconescu@yahoo.com> wrote:
Hi Marcus,
those dongles are real good ones and they are the winners after almost 1 years of trial and error with different similar devices. I so far used them in a non USRP project though
To answer your questions: in a test with iperf (TCP) sending 10Gbit of data between 2 PCs (consistent at 935Mbit/s) there was no packet error and retransmission. With wireshark I've seen no TCP retransmission at all after several tests.
We did also tests with UDP using the same setup and the speed is about 812Mbit/s which is somehow consistent with the fact that in the linux kernel TCP is optimized for bulk transfer but UDP is optimized for low latency. We actually got the same results when using direct desktop PC-2-PC connections that have onboard 1Gb/s NICs. With the same OS and kernel versions.
So, all above is w/o USRP, just PC to PC.
Now with USRP: I'll try playing with buffers according to the link you gave but for 1Msps uhd_fft should work never the less. I haven't look at VITA and its details but for let's say 64bit/sample over the wire you only get 64Mbit/sample which is very low and should work like a charm.
You are right with the difference between packet size over USB vs. Ethernet. It may be something there.
Played now with UDP Fragmentation Ofload and checksum offload with no difference, the same problems.
I would take the processing power out of question as the processor is quite new (broadwell i7 in 14nm).
Thanks, Bogdan
On Tuesday, March 10, 2015 4:55 PM, Marcus Müller via USRP-users <usrp-users@lists.ettus.com> wrote:
Hi Bogdan,
I must admit that I've never seen anyone have much success with USB-to-ethernet adapters. In fact, you're the one to report the highest PC-to-PC bandwidth I've heard of, so I'd be interested to know how many packet errors and dropped packets you saw with iperf. Also, what is your CPU load whilst doing that rate? Do these adapters offload checksumming, or is that an additional burden to your CPU?
Depending on your nc/iperf usage, you might have made advantageous usage of higher-level flow control in TCP; since the USRPs talk UDP only, there's no possibility to resend packets.
I've actually often seen these adapters simply drop or reorder packets under load. Whilst a benchmarking tool might be tolerant to reordering, UHD is not; maybe that's what you're seeing (though you'd usually see 'S'equence errors instead of 'D's).
You might want to experiment with smaller and bigger packet sizes, see [1]; the thing is that USB adapters have to cut up the gigabit ethernet frames (which can be rather long, depending on what your network hardware supports) into small USB3 packets (which can only be up to 1KB long), and the CPU then has to reassemble the ethernet packets. That means a lot of workload, so maybe it's better to sacrifice a bit of network to overload, but make the UHD sample packets small enough to fit into one USB packet.
Greetings,
Marcus
[1] http://files.ettus.com/manual/page_transport.html#transport_udp_params ; you'd screw around with recv_frame_size, setting it to something like 900 for a start.
On 03/10/2015 03:33 PM, Bogdan Diaconescu via USRP-users wrote:
Hi list,
I'm a long time user of USRP and now I'm trying to use my setup with a new laptop that does not have an integrated ethernet card. I am using for now two types of Ethernet 2 USB adapters that have 1Gbps/USB3.0 characteristics.
Apparently, for PC-to-PC connection using the dongles I can get around 935Msps speed using iperf or nc which seems just fine. However, when I do just USRP to PC connection I get many Ds on the command line just using the simple uhd_fft. Those Ds are shown even when using a 1Msps rate. They increase when using higher sample rates.
I wonder if someone tried this and had some success.
My set-up is:
Asus ZenBook UX31A (core i7). Ethernet 1Gbps/USB 3.0 dongles: D-Link DAB-1312 and Edimax EU-4306. Ubuntu 14.04
I should mention that I passed the phase in which the dongles connect to laptop as USB2.0 because on the other side there was not ethernet cable connected. Yes, this happens with both dongles.
Thanks for your support, Bogdan/YO3IIU
_______________________________________________
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
_______________________________________________
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
MM
Marcus Müller
Thu, Mar 12, 2015 3:35 PM
Pretty sure. If I'm not completely mistaken, and Marcus Leech thinks so
too, there's not even enough state machine to hold back a packet for
five packets on the N2x0.
On 03/12/2015 04:16 PM, Bogdan Diaconescu wrote:
Yeah, in this case there is an added subsystem that is USB that the
packets go through in the first place.
One question revolves in my mind, though: are we sure that USRP sends
correctly the packets?
Bogdan
On Thursday, March 12, 2015 4:19 PM, Marcus Müller
marcus.mueller@ettus.com wrote:
Ah, right, I forgot you've already attached the iperf results. Thanks!
I'm currently trying to understand some linux low-level networking; I
really want to know where that reordering happens.
On 03/12/2015 03:06 PM, Bogdan Diaconescu wrote:
Hi Marcus,
so the results are that there are some reordered packets. The number
of reordered packets seem to be about the number of Ds I was seeing.
To answer to your questions:
"so the question is: When you run iperf in UDP mode at 32MBit/s
(equiv. 1MS/s @16bit), do you see any message about reordered packets?"
I don't see reordered packets reported by iperf except one each
time. I attach the txt file with results from iperf in various
situations (attached later too).
"Ah yet another question (having skimmed through the AX88179_178a.c
kernel driver): There's no reordering happening in the device driver,
as far as I can tell. You don't happen to have a switch or router
between your USB/ethernet adapter and the USRP?"
It is just the USRP connected directly to the dongle. No
switch/router between.
Bogdan
On Thursday, March 12, 2015 3:01 PM, Marcus Müller
marcus.mueller@ettus.com mailto:marcus.mueller@ettus.com wrote:
Ah yet another question (having skimmed through the AX88179_178a.c
kernel driver): There's no reordering happening in the device driver,
as far as I can tell. You don't happen to have a switch or router
between your USB/ethernet adapter and the USRP?
On 03/12/2015 01:31 PM, Marcus Müller wrote:
Hello,
so the question is: When you run iperf in UDP mode at 32MBit/s
(equiv. 1MS/s @16bit), do you see any message about reordered packets?
Greetings,
Marcus
On 03/12/2015 01:14 PM, Marcus Müller wrote:
Hi Bogdan,
my initial analysis shows no dropped packets (yay), but strangely
reordered ones (wut?). The UHD dissector doesn't seem to be that
useful anymore.
Thus: You can find my own analysis script at[1].
I've first filtered the capture to only contain sample packets coming
from the device by UDP source port.
Then, I've saved that filtered output in PCAP (as opposed to PCAPng)
format, since dpkt (which is the only packet capture analysis python
module I'm somewhat familiar with) only knows how to deal with that.
See the capture file[2]
https://gist.github.com/marcusmueller/b0ccc0c9b07e6704905a/raw/58e9f4be9636ac194478886c6d0648ac08369f51/n210_capture_samples_only.pcap
Then, I've run the script on that:
|./analyze.py n210_capture_samples_only.pcap
|
giving me
|Packet 45788: Seq. Nr 7 does not follow 5. Time 1426104210.261552, length 1472B
Packet 45789: Seq. Nr 6 does not follow 7. Time 1426104210.261187, length 1472B
Packet 45790: Seq. Nr 8 does not follow 6. Time 1426104210.261913, length 1472B
Packet 53602: Seq. Nr D does not follow B. Time 1426104213.097992, length 1472B
Packet 53606: Seq. Nr C does not follow 0. Time 1426104213.097629, length 1472B
Packet 53607: Seq. Nr 1 does not follow C. Time 1426104213.099440, length 1472B
|
Packets 45788 and 45789 came in reordered, and 53606 should have come
after 53601.
- 45788/45789: Ok, hm, switched places on consecutive packets.
- 53602/53606: a packet delayed by four packets? I'm a bit confused.
Now, I must admit I have no idea whether that reordering takes
place in the device (that would require at least 5*(1516 B/ethernet
packet) buffer) or in the kernel. In the latter case, there might be
something that one can do about it. I'd have to investigate that
myself, though, since I have no idea if one could enforce
non-reordering behaviour (I don't even know which advantage
reordering packets would have).
Greetings,
Marcus
[1] https://gist.github.com/marcusmueller/b0ccc0c9b07e6704905a
[2]
https://gist.github.com/marcusmueller/b0ccc0c9b07e6704905a/raw/58e9f4be9636ac194478886c6d0648ac08369f51/n210_capture_samples_only.pcap
On 03/12/2015 10:01 AM, Bogdan Diaconescu wrote:
Thanks Ian, good to know that D is for both reordering and missing
packets.
Now, I did a wireshark capture for a spectrum capture with 1Ghz
frequency and 1Msps until I saw severals Ds on command line.
I attach a screenshot of the packet decoding which looks ugly and
perhaps tells that my wireshark v1.10.x, the default in Ubuntu
14.04, is old. I'm I right here?
I wonder if the 1516 frame size that I see is good for UHD?
I will put the pcap and spectrum record on a server in the wild
tomorrow mornig.
Thanks,
Bogdan
On Wednesday, March 11, 2015 8:02 PM, Ian Buckley
ianb@ionconcepts.com mailto:ianb@ionconcepts.com wrote:
S is most definitely a sequence error….but on TX….note a sequence
error can indicate 2 things packet re-ordering or lost packet.
D is the equivalent RX direction error.
Ok, so I did several tests with various buffers passed in the
uhd_fft command line:
I tried almost everything in the reference given by you Marcus
going wild from min to max and mostly notable lowering
sent_frame_size down to 100 does reduce a bit the rate of Ds.
However, it seems that the moment when Ds start to appear is
delayed because of that but once they start appearing they
continue to increase.
And esentially the Ds are showing up in any situation I tried.
It will be nice to have a test built in FPGA so that once
triggered from the host, it will send known data to the PC
allowing testing the connection.
So, what's next?
On Tuesday, March 10, 2015 7:24 PM, Bogdan Diaconescu
b_diaconescu@yahoo.com mailto:b_diaconescu@yahoo.com wrote:
Hi Marcus,
those dongles are real good ones and they are the winners after
almost 1 years of trial and error with different similar devices.
I so far used them in a non USRP project though
To answer your questions: in a test with iperf (TCP) sending
10Gbit of data between 2 PCs (consistent at 935Mbit/s) there was
no packet error and retransmission. With wireshark I've seen no
TCP retransmission at all after several tests.
We did also tests with UDP using the same setup and the speed is
about 812Mbit/s which is somehow consistent with the fact that in
the linux kernel TCP is optimized for bulk transfer but UDP is
optimized for low latency. We actually got the same results when
using direct desktop PC-2-PC connections that have onboard 1Gb/s
NICs. With the same OS and kernel versions.
So, all above is w/o USRP, just PC to PC.
Now with USRP: I'll try playing with buffers according to the
link you gave but for 1Msps uhd_fft should work never the less. I
haven't look at VITA and its details but for let's say
64bit/sample over the wire you only get 64Mbit/sample which is
very low and should work like a charm.
You are right with the difference between packet size over USB
vs. Ethernet. It may be something there.
Played now with UDP Fragmentation Ofload and checksum offload
with no difference, the same problems.
I would take the processing power out of question as the
processor is quite new (broadwell i7 in 14nm).
Thanks,
Bogdan
On Tuesday, March 10, 2015 4:55 PM, Marcus Müller via USRP-users
usrp-users@lists.ettus.com mailto:usrp-users@lists.ettus.com
wrote:
Hi Bogdan,
I must admit that I've never seen anyone have much success with
USB-to-ethernet adapters. In fact, you're the one to report the
highest PC-to-PC bandwidth I've heard of, so I'd be interested to
know how many packet errors and dropped packets you saw with
iperf. Also, what is your CPU load whilst doing that rate? Do
these adapters offload checksumming, or is that an additional
burden to your CPU?
Depending on your nc/iperf usage, you might have made
advantageous usage of higher-level flow control in TCP; since the
USRPs talk UDP only, there's no possibility to resend packets.
I've actually often seen these adapters simply drop or reorder
packets under load. Whilst a benchmarking tool might be tolerant
to reordering, UHD is not; maybe that's what you're seeing
(though you'd usually see 'S'equence errors instead of 'D's).
You might want to experiment with smaller and bigger packet
sizes, see [1]; the thing is that USB adapters have to cut up the
gigabit ethernet frames (which can be rather long, depending on
what your network hardware supports) into small USB3 packets
(which can only be up to 1KB long), and the CPU then has to
reassemble the ethernet packets. That means a lot of workload, so
maybe it's better to sacrifice a bit of network to overload, but
make the UHD sample packets small enough to fit into one USB packet.
Greetings,
Marcus
[1]
http://files.ettus.com/manual/page_transport.html#transport_udp_params
; you'd screw around with recv_frame_size, setting it to
something like 900 for a start.||
On 03/10/2015 03:33 PM, Bogdan Diaconescu via USRP-users wrote:
Hi list,
I'm a long time user of USRP and now I'm trying to use my setup
with a new laptop that does not have an integrated ethernet
card. I am using for now two types of Ethernet 2 USB adapters
that have 1Gbps/USB3.0 characteristics.
Apparently, for PC-to-PC connection using the dongles I can get
around 935Msps speed using iperf or nc which seems just fine.
However, when I do just USRP to PC connection I get many Ds on
the command line just using the simple uhd_fft. Those Ds are
shown even when using a 1Msps rate. They increase when using
higher sample rates.
I wonder if someone tried this and had some success.
My set-up is:
Asus ZenBook UX31A (core i7).
Ethernet 1Gbps/USB 3.0 dongles: D-Link DAB-1312 and Edimax EU-4306.
Ubuntu 14.04
I should mention that I passed the phase in which the dongles
connect to laptop as USB2.0 because on the other side there was
not ethernet cable connected. Yes, this happens with both dongles.
Thanks for your support,
Bogdan/YO3IIU
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
Pretty sure. If I'm not completely mistaken, and Marcus Leech thinks so
too, there's not even enough state machine to hold back a packet for
five packets on the N2x0.
On 03/12/2015 04:16 PM, Bogdan Diaconescu wrote:
> Yeah, in this case there is an added subsystem that is USB that the
> packets go through in the first place.
>
> One question revolves in my mind, though: are we sure that USRP sends
> correctly the packets?
>
> Bogdan
>
>
> On Thursday, March 12, 2015 4:19 PM, Marcus Müller
> <marcus.mueller@ettus.com> wrote:
>
>
> Ah, right, I forgot you've already attached the iperf results. Thanks!
> I'm currently trying to understand some linux low-level networking; I
> really want to know where that reordering happens.
>
> On 03/12/2015 03:06 PM, Bogdan Diaconescu wrote:
>> Hi Marcus,
>>
>> so the results are that there are some reordered packets. The number
>> of reordered packets seem to be about the number of Ds I was seeing.
>>
>> To answer to your questions:
>>
>> "so the question is: When you run iperf in UDP mode at 32MBit/s
>> (equiv. 1MS/s @16bit), do you see any message about reordered packets?"
>>
>> >> I don't see reordered packets reported by iperf except one each
>> time. I attach the txt file with results from iperf in various
>> situations (attached later too).
>>
>> "Ah yet another question (having skimmed through the AX88179_178a.c
>> kernel driver): There's no reordering happening in the device driver,
>> as far as I can tell. You don't happen to have a switch or router
>> between your USB/ethernet adapter and the USRP?"
>>
>> >> It is just the USRP connected directly to the dongle. No
>> switch/router between.
>>
>> Bogdan
>>
>>
>>
>> On Thursday, March 12, 2015 3:01 PM, Marcus Müller
>> <marcus.mueller@ettus.com> <mailto:marcus.mueller@ettus.com> wrote:
>>
>>
>> Ah yet another question (having skimmed through the AX88179_178a.c
>> kernel driver): There's no reordering happening in the device driver,
>> as far as I can tell. You don't happen to have a switch or router
>> between your USB/ethernet adapter and the USRP?
>>
>>
>> On 03/12/2015 01:31 PM, Marcus Müller wrote:
>> Hello,
>>
>> so the question is: When you run iperf in UDP mode at 32MBit/s
>> (equiv. 1MS/s @16bit), do you see any message about reordered packets?
>>
>> Greetings,
>> Marcus
>>
>> On 03/12/2015 01:14 PM, Marcus Müller wrote:
>> Hi Bogdan,
>>
>> my initial analysis shows no dropped packets (yay), but strangely
>> reordered ones (wut?). The UHD dissector doesn't seem to be that
>> useful anymore.
>> Thus: You can find my own analysis script at[1].
>> I've first filtered the capture to only contain sample packets coming
>> from the device by UDP source port.
>> Then, I've saved that filtered output in PCAP (as opposed to PCAPng)
>> format, since dpkt (which is the only packet capture analysis python
>> module I'm somewhat familiar with) only knows how to deal with that.
>> See the capture file[2]
>> <https://gist.github.com/marcusmueller/b0ccc0c9b07e6704905a/raw/58e9f4be9636ac194478886c6d0648ac08369f51/n210_capture_samples_only.pcap>
>> Then, I've run the script on that:
>> |./analyze.py n210_capture_samples_only.pcap
>> |
>> giving me
>> |Packet 45788: Seq. Nr 7 does not follow 5. Time 1426104210.261552, length 1472B
>> Packet 45789: Seq. Nr 6 does not follow 7. Time 1426104210.261187, length 1472B
>> Packet 45790: Seq. Nr 8 does not follow 6. Time 1426104210.261913, length 1472B
>> Packet 53602: Seq. Nr D does not follow B. Time 1426104213.097992, length 1472B
>> Packet 53606: Seq. Nr C does not follow 0. Time 1426104213.097629, length 1472B
>> Packet 53607: Seq. Nr 1 does not follow C. Time 1426104213.099440, length 1472B
>> |
>> Packets 45788 and 45789 came in reordered, and 53606 should have come
>> after 53601.
>>
>> * 45788/45789: Ok, hm, switched places on consecutive packets.
>> * 53602/53606: a packet delayed by four packets? I'm a bit confused.
>>
>> Now, I must admit I have *no* idea whether that reordering takes
>> place in the device (that would require at least 5*(1516 B/ethernet
>> packet) buffer) or in the kernel. In the latter case, there might be
>> something that one can do about it. I'd have to investigate that
>> myself, though, since I have no idea if one could enforce
>> non-reordering behaviour (I don't even know which advantage
>> reordering packets would have).
>>
>> Greetings,
>> Marcus
>>
>> [1] https://gist.github.com/marcusmueller/b0ccc0c9b07e6704905a
>> [2]
>> https://gist.github.com/marcusmueller/b0ccc0c9b07e6704905a/raw/58e9f4be9636ac194478886c6d0648ac08369f51/n210_capture_samples_only.pcap
>>
>> On 03/12/2015 10:01 AM, Bogdan Diaconescu wrote:
>>> Hi Marcus,
>>>
>>> here is the info: http://iot.mobil4.org/uhd/
>>>
>>> Let me know your thoughts and findings.
>>>
>>> Thanks,
>>> Bogdan
>>>
>>>
>>> On Thursday, March 12, 2015 8:54 AM, Marcus Müller
>>> <marcus.mueller@ettus.com> <mailto:marcus.mueller@ettus.com> wrote:
>>>
>>>
>>> Thanks so much!
>>>
>>> On 03/11/2015 09:27 PM, Bogdan Diaconescu wrote:
>>>> Thanks Ian, good to know that D is for both reordering and missing
>>>> packets.
>>>>
>>>> Now, I did a wireshark capture for a spectrum capture with 1Ghz
>>>> frequency and 1Msps until I saw severals Ds on command line.
>>>>
>>>> I attach a screenshot of the packet decoding which looks ugly and
>>>> perhaps tells that my wireshark v1.10.x, the default in Ubuntu
>>>> 14.04, is old. I'm I right here?
>>>>
>>>> I wonder if the 1516 frame size that I see is good for UHD?
>>>>
>>>> I will put the pcap and spectrum record on a server in the wild
>>>> tomorrow mornig.
>>>>
>>>> Thanks,
>>>> Bogdan
>>>>
>>>>
>>>> On Wednesday, March 11, 2015 8:02 PM, Ian Buckley
>>>> <ianb@ionconcepts.com> <mailto:ianb@ionconcepts.com> wrote:
>>>>
>>>>
>>>> S is most definitely a sequence error….but on TX….note a sequence
>>>> error can indicate 2 things packet re-ordering or lost packet.
>>>> D is the equivalent RX direction error.
>>>>
>>>>>
>>>>>
>>>>> I was wrong on "S" being the indication for sequence errors, by
>>>>> the way [1], so what we'd try to find out would be whether there's
>>>>> dropped packets or reordered packets or something really goes
>>>>> wrong on the UHD side.
>>>>>
>>>>> Greetings,
>>>>> Marcus
>>>>>
>>>>> [1] lib/transport/super_recv_packet_handler.hpp:571
>>>>> https://github.com/EttusResearch/uhd/blob/master/host/lib/transport/super_recv_packet_handler.hpp#L571
>>>>>
>>>>>
>>>>> On 03/10/2015 11:09 PM, Bogdan Diaconescu wrote:
>>>>>> Ok, so I did several tests with various buffers passed in the
>>>>>> uhd_fft command line:
>>>>>>
>>>>>> I tried almost everything in the reference given by you Marcus
>>>>>> going wild from min to max and mostly notable lowering
>>>>>> sent_frame_size down to 100 does reduce a bit the rate of Ds.
>>>>>> However, it seems that the moment when Ds start to appear is
>>>>>> delayed because of that but once they start appearing they
>>>>>> continue to increase.
>>>>>>
>>>>>> And esentially the Ds are showing up in any situation I tried.
>>>>>>
>>>>>> It will be nice to have a test built in FPGA so that once
>>>>>> triggered from the host, it will send known data to the PC
>>>>>> allowing testing the connection.
>>>>>>
>>>>>> So, what's next?
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Tuesday, March 10, 2015 7:24 PM, Bogdan Diaconescu
>>>>>> <b_diaconescu@yahoo.com> <mailto:b_diaconescu@yahoo.com> wrote:
>>>>>>
>>>>>>
>>>>>> Hi Marcus,
>>>>>>
>>>>>> those dongles are real good ones and they are the winners after
>>>>>> almost 1 years of trial and error with different similar devices.
>>>>>> I so far used them in a non USRP project though
>>>>>>
>>>>>> To answer your questions: in a test with iperf (TCP) sending
>>>>>> 10Gbit of data between 2 PCs (consistent at 935Mbit/s) there was
>>>>>> no packet error and retransmission. With wireshark I've seen no
>>>>>> TCP retransmission at all after several tests.
>>>>>>
>>>>>> We did also tests with UDP using the same setup and the speed is
>>>>>> about 812Mbit/s which is somehow consistent with the fact that in
>>>>>> the linux kernel TCP is optimized for bulk transfer but UDP is
>>>>>> optimized for low latency. We actually got the same results when
>>>>>> using direct desktop PC-2-PC connections that have onboard 1Gb/s
>>>>>> NICs. With the same OS and kernel versions.
>>>>>>
>>>>>> So, all above is w/o USRP, just PC to PC.
>>>>>>
>>>>>> Now with USRP: I'll try playing with buffers according to the
>>>>>> link you gave but for 1Msps uhd_fft should work never the less. I
>>>>>> haven't look at VITA and its details but for let's say
>>>>>> 64bit/sample over the wire you only get 64Mbit/sample which is
>>>>>> very low and should work like a charm.
>>>>>>
>>>>>> You are right with the difference between packet size over USB
>>>>>> vs. Ethernet. It may be something there.
>>>>>>
>>>>>> Played now with UDP Fragmentation Ofload and checksum offload
>>>>>> with no difference, the same problems.
>>>>>>
>>>>>> I would take the processing power out of question as the
>>>>>> processor is quite new (broadwell i7 in 14nm).
>>>>>>
>>>>>> Thanks,
>>>>>> Bogdan
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Tuesday, March 10, 2015 4:55 PM, Marcus Müller via USRP-users
>>>>>> <usrp-users@lists.ettus.com> <mailto:usrp-users@lists.ettus.com>
>>>>>> wrote:
>>>>>>
>>>>>>
>>>>>> Hi Bogdan,
>>>>>>
>>>>>> I must admit that I've never seen anyone have much success with
>>>>>> USB-to-ethernet adapters. In fact, you're the one to report the
>>>>>> highest PC-to-PC bandwidth I've heard of, so I'd be interested to
>>>>>> know how many packet errors and dropped packets you saw with
>>>>>> iperf. Also, what is your CPU load whilst doing that rate? Do
>>>>>> these adapters offload checksumming, or is that an additional
>>>>>> burden to your CPU?
>>>>>>
>>>>>> Depending on your nc/iperf usage, you might have made
>>>>>> advantageous usage of higher-level flow control in TCP; since the
>>>>>> USRPs talk UDP only, there's no possibility to resend packets.
>>>>>>
>>>>>> I've actually often seen these adapters simply drop or reorder
>>>>>> packets under load. Whilst a benchmarking tool might be tolerant
>>>>>> to reordering, UHD is not; maybe that's what you're seeing
>>>>>> (though you'd usually see 'S'equence errors instead of 'D's).
>>>>>>
>>>>>> You might want to experiment with smaller and bigger packet
>>>>>> sizes, see [1]; the thing is that USB adapters have to cut up the
>>>>>> gigabit ethernet frames (which can be rather long, depending on
>>>>>> what your network hardware supports) into small USB3 packets
>>>>>> (which can only be up to 1KB long), and the CPU then has to
>>>>>> reassemble the ethernet packets. That means a lot of workload, so
>>>>>> maybe it's better to sacrifice a bit of network to overload, but
>>>>>> make the UHD sample packets small enough to fit into one USB packet.
>>>>>>
>>>>>> Greetings,
>>>>>> Marcus
>>>>>>
>>>>>> [1]
>>>>>> http://files.ettus.com/manual/page_transport.html#transport_udp_params
>>>>>> ; you'd screw around with recv_frame_size, setting it to
>>>>>> something like 900 for a start.||
>>>>>>
>>>>>> On 03/10/2015 03:33 PM, Bogdan Diaconescu via USRP-users wrote:
>>>>>>> Hi list,
>>>>>>>
>>>>>>> I'm a long time user of USRP and now I'm trying to use my setup
>>>>>>> with a new laptop that does not have an integrated ethernet
>>>>>>> card. I am using for now two types of Ethernet 2 USB adapters
>>>>>>> that have 1Gbps/USB3.0 characteristics.
>>>>>>>
>>>>>>> Apparently, for PC-to-PC connection using the dongles I can get
>>>>>>> around 935Msps speed using iperf or nc which seems just fine.
>>>>>>> However, when I do just USRP to PC connection I get many Ds on
>>>>>>> the command line just using the simple uhd_fft. Those Ds are
>>>>>>> shown even when using a 1Msps rate. They increase when using
>>>>>>> higher sample rates.
>>>>>>>
>>>>>>> I wonder if someone tried this and had some success.
>>>>>>>
>>>>>>> My set-up is:
>>>>>>>
>>>>>>> Asus ZenBook UX31A (core i7).
>>>>>>> Ethernet 1Gbps/USB 3.0 dongles: D-Link DAB-1312 and Edimax EU-4306.
>>>>>>> Ubuntu 14.04
>>>>>>>
>>>>>>> I should mention that I passed the phase in which the dongles
>>>>>>> connect to laptop as USB2.0 because on the other side there was
>>>>>>> not ethernet cable connected. Yes, this happens with both dongles.
>>>>>>>
>>>>>>> Thanks for your support,
>>>>>>> Bogdan/YO3IIU
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> 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
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> 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
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> 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
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>
>>
>>
>>
>>
>
>
>
ME
Matt Ettus
Fri, Mar 13, 2015 7:38 AM
It is fundamentally not possible for the N210 to reorder packets. Certain
ethernet chipsets with poor drivers show reordered or lost packets. When
used for TCP/IP connections, these problems are masked because TCP recovers
and reorders. Most UDP applications do as well, but UHD is too
time-sensitive for that to work. Because of this, you need a decent
quality ethernet card is required. When we first started with gigabit
ethernet in 2008, the available cards were of varying quality, but today,
nearly everything modern works well except for some Ethernet-over-USB
systems.
Matt
On Thu, Mar 12, 2015 at 8:35 AM, Marcus Müller usrp-users@lists.ettus.com
wrote:
Pretty sure. If I'm not completely mistaken, and Marcus Leech thinks so
too, there's not even enough state machine to hold back a packet for five
packets on the N2x0.
On 03/12/2015 04:16 PM, Bogdan Diaconescu wrote:
Yeah, in this case there is an added subsystem that is USB that the
packets go through in the first place.
One question revolves in my mind, though: are we sure that USRP sends
correctly the packets?
Bogdan
On Thursday, March 12, 2015 4:19 PM, Marcus Müller
marcus.mueller@ettus.com marcus.mueller@ettus.com wrote:
Ah, right, I forgot you've already attached the iperf results. Thanks!
I'm currently trying to understand some linux low-level networking; I
really want to know where that reordering happens.
On 03/12/2015 03:06 PM, Bogdan Diaconescu wrote:
Hi Marcus,
so the results are that there are some reordered packets. The number of
reordered packets seem to be about the number of Ds I was seeing.
To answer to your questions:
"so the question is: When you run iperf in UDP mode at 32MBit/s (equiv.
1MS/s @16bit), do you see any message about reordered packets?"
I don't see reordered packets reported by iperf except one each time.
I attach the txt file with results from iperf in various situations
(attached later too).
"Ah yet another question (having skimmed through the AX88179_178a.c
kernel driver): There's no reordering happening in the device driver, as
far as I can tell. You don't happen to have a switch or router between your
USB/ethernet adapter and the USRP?"
It is just the USRP connected directly to the dongle. No
switch/router between.
Bogdan
On Thursday, March 12, 2015 3:01 PM, Marcus Müller
marcus.mueller@ettus.com marcus.mueller@ettus.com wrote:
Ah yet another question (having skimmed through the AX88179_178a.c
kernel driver): There's no reordering happening in the device driver, as
far as I can tell. You don't happen to have a switch or router between your
USB/ethernet adapter and the USRP?
On 03/12/2015 01:31 PM, Marcus Müller wrote:
Hello,
so the question is: When you run iperf in UDP mode at 32MBit/s (equiv.
1MS/s @16bit), do you see any message about reordered packets?
Greetings,
Marcus
On 03/12/2015 01:14 PM, Marcus Müller wrote:
Hi Bogdan,
my initial analysis shows no dropped packets (yay), but strangely
reordered ones (wut?). The UHD dissector doesn't seem to be that useful
anymore.
Thus: You can find my own analysis script at[1].
I've first filtered the capture to only contain sample packets coming
from the device by UDP source port.
Then, I've saved that filtered output in PCAP (as opposed to PCAPng)
format, since dpkt (which is the only packet capture analysis python module
I'm somewhat familiar with) only knows how to deal with that. See the
capture file[2]
https://gist.github.com/marcusmueller/b0ccc0c9b07e6704905a/raw/58e9f4be9636ac194478886c6d0648ac08369f51/n210_capture_samples_only.pcap
Then, I've run the script on that:
./analyze.py n210_capture_samples_only.pcap
giving me
Packet 45788: Seq. Nr 7 does not follow 5. Time 1426104210.261552, length 1472B
Packet 45789: Seq. Nr 6 does not follow 7. Time 1426104210.261187, length 1472B
Packet 45790: Seq. Nr 8 does not follow 6. Time 1426104210.261913, length 1472B
Packet 53602: Seq. Nr D does not follow B. Time 1426104213.097992, length 1472B
Packet 53606: Seq. Nr C does not follow 0. Time 1426104213.097629, length 1472B
Packet 53607: Seq. Nr 1 does not follow C. Time 1426104213.099440, length 1472B
Packets 45788 and 45789 came in reordered, and 53606 should have come
after 53601.
- 45788/45789: Ok, hm, switched places on consecutive packets.
- 53602/53606: a packet delayed by four packets? I'm a bit confused.
Now, I must admit I have no idea whether that reordering takes place
in the device (that would require at least 5*(1516 B/ethernet packet)
buffer) or in the kernel. In the latter case, there might be something that
one can do about it. I'd have to investigate that myself, though, since I
have no idea if one could enforce non-reordering behaviour (I don't even
know which advantage reordering packets would have).
Greetings,
Marcus
[1] https://gist.github.com/marcusmueller/b0ccc0c9b07e6704905a
[2]
https://gist.github.com/marcusmueller/b0ccc0c9b07e6704905a/raw/58e9f4be9636ac194478886c6d0648ac08369f51/n210_capture_samples_only.pcap
On 03/12/2015 10:01 AM, Bogdan Diaconescu wrote:
Hi Marcus,
here is the info: http://iot.mobil4.org/uhd/
Let me know your thoughts and findings.
Thanks,
Bogdan
On Thursday, March 12, 2015 8:54 AM, Marcus Müller
marcus.mueller@ettus.com marcus.mueller@ettus.com wrote:
Thanks so much!
On 03/11/2015 09:27 PM, Bogdan Diaconescu wrote:
Thanks Ian, good to know that D is for both reordering and missing
packets.
Now, I did a wireshark capture for a spectrum capture with 1Ghz
frequency and 1Msps until I saw severals Ds on command line.
I attach a screenshot of the packet decoding which looks ugly and
perhaps tells that my wireshark v1.10.x, the default in Ubuntu 14.04, is
old. I'm I right here?
I wonder if the 1516 frame size that I see is good for UHD?
I will put the pcap and spectrum record on a server in the wild tomorrow
mornig.
Thanks,
Bogdan
On Wednesday, March 11, 2015 8:02 PM, Ian Buckley
ianb@ionconcepts.com ianb@ionconcepts.com wrote:
S is most definitely a sequence error….but on TX….note a sequence error
can indicate 2 things packet re-ordering or lost packet.
D is the equivalent RX direction error.
I was wrong on "S" being the indication for sequence errors, by the way
[1], so what we'd try to find out would be whether there's dropped packets
or reordered packets or something really goes wrong on the UHD side.
Greetings,
Marcus
[1] lib/transport/super_recv_packet_handler.hpp:571
https://github.com/EttusResearch/uhd/blob/master/host/lib/transport/super_recv_packet_handler.hpp#L571
On 03/10/2015 11:09 PM, Bogdan Diaconescu wrote:
Ok, so I did several tests with various buffers passed in the uhd_fft
command line:
I tried almost everything in the reference given by you Marcus going
wild from min to max and mostly notable lowering sent_frame_size down to
100 does reduce a bit the rate of Ds. However, it seems that the moment
when Ds start to appear is delayed because of that but once they start
appearing they continue to increase.
And esentially the Ds are showing up in any situation I tried.
It will be nice to have a test built in FPGA so that once triggered from
the host, it will send known data to the PC allowing testing the connection.
So, what's next?
On Tuesday, March 10, 2015 7:24 PM, Bogdan Diaconescu
b_diaconescu@yahoo.com b_diaconescu@yahoo.com wrote:
Hi Marcus,
those dongles are real good ones and they are the winners after almost 1
years of trial and error with different similar devices. I so far used them
in a non USRP project though
To answer your questions: in a test with iperf (TCP) sending 10Gbit of
data between 2 PCs (consistent at 935Mbit/s) there was no packet error and
retransmission. With wireshark I've seen no TCP retransmission at all after
several tests.
We did also tests with UDP using the same setup and the speed is about
812Mbit/s which is somehow consistent with the fact that in the linux
kernel TCP is optimized for bulk transfer but UDP is optimized for low
latency. We actually got the same results when using direct desktop PC-2-PC
connections that have onboard 1Gb/s NICs. With the same OS and kernel
versions.
So, all above is w/o USRP, just PC to PC.
Now with USRP: I'll try playing with buffers according to the link you
gave but for 1Msps uhd_fft should work never the less. I haven't look at
VITA and its details but for let's say 64bit/sample over the wire you only
get 64Mbit/sample which is very low and should work like a charm.
You are right with the difference between packet size over USB vs.
Ethernet. It may be something there.
Played now with UDP Fragmentation Ofload and checksum offload with no
difference, the same problems.
I would take the processing power out of question as the processor is
quite new (broadwell i7 in 14nm).
Thanks,
Bogdan
On Tuesday, March 10, 2015 4:55 PM, Marcus Müller via USRP-users
usrp-users@lists.ettus.com usrp-users@lists.ettus.com wrote:
Hi Bogdan,
I must admit that I've never seen anyone have much success with
USB-to-ethernet adapters. In fact, you're the one to report the highest
PC-to-PC bandwidth I've heard of, so I'd be interested to know how many
packet errors and dropped packets you saw with iperf. Also, what is your
CPU load whilst doing that rate? Do these adapters offload checksumming, or
is that an additional burden to your CPU?
Depending on your nc/iperf usage, you might have made advantageous usage
of higher-level flow control in TCP; since the USRPs talk UDP only, there's
no possibility to resend packets.
I've actually often seen these adapters simply drop or reorder packets
under load. Whilst a benchmarking tool might be tolerant to reordering, UHD
is not; maybe that's what you're seeing (though you'd usually see
'S'equence errors instead of 'D's).
You might want to experiment with smaller and bigger packet sizes, see
[1]; the thing is that USB adapters have to cut up the gigabit ethernet
frames (which can be rather long, depending on what your network hardware
supports) into small USB3 packets (which can only be up to 1KB long), and
the CPU then has to reassemble the ethernet packets. That means a lot of
workload, so maybe it's better to sacrifice a bit of network to overload,
but make the UHD sample packets small enough to fit into one USB packet.
Greetings,
Marcus
[1] http://files.ettus.com/manual/page_transport.html#transport_udp_params
; you'd screw around with recv_frame_size, setting it to something like 900
for a start.
On 03/10/2015 03:33 PM, Bogdan Diaconescu via USRP-users wrote:
Hi list,
I'm a long time user of USRP and now I'm trying to use my setup with a
new laptop that does not have an integrated ethernet card. I am using for
now two types of Ethernet 2 USB adapters that have 1Gbps/USB3.0
characteristics.
Apparently, for PC-to-PC connection using the dongles I can get around
935Msps speed using iperf or nc which seems just fine. However, when I do
just USRP to PC connection I get many Ds on the command line just using the
simple uhd_fft. Those Ds are shown even when using a 1Msps rate. They
increase when using higher sample rates.
I wonder if someone tried this and had some success.
My set-up is:
Asus ZenBook UX31A (core i7).
Ethernet 1Gbps/USB 3.0 dongles: D-Link DAB-1312 and Edimax EU-4306.
Ubuntu 14.04
I should mention that I passed the phase in which the dongles connect to
laptop as USB2.0 because on the other side there was not ethernet cable
connected. Yes, this happens with both dongles.
Thanks for your support,
Bogdan/YO3IIU
USRP-users mailing listUSRP-users@lists.ettus.comhttp://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
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
It is fundamentally not possible for the N210 to reorder packets. Certain
ethernet chipsets with poor drivers show reordered or lost packets. When
used for TCP/IP connections, these problems are masked because TCP recovers
and reorders. Most UDP applications do as well, but UHD is too
time-sensitive for that to work. Because of this, you need a decent
quality ethernet card is required. When we first started with gigabit
ethernet in 2008, the available cards were of varying quality, but today,
nearly everything modern works well except for some Ethernet-over-USB
systems.
Matt
On Thu, Mar 12, 2015 at 8:35 AM, Marcus Müller <usrp-users@lists.ettus.com>
wrote:
> Pretty sure. If I'm not completely mistaken, and Marcus Leech thinks so
> too, there's not even enough state machine to hold back a packet for five
> packets on the N2x0.
>
>
> On 03/12/2015 04:16 PM, Bogdan Diaconescu wrote:
>
> Yeah, in this case there is an added subsystem that is USB that the
> packets go through in the first place.
>
> One question revolves in my mind, though: are we sure that USRP sends
> correctly the packets?
>
> Bogdan
>
>
> On Thursday, March 12, 2015 4:19 PM, Marcus Müller
> <marcus.mueller@ettus.com> <marcus.mueller@ettus.com> wrote:
>
>
> Ah, right, I forgot you've already attached the iperf results. Thanks!
> I'm currently trying to understand some linux low-level networking; I
> really want to know where that reordering happens.
>
> On 03/12/2015 03:06 PM, Bogdan Diaconescu wrote:
>
> Hi Marcus,
>
> so the results are that there are some reordered packets. The number of
> reordered packets seem to be about the number of Ds I was seeing.
>
> To answer to your questions:
>
> "so the question is: When you run iperf in UDP mode at 32MBit/s (equiv.
> 1MS/s @16bit), do you see any message about reordered packets?"
>
> >> I don't see reordered packets reported by iperf except one each time.
> I attach the txt file with results from iperf in various situations
> (attached later too).
>
> "Ah yet another question (having skimmed through the AX88179_178a.c
> kernel driver): There's no reordering happening in the device driver, as
> far as I can tell. You don't happen to have a switch or router between your
> USB/ethernet adapter and the USRP?"
>
> >> It is just the USRP connected directly to the dongle. No
> switch/router between.
>
> Bogdan
>
>
>
> On Thursday, March 12, 2015 3:01 PM, Marcus Müller
> <marcus.mueller@ettus.com> <marcus.mueller@ettus.com> wrote:
>
>
> Ah yet another question (having skimmed through the AX88179_178a.c
> kernel driver): There's no reordering happening in the device driver, as
> far as I can tell. You don't happen to have a switch or router between your
> USB/ethernet adapter and the USRP?
>
>
> On 03/12/2015 01:31 PM, Marcus Müller wrote:
>
> Hello,
>
> so the question is: When you run iperf in UDP mode at 32MBit/s (equiv.
> 1MS/s @16bit), do you see any message about reordered packets?
>
> Greetings,
> Marcus
>
> On 03/12/2015 01:14 PM, Marcus Müller wrote:
>
> Hi Bogdan,
>
> my initial analysis shows no dropped packets (yay), but strangely
> reordered ones (wut?). The UHD dissector doesn't seem to be that useful
> anymore.
> Thus: You can find my own analysis script at[1].
> I've first filtered the capture to only contain sample packets coming
> from the device by UDP source port.
> Then, I've saved that filtered output in PCAP (as opposed to PCAPng)
> format, since dpkt (which is the only packet capture analysis python module
> I'm somewhat familiar with) only knows how to deal with that. See the
> capture file[2]
> <https://gist.github.com/marcusmueller/b0ccc0c9b07e6704905a/raw/58e9f4be9636ac194478886c6d0648ac08369f51/n210_capture_samples_only.pcap>
> Then, I've run the script on that:
>
> ./analyze.py n210_capture_samples_only.pcap
>
> giving me
>
> Packet 45788: Seq. Nr 7 does not follow 5. Time 1426104210.261552, length 1472B
> Packet 45789: Seq. Nr 6 does not follow 7. Time 1426104210.261187, length 1472B
> Packet 45790: Seq. Nr 8 does not follow 6. Time 1426104210.261913, length 1472B
> Packet 53602: Seq. Nr D does not follow B. Time 1426104213.097992, length 1472B
> Packet 53606: Seq. Nr C does not follow 0. Time 1426104213.097629, length 1472B
> Packet 53607: Seq. Nr 1 does not follow C. Time 1426104213.099440, length 1472B
>
> Packets 45788 and 45789 came in reordered, and 53606 should have come
> after 53601.
>
> - 45788/45789: Ok, hm, switched places on consecutive packets.
> - 53602/53606: a packet delayed by four packets? I'm a bit confused.
>
> Now, I must admit I have *no* idea whether that reordering takes place
> in the device (that would require at least 5*(1516 B/ethernet packet)
> buffer) or in the kernel. In the latter case, there might be something that
> one can do about it. I'd have to investigate that myself, though, since I
> have no idea if one could enforce non-reordering behaviour (I don't even
> know which advantage reordering packets would have).
>
> Greetings,
> Marcus
>
> [1] https://gist.github.com/marcusmueller/b0ccc0c9b07e6704905a
> [2]
> https://gist.github.com/marcusmueller/b0ccc0c9b07e6704905a/raw/58e9f4be9636ac194478886c6d0648ac08369f51/n210_capture_samples_only.pcap
>
> On 03/12/2015 10:01 AM, Bogdan Diaconescu wrote:
>
> Hi Marcus,
>
> here is the info: http://iot.mobil4.org/uhd/
>
> Let me know your thoughts and findings.
>
> Thanks,
> Bogdan
>
>
> On Thursday, March 12, 2015 8:54 AM, Marcus Müller
> <marcus.mueller@ettus.com> <marcus.mueller@ettus.com> wrote:
>
>
> Thanks so much!
>
> On 03/11/2015 09:27 PM, Bogdan Diaconescu wrote:
>
> Thanks Ian, good to know that D is for both reordering and missing
> packets.
>
> Now, I did a wireshark capture for a spectrum capture with 1Ghz
> frequency and 1Msps until I saw severals Ds on command line.
>
> I attach a screenshot of the packet decoding which looks ugly and
> perhaps tells that my wireshark v1.10.x, the default in Ubuntu 14.04, is
> old. I'm I right here?
>
> I wonder if the 1516 frame size that I see is good for UHD?
>
> I will put the pcap and spectrum record on a server in the wild tomorrow
> mornig.
>
> Thanks,
> Bogdan
>
>
> On Wednesday, March 11, 2015 8:02 PM, Ian Buckley
> <ianb@ionconcepts.com> <ianb@ionconcepts.com> wrote:
>
>
> S is most definitely a sequence error….but on TX….note a sequence error
> can indicate 2 things packet re-ordering or lost packet.
> D is the equivalent RX direction error.
>
>
>
> I was wrong on "S" being the indication for sequence errors, by the way
> [1], so what we'd try to find out would be whether there's dropped packets
> or reordered packets or something really goes wrong on the UHD side.
>
> Greetings,
> Marcus
>
> [1] lib/transport/super_recv_packet_handler.hpp:571
>
> https://github.com/EttusResearch/uhd/blob/master/host/lib/transport/super_recv_packet_handler.hpp#L571
>
>
> On 03/10/2015 11:09 PM, Bogdan Diaconescu wrote:
>
> Ok, so I did several tests with various buffers passed in the uhd_fft
> command line:
>
> I tried almost everything in the reference given by you Marcus going
> wild from min to max and mostly notable lowering sent_frame_size down to
> 100 does reduce a bit the rate of Ds. However, it seems that the moment
> when Ds start to appear is delayed because of that but once they start
> appearing they continue to increase.
>
> And esentially the Ds are showing up in any situation I tried.
>
> It will be nice to have a test built in FPGA so that once triggered from
> the host, it will send known data to the PC allowing testing the connection.
>
> So, what's next?
>
>
>
>
> On Tuesday, March 10, 2015 7:24 PM, Bogdan Diaconescu
> <b_diaconescu@yahoo.com> <b_diaconescu@yahoo.com> wrote:
>
>
> Hi Marcus,
>
> those dongles are real good ones and they are the winners after almost 1
> years of trial and error with different similar devices. I so far used them
> in a non USRP project though
>
> To answer your questions: in a test with iperf (TCP) sending 10Gbit of
> data between 2 PCs (consistent at 935Mbit/s) there was no packet error and
> retransmission. With wireshark I've seen no TCP retransmission at all after
> several tests.
>
> We did also tests with UDP using the same setup and the speed is about
> 812Mbit/s which is somehow consistent with the fact that in the linux
> kernel TCP is optimized for bulk transfer but UDP is optimized for low
> latency. We actually got the same results when using direct desktop PC-2-PC
> connections that have onboard 1Gb/s NICs. With the same OS and kernel
> versions.
>
> So, all above is w/o USRP, just PC to PC.
>
> Now with USRP: I'll try playing with buffers according to the link you
> gave but for 1Msps uhd_fft should work never the less. I haven't look at
> VITA and its details but for let's say 64bit/sample over the wire you only
> get 64Mbit/sample which is very low and should work like a charm.
>
> You are right with the difference between packet size over USB vs.
> Ethernet. It may be something there.
>
> Played now with UDP Fragmentation Ofload and checksum offload with no
> difference, the same problems.
>
> I would take the processing power out of question as the processor is
> quite new (broadwell i7 in 14nm).
>
> Thanks,
> Bogdan
>
>
>
>
> On Tuesday, March 10, 2015 4:55 PM, Marcus Müller via USRP-users
> <usrp-users@lists.ettus.com> <usrp-users@lists.ettus.com> wrote:
>
>
> Hi Bogdan,
>
> I must admit that I've never seen anyone have much success with
> USB-to-ethernet adapters. In fact, you're the one to report the highest
> PC-to-PC bandwidth I've heard of, so I'd be interested to know how many
> packet errors and dropped packets you saw with iperf. Also, what is your
> CPU load whilst doing that rate? Do these adapters offload checksumming, or
> is that an additional burden to your CPU?
>
> Depending on your nc/iperf usage, you might have made advantageous usage
> of higher-level flow control in TCP; since the USRPs talk UDP only, there's
> no possibility to resend packets.
>
> I've actually often seen these adapters simply drop or reorder packets
> under load. Whilst a benchmarking tool might be tolerant to reordering, UHD
> is not; maybe that's what you're seeing (though you'd usually see
> 'S'equence errors instead of 'D's).
>
> You might want to experiment with smaller and bigger packet sizes, see
> [1]; the thing is that USB adapters have to cut up the gigabit ethernet
> frames (which can be rather long, depending on what your network hardware
> supports) into small USB3 packets (which can only be up to 1KB long), and
> the CPU then has to reassemble the ethernet packets. That means a lot of
> workload, so maybe it's better to sacrifice a bit of network to overload,
> but make the UHD sample packets small enough to fit into one USB packet.
>
> Greetings,
> Marcus
>
> [1] http://files.ettus.com/manual/page_transport.html#transport_udp_params
> ; you'd screw around with recv_frame_size, setting it to something like 900
> for a start.
>
> On 03/10/2015 03:33 PM, Bogdan Diaconescu via USRP-users wrote:
>
> Hi list,
>
> I'm a long time user of USRP and now I'm trying to use my setup with a
> new laptop that does not have an integrated ethernet card. I am using for
> now two types of Ethernet 2 USB adapters that have 1Gbps/USB3.0
> characteristics.
>
> Apparently, for PC-to-PC connection using the dongles I can get around
> 935Msps speed using iperf or nc which seems just fine. However, when I do
> just USRP to PC connection I get many Ds on the command line just using the
> simple uhd_fft. Those Ds are shown even when using a 1Msps rate. They
> increase when using higher sample rates.
>
> I wonder if someone tried this and had some success.
>
> My set-up is:
>
> Asus ZenBook UX31A (core i7).
> Ethernet 1Gbps/USB 3.0 dongles: D-Link DAB-1312 and Edimax EU-4306.
> Ubuntu 14.04
>
> I should mention that I passed the phase in which the dongles connect to
> laptop as USB2.0 because on the other side there was not ethernet cable
> connected. Yes, this happens with both dongles.
>
> Thanks for your support,
> Bogdan/YO3IIU
>
>
> _______________________________________________
> USRP-users mailing listUSRP-users@lists.ettus.comhttp://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
>
>
>
>
>
> _______________________________________________
> 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
>
>
BD
Bogdan Diaconescu
Fri, Mar 13, 2015 11:16 AM
Hi Matt,
I can confirm that my bunch of N210s worked pretty good for last years using various computing hardware, both desktops and laptops with integrated 1Gb links.
On my view, the new usecase I'm trying will become more of just one request in the future as the new ultrabook laptops will become the norm and the integrated ethernet will be replaced with USB3.0 to ethernet adapters. This things happens already. I'm not talking about silicon photonics users, though, just the average ones.
It may not be hardware in N210 that reorders the packets but the software in FPGA or on the path to the wire, not sure, will look at the code.
However, the important question that remains is: why replacing the USRP N210 with a PC that sends almost the same stream of data, using the same setup with the dongle, will not produce reordering of the packets.
Thanks,Bogdan
On Friday, March 13, 2015 9:39 AM, Matt Ettus <matt@ettus.com> wrote:
It is fundamentally not possible for the N210 to reorder packets. Certain ethernet chipsets with poor drivers show reordered or lost packets. When used for TCP/IP connections, these problems are masked because TCP recovers and reorders. Most UDP applications do as well, but UHD is too time-sensitive for that to work. Because of this, you need a decent quality ethernet card is required. When we first started with gigabit ethernet in 2008, the available cards were of varying quality, but today, nearly everything modern works well except for some Ethernet-over-USB systems.
Matt
On Thu, Mar 12, 2015 at 8:35 AM, Marcus Müller usrp-users@lists.ettus.com wrote:
Pretty sure. If I'm not completely mistaken, and Marcus Leech thinks so too, there's not even enough state machine to hold back a packet for five packets on the N2x0.
On 03/12/2015 04:16 PM, Bogdan Diaconescu wrote:
Yeah, in this case there is an added subsystem that is USB that the packets go through in the first place.
One question revolves in my mind, though: are we sure that USRP sends correctly the packets?
Bogdan
On Thursday, March 12, 2015 4:19 PM, Marcus Müller <marcus.mueller@ettus.com> wrote:
Ah, right, I forgot you've already attached the iperf results. Thanks!
I'm currently trying to understand some linux low-level networking; I really want to know where that reordering happens.
On 03/12/2015 03:06 PM, Bogdan Diaconescu wrote:
Hi Marcus,
so the results are that there are some reordered packets. The number of reordered packets seem to be about the number of Ds I was seeing.
To answer to your questions:
"so the question is: When you run iperf in UDP mode at 32MBit/s (equiv. 1MS/s @16bit), do you see any message about reordered packets?"
I don't see reordered packets reported by iperf except one each time. I attach the txt file with results from iperf in various situations (attached later too).
"Ah yet another question (having skimmed through the AX88179_178a.c kernel driver): There's no reordering happening in the device driver, as far as I can tell. You don't happen to have a switch or router between your USB/ethernet adapter and the USRP?"
It is just the USRP connected directly to the dongle. No switch/router between.
Bogdan
On Thursday, March 12, 2015 3:01 PM, Marcus Müller <marcus.mueller@ettus.com> wrote:
Ah yet another question (having skimmed through the AX88179_178a.c kernel driver): There's no reordering happening in the device driver, as far as I can tell. You don't happen to have a switch or router between your USB/ethernet adapter and the USRP?
On 03/12/2015 01:31 PM, Marcus Müller wrote:
Hello,
so the question is: When you run iperf in UDP mode at 32MBit/s (equiv. 1MS/s @16bit), do you see any message about reordered packets?
Greetings,
Marcus
On 03/12/2015 01:14 PM, Marcus Müller wrote:
Hi Bogdan,
my initial analysis shows no dropped packets (yay), but strangely reordered ones (wut?). The UHD dissector doesn't seem to be that useful anymore.
Thus: You can find my own analysis script at[1].
I've first filtered the capture to only contain sample packets coming from the device by UDP source port. Then, I've saved that filtered output in PCAP (as opposed to PCAPng) format, since dpkt (which is the only packet capture analysis python module I'm somewhat familiar with) only knows how to deal with that. See the capture file[2] Then, I've run the script on that: ./analyze.py n210_capture_samples_only.pcap
giving me Packet 45788: Seq. Nr 7 does not follow 5. Time 1426104210.261552, length 1472B
Packet 45789: Seq. Nr 6 does not follow 7. Time 1426104210.261187, length 1472B
Packet 45790: Seq. Nr 8 does not follow 6. Time 1426104210.261913, length 1472B
Packet 53602: Seq. Nr D does not follow B. Time 1426104213.097992, length 1472B
Packet 53606: Seq. Nr C does not follow 0. Time 1426104213.097629, length 1472B
Packet 53607: Seq. Nr 1 does not follow C. Time 1426104213.099440, length 1472B
Packets 45788 and 45789 came in reordered, and 53606 should have come after 53601.
- 45788/45789: Ok, hm, switched places on consecutive packets.
- 53602/53606: a packet delayed by four packets? I'm a bit confused.
Now, I must admit I have no idea whether that reordering takes place in the device (that would require at least 5*(1516 B/ethernet packet) buffer) or in the kernel. In the latter case, there might be something that one can do about it. I'd have to investigate that myself, though, since I have no idea if one could enforce non-reordering behaviour (I don't even know which advantage reordering packets would have).
Greetings,
Marcus
[1] https://gist.github.com/marcusmueller/b0ccc0c9b07e6704905a
[2] https://gist.github.com/marcusmueller/b0ccc0c9b07e6704905a/raw/58e9f4be9636ac194478886c6d0648ac08369f51/n210_capture_samples_only.pcap
On 03/12/2015 10:01 AM, Bogdan Diaconescu wrote:
Hi Marcus,
here is the info: http://iot.mobil4.org/uhd/
Let me know your thoughts and findings.
Thanks, Bogdan
On Thursday, March 12, 2015 8:54 AM, Marcus Müller <marcus.mueller@ettus.com> wrote:
Thanks so much!
On 03/11/2015 09:27 PM, Bogdan Diaconescu wrote:
Thanks Ian, good to know that D is for both reordering and missing packets.
Now, I did a wireshark capture for a spectrum capture with 1Ghz frequency and 1Msps until I saw severals Ds on command line.
I attach a screenshot of the packet decoding which looks ugly and perhaps tells that my wireshark v1.10.x, the default in Ubuntu 14.04, is old. I'm I right here?
I wonder if the 1516 frame size that I see is good for UHD?
I will put the pcap and spectrum record on a server in the wild tomorrow mornig.
Thanks,
Bogdan
On Wednesday, March 11, 2015 8:02 PM, Ian Buckley <ianb@ionconcepts.com> wrote:
S is most definitely a sequence error….but on TX….note a sequence error can indicate 2 things packet re-ordering or lost packet. D is the equivalent RX direction error.
I was wrong on "S" being the indication for sequence errors, by the way [1], so what we'd try to find out would be whether there's dropped packets or reordered packets or something really goes wrong on the UHD side.
Greetings,
Marcus
[1] lib/transport/super_recv_packet_handler.hpp:571
https://github.com/EttusResearch/uhd/blob/master/host/lib/transport/super_recv_packet_handler.hpp#L571
On 03/10/2015 11:09 PM, Bogdan Diaconescu wrote:
Ok, so I did several tests with various buffers passed in the uhd_fft command line:
I tried almost everything in the reference given by you Marcus going wild from min to max and mostly notable lowering sent_frame_size down to 100 does reduce a bit the rate of Ds. However, it seems that the moment when Ds start to appear is delayed because of that but once they start appearing they continue to increase.
And esentially the Ds are showing up in any situation I tried.
It will be nice to have a test built in FPGA so that once triggered from the host, it will send known data to the PC allowing testing the connection.
So, what's next?
On Tuesday, March 10, 2015 7:24 PM, Bogdan Diaconescu <b_diaconescu@yahoo.com> wrote:
Hi Marcus,
those dongles are real good ones and they are the winners after almost 1 years of trial and error with different similar devices. I so far used them in a non USRP project though
To answer your questions: in a test with iperf (TCP) sending 10Gbit of data between 2 PCs (consistent at 935Mbit/s) there was no packet error and retransmission. With wireshark I've seen no TCP retransmission at all after several tests.
We did also tests with UDP using the same setup and the speed is about 812Mbit/s which is somehow consistent with the fact that in the linux kernel TCP is optimized for bulk transfer but UDP is optimized for low latency. We actually got the same results when using direct desktop PC-2-PC connections that have onboard 1Gb/s NICs. With the same OS and kernel versions.
So, all above is w/o USRP, just PC to PC.
Now with USRP: I'll try playing with buffers according to the link you gave but for 1Msps uhd_fft should work never the less. I haven't look at VITA and its details but for let's say 64bit/sample over the wire you only get 64Mbit/sample which is very low and should work like a charm.
You are right with the difference between packet size over USB vs. Ethernet. It may be something there.
Played now with UDP Fragmentation Ofload and checksum offload with no difference, the same problems.
I would take the processing power out of question as the processor is quite new (broadwell i7 in 14nm).
Thanks, Bogdan
On Tuesday, March 10, 2015 4:55 PM, Marcus Müller via USRP-users <usrp-users@lists.ettus.com> wrote:
Hi Bogdan,
I must admit that I've never seen anyone have much success with USB-to-ethernet adapters. In fact, you're the one to report the highest PC-to-PC bandwidth I've heard of, so I'd be interested to know how many packet errors and dropped packets you saw with iperf. Also, what is your CPU load whilst doing that rate? Do these adapters offload checksumming, or is that an additional burden to your CPU?
Depending on your nc/iperf usage, you might have made advantageous usage of higher-level flow control in TCP; since the USRPs talk UDP only, there's no possibility to resend packets.
I've actually often seen these adapters simply drop or reorder packets under load. Whilst a benchmarking tool might be tolerant to reordering, UHD is not; maybe that's what you're seeing (though you'd usually see 'S'equence errors instead of 'D's).
You might want to experiment with smaller and bigger packet sizes, see [1]; the thing is that USB adapters have to cut up the gigabit ethernet frames (which can be rather long, depending on what your network hardware supports) into small USB3 packets (which can only be up to 1KB long), and the CPU then has to reassemble the ethernet packets. That means a lot of workload, so maybe it's better to sacrifice a bit of network to overload, but make the UHD sample packets small enough to fit into one USB packet.
Greetings,
Marcus
[1] http://files.ettus.com/manual/page_transport.html#transport_udp_params ; you'd screw around with recv_frame_size, setting it to something like 900 for a start.
On 03/10/2015 03:33 PM, Bogdan Diaconescu via USRP-users wrote:
Hi list,
I'm a long time user of USRP and now I'm trying to use my setup with a new laptop that does not have an integrated ethernet card. I am using for now two types of Ethernet 2 USB adapters that have 1Gbps/USB3.0 characteristics.
Apparently, for PC-to-PC connection using the dongles I can get around 935Msps speed using iperf or nc which seems just fine. However, when I do just USRP to PC connection I get many Ds on the command line just using the simple uhd_fft. Those Ds are shown even when using a 1Msps rate. They increase when using higher sample rates.
I wonder if someone tried this and had some success.
My set-up is:
Asus ZenBook UX31A (core i7). Ethernet 1Gbps/USB 3.0 dongles: D-Link DAB-1312 and Edimax EU-4306. Ubuntu 14.04
I should mention that I passed the phase in which the dongles connect to laptop as USB2.0 because on the other side there was not ethernet cable connected. Yes, this happens with both dongles.
Thanks for your support, Bogdan/YO3IIU
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
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
Hi Matt,
I can confirm that my bunch of N210s worked pretty good for last years using various computing hardware, both desktops and laptops with integrated 1Gb links.
On my view, the new usecase I'm trying will become more of just one request in the future as the new ultrabook laptops will become the norm and the integrated ethernet will be replaced with USB3.0 to ethernet adapters. This things happens already. I'm not talking about silicon photonics users, though, just the average ones.
It may not be hardware in N210 that reorders the packets but the software in FPGA or on the path to the wire, not sure, will look at the code.
However, the important question that remains is: why replacing the USRP N210 with a PC that sends almost the same stream of data, using the same setup with the dongle, will not produce reordering of the packets.
Thanks,Bogdan
On Friday, March 13, 2015 9:39 AM, Matt Ettus <matt@ettus.com> wrote:
It is fundamentally not possible for the N210 to reorder packets. Certain ethernet chipsets with poor drivers show reordered or lost packets. When used for TCP/IP connections, these problems are masked because TCP recovers and reorders. Most UDP applications do as well, but UHD is too time-sensitive for that to work. Because of this, you need a decent quality ethernet card is required. When we first started with gigabit ethernet in 2008, the available cards were of varying quality, but today, nearly everything modern works well except for some Ethernet-over-USB systems.
Matt
On Thu, Mar 12, 2015 at 8:35 AM, Marcus Müller <usrp-users@lists.ettus.com> wrote:
Pretty sure. If I'm not completely mistaken, and Marcus Leech thinks so too, there's not even enough state machine to hold back a packet for five packets on the N2x0.
On 03/12/2015 04:16 PM, Bogdan Diaconescu wrote:
Yeah, in this case there is an added subsystem that is USB that the packets go through in the first place.
One question revolves in my mind, though: are we sure that USRP sends correctly the packets?
Bogdan
On Thursday, March 12, 2015 4:19 PM, Marcus Müller <marcus.mueller@ettus.com> wrote:
Ah, right, I forgot you've already attached the iperf results. Thanks!
I'm currently trying to understand some linux low-level networking; I really want to know where that reordering happens.
On 03/12/2015 03:06 PM, Bogdan Diaconescu wrote:
Hi Marcus,
so the results are that there are some reordered packets. The number of reordered packets seem to be about the number of Ds I was seeing.
To answer to your questions:
"so the question is: When you run iperf in UDP mode at 32MBit/s (equiv. 1MS/s @16bit), do you see any message about reordered packets?"
>> I don't see reordered packets reported by iperf except one each time. I attach the txt file with results from iperf in various situations (attached later too).
"Ah yet another question (having skimmed through the AX88179_178a.c kernel driver): There's no reordering happening in the device driver, as far as I can tell. You don't happen to have a switch or router between your USB/ethernet adapter and the USRP?"
>> It is just the USRP connected directly to the dongle. No switch/router between.
Bogdan
On Thursday, March 12, 2015 3:01 PM, Marcus Müller <marcus.mueller@ettus.com> wrote:
Ah yet another question (having skimmed through the AX88179_178a.c kernel driver): There's no reordering happening in the device driver, as far as I can tell. You don't happen to have a switch or router between your USB/ethernet adapter and the USRP?
On 03/12/2015 01:31 PM, Marcus Müller wrote:
Hello,
so the question is: When you run iperf in UDP mode at 32MBit/s (equiv. 1MS/s @16bit), do you see any message about reordered packets?
Greetings,
Marcus
On 03/12/2015 01:14 PM, Marcus Müller wrote:
Hi Bogdan,
my initial analysis shows no dropped packets (yay), but strangely reordered ones (wut?). The UHD dissector doesn't seem to be that useful anymore.
Thus: You can find my own analysis script at[1].
I've first filtered the capture to only contain sample packets coming from the device by UDP source port. Then, I've saved that filtered output in PCAP (as opposed to PCAPng) format, since dpkt (which is the only packet capture analysis python module I'm somewhat familiar with) only knows how to deal with that. See the capture file[2] Then, I've run the script on that: ./analyze.py n210_capture_samples_only.pcap
giving me Packet 45788: Seq. Nr 7 does not follow 5. Time 1426104210.261552, length 1472B
Packet 45789: Seq. Nr 6 does not follow 7. Time 1426104210.261187, length 1472B
Packet 45790: Seq. Nr 8 does not follow 6. Time 1426104210.261913, length 1472B
Packet 53602: Seq. Nr D does not follow B. Time 1426104213.097992, length 1472B
Packet 53606: Seq. Nr C does not follow 0. Time 1426104213.097629, length 1472B
Packet 53607: Seq. Nr 1 does not follow C. Time 1426104213.099440, length 1472B
Packets 45788 and 45789 came in reordered, and 53606 should have come after 53601.
- 45788/45789: Ok, hm, switched places on consecutive packets.
- 53602/53606: a packet delayed by four packets? I'm a bit confused.
Now, I must admit I have *no* idea whether that reordering takes place in the device (that would require at least 5*(1516 B/ethernet packet) buffer) or in the kernel. In the latter case, there might be something that one can do about it. I'd have to investigate that myself, though, since I have no idea if one could enforce non-reordering behaviour (I don't even know which advantage reordering packets would have).
Greetings,
Marcus
[1] https://gist.github.com/marcusmueller/b0ccc0c9b07e6704905a
[2] https://gist.github.com/marcusmueller/b0ccc0c9b07e6704905a/raw/58e9f4be9636ac194478886c6d0648ac08369f51/n210_capture_samples_only.pcap
On 03/12/2015 10:01 AM, Bogdan Diaconescu wrote:
Hi Marcus,
here is the info: http://iot.mobil4.org/uhd/
Let me know your thoughts and findings.
Thanks, Bogdan
On Thursday, March 12, 2015 8:54 AM, Marcus Müller <marcus.mueller@ettus.com> wrote:
Thanks so much!
On 03/11/2015 09:27 PM, Bogdan Diaconescu wrote:
Thanks Ian, good to know that D is for both reordering and missing packets.
Now, I did a wireshark capture for a spectrum capture with 1Ghz frequency and 1Msps until I saw severals Ds on command line.
I attach a screenshot of the packet decoding which looks ugly and perhaps tells that my wireshark v1.10.x, the default in Ubuntu 14.04, is old. I'm I right here?
I wonder if the 1516 frame size that I see is good for UHD?
I will put the pcap and spectrum record on a server in the wild tomorrow mornig.
Thanks,
Bogdan
On Wednesday, March 11, 2015 8:02 PM, Ian Buckley <ianb@ionconcepts.com> wrote:
S is most definitely a sequence error….but on TX….note a sequence error can indicate 2 things packet re-ordering or lost packet. D is the equivalent RX direction error.
I was wrong on "S" being the indication for sequence errors, by the way [1], so what we'd try to find out would be whether there's dropped packets or reordered packets or something really goes wrong on the UHD side.
Greetings,
Marcus
[1] lib/transport/super_recv_packet_handler.hpp:571
https://github.com/EttusResearch/uhd/blob/master/host/lib/transport/super_recv_packet_handler.hpp#L571
On 03/10/2015 11:09 PM, Bogdan Diaconescu wrote:
Ok, so I did several tests with various buffers passed in the uhd_fft command line:
I tried almost everything in the reference given by you Marcus going wild from min to max and mostly notable lowering sent_frame_size down to 100 does reduce a bit the rate of Ds. However, it seems that the moment when Ds start to appear is delayed because of that but once they start appearing they continue to increase.
And esentially the Ds are showing up in any situation I tried.
It will be nice to have a test built in FPGA so that once triggered from the host, it will send known data to the PC allowing testing the connection.
So, what's next?
On Tuesday, March 10, 2015 7:24 PM, Bogdan Diaconescu <b_diaconescu@yahoo.com> wrote:
Hi Marcus,
those dongles are real good ones and they are the winners after almost 1 years of trial and error with different similar devices. I so far used them in a non USRP project though
To answer your questions: in a test with iperf (TCP) sending 10Gbit of data between 2 PCs (consistent at 935Mbit/s) there was no packet error and retransmission. With wireshark I've seen no TCP retransmission at all after several tests.
We did also tests with UDP using the same setup and the speed is about 812Mbit/s which is somehow consistent with the fact that in the linux kernel TCP is optimized for bulk transfer but UDP is optimized for low latency. We actually got the same results when using direct desktop PC-2-PC connections that have onboard 1Gb/s NICs. With the same OS and kernel versions.
So, all above is w/o USRP, just PC to PC.
Now with USRP: I'll try playing with buffers according to the link you gave but for 1Msps uhd_fft should work never the less. I haven't look at VITA and its details but for let's say 64bit/sample over the wire you only get 64Mbit/sample which is very low and should work like a charm.
You are right with the difference between packet size over USB vs. Ethernet. It may be something there.
Played now with UDP Fragmentation Ofload and checksum offload with no difference, the same problems.
I would take the processing power out of question as the processor is quite new (broadwell i7 in 14nm).
Thanks, Bogdan
On Tuesday, March 10, 2015 4:55 PM, Marcus Müller via USRP-users <usrp-users@lists.ettus.com> wrote:
Hi Bogdan,
I must admit that I've never seen anyone have much success with USB-to-ethernet adapters. In fact, you're the one to report the highest PC-to-PC bandwidth I've heard of, so I'd be interested to know how many packet errors and dropped packets you saw with iperf. Also, what is your CPU load whilst doing that rate? Do these adapters offload checksumming, or is that an additional burden to your CPU?
Depending on your nc/iperf usage, you might have made advantageous usage of higher-level flow control in TCP; since the USRPs talk UDP only, there's no possibility to resend packets.
I've actually often seen these adapters simply drop or reorder packets under load. Whilst a benchmarking tool might be tolerant to reordering, UHD is not; maybe that's what you're seeing (though you'd usually see 'S'equence errors instead of 'D's).
You might want to experiment with smaller and bigger packet sizes, see [1]; the thing is that USB adapters have to cut up the gigabit ethernet frames (which can be rather long, depending on what your network hardware supports) into small USB3 packets (which can only be up to 1KB long), and the CPU then has to reassemble the ethernet packets. That means a lot of workload, so maybe it's better to sacrifice a bit of network to overload, but make the UHD sample packets small enough to fit into one USB packet.
Greetings,
Marcus
[1] http://files.ettus.com/manual/page_transport.html#transport_udp_params ; you'd screw around with recv_frame_size, setting it to something like 900 for a start.
On 03/10/2015 03:33 PM, Bogdan Diaconescu via USRP-users wrote:
Hi list,
I'm a long time user of USRP and now I'm trying to use my setup with a new laptop that does not have an integrated ethernet card. I am using for now two types of Ethernet 2 USB adapters that have 1Gbps/USB3.0 characteristics.
Apparently, for PC-to-PC connection using the dongles I can get around 935Msps speed using iperf or nc which seems just fine. However, when I do just USRP to PC connection I get many Ds on the command line just using the simple uhd_fft. Those Ds are shown even when using a 1Msps rate. They increase when using higher sample rates.
I wonder if someone tried this and had some success.
My set-up is:
Asus ZenBook UX31A (core i7). Ethernet 1Gbps/USB 3.0 dongles: D-Link DAB-1312 and Edimax EU-4306. Ubuntu 14.04
I should mention that I passed the phase in which the dongles connect to laptop as USB2.0 because on the other side there was not ethernet cable connected. Yes, this happens with both dongles.
Thanks for your support, Bogdan/YO3IIU
_______________________________________________
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
_______________________________________________
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
MM
Marcus Müller
Fri, Mar 13, 2015 3:47 PM
It may not be hardware in N210 that reorders the packets but the
software in FPGA or on the path to the wire, not sure, will look at
the code.,
that's what Matt referred to: There's no way the N210 as a whole system
would reorder. It's not technically possible.
However, the important question that remains is: why replacing the
USRP N210 with a PC that sends almost the same stream of data, using
the same setup with the dongle, will not produce reordering of the
packets.
That's an interesting question, but one would have to raise it with the
manufacturer of the dongle. The USRP definitely sends these packets
in-order, so this is not something that we can fix :( Actually, when
looking into the linux kernel module driver for your dongle, I couldn't,
just by looking find a place where packets might undergo reordering. So
my final guess here is that the dongle firmware reorders ethernet
packets. That's an absolute black box to me.
Greetings,
Marcus
On 03/13/2015 12:16 PM, Bogdan Diaconescu wrote:
Hi Matt,
I can confirm that my bunch of N210s worked pretty good for last years
using various computing hardware, both desktops and laptops with
integrated 1Gb links.
On my view, the new usecase I'm trying will become more of just one
request in the future as the new ultrabook laptops will become the
norm and the integrated ethernet will be replaced with USB3.0 to
ethernet adapters. This things happens already. I'm not talking about
silicon photonics users, though, just the average ones.
It may not be hardware in N210 that reorders the packets but the
software in FPGA or on the path to the wire, not sure, will look at
the code.
However, the important question that remains is: why replacing the
USRP N210 with a PC that sends almost the same stream of data, using
the same setup with the dongle, will not produce reordering of the
packets.
Thanks,
Bogdan
On Friday, March 13, 2015 9:39 AM, Matt Ettus matt@ettus.com wrote:
It is fundamentally not possible for the N210 to reorder packets.
Certain ethernet chipsets with poor drivers show reordered or lost
packets. When used for TCP/IP connections, these problems are masked
because TCP recovers and reorders. Most UDP applications do as well,
but UHD is too time-sensitive for that to work. Because of this, you
need a decent quality ethernet card is required. When we first
started with gigabit ethernet in 2008, the available cards were of
varying quality, but today, nearly everything modern works well except
for some Ethernet-over-USB systems.
Matt
On Thu, Mar 12, 2015 at 8:35 AM, Marcus Müller
<usrp-users@lists.ettus.com mailto:usrp-users@lists.ettus.com> wrote:
Pretty sure. If I'm not completely mistaken, and Marcus Leech
thinks so too, there's not even enough state machine to hold back
a packet for five packets on the N2x0.
On 03/12/2015 04:16 PM, Bogdan Diaconescu wrote:
Yeah, in this case there is an added subsystem that is USB that
the packets go through in the first place.
One question revolves in my mind, though: are we sure that USRP
sends correctly the packets?
Bogdan
On Thursday, March 12, 2015 4:19 PM, Marcus Müller
<marcus.mueller@ettus.com> <mailto:marcus.mueller@ettus.com> wrote:
Ah, right, I forgot you've already attached the iperf results.
Thanks!
I'm currently trying to understand some linux low-level
networking; I really want to know where that reordering happens.
On 03/12/2015 03:06 PM, Bogdan Diaconescu wrote:
Hi Marcus,
so the results are that there are some reordered packets. The
number of reordered packets seem to be about the number of Ds I
was seeing.
To answer to your questions:
"so the question is: When you run iperf in UDP mode at 32MBit/s
(equiv. 1MS/s @16bit), do you see any message about reordered
packets?"
I don't see reordered packets reported by iperf except one
each time. I attach the txt file with results from iperf in
various situations (attached later too).
"Ah yet another question (having skimmed through the
AX88179_178a.c kernel driver): There's no reordering happening
in the device driver, as far as I can tell. You don't happen to
have a switch or router between your USB/ethernet adapter and
the USRP?"
It is just the USRP connected directly to the dongle. No
switch/router between.
Bogdan
On Thursday, March 12, 2015 3:01 PM, Marcus Müller
<marcus.mueller@ettus.com> <mailto:marcus.mueller@ettus.com> wrote:
Ah yet another question (having skimmed through the
AX88179_178a.c kernel driver): There's no reordering happening
in the device driver, as far as I can tell. You don't happen to
have a switch or router between your USB/ethernet adapter and
the USRP?
On 03/12/2015 01:31 PM, Marcus Müller wrote:
Hello,
so the question is: When you run iperf in UDP mode at 32MBit/s
(equiv. 1MS/s @16bit), do you see any message about reordered
packets?
Greetings,
Marcus
On 03/12/2015 01:14 PM, Marcus Müller wrote:
Hi Bogdan,
my initial analysis shows no dropped packets (yay), but
strangely reordered ones (wut?). The UHD dissector doesn't seem
to be that useful anymore.
Thus: You can find my own analysis script at[1].
I've first filtered the capture to only contain sample packets
coming from the device by UDP source port.
Then, I've saved that filtered output in PCAP (as opposed to
PCAPng) format, since dpkt (which is the only packet capture
analysis python module I'm somewhat familiar with) only knows
how to deal with that. See the capture file[2]
<https://gist.github.com/marcusmueller/b0ccc0c9b07e6704905a/raw/58e9f4be9636ac194478886c6d0648ac08369f51/n210_capture_samples_only.pcap>
Then, I've run the script on that:
|./analyze.py n210_capture_samples_only.pcap
|
giving me
|Packet 45788: Seq. Nr 7 does not follow 5. Time 1426104210.261552, length 1472B
Packet 45789: Seq. Nr 6 does not follow 7. Time 1426104210.261187, length 1472B
Packet 45790: Seq. Nr 8 does not follow 6. Time 1426104210.261913, length 1472B
Packet 53602: Seq. Nr D does not follow B. Time 1426104213.097992, length 1472B
Packet 53606: Seq. Nr C does not follow 0. Time 1426104213.097629, length 1472B
Packet 53607: Seq. Nr 1 does not follow C. Time 1426104213.099440, length 1472B
|
Packets 45788 and 45789 came in reordered, and 53606 should have
come after 53601.
* 45788/45789: Ok, hm, switched places on consecutive packets.
* 53602/53606: a packet delayed by four packets? I'm a bit
confused.
Now, I must admit I have *no* idea whether that reordering takes
place in the device (that would require at least 5*(1516
B/ethernet packet) buffer) or in the kernel. In the latter case,
there might be something that one can do about it. I'd have to
investigate that myself, though, since I have no idea if one
could enforce non-reordering behaviour (I don't even know which
advantage reordering packets would have).
Greetings,
Marcus
[1] https://gist.github.com/marcusmueller/b0ccc0c9b07e6704905a
[2]
https://gist.github.com/marcusmueller/b0ccc0c9b07e6704905a/raw/58e9f4be9636ac194478886c6d0648ac08369f51/n210_capture_samples_only.pcap
On 03/12/2015 10:01 AM, Bogdan Diaconescu wrote:
Hi Marcus,
here is the info: http://iot.mobil4.org/uhd/
Let me know your thoughts and findings.
Thanks,
Bogdan
On Thursday, March 12, 2015 8:54 AM, Marcus Müller
<marcus.mueller@ettus.com> <mailto:marcus.mueller@ettus.com> wrote:
Thanks so much!
On 03/11/2015 09:27 PM, Bogdan Diaconescu wrote:
Thanks Ian, good to know that D is for both reordering and
missing packets.
Now, I did a wireshark capture for a spectrum capture with
1Ghz frequency and 1Msps until I saw severals Ds on command line.
I attach a screenshot of the packet decoding which looks ugly
and perhaps tells that my wireshark v1.10.x, the default in
Ubuntu 14.04, is old. I'm I right here?
I wonder if the 1516 frame size that I see is good for UHD?
I will put the pcap and spectrum record on a server in the
wild tomorrow mornig.
Thanks,
Bogdan
On Wednesday, March 11, 2015 8:02 PM, Ian Buckley
<ianb@ionconcepts.com> <mailto:ianb@ionconcepts.com> wrote:
S is most definitely a sequence error….but on TX….note a
sequence error can indicate 2 things packet re-ordering or
lost packet.
D is the equivalent RX direction error.
I was wrong on "S" being the indication for sequence errors,
by the way [1], so what we'd try to find out would be whether
there's dropped packets or reordered packets or something
really goes wrong on the UHD side.
Greetings,
Marcus
[1] lib/transport/super_recv_packet_handler.hpp:571
https://github.com/EttusResearch/uhd/blob/master/host/lib/transport/super_recv_packet_handler.hpp#L571
On 03/10/2015 11:09 PM, Bogdan Diaconescu wrote:
Ok, so I did several tests with various buffers passed in
the uhd_fft command line:
I tried almost everything in the reference given by you
Marcus going wild from min to max and mostly notable
lowering sent_frame_size down to 100 does reduce a bit the
rate of Ds. However, it seems that the moment when Ds start
to appear is delayed because of that but once they start
appearing they continue to increase.
And esentially the Ds are showing up in any situation I tried.
It will be nice to have a test built in FPGA so that once
triggered from the host, it will send known data to the PC
allowing testing the connection.
So, what's next?
On Tuesday, March 10, 2015 7:24 PM, Bogdan Diaconescu
<b_diaconescu@yahoo.com> <mailto:b_diaconescu@yahoo.com> wrote:
Hi Marcus,
those dongles are real good ones and they are the winners
after almost 1 years of trial and error with different
similar devices. I so far used them in a non USRP project though
To answer your questions: in a test with iperf (TCP) sending
10Gbit of data between 2 PCs (consistent at 935Mbit/s) there
was no packet error and retransmission. With wireshark I've
seen no TCP retransmission at all after several tests.
We did also tests with UDP using the same setup and the
speed is about 812Mbit/s which is somehow consistent with
the fact that in the linux kernel TCP is optimized for bulk
transfer but UDP is optimized for low latency. We actually
got the same results when using direct desktop PC-2-PC
connections that have onboard 1Gb/s NICs. With the same OS
and kernel versions.
So, all above is w/o USRP, just PC to PC.
Now with USRP: I'll try playing with buffers according to
the link you gave but for 1Msps uhd_fft should work never
the less. I haven't look at VITA and its details but for
let's say 64bit/sample over the wire you only get
64Mbit/sample which is very low and should work like a charm.
You are right with the difference between packet size over
USB vs. Ethernet. It may be something there.
Played now with UDP Fragmentation Ofload and checksum
offload with no difference, the same problems.
I would take the processing power out of question as the
processor is quite new (broadwell i7 in 14nm).
Thanks,
Bogdan
On Tuesday, March 10, 2015 4:55 PM, Marcus Müller via
USRP-users <usrp-users@lists.ettus.com>
<mailto:usrp-users@lists.ettus.com> wrote:
Hi Bogdan,
I must admit that I've never seen anyone have much success
with USB-to-ethernet adapters. In fact, you're the one to
report the highest PC-to-PC bandwidth I've heard of, so I'd
be interested to know how many packet errors and dropped
packets you saw with iperf. Also, what is your CPU load
whilst doing that rate? Do these adapters offload
checksumming, or is that an additional burden to your CPU?
Depending on your nc/iperf usage, you might have made
advantageous usage of higher-level flow control in TCP;
since the USRPs talk UDP only, there's no possibility to
resend packets.
I've actually often seen these adapters simply drop or
reorder packets under load. Whilst a benchmarking tool might
be tolerant to reordering, UHD is not; maybe that's what
you're seeing (though you'd usually see 'S'equence errors
instead of 'D's).
You might want to experiment with smaller and bigger packet
sizes, see [1]; the thing is that USB adapters have to cut
up the gigabit ethernet frames (which can be rather long,
depending on what your network hardware supports) into small
USB3 packets (which can only be up to 1KB long), and the CPU
then has to reassemble the ethernet packets. That means a
lot of workload, so maybe it's better to sacrifice a bit of
network to overload, but make the UHD sample packets small
enough to fit into one USB packet.
Greetings,
Marcus
[1]
http://files.ettus.com/manual/page_transport.html#transport_udp_params
; you'd screw around with recv_frame_size, setting it to
something like 900 for a start.||
On 03/10/2015 03:33 PM, Bogdan Diaconescu via USRP-users wrote:
Hi list,
I'm a long time user of USRP and now I'm trying to use my
setup with a new laptop that does not have an integrated
ethernet card. I am using for now two types of Ethernet 2
USB adapters that have 1Gbps/USB3.0 characteristics.
Apparently, for PC-to-PC connection using the dongles I can
get around 935Msps speed using iperf or nc which seems just
fine. However, when I do just USRP to PC connection I get
many Ds on the command line just using the simple uhd_fft.
Those Ds are shown even when using a 1Msps rate. They
increase when using higher sample rates.
I wonder if someone tried this and had some success.
My set-up is:
Asus ZenBook UX31A (core i7).
Ethernet 1Gbps/USB 3.0 dongles: D-Link DAB-1312 and Edimax
EU-4306.
Ubuntu 14.04
I should mention that I passed the phase in which the
dongles connect to laptop as USB2.0 because on the other
side there was not ethernet cable connected. Yes, this
happens with both dongles.
Thanks for your support,
Bogdan/YO3IIU
_______________________________________________
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
_______________________________________________
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
_______________________________________________
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
_______________________________________________
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
Hi Bogdan,
> It may not be hardware in N210 that reorders the packets but the
> software in FPGA or on the path to the wire, not sure, will look at
> the code.,
that's what Matt referred to: There's no way the N210 as a whole system
would reorder. It's not technically possible.
> However, the important question that remains is: why replacing the
> USRP N210 with a PC that sends almost the same stream of data, using
> the same setup with the dongle, will not produce reordering of the
> packets.
That's an interesting question, but one would have to raise it with the
manufacturer of the dongle. The USRP definitely sends these packets
in-order, so this is not something that we can fix :( Actually, when
looking into the linux kernel module driver for your dongle, I couldn't,
just by looking find a place where packets might undergo reordering. So
my final guess here is that the dongle firmware reorders ethernet
packets. That's an absolute black box to me.
Greetings,
Marcus
On 03/13/2015 12:16 PM, Bogdan Diaconescu wrote:
> Hi Matt,
>
> I can confirm that my bunch of N210s worked pretty good for last years
> using various computing hardware, both desktops and laptops with
> integrated 1Gb links.
>
> On my view, the new usecase I'm trying will become more of just one
> request in the future as the new ultrabook laptops will become the
> norm and the integrated ethernet will be replaced with USB3.0 to
> ethernet adapters. This things happens already. I'm not talking about
> silicon photonics users, though, just the average ones.
>
> It may not be hardware in N210 that reorders the packets but the
> software in FPGA or on the path to the wire, not sure, will look at
> the code.
>
> However, the important question that remains is: why replacing the
> USRP N210 with a PC that sends almost the same stream of data, using
> the same setup with the dongle, will not produce reordering of the
> packets.
>
> Thanks,
> Bogdan
>
>
> On Friday, March 13, 2015 9:39 AM, Matt Ettus <matt@ettus.com> wrote:
>
>
>
> It is fundamentally not possible for the N210 to reorder packets.
> Certain ethernet chipsets with poor drivers show reordered or lost
> packets. When used for TCP/IP connections, these problems are masked
> because TCP recovers and reorders. Most UDP applications do as well,
> but UHD is too time-sensitive for that to work. Because of this, you
> need a decent quality ethernet card is required. When we first
> started with gigabit ethernet in 2008, the available cards were of
> varying quality, but today, nearly everything modern works well except
> for some Ethernet-over-USB systems.
>
> Matt
>
> On Thu, Mar 12, 2015 at 8:35 AM, Marcus Müller
> <usrp-users@lists.ettus.com <mailto:usrp-users@lists.ettus.com>> wrote:
>
> Pretty sure. If I'm not completely mistaken, and Marcus Leech
> thinks so too, there's not even enough state machine to hold back
> a packet for five packets on the N2x0.
>
>
> On 03/12/2015 04:16 PM, Bogdan Diaconescu wrote:
>> Yeah, in this case there is an added subsystem that is USB that
>> the packets go through in the first place.
>>
>> One question revolves in my mind, though: are we sure that USRP
>> sends correctly the packets?
>>
>> Bogdan
>>
>>
>> On Thursday, March 12, 2015 4:19 PM, Marcus Müller
>> <marcus.mueller@ettus.com> <mailto:marcus.mueller@ettus.com> wrote:
>>
>>
>> Ah, right, I forgot you've already attached the iperf results.
>> Thanks!
>> I'm currently trying to understand some linux low-level
>> networking; I really want to know where that reordering happens.
>>
>> On 03/12/2015 03:06 PM, Bogdan Diaconescu wrote:
>>> Hi Marcus,
>>>
>>> so the results are that there are some reordered packets. The
>>> number of reordered packets seem to be about the number of Ds I
>>> was seeing.
>>>
>>> To answer to your questions:
>>>
>>> "so the question is: When you run iperf in UDP mode at 32MBit/s
>>> (equiv. 1MS/s @16bit), do you see any message about reordered
>>> packets?"
>>>
>>> >> I don't see reordered packets reported by iperf except one
>>> each time. I attach the txt file with results from iperf in
>>> various situations (attached later too).
>>>
>>> "Ah yet another question (having skimmed through the
>>> AX88179_178a.c kernel driver): There's no reordering happening
>>> in the device driver, as far as I can tell. You don't happen to
>>> have a switch or router between your USB/ethernet adapter and
>>> the USRP?"
>>>
>>> >> It is just the USRP connected directly to the dongle. No
>>> switch/router between.
>>>
>>> Bogdan
>>>
>>>
>>>
>>> On Thursday, March 12, 2015 3:01 PM, Marcus Müller
>>> <marcus.mueller@ettus.com> <mailto:marcus.mueller@ettus.com> wrote:
>>>
>>>
>>> Ah yet another question (having skimmed through the
>>> AX88179_178a.c kernel driver): There's no reordering happening
>>> in the device driver, as far as I can tell. You don't happen to
>>> have a switch or router between your USB/ethernet adapter and
>>> the USRP?
>>>
>>>
>>> On 03/12/2015 01:31 PM, Marcus Müller wrote:
>>> Hello,
>>>
>>> so the question is: When you run iperf in UDP mode at 32MBit/s
>>> (equiv. 1MS/s @16bit), do you see any message about reordered
>>> packets?
>>>
>>> Greetings,
>>> Marcus
>>>
>>> On 03/12/2015 01:14 PM, Marcus Müller wrote:
>>> Hi Bogdan,
>>>
>>> my initial analysis shows no dropped packets (yay), but
>>> strangely reordered ones (wut?). The UHD dissector doesn't seem
>>> to be that useful anymore.
>>> Thus: You can find my own analysis script at[1].
>>> I've first filtered the capture to only contain sample packets
>>> coming from the device by UDP source port.
>>> Then, I've saved that filtered output in PCAP (as opposed to
>>> PCAPng) format, since dpkt (which is the only packet capture
>>> analysis python module I'm somewhat familiar with) only knows
>>> how to deal with that. See the capture file[2]
>>> <https://gist.github.com/marcusmueller/b0ccc0c9b07e6704905a/raw/58e9f4be9636ac194478886c6d0648ac08369f51/n210_capture_samples_only.pcap>
>>> Then, I've run the script on that:
>>> |./analyze.py n210_capture_samples_only.pcap
>>> |
>>> giving me
>>> |Packet 45788: Seq. Nr 7 does not follow 5. Time 1426104210.261552, length 1472B
>>> Packet 45789: Seq. Nr 6 does not follow 7. Time 1426104210.261187, length 1472B
>>> Packet 45790: Seq. Nr 8 does not follow 6. Time 1426104210.261913, length 1472B
>>> Packet 53602: Seq. Nr D does not follow B. Time 1426104213.097992, length 1472B
>>> Packet 53606: Seq. Nr C does not follow 0. Time 1426104213.097629, length 1472B
>>> Packet 53607: Seq. Nr 1 does not follow C. Time 1426104213.099440, length 1472B
>>> |
>>> Packets 45788 and 45789 came in reordered, and 53606 should have
>>> come after 53601.
>>>
>>> * 45788/45789: Ok, hm, switched places on consecutive packets.
>>> * 53602/53606: a packet delayed by four packets? I'm a bit
>>> confused.
>>>
>>> Now, I must admit I have *no* idea whether that reordering takes
>>> place in the device (that would require at least 5*(1516
>>> B/ethernet packet) buffer) or in the kernel. In the latter case,
>>> there might be something that one can do about it. I'd have to
>>> investigate that myself, though, since I have no idea if one
>>> could enforce non-reordering behaviour (I don't even know which
>>> advantage reordering packets would have).
>>>
>>> Greetings,
>>> Marcus
>>>
>>> [1] https://gist.github.com/marcusmueller/b0ccc0c9b07e6704905a
>>> [2]
>>> https://gist.github.com/marcusmueller/b0ccc0c9b07e6704905a/raw/58e9f4be9636ac194478886c6d0648ac08369f51/n210_capture_samples_only.pcap
>>>
>>> On 03/12/2015 10:01 AM, Bogdan Diaconescu wrote:
>>>> Hi Marcus,
>>>>
>>>> here is the info: http://iot.mobil4.org/uhd/
>>>>
>>>> Let me know your thoughts and findings.
>>>>
>>>> Thanks,
>>>> Bogdan
>>>>
>>>>
>>>> On Thursday, March 12, 2015 8:54 AM, Marcus Müller
>>>> <marcus.mueller@ettus.com> <mailto:marcus.mueller@ettus.com> wrote:
>>>>
>>>>
>>>> Thanks so much!
>>>>
>>>> On 03/11/2015 09:27 PM, Bogdan Diaconescu wrote:
>>>>> Thanks Ian, good to know that D is for both reordering and
>>>>> missing packets.
>>>>>
>>>>> Now, I did a wireshark capture for a spectrum capture with
>>>>> 1Ghz frequency and 1Msps until I saw severals Ds on command line.
>>>>>
>>>>> I attach a screenshot of the packet decoding which looks ugly
>>>>> and perhaps tells that my wireshark v1.10.x, the default in
>>>>> Ubuntu 14.04, is old. I'm I right here?
>>>>>
>>>>> I wonder if the 1516 frame size that I see is good for UHD?
>>>>>
>>>>> I will put the pcap and spectrum record on a server in the
>>>>> wild tomorrow mornig.
>>>>>
>>>>> Thanks,
>>>>> Bogdan
>>>>>
>>>>>
>>>>> On Wednesday, March 11, 2015 8:02 PM, Ian Buckley
>>>>> <ianb@ionconcepts.com> <mailto:ianb@ionconcepts.com> wrote:
>>>>>
>>>>>
>>>>> S is most definitely a sequence error….but on TX….note a
>>>>> sequence error can indicate 2 things packet re-ordering or
>>>>> lost packet.
>>>>> D is the equivalent RX direction error.
>>>>>
>>>>>>
>>>>>>
>>>>>> I was wrong on "S" being the indication for sequence errors,
>>>>>> by the way [1], so what we'd try to find out would be whether
>>>>>> there's dropped packets or reordered packets or something
>>>>>> really goes wrong on the UHD side.
>>>>>>
>>>>>> Greetings,
>>>>>> Marcus
>>>>>>
>>>>>> [1] lib/transport/super_recv_packet_handler.hpp:571
>>>>>> https://github.com/EttusResearch/uhd/blob/master/host/lib/transport/super_recv_packet_handler.hpp#L571
>>>>>>
>>>>>>
>>>>>> On 03/10/2015 11:09 PM, Bogdan Diaconescu wrote:
>>>>>>> Ok, so I did several tests with various buffers passed in
>>>>>>> the uhd_fft command line:
>>>>>>>
>>>>>>> I tried almost everything in the reference given by you
>>>>>>> Marcus going wild from min to max and mostly notable
>>>>>>> lowering sent_frame_size down to 100 does reduce a bit the
>>>>>>> rate of Ds. However, it seems that the moment when Ds start
>>>>>>> to appear is delayed because of that but once they start
>>>>>>> appearing they continue to increase.
>>>>>>>
>>>>>>> And esentially the Ds are showing up in any situation I tried.
>>>>>>>
>>>>>>> It will be nice to have a test built in FPGA so that once
>>>>>>> triggered from the host, it will send known data to the PC
>>>>>>> allowing testing the connection.
>>>>>>>
>>>>>>> So, what's next?
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Tuesday, March 10, 2015 7:24 PM, Bogdan Diaconescu
>>>>>>> <b_diaconescu@yahoo.com> <mailto:b_diaconescu@yahoo.com> wrote:
>>>>>>>
>>>>>>>
>>>>>>> Hi Marcus,
>>>>>>>
>>>>>>> those dongles are real good ones and they are the winners
>>>>>>> after almost 1 years of trial and error with different
>>>>>>> similar devices. I so far used them in a non USRP project though
>>>>>>>
>>>>>>> To answer your questions: in a test with iperf (TCP) sending
>>>>>>> 10Gbit of data between 2 PCs (consistent at 935Mbit/s) there
>>>>>>> was no packet error and retransmission. With wireshark I've
>>>>>>> seen no TCP retransmission at all after several tests.
>>>>>>>
>>>>>>> We did also tests with UDP using the same setup and the
>>>>>>> speed is about 812Mbit/s which is somehow consistent with
>>>>>>> the fact that in the linux kernel TCP is optimized for bulk
>>>>>>> transfer but UDP is optimized for low latency. We actually
>>>>>>> got the same results when using direct desktop PC-2-PC
>>>>>>> connections that have onboard 1Gb/s NICs. With the same OS
>>>>>>> and kernel versions.
>>>>>>>
>>>>>>> So, all above is w/o USRP, just PC to PC.
>>>>>>>
>>>>>>> Now with USRP: I'll try playing with buffers according to
>>>>>>> the link you gave but for 1Msps uhd_fft should work never
>>>>>>> the less. I haven't look at VITA and its details but for
>>>>>>> let's say 64bit/sample over the wire you only get
>>>>>>> 64Mbit/sample which is very low and should work like a charm.
>>>>>>>
>>>>>>> You are right with the difference between packet size over
>>>>>>> USB vs. Ethernet. It may be something there.
>>>>>>>
>>>>>>> Played now with UDP Fragmentation Ofload and checksum
>>>>>>> offload with no difference, the same problems.
>>>>>>>
>>>>>>> I would take the processing power out of question as the
>>>>>>> processor is quite new (broadwell i7 in 14nm).
>>>>>>>
>>>>>>> Thanks,
>>>>>>> Bogdan
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Tuesday, March 10, 2015 4:55 PM, Marcus Müller via
>>>>>>> USRP-users <usrp-users@lists.ettus.com>
>>>>>>> <mailto:usrp-users@lists.ettus.com> wrote:
>>>>>>>
>>>>>>>
>>>>>>> Hi Bogdan,
>>>>>>>
>>>>>>> I must admit that I've never seen anyone have much success
>>>>>>> with USB-to-ethernet adapters. In fact, you're the one to
>>>>>>> report the highest PC-to-PC bandwidth I've heard of, so I'd
>>>>>>> be interested to know how many packet errors and dropped
>>>>>>> packets you saw with iperf. Also, what is your CPU load
>>>>>>> whilst doing that rate? Do these adapters offload
>>>>>>> checksumming, or is that an additional burden to your CPU?
>>>>>>>
>>>>>>> Depending on your nc/iperf usage, you might have made
>>>>>>> advantageous usage of higher-level flow control in TCP;
>>>>>>> since the USRPs talk UDP only, there's no possibility to
>>>>>>> resend packets.
>>>>>>>
>>>>>>> I've actually often seen these adapters simply drop or
>>>>>>> reorder packets under load. Whilst a benchmarking tool might
>>>>>>> be tolerant to reordering, UHD is not; maybe that's what
>>>>>>> you're seeing (though you'd usually see 'S'equence errors
>>>>>>> instead of 'D's).
>>>>>>>
>>>>>>> You might want to experiment with smaller and bigger packet
>>>>>>> sizes, see [1]; the thing is that USB adapters have to cut
>>>>>>> up the gigabit ethernet frames (which can be rather long,
>>>>>>> depending on what your network hardware supports) into small
>>>>>>> USB3 packets (which can only be up to 1KB long), and the CPU
>>>>>>> then has to reassemble the ethernet packets. That means a
>>>>>>> lot of workload, so maybe it's better to sacrifice a bit of
>>>>>>> network to overload, but make the UHD sample packets small
>>>>>>> enough to fit into one USB packet.
>>>>>>>
>>>>>>> Greetings,
>>>>>>> Marcus
>>>>>>>
>>>>>>> [1]
>>>>>>> http://files.ettus.com/manual/page_transport.html#transport_udp_params
>>>>>>> ; you'd screw around with recv_frame_size, setting it to
>>>>>>> something like 900 for a start.||
>>>>>>>
>>>>>>> On 03/10/2015 03:33 PM, Bogdan Diaconescu via USRP-users wrote:
>>>>>>>> Hi list,
>>>>>>>>
>>>>>>>> I'm a long time user of USRP and now I'm trying to use my
>>>>>>>> setup with a new laptop that does not have an integrated
>>>>>>>> ethernet card. I am using for now two types of Ethernet 2
>>>>>>>> USB adapters that have 1Gbps/USB3.0 characteristics.
>>>>>>>>
>>>>>>>> Apparently, for PC-to-PC connection using the dongles I can
>>>>>>>> get around 935Msps speed using iperf or nc which seems just
>>>>>>>> fine. However, when I do just USRP to PC connection I get
>>>>>>>> many Ds on the command line just using the simple uhd_fft.
>>>>>>>> Those Ds are shown even when using a 1Msps rate. They
>>>>>>>> increase when using higher sample rates.
>>>>>>>>
>>>>>>>> I wonder if someone tried this and had some success.
>>>>>>>>
>>>>>>>> My set-up is:
>>>>>>>>
>>>>>>>> Asus ZenBook UX31A (core i7).
>>>>>>>> Ethernet 1Gbps/USB 3.0 dongles: D-Link DAB-1312 and Edimax
>>>>>>>> EU-4306.
>>>>>>>> Ubuntu 14.04
>>>>>>>>
>>>>>>>> I should mention that I passed the phase in which the
>>>>>>>> dongles connect to laptop as USB2.0 because on the other
>>>>>>>> side there was not ethernet cable connected. Yes, this
>>>>>>>> happens with both dongles.
>>>>>>>>
>>>>>>>> Thanks for your support,
>>>>>>>> Bogdan/YO3IIU
>>>>>>>>
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> 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
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> 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
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> 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
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>>
>>>
>>
>>
>>
>
>
> _______________________________________________
> 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
>
>
>
>
BD
Bogdan Diaconescu
Fri, Mar 13, 2015 11:04 PM
Not technically possible? Oh, not again ... I don't think Matt is saying that.
Look, what I am going to tell you below is something based on my experience and you should not see it as a flame. I am offering to be the first to buy a beer when we'll meet face to face as this is what I consider a friendly conversation :)
I have seen in 25 yers people signing contracts based on the "technical impossibility of failure", people guaranteeing with their finacial security based on "technical imposibility of failure", people guaranteeing with their jobs based on "technical impossibility of failure" and I have seen the same amount of failures. Just one example, I have seen from inside the P4 floating point problem where milion of $ needed to be spent because people said it is "technically impossible to fail".
So allow me to have my own doubts when someone tells me that "it is technically impossible to fail".
I understand the customer support has ended. I still need to solve my problem. What should I say to D-Link when reporting the problem ? That I have an UDP reordering problem with one device but all the other 7 devices I am using are working just fine. Do you think D-Link customer support will answer to that?
Thanks,Bogdan
On Friday, March 13, 2015 5:47 PM, Marcus Müller <marcus.mueller@ettus.com> wrote:
Hi Bogdan,
It may not be hardware in N210 that reorders the packets but the software in FPGA or on the path to the wire, not sure, will look at the code.,
that's what Matt referred to: There's no way the N210 as a whole system would reorder. It's not technically possible.
However, the important question that remains is: why replacing the USRP N210 with a PC that sends almost the same stream of data, using the same setup with the dongle, will not produce reordering of the packets.
That's an interesting question, but one would have to raise it with the manufacturer of the dongle. The USRP definitely sends these packets in-order, so this is not something that we can fix :( Actually, when looking into the linux kernel module driver for your dongle, I couldn't, just by looking find a place where packets might undergo reordering. So my final guess here is that the dongle firmware reorders ethernet packets. That's an absolute black box to me.
Greetings,
Marcus
On 03/13/2015 12:16 PM, Bogdan Diaconescu wrote:
Hi Matt,
I can confirm that my bunch of N210s worked pretty good for last years using various computing hardware, both desktops and laptops with integrated 1Gb links.
On my view, the new usecase I'm trying will become more of just one request in the future as the new ultrabook laptops will become the norm and the integrated ethernet will be replaced with USB3.0 to ethernet adapters. This things happens already. I'm not talking about silicon photonics users, though, just the average ones.
It may not be hardware in N210 that reorders the packets but the software in FPGA or on the path to the wire, not sure, will look at the code.
However, the important question that remains is: why replacing the USRP N210 with a PC that sends almost the same stream of data, using the same setup with the dongle, will not produce reordering of the packets.
Thanks, Bogdan
On Friday, March 13, 2015 9:39 AM, Matt Ettus <matt@ettus.com> wrote:
It is fundamentally not possible for the N210 to reorder packets. Certain ethernet chipsets with poor drivers show reordered or lost packets. When used for TCP/IP connections, these problems are masked because TCP recovers and reorders. Most UDP applications do as well, but UHD is too time-sensitive for that to work. Because of this, you need a decent quality ethernet card is required. When we first started with gigabit ethernet in 2008, the available cards were of varying quality, but today, nearly everything modern works well except for some Ethernet-over-USB systems.
Matt
On Thu, Mar 12, 2015 at 8:35 AM, Marcus Müller usrp-users@lists.ettus.com wrote:
Pretty sure. If I'm not completely mistaken, and Marcus Leech thinks so too, there's not even enough state machine to hold back a packet for five packets on the N2x0.
On 03/12/2015 04:16 PM, Bogdan Diaconescu wrote:
Yeah, in this case there is an added subsystem that is USB that the packets go through in the first place.
One question revolves in my mind, though: are we sure that USRP sends correctly the packets?
Bogdan
On Thursday, March 12, 2015 4:19 PM, Marcus Müller <marcus.mueller@ettus.com> wrote:
Ah, right, I forgot you've already attached the iperf results. Thanks!
I'm currently trying to understand some linux low-level networking; I really want to know where that reordering happens.
On 03/12/2015 03:06 PM, Bogdan Diaconescu wrote:
Hi Marcus,
so the results are that there are some reordered packets. The number of reordered packets seem to be about the number of Ds I was seeing.
To answer to your questions:
"so the question is: When you run iperf in UDP mode at 32MBit/s (equiv. 1MS/s @16bit), do you see any message about reordered packets?"
I don't see reordered packets reported by iperf except one each time. I attach the txt file with results from iperf in various situations (attached later too).
"Ah yet another question (having skimmed through the AX88179_178a.c kernel driver): There's no reordering happening in the device driver, as far as I can tell. You don't happen to have a switch or router between your USB/ethernet adapter and the USRP?"
It is just the USRP connected directly to the dongle. No switch/router between.
Bogdan
On Thursday, March 12, 2015 3:01 PM, Marcus Müller <marcus.mueller@ettus.com> wrote:
Ah yet another question (having skimmed through the AX88179_178a.c kernel driver): There's no reordering happening in the device driver, as far as I can tell. You don't happen to have a switch or router between your USB/ethernet adapter and the USRP?
On 03/12/2015 01:31 PM, Marcus Müller wrote:
Hello,
so the question is: When you run iperf in UDP mode at 32MBit/s (equiv. 1MS/s @16bit), do you see any message about reordered packets?
Greetings,
Marcus
On 03/12/2015 01:14 PM, Marcus Müller wrote:
Hi Bogdan,
my initial analysis shows no dropped packets (yay), but strangely reordered ones (wut?). The UHD dissector doesn't seem to be that useful anymore.
Thus: You can find my own analysis script at[1].
I've first filtered the capture to only contain sample packets coming from the device by UDP source port. Then, I've saved that filtered output in PCAP (as opposed to PCAPng) format, since dpkt (which is the only packet capture analysis python module I'm somewhat familiar with) only knows how to deal with that. See the capture file[2] Then, I've run the script on that: ./analyze.py n210_capture_samples_only.pcap
giving me Packet 45788: Seq. Nr 7 does not follow 5. Time 1426104210.261552, length 1472B
Packet 45789: Seq. Nr 6 does not follow 7. Time 1426104210.261187, length 1472B
Packet 45790: Seq. Nr 8 does not follow 6. Time 1426104210.261913, length 1472B
Packet 53602: Seq. Nr D does not follow B. Time 1426104213.097992, length 1472B
Packet 53606: Seq. Nr C does not follow 0. Time 1426104213.097629, length 1472B
Packet 53607: Seq. Nr 1 does not follow C. Time 1426104213.099440, length 1472B
Packets 45788 and 45789 came in reordered, and 53606 should have come after 53601.
- 45788/45789: Ok, hm, switched places on consecutive packets.
- 53602/53606: a packet delayed by four packets? I'm a bit confused.
Now, I must admit I have no idea whether that reordering takes place in the device (that would require at least 5*(1516 B/ethernet packet) buffer) or in the kernel. In the latter case, there might be something that one can do about it. I'd have to investigate that myself, though, since I have no idea if one could enforce non-reordering behaviour (I don't even know which advantage reordering packets would have).
Greetings,
Marcus
[1] https://gist.github.com/marcusmueller/b0ccc0c9b07e6704905a
[2] https://gist.github.com/marcusmueller/b0ccc0c9b07e6704905a/raw/58e9f4be9636ac194478886c6d0648ac08369f51/n210_capture_samples_only.pcap
On 03/12/2015 10:01 AM, Bogdan Diaconescu wrote:
Hi Marcus,
here is the info: http://iot.mobil4.org/uhd/
Let me know your thoughts and findings.
Thanks, Bogdan
On Thursday, March 12, 2015 8:54 AM, Marcus Müller <marcus.mueller@ettus.com> wrote:
Thanks so much!
On 03/11/2015 09:27 PM, Bogdan Diaconescu wrote:
Thanks Ian, good to know that D is for both reordering and missing packets.
Now, I did a wireshark capture for a spectrum capture with 1Ghz frequency and 1Msps until I saw severals Ds on command line.
I attach a screenshot of the packet decoding which looks ugly and perhaps tells that my wireshark v1.10.x, the default in Ubuntu 14.04, is old. I'm I right here?
I wonder if the 1516 frame size that I see is good for UHD?
I will put the pcap and spectrum record on a server in the wild tomorrow mornig.
Thanks,
Bogdan
On Wednesday, March 11, 2015 8:02 PM, Ian Buckley <ianb@ionconcepts.com> wrote:
S is most definitely a sequence error….but on TX….note a sequence error can indicate 2 things packet re-ordering or lost packet. D is the equivalent RX direction error.
I was wrong on "S" being the indication for sequence errors, by the way [1], so what we'd try to find out would be whether there's dropped packets or reordered packets or something really goes wrong on the UHD side.
Greetings,
Marcus
[1] lib/transport/super_recv_packet_handler.hpp:571
https://github.com/EttusResearch/uhd/blob/master/host/lib/transport/super_recv_packet_handler.hpp#L571
On 03/10/2015 11:09 PM, Bogdan Diaconescu wrote:
Ok, so I did several tests with various buffers passed in the uhd_fft command line:
I tried almost everything in the reference given by you Marcus going wild from min to max and mostly notable lowering sent_frame_size down to 100 does reduce a bit the rate of Ds. However, it seems that the moment when Ds start to appear is delayed because of that but once they start appearing they continue to increase.
And esentially the Ds are showing up in any situation I tried.
It will be nice to have a test built in FPGA so that once triggered from the host, it will send known data to the PC allowing testing the connection.
So, what's next?
On Tuesday, March 10, 2015 7:24 PM, Bogdan Diaconescu <b_diaconescu@yahoo.com> wrote:
Hi Marcus,
those dongles are real good ones and they are the winners after almost 1 years of trial and error with different similar devices. I so far used them in a non USRP project though
To answer your questions: in a test with iperf (TCP) sending 10Gbit of data between 2 PCs (consistent at 935Mbit/s) there was no packet error and retransmission. With wireshark I've seen no TCP retransmission at all after several tests.
We did also tests with UDP using the same setup and the speed is about 812Mbit/s which is somehow consistent with the fact that in the linux kernel TCP is optimized for bulk transfer but UDP is optimized for low latency. We actually got the same results when using direct desktop PC-2-PC connections that have onboard 1Gb/s NICs. With the same OS and kernel versions.
So, all above is w/o USRP, just PC to PC.
Now with USRP: I'll try playing with buffers according to the link you gave but for 1Msps uhd_fft should work never the less. I haven't look at VITA and its details but for let's say 64bit/sample over the wire you only get 64Mbit/sample which is very low and should work like a charm.
You are right with the difference between packet size over USB vs. Ethernet. It may be something there.
Played now with UDP Fragmentation Ofload and checksum offload with no difference, the same problems.
I would take the processing power out of question as the processor is quite new (broadwell i7 in 14nm).
Thanks, Bogdan
On Tuesday, March 10, 2015 4:55 PM, Marcus Müller via USRP-users <usrp-users@lists.ettus.com> wrote:
Hi Bogdan,
I must admit that I've never seen anyone have much success with USB-to-ethernet adapters. In fact, you're the one to report the highest PC-to-PC bandwidth I've heard of, so I'd be interested to know how many packet errors and dropped packets you saw with iperf. Also, what is your CPU load whilst doing that rate? Do these adapters offload checksumming, or is that an additional burden to your CPU?
Depending on your nc/iperf usage, you might have made advantageous usage of higher-level flow control in TCP; since the USRPs talk UDP only, there's no possibility to resend packets.
I've actually often seen these adapters simply drop or reorder packets under load. Whilst a benchmarking tool might be tolerant to reordering, UHD is not; maybe that's what you're seeing (though you'd usually see 'S'equence errors instead of 'D's).
You might want to experiment with smaller and bigger packet sizes, see [1]; the thing is that USB adapters have to cut up the gigabit ethernet frames (which can be rather long, depending on what your network hardware supports) into small USB3 packets (which can only be up to 1KB long), and the CPU then has to reassemble the ethernet packets. That means a lot of workload, so maybe it's better to sacrifice a bit of network to overload, but make the UHD sample packets small enough to fit into one USB packet.
Greetings,
Marcus
[1] http://files.ettus.com/manual/page_transport.html#transport_udp_params ; you'd screw around with recv_frame_size, setting it to something like 900 for a start.
On 03/10/2015 03:33 PM, Bogdan Diaconescu via USRP-users wrote:
Hi list,
I'm a long time user of USRP and now I'm trying to use my setup with a new laptop that does not have an integrated ethernet card. I am using for now two types of Ethernet 2 USB adapters that have 1Gbps/USB3.0 characteristics.
Apparently, for PC-to-PC connection using the dongles I can get around 935Msps speed using iperf or nc which seems just fine. However, when I do just USRP to PC connection I get many Ds on the command line just using the simple uhd_fft. Those Ds are shown even when using a 1Msps rate. They increase when using higher sample rates.
I wonder if someone tried this and had some success.
My set-up is:
Asus ZenBook UX31A (core i7). Ethernet 1Gbps/USB 3.0 dongles: D-Link DAB-1312 and Edimax EU-4306. Ubuntu 14.04
I should mention that I passed the phase in which the dongles connect to laptop as USB2.0 because on the other side there was not ethernet cable connected. Yes, this happens with both dongles.
Thanks for your support, Bogdan/YO3IIU
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
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
Not technically possible? Oh, not again ... I don't think Matt is saying that.
Look, what I am going to tell you below is something based on my experience and you should not see it as a flame. I am offering to be the first to buy a beer when we'll meet face to face as this is what I consider a friendly conversation :)
I have seen in 25 yers people signing contracts based on the "technical impossibility of failure", people guaranteeing with their finacial security based on "technical imposibility of failure", people guaranteeing with their jobs based on "technical impossibility of failure" and I have seen the same amount of failures. Just one example, I have seen from inside the P4 floating point problem where milion of $ needed to be spent because people said it is "technically impossible to fail".
So allow me to have my own doubts when someone tells me that "it is technically impossible to fail".
I understand the customer support has ended. I still need to solve my problem. What should I say to D-Link when reporting the problem ? That I have an UDP reordering problem with one device but all the other 7 devices I am using are working just fine. Do you think D-Link customer support will answer to that?
Thanks,Bogdan
On Friday, March 13, 2015 5:47 PM, Marcus Müller <marcus.mueller@ettus.com> wrote:
Hi Bogdan,
It may not be hardware in N210 that reorders the packets but the software in FPGA or on the path to the wire, not sure, will look at the code.,
that's what Matt referred to: There's no way the N210 as a whole system would reorder. It's not technically possible.
However, the important question that remains is: why replacing the USRP N210 with a PC that sends almost the same stream of data, using the same setup with the dongle, will not produce reordering of the packets.
That's an interesting question, but one would have to raise it with the manufacturer of the dongle. The USRP definitely sends these packets in-order, so this is not something that we can fix :( Actually, when looking into the linux kernel module driver for your dongle, I couldn't, just by looking find a place where packets might undergo reordering. So my final guess here is that the dongle firmware reorders ethernet packets. That's an absolute black box to me.
Greetings,
Marcus
On 03/13/2015 12:16 PM, Bogdan Diaconescu wrote:
Hi Matt,
I can confirm that my bunch of N210s worked pretty good for last years using various computing hardware, both desktops and laptops with integrated 1Gb links.
On my view, the new usecase I'm trying will become more of just one request in the future as the new ultrabook laptops will become the norm and the integrated ethernet will be replaced with USB3.0 to ethernet adapters. This things happens already. I'm not talking about silicon photonics users, though, just the average ones.
It may not be hardware in N210 that reorders the packets but the software in FPGA or on the path to the wire, not sure, will look at the code.
However, the important question that remains is: why replacing the USRP N210 with a PC that sends almost the same stream of data, using the same setup with the dongle, will not produce reordering of the packets.
Thanks, Bogdan
On Friday, March 13, 2015 9:39 AM, Matt Ettus <matt@ettus.com> wrote:
It is fundamentally not possible for the N210 to reorder packets. Certain ethernet chipsets with poor drivers show reordered or lost packets. When used for TCP/IP connections, these problems are masked because TCP recovers and reorders. Most UDP applications do as well, but UHD is too time-sensitive for that to work. Because of this, you need a decent quality ethernet card is required. When we first started with gigabit ethernet in 2008, the available cards were of varying quality, but today, nearly everything modern works well except for some Ethernet-over-USB systems.
Matt
On Thu, Mar 12, 2015 at 8:35 AM, Marcus Müller <usrp-users@lists.ettus.com> wrote:
Pretty sure. If I'm not completely mistaken, and Marcus Leech thinks so too, there's not even enough state machine to hold back a packet for five packets on the N2x0.
On 03/12/2015 04:16 PM, Bogdan Diaconescu wrote:
Yeah, in this case there is an added subsystem that is USB that the packets go through in the first place.
One question revolves in my mind, though: are we sure that USRP sends correctly the packets?
Bogdan
On Thursday, March 12, 2015 4:19 PM, Marcus Müller <marcus.mueller@ettus.com> wrote:
Ah, right, I forgot you've already attached the iperf results. Thanks!
I'm currently trying to understand some linux low-level networking; I really want to know where that reordering happens.
On 03/12/2015 03:06 PM, Bogdan Diaconescu wrote:
Hi Marcus,
so the results are that there are some reordered packets. The number of reordered packets seem to be about the number of Ds I was seeing.
To answer to your questions:
"so the question is: When you run iperf in UDP mode at 32MBit/s (equiv. 1MS/s @16bit), do you see any message about reordered packets?"
>> I don't see reordered packets reported by iperf except one each time. I attach the txt file with results from iperf in various situations (attached later too).
"Ah yet another question (having skimmed through the AX88179_178a.c kernel driver): There's no reordering happening in the device driver, as far as I can tell. You don't happen to have a switch or router between your USB/ethernet adapter and the USRP?"
>> It is just the USRP connected directly to the dongle. No switch/router between.
Bogdan
On Thursday, March 12, 2015 3:01 PM, Marcus Müller <marcus.mueller@ettus.com> wrote:
Ah yet another question (having skimmed through the AX88179_178a.c kernel driver): There's no reordering happening in the device driver, as far as I can tell. You don't happen to have a switch or router between your USB/ethernet adapter and the USRP?
On 03/12/2015 01:31 PM, Marcus Müller wrote:
Hello,
so the question is: When you run iperf in UDP mode at 32MBit/s (equiv. 1MS/s @16bit), do you see any message about reordered packets?
Greetings,
Marcus
On 03/12/2015 01:14 PM, Marcus Müller wrote:
Hi Bogdan,
my initial analysis shows no dropped packets (yay), but strangely reordered ones (wut?). The UHD dissector doesn't seem to be that useful anymore.
Thus: You can find my own analysis script at[1].
I've first filtered the capture to only contain sample packets coming from the device by UDP source port. Then, I've saved that filtered output in PCAP (as opposed to PCAPng) format, since dpkt (which is the only packet capture analysis python module I'm somewhat familiar with) only knows how to deal with that. See the capture file[2] Then, I've run the script on that: ./analyze.py n210_capture_samples_only.pcap
giving me Packet 45788: Seq. Nr 7 does not follow 5. Time 1426104210.261552, length 1472B
Packet 45789: Seq. Nr 6 does not follow 7. Time 1426104210.261187, length 1472B
Packet 45790: Seq. Nr 8 does not follow 6. Time 1426104210.261913, length 1472B
Packet 53602: Seq. Nr D does not follow B. Time 1426104213.097992, length 1472B
Packet 53606: Seq. Nr C does not follow 0. Time 1426104213.097629, length 1472B
Packet 53607: Seq. Nr 1 does not follow C. Time 1426104213.099440, length 1472B
Packets 45788 and 45789 came in reordered, and 53606 should have come after 53601.
- 45788/45789: Ok, hm, switched places on consecutive packets.
- 53602/53606: a packet delayed by four packets? I'm a bit confused.
Now, I must admit I have *no* idea whether that reordering takes place in the device (that would require at least 5*(1516 B/ethernet packet) buffer) or in the kernel. In the latter case, there might be something that one can do about it. I'd have to investigate that myself, though, since I have no idea if one could enforce non-reordering behaviour (I don't even know which advantage reordering packets would have).
Greetings,
Marcus
[1] https://gist.github.com/marcusmueller/b0ccc0c9b07e6704905a
[2] https://gist.github.com/marcusmueller/b0ccc0c9b07e6704905a/raw/58e9f4be9636ac194478886c6d0648ac08369f51/n210_capture_samples_only.pcap
On 03/12/2015 10:01 AM, Bogdan Diaconescu wrote:
Hi Marcus,
here is the info: http://iot.mobil4.org/uhd/
Let me know your thoughts and findings.
Thanks, Bogdan
On Thursday, March 12, 2015 8:54 AM, Marcus Müller <marcus.mueller@ettus.com> wrote:
Thanks so much!
On 03/11/2015 09:27 PM, Bogdan Diaconescu wrote:
Thanks Ian, good to know that D is for both reordering and missing packets.
Now, I did a wireshark capture for a spectrum capture with 1Ghz frequency and 1Msps until I saw severals Ds on command line.
I attach a screenshot of the packet decoding which looks ugly and perhaps tells that my wireshark v1.10.x, the default in Ubuntu 14.04, is old. I'm I right here?
I wonder if the 1516 frame size that I see is good for UHD?
I will put the pcap and spectrum record on a server in the wild tomorrow mornig.
Thanks,
Bogdan
On Wednesday, March 11, 2015 8:02 PM, Ian Buckley <ianb@ionconcepts.com> wrote:
S is most definitely a sequence error….but on TX….note a sequence error can indicate 2 things packet re-ordering or lost packet. D is the equivalent RX direction error.
I was wrong on "S" being the indication for sequence errors, by the way [1], so what we'd try to find out would be whether there's dropped packets or reordered packets or something really goes wrong on the UHD side.
Greetings,
Marcus
[1] lib/transport/super_recv_packet_handler.hpp:571
https://github.com/EttusResearch/uhd/blob/master/host/lib/transport/super_recv_packet_handler.hpp#L571
On 03/10/2015 11:09 PM, Bogdan Diaconescu wrote:
Ok, so I did several tests with various buffers passed in the uhd_fft command line:
I tried almost everything in the reference given by you Marcus going wild from min to max and mostly notable lowering sent_frame_size down to 100 does reduce a bit the rate of Ds. However, it seems that the moment when Ds start to appear is delayed because of that but once they start appearing they continue to increase.
And esentially the Ds are showing up in any situation I tried.
It will be nice to have a test built in FPGA so that once triggered from the host, it will send known data to the PC allowing testing the connection.
So, what's next?
On Tuesday, March 10, 2015 7:24 PM, Bogdan Diaconescu <b_diaconescu@yahoo.com> wrote:
Hi Marcus,
those dongles are real good ones and they are the winners after almost 1 years of trial and error with different similar devices. I so far used them in a non USRP project though
To answer your questions: in a test with iperf (TCP) sending 10Gbit of data between 2 PCs (consistent at 935Mbit/s) there was no packet error and retransmission. With wireshark I've seen no TCP retransmission at all after several tests.
We did also tests with UDP using the same setup and the speed is about 812Mbit/s which is somehow consistent with the fact that in the linux kernel TCP is optimized for bulk transfer but UDP is optimized for low latency. We actually got the same results when using direct desktop PC-2-PC connections that have onboard 1Gb/s NICs. With the same OS and kernel versions.
So, all above is w/o USRP, just PC to PC.
Now with USRP: I'll try playing with buffers according to the link you gave but for 1Msps uhd_fft should work never the less. I haven't look at VITA and its details but for let's say 64bit/sample over the wire you only get 64Mbit/sample which is very low and should work like a charm.
You are right with the difference between packet size over USB vs. Ethernet. It may be something there.
Played now with UDP Fragmentation Ofload and checksum offload with no difference, the same problems.
I would take the processing power out of question as the processor is quite new (broadwell i7 in 14nm).
Thanks, Bogdan
On Tuesday, March 10, 2015 4:55 PM, Marcus Müller via USRP-users <usrp-users@lists.ettus.com> wrote:
Hi Bogdan,
I must admit that I've never seen anyone have much success with USB-to-ethernet adapters. In fact, you're the one to report the highest PC-to-PC bandwidth I've heard of, so I'd be interested to know how many packet errors and dropped packets you saw with iperf. Also, what is your CPU load whilst doing that rate? Do these adapters offload checksumming, or is that an additional burden to your CPU?
Depending on your nc/iperf usage, you might have made advantageous usage of higher-level flow control in TCP; since the USRPs talk UDP only, there's no possibility to resend packets.
I've actually often seen these adapters simply drop or reorder packets under load. Whilst a benchmarking tool might be tolerant to reordering, UHD is not; maybe that's what you're seeing (though you'd usually see 'S'equence errors instead of 'D's).
You might want to experiment with smaller and bigger packet sizes, see [1]; the thing is that USB adapters have to cut up the gigabit ethernet frames (which can be rather long, depending on what your network hardware supports) into small USB3 packets (which can only be up to 1KB long), and the CPU then has to reassemble the ethernet packets. That means a lot of workload, so maybe it's better to sacrifice a bit of network to overload, but make the UHD sample packets small enough to fit into one USB packet.
Greetings,
Marcus
[1] http://files.ettus.com/manual/page_transport.html#transport_udp_params ; you'd screw around with recv_frame_size, setting it to something like 900 for a start.
On 03/10/2015 03:33 PM, Bogdan Diaconescu via USRP-users wrote:
Hi list,
I'm a long time user of USRP and now I'm trying to use my setup with a new laptop that does not have an integrated ethernet card. I am using for now two types of Ethernet 2 USB adapters that have 1Gbps/USB3.0 characteristics.
Apparently, for PC-to-PC connection using the dongles I can get around 935Msps speed using iperf or nc which seems just fine. However, when I do just USRP to PC connection I get many Ds on the command line just using the simple uhd_fft. Those Ds are shown even when using a 1Msps rate. They increase when using higher sample rates.
I wonder if someone tried this and had some success.
My set-up is:
Asus ZenBook UX31A (core i7). Ethernet 1Gbps/USB 3.0 dongles: D-Link DAB-1312 and Edimax EU-4306. Ubuntu 14.04
I should mention that I passed the phase in which the dongles connect to laptop as USB2.0 because on the other side there was not ethernet cable connected. Yes, this happens with both dongles.
Thanks for your support, Bogdan/YO3IIU
_______________________________________________
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
_______________________________________________
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
MM
Marcus Müller
Sat, Mar 14, 2015 9:11 AM
I am offering to be the first to buy a beer when we'll meet face to
face as this is what I consider a friendly conversation :)
Looking forward to buying the one after that, if occasion allows :)
So, the point is, we're sure that the FPGA, which is directly generating
these packets, doesn't have the capability to reorder. The verilog code
is out there [1], and so is the firmware that we let do the "real" IP
handling (which means firmware flashing, network set up, that kind of
stuff) [2]. Ask the D-Link guys if you can have their firmware's source
code :)
I understand the customer support has ended.
I really don't think we ever stopped supporting the N210! In fact:
I think the two of us, Bogdan, have done quite a good job determining
that the packets which UHD later sees are reordered, even before they
enter the IP stack of your OS.
Now, I can understand your doubts, but I don't personally share them:
Since I can exclude the possibility that the N210 reorders, and I see
that your ethernet-level captures contain reordered packets, only the
NIC or the NIC driver might be to blame. I even went ahead and read a
bit of the latter, hoping I could spot something obvious. I didn't, so
my maximum likelihood estimation for root of this problem is the NIC itself.
Cheers!
Marcus
[1] https://github.com/EttusResearch/fpga/tree/master/usrp2/simple_gemac
: In essence, the FPGA has samples, pushes them through the gigabit
ethernet interface hardware lines (GMII_TX*). There's no buffer for packets.
[2] which is just a LWIP port;
https://github.com/EttusResearch/uhd/tree/master/firmware/usrp2
Hi Bogdan!
> I am offering to be the first to buy a beer when we'll meet face to
> face as this is what I consider a friendly conversation :)
Looking forward to buying the one after that, if occasion allows :)
So, the point is, we're sure that the FPGA, which is directly generating
these packets, doesn't have the capability to reorder. The verilog code
is out there [1], and so is the firmware that we let do the "real" IP
handling (which means firmware flashing, network set up, that kind of
stuff) [2]. Ask the D-Link guys if you can have their firmware's source
code :)
> I understand the customer support has ended.
I really don't think we ever stopped supporting the N210! In fact:
I think the two of us, Bogdan, have done quite a good job determining
that the packets which UHD later sees are reordered, even before they
enter the IP stack of your OS.
Now, I can understand your doubts, but I don't personally share them:
Since I can exclude the possibility that the N210 reorders, and I see
that your ethernet-level captures contain reordered packets, only the
NIC or the NIC driver might be to blame. I even went ahead and read a
bit of the latter, hoping I could spot something obvious. I didn't, so
my maximum likelihood estimation for root of this problem is the NIC itself.
Cheers!
Marcus
[1] https://github.com/EttusResearch/fpga/tree/master/usrp2/simple_gemac
: In essence, the FPGA has samples, pushes them through the gigabit
ethernet interface hardware lines (GMII_TX*). There's no buffer for packets.
[2] which is just a LWIP port;
https://github.com/EttusResearch/uhd/tree/master/firmware/usrp2