Hi Antti,

thanks for the quick response.

Am 16.03.2014 18:27, schrieb Antti Kantee:
> On 16/03/14 16:14, Martin Unzner wrote:
>> Hi Antti,
>>
>> I would like to refer to one of the first emails you sent me:
>>
>> Am 18.10.2013 02:45, schrieb Antti Kantee:
>>> - Does the Rump TCP/IP-Stack support TCP segmentation and Large Receive
>>>> Offload?
>>> It supports exactly the same features as the NetBSD kernel TCP/IP
>>> stack.  Now, for interface specific features such as TSO, you need the
>>> underlying packet shoveling device to support the feature. The current
>>> open source if_virt attempts to be as generic as possible and does not
>>> set any flags to signal the TCP/IP stack about enhanced interface
>>> capabilities.  If the underlying device supports TSO, things should
>>> just work by setting the correct IFCAP flag(s).
>> I have integrated netmap into Swarm, and that means I need to handle
>> netperfs big frames directly now. I have adapted the MTU of shmif, and
>> now your IFCAP flags come in: where would I set the appropiate flags,
>> and which would that be? Your help is kindly appreciated.
> Curiously enough, I'm planning to make some changes to if_virt,
> including allowing the hypercall layer to set the interface
> capabilities.  If you can wait a day or two, you can "copy" whatever is
> done there.  It's the last thing on my implementation list before
> bumping NetBSD timestamp for buildrump.sh, so I should get around to it
> really soon(tm).
>
> If you can't wait, I can tell you that you'll have to set the relevant
> IFCAP flags to ifp->if_capabilities.
OK, that's a good starting point.
>   You'll also have to enable the capabilities with ifconfig.
Is there a rump_pub method / an ioctl call to perform that step? I do 
not want to include rumprun in my sufficiently complicated setup (you 
might have spotted the wiki article).
>    Then you probably have to look at some mbuf
> flags to determine how to signal your backend (netmap?) what it actually
> needs to do to get the packet properly sent.
I thought it would be enough to write the jumbo frame to the busfile 
as-is, and then, before writing it to the physical hardware, split it 
into netmap buffers signed with netmap's NS_MOREFRAG flag. Maybe that 
was the step you were referring to. In the other direction, it works 
that way: I can receive jumbo frames without any further setup, which I 
then dump onto the bus. The Rump kernel allocates a sufficiently large 
mbuf using MEXTMALLOC. It seems to me that the problem are the upper 
layers which reject the frame if they are not told that it's OK to 
receive large frames from the shmif device.

Cheers!

Martin

------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and their
applications. Written by three acclaimed leaders in the field,
this first edition is now available. Download your free book today!
http://p.sf.net/sfu/13534_NeoTech
_______________________________________________
rumpkernel-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/rumpkernel-users

Reply via email to