Cake - FQ_codel the next generation
 help / color / mirror / Atom feed
* [Cake] Cake in userspace
@ 2016-04-15 11:02 Henning Rogge
  2016-04-15 11:41 ` Jonathan Morton
  0 siblings, 1 reply; 7+ messages in thread
From: Henning Rogge @ 2016-04-15 11:02 UTC (permalink / raw)
  To: cake

Hi,

I am working on an interface between an existing physical (wireless)
layer and the Linux IP stack.

The maximum speed of the PHY is quite slow (but has some long
timeslots for data) and we will do lots of experiments, so everything
is in Userspace and uses a TAP device to pretend to be a real device
driver.

Of course I am running into the same issues that the Mac80211 wifi
stack has... queuing and aggregation. To aggregate data I have to
remove IP packets from the the TUN interface, which removes them from
control of IP queuing... and only afterwards I can inspect them if
they CAN be aggregated.

How difficult would it be to implement Cake directly in Userspace
behind a TAP device (that you always drain of all incoming packets)?

This might be an interesting way to experiment with Cake AND might
solve my problem too.

Henning Rogge

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Cake] Cake in userspace
  2016-04-15 11:02 [Cake] Cake in userspace Henning Rogge
@ 2016-04-15 11:41 ` Jonathan Morton
  2016-04-15 13:16   ` Henning Rogge
  0 siblings, 1 reply; 7+ messages in thread
From: Jonathan Morton @ 2016-04-15 11:41 UTC (permalink / raw)
  To: Henning Rogge; +Cc: cake


> On 15 Apr, 2016, at 14:02, Henning Rogge <hrogge@gmail.com> wrote:
> 
> How difficult would it be to implement Cake directly in Userspace
> behind a TAP device (that you always drain of all incoming packets)?

Cake relies on a number of kernel services, which would need to be replaced.  This would also be true for a port to a different kernel, such as BSD - a question which has already occurred.

The most troublesome of these services would probably be the packet dissector, which is used to identify the 5-tuple for flow isolation.  The rest is largely standard entry points, timer services, memory management, and configuration.

My advice is to rip out the kernel-specific headers, try to compile it, and see how loudly the compiler complains.  :-)

 - Jonathan Morton


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Cake] Cake in userspace
  2016-04-15 11:41 ` Jonathan Morton
@ 2016-04-15 13:16   ` Henning Rogge
  2016-04-15 13:19     ` Jonathan Morton
  0 siblings, 1 reply; 7+ messages in thread
From: Henning Rogge @ 2016-04-15 13:16 UTC (permalink / raw)
  To: Jonathan Morton; +Cc: cake

On Fri, Apr 15, 2016 at 1:41 PM, Jonathan Morton <chromatix99@gmail.com> wrote:
> Cake relies on a number of kernel services, which would need to be replaced.  This would also be true for a port to a different kernel, such as BSD - a question which has already occurred.
>
> The most troublesome of these services would probably be the packet dissector, which is used to identify the 5-tuple for flow isolation.  The rest is largely standard entry points, timer services, memory management, and configuration.
>
> My advice is to rip out the kernel-specific headers, try to compile it, and see how loudly the compiler complains.  :-)

And do the same for Codel, right?

Because if I understand the Cake code correctly, I need Codel too.

Henning

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Cake] Cake in userspace
  2016-04-15 13:16   ` Henning Rogge
@ 2016-04-15 13:19     ` Jonathan Morton
  2016-04-18 11:17       ` Henning Rogge
  0 siblings, 1 reply; 7+ messages in thread
From: Jonathan Morton @ 2016-04-15 13:19 UTC (permalink / raw)
  To: Henning Rogge; +Cc: cake


> On 15 Apr, 2016, at 16:16, Henning Rogge <hrogge@gmail.com> wrote:
> 
> And do the same for Codel, right?

Yes, codel5.h - but it probably doesn’t have as many dependencies.

 - Jonathan Morton


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Cake] Cake in userspace
  2016-04-15 13:19     ` Jonathan Morton
@ 2016-04-18 11:17       ` Henning Rogge
  2016-04-18 11:40         ` Henning Rogge
  0 siblings, 1 reply; 7+ messages in thread
From: Henning Rogge @ 2016-04-18 11:17 UTC (permalink / raw)
  To: Jonathan Morton; +Cc: cake

On Fri, Apr 15, 2016 at 3:19 PM, Jonathan Morton <chromatix99@gmail.com> wrote:
>
>> On 15 Apr, 2016, at 16:16, Henning Rogge <hrogge@gmail.com> wrote:
>>
>> And do the same for Codel, right?
>
> Yes, codel5.h - but it probably doesn’t have as many dependencies.

I will have a look at it...

just as an additional comment, CAKE does not compile in a current
(K)Ubuntu... because skb_flow_dissect_flow_keys() has three parameters
in Ubuntus 4.2.0-35 kernel.

Unfortunately the 4.3.0 variant of CAKE does also not compile, because
4.2.0 does NOT know the FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL constant.


There is also the problem that 4.2.0-35 does not know flow_hash_from_keys().

Henning Rogge

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Cake] Cake in userspace
  2016-04-18 11:17       ` Henning Rogge
@ 2016-04-18 11:40         ` Henning Rogge
  2016-04-18 12:07           ` Jonathan Morton
  0 siblings, 1 reply; 7+ messages in thread
From: Henning Rogge @ 2016-04-18 11:40 UTC (permalink / raw)
  To: Jonathan Morton; +Cc: cake

On Mon, Apr 18, 2016 at 1:17 PM, Henning Rogge <hrogge@gmail.com> wrote:
> There is also the problem that 4.2.0-35 does not know flow_hash_from_keys().

Some more data on this problem.

the flow_hash_from_keys() symbol is available on my Ubuntu 15.10
system, it is mentioned in
/usr/src/linux-headers-4.2.0-35-generic/Module.symvers.

But the relevant include file does not contain it. Most likely an
Ubuntu problem.

Henning Rogge

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Cake] Cake in userspace
  2016-04-18 11:40         ` Henning Rogge
@ 2016-04-18 12:07           ` Jonathan Morton
  0 siblings, 0 replies; 7+ messages in thread
From: Jonathan Morton @ 2016-04-18 12:07 UTC (permalink / raw)
  To: Henning Rogge; +Cc: cake


> On 18 Apr, 2016, at 14:40, Henning Rogge <hrogge@gmail.com> wrote:
> 
> But the relevant include file does not contain it. Most likely an
> Ubuntu problem.

There seem often to be problems with Ubuntu kernels’ internal APIs not matching their nominal version numbers.  I advise keeping a local, manually hacked version of codel5_compat.h, unless someone knows a foolproof way of distinguishing an Ubuntu kernel from a normal one.

 - Jonathan Morton


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2016-04-18 12:07 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-04-15 11:02 [Cake] Cake in userspace Henning Rogge
2016-04-15 11:41 ` Jonathan Morton
2016-04-15 13:16   ` Henning Rogge
2016-04-15 13:19     ` Jonathan Morton
2016-04-18 11:17       ` Henning Rogge
2016-04-18 11:40         ` Henning Rogge
2016-04-18 12:07           ` Jonathan Morton

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox