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

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


Okay, I'll digress from the main subject for a moment... :)

On Thu, Oct 7, 2010 at 7:52 AM, David F. Skoll <dfs at roaringpenguin.com> wrote:

> I'm torn... on the one hand, I'm happy you've jailbroken your iPhone.

I wouldn't use it any other way. :)  The first iPhone model that comes
out that nobody can figure out how to jailbreak is one I won't buy.

> On the other hand, I have a serious hatred for all things Apple. :)

I'm far from being an Apple apologist, and I totally get that.  I'm a
tinkerer, too, and a big fan of Linux and open software, and I don't
like being told what I can and cannot do with *my* things.  (Do you
hear that, Apple?  It's mine now.  I paid money for it.)  And I hate
the walled-garden approach they've taken with the App Store.
Actually, I wouldn't mind what they do with the App Store so long as
they also gave users a way to sideload unsigned code onto one's
iDevice...then their store would only be one among many, and at that
point, heck, it's their store and they can do whatever they want with
it.  But so long as it remains the *only* allowed way to install
3rd-party software, it's a big problem.  No, make that a HUGE problem.

On the other hand, I also have an appreciation for sound, elegant, and
thoughtful engineering, which Apple has bestowed upon the world in
spades.  The beauty that is presented to the user in their software is
not merely skin-deep, nor is it a delicate house of cards that's ready
to collapse.  And quite frankly, I don't begrudge Apple their desire
to find a way to make computing more accessible to the masses (though,
granted, they have taken a rather "big brother" approach to it in
recent years).  And the one thing that I will forever hold Apple/Jobs
in high esteem for is the fact that they were the first consumer
company that managed to find a way to bring UNIX to the masses.

That's actually one of the things that drew me to the iPhone
initially, when Jobs announced at MacWorld '07 that the iPhone "runs
OS X."  Finally, a powerful pocket computer with universal
connectivity that runs UNIX!  Of course, we would later find out that
this didn't mean what some of us hoped it meant, and I skipped the
first iPhone because of "no third-party apps" (the fact that it was an
EDGE-only phone was kind of a killer, too); however, that the phone
runs Darwin on it is no small matter, and frankly, they beat Google to
the punch coming out with a usable product with a solid software
foundation by nearly a year and a half, so they ended up getting my
business.

But I didn't come here either to berate Apple or to defend them, so on
to the main course. ;)

> Synchronous mode relies on an ioctl call that's probably
> Linux-specific.

Hmm, I quickly skimmed through the code, and I'm sure I missed
something (probably a bunch of things, really), but I only found one
explicit ioctl call in the context of synchronous PPP, and it was one
that engaged the N_HDLC line discipline, which is Linux-specific, of
course.  Are you saying that synchronous mode is dependent on N_HDLC?
I saw code in the BPF sections that checked for synchronous operation,
and I figured there'd be no reason why you would want to build
RP-PPPoE on Linux using BPF, so I assumed synchronous mode was a
cross-platform option.

> I would guess the fact that you're stuck with
> user-mode PPP (including stuffing/unstuffing escape characters and
> verifying the CRC) is what's killing your performance.

You'd think so, logically...but I just observed load on the device
during a download, and it's coming nowhere close to maxing out the CPU
(20-30% load on the processor).  When a fast upload is occurring, it
gets much closer to peaking out (20-30% *remaining*).  (When the
upload is occurring, though, it didn't look like it was either the
Speedtest app or the pppoe process that was chewing up most of the
CPU, and I didn't see other processes that added up to the total use,
so I'm guessing it was a kernel/driver thing.)

I realize now that after building RP-PPPoE on desktop OS X, I didn't
do much beyond establishing the connection and checking for basic IP
connectivity.  When I get a chance, I'll bring up the PPP link on OS X
again with RP-PPPoE, and do some down/upload tests to see if the same
issue is occurring on the desktop.

> I don't
> understand why it would only affect the downlink, though... it should
> affect uplink just as badly too.

...exactly.  Thus my confusion.

Thanks for the response!

-- 
Nathan Anderson
nathan at anderson-net.com


More information about the RP-PPPoE mailing list