Smart sdr packet loss

  • 1
  • Question
  • Updated 1 year ago
  • Answered
  • (Edited)

Hi,

I have been looking at problems with writelog in another post, but at least one of them appears to be a problem with SmartSDR.

When I connect to the Flex with Writelog using IP comms,  SmartSDR reports packet losses (30% ish) and the network health bars go red.

This does not happen all the time but when the problem appears rebooting SmartSDR or Writelog or the the PC often doesnt resolve the problem.

Functionality of SmartSDR does not seem to degrade and the packet loss reporting persists even if all panadapters are closed ie very little data flow. Also the data rate from writelog can be very small.

The network normally performs faultlessly with zero dropped packets and <1mS latency and this is with 10 times the data flow.

If you look at the network performance when the problem is present using Windows 10 resource monitor then it reports no packet losses and very low dataflow.

So my question... is smartSDR incorrectly reporting packet loss or why is writelog connecting to the flex server causing SmartSDR to drop packets. Connecting DXlab or SDR bridge does not have the same affect.

Another flex user has reported the same problem on the community.

Any network experts out there able to help me fault find this problem.


Regards Andy M5ZAP

Photo of Andy M5ZAP

Andy M5ZAP

  • 161 Posts
  • 35 Reply Likes

Posted 1 year ago

  • 1
Photo of Bill W2PKY

Bill W2PKY

  • 28 Posts
  • 5 Reply Likes
In Windows Device manager for the Network adapter check to see if the receive buffers are 256, If so increase the buffers to 512 or more to see if the problem is resolved. Additionally, just curious, if listening to headphones when connecting Writelog do you hear a drop out in the audio?

Are you directly connected between the PC and Radio? No switich?
(Edited)
Photo of Andy M5ZAP

Andy M5ZAP

  • 161 Posts
  • 35 Reply Likes

Hi Bill

Thanks for help.

1 - There is no audible disturbance when starting writelog.

2 - I cannot find the receive buffers in the ethernet proberties in Device manager

3 - The radio is connected via a switch a gigabit TPlink.

There is only a few bytes being transferred and in other setups with DXlab and sdr Brige and skimmer I can have 20+ mb/sec and not a single dropped packet and sometimes I can have writelog running and SmartSDR not reporting packet loss.

The problem persists if writelog is set to use its own dax and IQ link or just comms for rig control so is not network traffic volume related.


Photo of Andy M5ZAP

Andy M5ZAP

  • 161 Posts
  • 35 Reply Likes

I have continued investigating the issue of reported dropped packets by SmartSDR when running Writelog and I am now convinced it is SmartSDR incorrectly reporting packet losses only when Writelog is running,

The reasons I believe this is the case is

1 - Windows monitor reports zero packet loss

2 - You can run Smartsdr with audio on "Remote" (or audio local from Flex) and there is absolutely no audio drop out or artefacts heard, when SmartSDR is reporting 50% packet loss.

3 - With Writelog and SmartSDR runing at 18mb/sec and a 50% packet loss being reported by Smart SDR I left the system pinging the Flex for 2 hrs and the results were

Ping statistics for 192.168.1.214:
    Packets: Sent = 7247, Received = 7247, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 3ms, Average = 0ms

4 - it is not dependant on datarate as the problem occurs as soon as I connect Writelog to the flex server when there is only a few bytes per second of data.

Why it only happens when running writelog I dont know as other setups I use run much higher data rates.

Can anybody add anything to my findings and should I raise a ticket if I think it is a SmartSDR bug. Can anybody from flex please comment.

I know Kevin K4VD has the same issue when runnining writelog.

I must also say I have had fantastic support from Wayne W5XD the creator of Writelog.

(Edited)
Photo of Andy M5ZAP

Andy M5ZAP

  • 161 Posts
  • 35 Reply Likes

I have a work around,

 

Not sure why it works but doing some logs with Wireshark to help analyse and will keep digging. 

If you open Writelog first (it connects to the flex server ) and let it sit there  with "no Slice" displayed. You then open Smart SDR for windows,  smart SDR then does not display dropped packets. Even more weird you can then shut and open Writelog as many times as you want and all is well.  

If you shut down both, then open Smart SDR first it falls over. This explains the fact a couple of times it worked ok. However the logical process is to open Smart SDR first.

 

 

Andy

(Edited)
Photo of Eric - KE5DTO

Eric - KE5DTO, Official Rep

  • 661 Posts
  • 202 Reply Likes
Yes, that should work as SmartSDR should avoid a port that is already in use.
Photo of Andy M5ZAP

Andy M5ZAP

  • 161 Posts
  • 35 Reply Likes

Thanks,

Could you also reply to the other two questions from post above

I presume there is nothing I can do about that, it is the software writer. If you pass the info of what UDP ports to avoid I can pass that onto Wayne W5XD the author of writelog who I am in corresponance with.

Does the flex API information tell SW writers to avoid certain ports?

Photo of Eric - KE5DTO

Eric - KE5DTO, Official Rep

  • 661 Posts
  • 202 Reply Likes
I don't think you can do anything as the user.  This is something that has to change in the software.  If you tell Wayne what I said above, I think he'll know what to do.  If not, tell him he can contact me directly.  I can walk him through it.

We probably do not have enough information in the docs to explain why this is a problem.  We will improve that as well as make some changes that help to enforce use of separate ports.  At that point, everyone will have to use different ports of their application will not work.
Photo of Andy M5ZAP

Andy M5ZAP

  • 161 Posts
  • 35 Reply Likes
Hi Eric,

Do you have an email address so I can forward Wayne's further emails and you guys can try and sort the problem out without having to do it all through the forum.

Once we have a solution then we can post it to the forum so anybody trying to use Writelog and the flex can learn from it.
Photo of Eric - KE5DTO

Eric - KE5DTO, Official Rep

  • 661 Posts
  • 202 Reply Likes
Sure.  You can reach me via email at eric AT flex DASH radio DOT com.

Our team talked about it and we are going to make the following changes based on this discussion:
1. We are going to set the ExclusiveAddressUse flag on the socket we open for streaming data in FlexLib.  This will prevent other processes from being able to bind to the same UDP port (on the same machine).
2. We are going to change the radio logic so that a UDP port must be specified before any streaming data will come out.  Today, it just sends data out on the default port (4991) if one hasn't been specified.
3. The radio is going to check to ensure that a specified IP/port doesn't match an existing client's ip/port settings.  In other words, we will enforce using different ports on the same machine at the radio.

Thanks for your help in bringing this to our attention.  We will make a similar post on this subject in the API section so the developers are in the loop.