Neotel Dataflex on USB to Linux

Next Thing

Executive Member
Joined
Jan 31, 2005
Messages
7,548
Reaction score
10,206
Had some spare time this morning.

Managed to get the Neoflex Device connected as a pure modem to a Linux Server via USB and a ppp conenction created.

Same principle as the Neoprime method to connect, just different vendor numbers.

Will do some test tonight to see if changing some of the configuration in the TCP stack helps with

1. Overall speed
2. Latency for gaming

Going to be using some of the methods that we found worked with Iburst and some setttings that we used to use for lowering latency in games.

At least now I can use the damn thing as a pure modem via a custom linux firewall.
 
Last edited:
Can you alter things like MTU and RWIN through the tcp stacks?
 
Yup , because I am using the device as a pure modem and setting up the connection as a ppp session from a Linux session, I now have access to tweak the tcp stack.
I have a Centos 5.3 Server session that I setup on my vmware server last weekend. Just need to config a basic NAT firewall tonight and will see what I can get right. But I have definately managed to create the ppp connection and got a public ip and dns information from the connection this morning.

Some of teh settings I am interested in :

tcp_frto (Boolean; default: disabled)
Enables F-RTO, an enhanced recovery algorithm for TCP retrans-
mission timeouts. It is particularly beneficial in wireless
environments where packet loss is typically due to random radio
interference rather than intermediate router congestion.

tcp_low_latency (Boolean; default: disabled)
If enabled, the TCP stack makes decisions that prefer lower
latency as opposed to higher throughput. It this option is dis-
abled, then higher throughput is preferred. An example of an
application where this default should be changed would be a
Beowulf compute cluster.

tcp_retrans_collapse (Boolean; default: enabled)
Try to send full-sized packets during retransmit.

tcp_window_scaling (Boolean; default: enabled)
Enable RFC 1323 TCP window scaling. This feature allows the use
of a large window (> 64K) on a TCP connection, should the other
end support it. Normally, the 16 bit window length field in the
TCP header limits the window size to less than 64K bytes. If
larger windows are desired, applications can increase the size
of their socket buffers and the window scaling option will be
employed. If tcp_window_scaling is disabled, TCP will not nego-
tiate the use of window scaling with the other end during con-
nection setup.

Then as well as changing the max MTU size on the PPP connection
 
Last edited:
Wow this sounds very interesting... Can you choose your own DNS servers? For example if u wanted to use opendns, could u?

Id love to see a pingtest.net done using a normal connection as apposed to your linux setup...
 
Give me 2 or 3 days ( I have to work as well ).
Hopefully i get something more solid together with more answers.

I see no reason why you cannot use your own dns server relaying to wherever you want.

I will work on this tonight. Hopefully I can get the basic firewall and everything up including ( DYN DNS Server , Persistent Dialer and NAT Firewall to start with ). WIll try play with some of the tcp settings I have found so far that seem to do some of the tricks I want.

Afterthat will see if IPCOP/Smoothwall can be modded.
Anyone know if IPCOP was taken over by someone else. The website I always used does not see to have had updates in a long time.
For Smoothwall I am going to have to do some compiling by the looks of it.
 
Last edited:
2 or 3 days!! Booo!! U raise my hopes and make me wait! :( Lol.

I tried to do something similar to what you are doing - had a netbook set up which connected to by flex model. Also had a wireless router connect to the laptop. My aim was to measure all data usage so i could hard cap myself @ 15gig. But then my folks came to visit and i gave them the laptop lol.
 
LOL I allready have a Firewall up that I use to manage my 15GB. But before I go to the trouble of lots of recompiling I want to get this working on a full blown linux install.

All I want to try do is remove the appliance firewall that you are basically using on the neoflex device ( Does the Nat'ing/dns etc ) for you and move all that functionality to a dedicated server with a lot more oomf.

The hardest part is working ( ppp connection using the device as the modem). Just need to finish the rest now ( firewall nat config / dns etc ) and then start playing to see if the setting will make a difference. I have had my misgivingings about the Neoflex device and the apppliance firewall installed on it for a while. While it works ( most of the time ) I do not think the linux install on it has been optimised to work with a wireless network. I think the so called "hanging of the device" etc are all related to that.
Besides just being able to use it as a pure modem gives me so many more possibilities :D
Just have not had the time untill recently to really start playing.

I have a dedicated machine ( 64bit AMD 4000, 2gb memory ) spare that has vmware loaded on it that I use as a firewall(s) / download manager / play environments.
 
Last edited:
And remember if you going to write a review don't store/leave your laptop in the car ;P
 
Yup :D, Had the full shebang running last night. DNS server resolving to root servers ( Not using Neotels DNS servers ) , Running via USB , Masqerading setup and running, Squid Prox :D ( Did this for the hell of it ), Full access to MTU, Win sizes and TCP stack settings, so all of those are playable. Eventually installed Shorewall to make life easier from a firewalling perspective.

Found a network performance issue with Centos 5.3 ( Actually knew about this before, but hadnt realised what was causing it. Some new networking drivers in 5.3 :/ ) that seems to be well documented on the net :/ so need to get a new guest os setup.

Started a Fedora Core 11 install at home before I left for work.
So tonight I should be able to setup the usb and firewall again...
 
Last edited:
Connected through the Neoflex Device
598848577.png



Connected via a Linux session and the device on USB mode
598846373.png

MTU and a few other settings changed

I will run a few more tests tomorrow and see if the results hold up
I have set the setting for a slightly lower latency , but the uplink seems to be slower.
May be from the lower MTU setting. Will definatly play with it more tomorrow night
With Latency settings I am getting 20ms off on average or about 10% better over the tests I have done.

Have some reading up to do , but here are the default settings for the ipv4 stacks parameters

-----------------------------------------------
cipso_cache_bucket_size -- 10
-----------------------------------------------
cipso_cache_enable -- 1
-----------------------------------------------
cipso_rbm_optfmt -- 0
-----------------------------------------------
cipso_rbm_strictvalid -- 1
-----------------------------------------------
icmp_echo_ignore_all -- 0
-----------------------------------------------
icmp_echo_ignore_broadcasts -- 1
-----------------------------------------------
icmp_errors_use_inbound_ifaddr -- 0
-----------------------------------------------
icmp_ignore_bogus_error_responses -- 1
-----------------------------------------------
icmp_ratelimit -- 1000
-----------------------------------------------
icmp_ratemask -- 6168
-----------------------------------------------
igmp_max_memberships -- 20
-----------------------------------------------
igmp_max_msf -- 10
-----------------------------------------------
inet_peer_gc_maxtime -- 120
-----------------------------------------------
inet_peer_gc_mintime -- 10
-----------------------------------------------
inet_peer_maxttl -- 600
-----------------------------------------------
inet_peer_minttl -- 120
-----------------------------------------------
inet_peer_threshold -- 65664
-----------------------------------------------
ip_default_ttl -- 64
-----------------------------------------------
ip_dynaddr -- 0
-----------------------------------------------
ip_forward -- 1
-----------------------------------------------
ipfrag_high_thresh -- 262144
-----------------------------------------------
ipfrag_low_thresh -- 196608
-----------------------------------------------
ipfrag_max_dist -- 64
-----------------------------------------------
ipfrag_secret_interval -- 600
-----------------------------------------------
ipfrag_time -- 30
-----------------------------------------------
ip_local_port_range -- 32768 61000
-----------------------------------------------
ip_nonlocal_bind -- 0
-----------------------------------------------
ip_no_pmtu_disc -- 0
-----------------------------------------------
rt_cache_rebuild_count -- 4
-----------------------------------------------
tcp_abc -- 0
-----------------------------------------------
tcp_abort_on_overflow -- 0
-----------------------------------------------
tcp_adv_win_scale -- 2
-----------------------------------------------
tcp_allowed_congestion_control -- cubic reno
-----------------------------------------------
tcp_app_win -- 31
-----------------------------------------------
tcp_available_congestion_control -- cubic reno
-----------------------------------------------
tcp_base_mss -- 512
-----------------------------------------------
tcp_congestion_control -- cubic
-----------------------------------------------
tcp_dsack -- 1
-----------------------------------------------
tcp_ecn -- 0
-----------------------------------------------
tcp_fack -- 1
-----------------------------------------------
tcp_fin_timeout -- 60
-----------------------------------------------
tcp_frto -- 2
-----------------------------------------------
tcp_frto_response -- 0
-----------------------------------------------
tcp_keepalive_intvl -- 75
-----------------------------------------------
tcp_keepalive_probes -- 9
-----------------------------------------------
tcp_keepalive_time -- 7200
-----------------------------------------------
tcp_low_latency -- 0
-----------------------------------------------
tcp_max_orphans -- 32768
-----------------------------------------------
tcp_max_ssthresh -- 0
-----------------------------------------------
tcp_max_syn_backlog -- 1024
-----------------------------------------------
tcp_max_tw_buckets -- 180000
-----------------------------------------------
tcp_mem -- 47520 63360 95040
-----------------------------------------------
tcp_moderate_rcvbuf -- 1
-----------------------------------------------
tcp_mtu_probing -- 0
-----------------------------------------------
tcp_no_metrics_save -- 0
-----------------------------------------------
tcp_orphan_retries -- 0
-----------------------------------------------
tcp_reordering -- 3
-----------------------------------------------
tcp_retrans_collapse -- 1
-----------------------------------------------
tcp_retries1 -- 3
-----------------------------------------------
tcp_retries2 -- 15
-----------------------------------------------
tcp_rfc1337 -- 0
-----------------------------------------------
tcp_rmem -- 4096 87380 2027520
-----------------------------------------------
tcp_sack -- 1
-----------------------------------------------
tcp_slow_start_after_idle -- 1
-----------------------------------------------
tcp_stdurg -- 0
-----------------------------------------------
tcp_synack_retries -- 5
-----------------------------------------------
tcp_syncookies -- 0
-----------------------------------------------
tcp_syn_retries -- 5
-----------------------------------------------
tcp_timestamps -- 1
-----------------------------------------------
tcp_tso_win_divisor -- 3
-----------------------------------------------
tcp_tw_recycle -- 0
-----------------------------------------------
tcp_tw_reuse -- 0
-----------------------------------------------
tcp_window_scaling -- 1
-----------------------------------------------
tcp_wmem -- 4096 16384 2027520
-----------------------------------------------
tcp_workaround_signed_windows -- 0
-----------------------------------------------
udp_mem -- 47520 63360 95040
-----------------------------------------------
udp_rmem_min -- 4096
-----------------------------------------------
udp_wmem_min -- 4096
 
Last edited:
Only changed MTU and a few other settings. Left RWIN alone. Will do some serious testing tomorrow. Just wanted to get everything setup tonight
 
OK been quiet for a few days.

Seen some interesting results so far. WIll put up a "fuller" update soon
 
OK Finally got time to type this :D

Basically what I found is

Speed

Doesnt matter what I do , the speed stays constant. This seems to tell me that the towers themselves are fairly congested and the link is not the core reason for us not getting max speeds


Latency

By playing with the setting , I can actually decrease my latency as well as making the gaming a lot more stable from a latency perspective.
I play a lot of BF2 and what I found was about a 10-20ms drop in latency to SGS servers ( about 75ms now ). There are still some lagspikes , but it seems as if the continue spiking to 300+ms is down to about 10% of what I used to get.

Setup atm is a Fedore 11 kernel ( USB supports the Axxesstell out the box ), Connected via the Flex device on the USB , Smoothwall firewall all running in a vmware session on a Centos based server (p4 3.2 , 2GB memory ).
 
Top
Sign up to the MyBroadband newsletter
X