[Planetlab-devel] passing socket descriptors

Fred Kuhns fredk at arl.wustl.edu
Wed Jul 12 12:33:41 EDT 2006


I have written a simple test which passes socket descriptors from the root
context to user vservers (I explain why below). The passing of descriptors
over UNIX domain sockets does work but I noticed that in the pl_netflow db the
traffic to the socket is associated with the root context and not the client
vserver which is actually using the socket. Likewise, the proc file
/proc/scout/ports/summary reports the socket as belonging to the root context
(i.e. the context creating the socket, not the context using the socket).

As a side note, I noticed that for UDP traffic the sender's port number is not
reported for any UDP traffic. I am new to planetlab so perhaps this is the
desired behavior but in my case if the sender's port # was included then the
correct vserver could be identified. The Netflow stats report the senders port
number so they are getting dropped during the parsing of the data.

So the questions are:

1) Am I doing something wrong? Is there some way to both transfer the socket
  _and_ transfer the "owning" context (vserver)?

2) Or is there a better way to effectively reserve ports using an existing
  api?


Background: We (the Applied Research lab at Washington University in St.
Louis) are developing a diversified router in the spirit of GENI.  The router
will be constructed from one or more ATCA chassis with an assortment of packet
processing blades and control entities. Each chassis will have a 10GE
switching blade and some mix of general processor blades (running Linux) and
network processor-based blades.  We will implement line cards (using network
processor blade(s)) which connect the router (chassis, switching fabric and
gp/np blades) to the world.

We want the router to appear/operate as a single system (aka Planetlab node)
rather than a collection of independent nodes. Keeping the story short, in
order to minimize any changes to the current Planetlab model and software base
we need to actively (programmatically) control what ports are available on
each node and to which vserver a given port is bound to.

I read a vini paper and at a 30,000 foot view our goals are very similar and
so I am also looking to Internet in a Slice as a model for future demos -- we
have an NFS demo in November and want to show Planetlab working on our router.

fred

--

fred kuhns
fredk at arl.wustl.edu
http://www.arl.wustl.edu/~fredk/



More information about the Devel mailing list