summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGNU Hurd wiki engine <web-hurd@gnu.org>2008-06-13 21:18:54 +0000
committerGNU Hurd wiki engine <web-hurd@gnu.org>2008-06-13 21:18:54 +0000
commit464f3345e6f416558ac954205145d998ec2e773c (patch)
tree5ba1ddf88df86e284f7cd881f85660b4eb750552
parent435f3e1ea739ed2cea8099ab3ccbadd234232893 (diff)
web commit by zhengda
-rw-r--r--community/da.mdwn27
1 files changed, 25 insertions, 2 deletions
diff --git a/community/da.mdwn b/community/da.mdwn
index 56a006b0..82df8569 100644
--- a/community/da.mdwn
+++ b/community/da.mdwn
@@ -6,9 +6,32 @@ Project: Network virtualization for subhurds etc.
The [code](http://www.assembla.com/spaces/VNetHurd/trac_subversion_tool).
-The design and implementation of [hypervisor](http://www.assembla.com/wiki/show/VNetHurd/The_design_of_hypervisor).
+---
+
+## The design and implementation of hypervisor
+
+### The requirements:
+to implement a mechanism which help pfinet servers communicate with each other. For example, if pfinet 1 has IP A and pfinet 2 has IP B, the packet sent by pfinet 1 with destination address IP B should be received by pfinet 2.
+Sub-hurd should be able to use this mechanism to communicate with each other.
+Meanwhile this mechanism should allow non-privileged the user to start his own pfinet.
+
+
+### The possible approach is to create a hypervisor whose roles are:
+ 1. to create some virtual network interface, so pfinet can send packets to it.
+ 2. to receive the packet from pfinet, and forward the packet to other pfinets in hurd
+ 3. or forward the packet to the real network device in the kernel and send it to the network.
+ 4. to guard the network traffic and filter illegal packets (forged by some malicious users) from pfinet or some other programs.
+
+
+### To create a virtual network interface:
+Implement the RPC interface defined in device.defs just as "boot" does.
+Publish the port, so other programs can get the port and open the virtual device by calling device_open(). The hypervisor now works as a translator and other programs can get the port by calling file_name_port().
+
+(to be continued)
+
+---
-The [schedule](http://www.assembla.com/wiki/show/b0f44qnbmr3AN4ab7jnrAJ/The_schedule_for_hypervisor).
+The schedule
---