[RP-PPPoE] RP-PPPoE downlink performance on iOS/iPhoneOS

Nathan Anderson nathan at anderson-net.com
Thu Oct 7 06:51:15 EDT 2010


All,

I've wanted PPPoE client support on my (jailbroken) iPhone for a
while, and kept waiting for either Apple or some rogue developer to
wise up and make it happen.  Yesterday, I finally got tired of waiting
and decided to do something about it myself. ;)

RP-PPPoE struck me as being the most logical choice, since it seemed
like the most-portable userland PPPoE client out there.  I was able to
get the BPF version of it up and running on Mac OS X relatively
quickly as a proof-of-concept (it basically compiled and ran
out-of-the-box), and after verifying that iOS has BPF support and also
includes a pppd of the ANU/Paul Mackerras lineage (just as OS X does),
I made quick work of cross-compiling a version for my iPhone.  It,
too, mostly compiled and ran out-of-the-box; most of my problems
during the build process stemmed from necessary header files missing
from the iOS SDK (like net/bpf.h itself!).  I simply copied the OS X
equivalents over and the client finished building without a hitch.
(I'm sure at some future date I can throw together a clean patch set
for your consideration that will allow it to build cleanly without all
the kludgey duct-tape-esque fixes I resorted to this time around.)

After copying everything over to the iPhone, it also connected to my
PPP concentrator on the very first try, and I was online!

It seems to mostly work just fine.  There is one disturbing thing I've
noticed, though: uplink throughput is fine, but downlink throughput is
*terrible*.  Running Speedtest.NET's official app while the PPP tunnel
is up shows that I can accomplish multi-megabit uploads, but downloads
are hovering between 200-300k.  If I kill pppd and start using direct
IP-over-Ethernet again, my downlink rate is back to normal levels.  (I
haven't watched the CPU utilization of the phone yet during these
tests, but I did quickly try to use synchronous PPP mode, and the PPP
session doesn't even come up when I do that.)

I plan to start doing some digging into where the bottleneck is, but
before I began wandering down that path, I thought I would check to
see if this sounded familiar to anyone, and to see if anybody here
might have some guesses or suggestions off the top of their head(s) as
to where I should start looking.  If anybody could at least point me
in the right direction, I'd appreciate it!

Thanks,

-- 
Nathan Anderson
nathan at anderson-net.com


More information about the RP-PPPoE mailing list