From 464f3345e6f416558ac954205145d998ec2e773c Mon Sep 17 00:00:00 2001 From: GNU Hurd wiki engine Date: Fri, 13 Jun 2008 21:18:54 +0000 Subject: web commit by zhengda --- community/da.mdwn | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) (limited to 'community') 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 --- -- cgit v1.2.3