Thomas Bushnell BSG wrote:
On Thu, 2008-08-21 at 11:26 +0200, zhengda wrote:
In eth-filter, I define a structure
struct proxy_info
{
/* For receiving packets from pfinet. */
struct port_info *pfinet_pi;
hurd_ihash_locp_t p_pfinetpi_hashloc;
/* For receiving packets from the network
Thomas Bushnell BSG wrote:
On Wed, 2008-08-20 at 22:47 +0200, zhengda wrote:
I want to get the confirmation from you about the usage of
ports_get_right(), ports_destroy_right() and ports_port_deref().
When I use ports_get_right() to get the receive right of the port, I
should always make a
Ben Asselstine wrote:
On Tue, Aug 19, 2008 at 4:02 PM, zhengda <[EMAIL PROTECTED]> wrote:
+case 'f':
+ dev_file = strstr (arg, "=");
+ if (dev_file == NULL)
+ return ARGP_ERR_UNKNOWN;
+ *dev_file = 0;
+ add_dev_map (arg, dev_file+1)
Hello everyone,
I want to get the confirmation from you about the usage of
ports_get_right(), ports_destroy_right() and ports_port_deref().
When I use ports_get_right() to get the receive right of the port, I
should always make a send right for the port. So if we just want to get
the name of t
zhengda wrote:
Hello,
I have checked in my code in my CVS branch, and put the patches in the
http://www.assembla.com/spaces/VNetHurd/documents.
I write a howto to briefly introduce the process of setting up the
system.
http://www.assembla.com/spaces/VNetHurd/documents/boUIuWBsmr3A1lab7jnrAJ
Neal H. Walfield wrote:
At Tue, 19 Aug 2008 17:37:14 +0200,
zhengda wrote:
Since boot only uses one interface, boot probably accepts only one
interface name from subhurd.
This needn't be the case. In fact, it should be able to expose any
number of objects as devices. A
Neal H. Walfield wrote:
At Tue, 19 Aug 2008 17:37:14 +0200,
zhengda wrote:
Since boot only uses one interface, boot probably accepts only one
interface name from subhurd.
This needn't be the case. In fact, it should be able to expose any
number of objects as devices. A
Neal H. Walfield wrote:
At Tue, 19 Aug 2008 15:48:11 +0200,
zhengda wrote:
2008-07-29 Zheng Da <[EMAIL PROTECTED]>
* boot/boot.c (ds_device_open): Handle the request to open the virtual
network device.
diff -u boot.old/boot.c boot/boot.c
--- boot.old/boot.c 2008-08-17
Samuel Thibault wrote:
zhengda, le Tue 19 Aug 2008 17:00:01 +0200, a écrit :
Otherwise, we have to tell pfinet the whole path of the device file. I
think it's a little weird.
Why? We do so for ext2fs and /dev/hd?s?
Ah, I'm stupid.
At first, pfinet, boot and all other
Neal H. Walfield wrote:
At Tue, 19 Aug 2008 15:48:11 +0200,
zhengda wrote:
2008-07-29 Zheng Da <[EMAIL PROTECTED]>
* boot/boot.c (ds_device_open): Handle the request to open the virtual
network device.
diff -u boot.old/boot.c boot/boot.c
--- boot.old/boot.c 2008-08-17
Hello,
I have checked in my code in my CVS branch, and put the patches in the
http://www.assembla.com/spaces/VNetHurd/documents.
I write a howto to briefly introduce the process of setting up the
system.
http://www.assembla.com/spaces/VNetHurd/documents/boUIuWBsmr3A1lab7jnrAJ/download/howto
I
[EMAIL PROTECTED] wrote:
Hi,
On Fri, Aug 08, 2008 at 07:06:29AM +0200, zhengda wrote:
But the way to open the virtual network interface will be changed if
the translator that helps open the device is created.
Indeed... So I guess we better don't commit it just yet :-)
20
Samuel Thibault wrote:
zhengda, le Sun 17 Aug 2008 13:40:59 +0200, a écrit :
I wonder how I return ENOMEM? Does asprintf() write the errno itself?
Yes.
Should the function returns immediately after __asprintf() returns error?
It has to clean its mess first of course
[EMAIL PROTECTED] wrote:
Hi,
On Sat, Aug 16, 2008 at 11:10:50PM +0200, zhengda wrote:
I run subhurd. When I try to exit it by running 'halt', I get the error
message as follow:
init: notifying ext2fs.static hd1s1 of shutdown...init: Killing pid 64
memory_object_data_r
[EMAIL PROTECTED] wrote:
It really depends on the context. In some cases -- if the pointer is
dereferenced -- NULL will create an obvious failure, while some random
uninitialized pointer might be harder to track down.
In other cases -- if it's used as argument to realloc(), free() etc.; or
if i
Samuel Thibault wrote:
zhengda, le Fri 15 Aug 2008 20:05:53 +0200, a écrit :
Samuel Thibault wrote:
zhengda, le Fri 15 Aug 2008 19:05:49 +0200, a écrit :
Samuel Thibault wrote:
zhengda, le Fri 15 Aug 2008 18:27:00 +0200, a écrit :
+ if
Hello,
First, I'm not sure if it is a bug of subhurd.
I run subhurd. When I try to exit it by running 'halt', I get the error
message as follow:
init: notifying ext2fs.static hd1s1 of shutdown...init: Killing pid 64
memory_object_data_request(0x0, 0x0, 0x1000, 0x1000, 0x1) failed, 268435459
mem
Hello,
First, I'm not sure if it is a bug of subhurd.
I run subhurd. When I try to exit it by running 'halt', I get the error
message as follow:
init: notifying ext2fs.static hd1s1 of shutdown...init: Killing pid 64
memory_object_data_request(0x0, 0x0, 0x1000, 0x1000, 0x1) failed, 268435459
mem
Samuel Thibault wrote:
zhengda, le Fri 15 Aug 2008 19:05:49 +0200, a écrit :
Samuel Thibault wrote:
zhengda, le Fri 15 Aug 2008 18:27:00 +0200, a écrit :
+ if (__asprintf (&name, "SOCK_SERV_%d", domain) < 0)
+__libc_fatal ("hurd: Can't g
Samuel Thibault wrote:
zhengda, le Fri 15 Aug 2008 18:27:00 +0200, a écrit :
+ if (__asprintf (&name, "SOCK_SERV_%d", domain) < 0)
+__libc_fatal ("hurd: Can't get the socket server path\n");
Shouldn't we just return ENOMEM?
In many par
[EMAIL PROTECTED] wrote:
+ char *name = NULL;
No need to initialize this -- the asprintf() will overwrite it anyways.
But isn't it always right to initialize a local variable to reduce the
possibility of getting bugs?
It won't avoid bugs; only either cover t
[EMAIL PROTECTED] wrote:
Hi,
On Wed, Aug 13, 2008 at 12:07:50PM +0200, zhengda wrote:
for (in = h->interfaces; in < h->interfaces + h->num_interfaces; in++)
- if (strcmp (in->device->name, arg) == 0)
+if (strcmp (in->name, arg) == 0)
Samuel Thibault wrote:
And can you please suggest me how should the entry in the Changelog
and also the commit log for the very first log be ?
The current practice seems to be to just write you have added the files,
see hurd/console/ChangeLog for instance.
I don't understand. Since the
Neal H. Walfield wrote:
At Wed, 13 Aug 2008 12:41:12 +0200,
zhengda wrote:
+ if (__asprintf (&name, "SOCK_SERV_%d", domain) > 0)
+{
+ np = getenv (name);
+ __free (name);
+}
You need to check whether asprintf() returns
[EMAIL PROTECTED] wrote:
Hi,
On Tue, Aug 12, 2008 at 08:05:49PM +0200, zhengda wrote:
+ char *name = NULL;
No need to initialize this -- the asprintf() will overwrite it anyways.
But isn't it always right to initialize a local variable to reduce the
possibility of ge
[EMAIL PROTECTED] wrote:
+ master_device = file_name_lookup (master_device_file , 0 , 0);
+ if (master_device == MACH_PORT_NULL)
+error (2, 0, "file_name_lookup %s", master_device_file);
Doesn't file_name_lookup() set errno?...
The funny thing here is that gcc always c
The new patch of glibc to override the default socket server:
Needed for glibc-2_7-branch
2008-06-30 Zheng Da <[EMAIL PROTECTED]>
* hurd/hurdsocks.c (_hurd_socket_server): Searches environment variables
for the socket server insteading of using the default one.
(SOCK_SERV_%d, SOCK_SER
[EMAIL PROTECTED] wrote:
Hi,
On Fri, Aug 08, 2008 at 08:09:24AM +0200, zhengda wrote:
The patch enables the pfinet to work with the multiplexer and use the
filter rule that only accepts the packet whose destination is the
pfinet server.
This rather sounds like two totally
Samuel Thibault wrote:
zhengda, le Sun 10 Aug 2008 19:42:18 +0200, a écrit :
Samuel Thibault wrote:
if (domain > max_domain || servers[domain] == MACH_PORT_NULL)
{
char *name = NULL;
char *np = NULL;
if (__asprintf (&name, "SOCK_SERV_%d", domain) > 0
[EMAIL PROTECTED] wrote:
I don't know the rule either, if there is any... But it just seems
reasonable to be consistent and use the same error code for an
equivalent error condition...
OK.
Do you have any idea to prevent the mail client to do it? I use
thunderbird. I didn't find anything tha
[EMAIL PROTECTED] wrote:
Hi,
On Fri, Aug 08, 2008 at 08:09:24AM +0200, zhengda wrote:
The patch enables the pfinet to work with the multiplexer and use the
filter rule that only accepts the packet whose destination is the
pfinet server.
This rather sounds like two totally
Samuel Thibault wrote:
zhengda, le Sun 10 Aug 2008 20:29:55 +0200, a écrit :
2008-07-29 Zheng Da <[EMAIL PROTECTED]>
* include/device/net_status.h (NET_FLAGS): Macro defined.
Usually we rather write "New macro". Anyway, you should read your mail
non-linear
[EMAIL PROTECTED] wrote:
Hi,
2008-07-29 Zheng Da <[EMAIL PROTECTED]>
*boot/boot.c: add an option to open the virtual network interface
That's not a complete changelog...
+ if (err)
+fprintf (stderr, "open_device returns %x, %s\n",
+ err, strerror (err
Samuel Thibault wrote:
About changelogs, please really read the GNU coding style (or re-read
it): you _need_ to give the name for the added macros for instance,
that's precisely the purpose of the ChangeLog file.
Samuel
Sorry, here goes the patch again.
Needed for GNU Mach 1.2
2008-07-29 Zhen
Samuel Thibault wrote:
zhengda, le Sun 10 Aug 2008 20:07:57 +0200, a écrit :
Samuel Thibault wrote:
zhengda, le Sun 10 Aug 2008 19:42:18 +0200, a écrit :
But I don't understand why. Obviously, 'name' isn't double-freed.
Mmm, maybe you have a
Samuel Thibault wrote:
On Fri, Aug 8, 2008 at 9:33 PM, Samuel Thibault <[EMAIL PROTECTED]>
wrote:
zhengda, le Fri 08 Aug 2008 06:44:16 +0200, a écrit :
> +dev->flags = (flags &
> +(IFF_BROADCAST | IFF_DEBUG | IFF_LOOPBACK |
> +
Samuel Thibault wrote:
zhengda, le Sun 10 Aug 2008 19:42:18 +0200, a écrit :
But I don't understand why. Obviously, 'name' isn't double-freed.
Mmm, maybe you have a glibc that is partly compiled with debugging on
and partly compiled with debugging off?
How ca
Samuel Thibault wrote:
Gah. Then set from inside gdb:
gdb --args /root/storage/glibc-2.7/build-tree/hurd-i386-libc/sunrpc/rpcgen -Y
../scripts -c rpcsvc/bootparam_prot.x -o
/root/storage/glibc-2.7/build-tree/hurd-i386-libc/sunrpc/xbootparam_prot.T
(gdb) set environment
LD_LIBRARY_PATH=/root
Samuel Thibault wrote:
zhengda, le Sat 09 Aug 2008 13:59:19 +0200, a écrit :
if (name)
free (name);
No need for an if here, free(NULL); is void already.
OK
When I build the glibc, I got the error as follow:
CPP='gcc-4.2 -E -x c-header'
/root/storage/glibc
Samuel Thibault wrote:
Hello,
+ char sock_serv_env_name[30];
To avoid a fixed-sized buffer you could use __asprintf.
+ name = (char *)malloc (len + 100);
Use __asprintf here too.
- servers[domain] = server;
+servers[domain] = server;
Hello,
The patch enables boot to open the virtual network interface,
so boot can work with the multiplexer and the subhurd can connect to the
main hurd.
But the way to open the virtual network interface will be changed if the
translator that helps open the device is created.
Here is the patc
interface
*linux-src/net/ipv4/devinet.c (configure_device, devinet_ioctl):
Set the filter rules when IP address is changed.
*pcap_filter.c: New file.
(trans_filter_program): Translate the string into the bpf instructions.
zhengda wrote:
Hello,
The patch enables the pfinet to work with the
Hello,
The patch enables the pfinet to work with the multiplexer
and use the filter rule that only accepts the packet whose destination
is the pfinet server.
The way of opening the virtual network device might be changed if the
translator that helps open the device is created.
Here is the pa
Hello,
The patch enables boot to open the virtual network interface,
so boot can work with the multiplexer and the subhurd can connect to the
main hurd.
But the way to open the virtual network interface will be changed if the
translator that helps open the device is created.
Here is the patc
Hello,
The patch enables the user to set the network device into the
promiscuous mode.
It's based on the patch http://perso.hurdfr.org/mmenal/promisc.patch.
Here is the patch.
Needed for GNU Mach 1.2
Based on the patch in http://perso.hurdfr.org/mmenal/promisc.patch
2008-07-29 Zheng Da <[EM
zhengda wrote:
Neal H. Walfield wrote:
If more network protocols are implemented, we have to provide more
environment variables for the servers.
Or you use an environment variable that is based on a stem and the
protocol number. So instead of SOCK_INET_SERV_PATH,
SOCK_SERV_%d_PATH
[EMAIL PROTECTED] wrote:
Hi,
On Wed, Jul 02, 2008 at 08:42:43PM +0200, zhengda wrote:
The new version of the patch is below.
Hm, what about dropping/replacing the "_PATH" bit, as discussed in the
other subthread?...
OK.
I wonder if I can use __snprintf(). The c
[EMAIL PROTECTED] wrote:
Note however that making the multiplexer handle rules both from the
clients and from filter translators is not trivial. It requires figuring
out how to merge rules correctly; it requires making sure that the
client can never override rules set by the filter translator.
T
Neal H. Walfield wrote:
If more network protocols are implemented, we have to provide more
environment variables for the servers.
Or you use an environment variable that is based on a stem and the
protocol number. So instead of SOCK_INET_SERV_PATH,
SOCK_SERV_%d_PATH. Perhaps it is best t
[EMAIL PROTECTED] wrote:
Last time on IRC, if I understand it correctly, you said the
optimization is to make all packets go through the kernel, and the
kernel dispatches the packet with the BPF.
Not quite. The idea was that if you have a multiplexer sitting directly
on the kernel interfac
[EMAIL PROTECTED] wrote:
Do you mean the indentation here? It is caused by '-' and '+' in the
beginning of lines.
Ah, I see it now. That shouldn't happen, though. How did you generate
the patch?
for this case, I use
diff -u glibc-2.7-old/hurd/hurdsock.c glibc-2.7/hurd/hurdsock.c
Zhen
[EMAIL PROTECTED] wrote:
The only difference between translators and other programs is that a
translator uses the bootstrap port, while other programs ignore it. As
the translator subprocess is forked from the "outer" helper program
invoked through settrans, the bootstrap port is copied to it. Th
Kalle Olavi Niemitalo wrote:
zhengda <[EMAIL PROTECTED]> writes:
Anyway, I provide two more environment variables SOCK_INET_SERV_PATH
and SOCK_LOCAL_SERV_PATH for the pfinet server and pflocal server,
respectively.
I try to make my code meet the GNU coding standard.
[EMAIL PROTECTED] wrote:
"root could delegate access to the real network interface, and the
user could run a hypervisor"? How do we do it? create another program
that is run by root and that communicates with the hypervisor?
To be honest, I don't know the details. In a capability system,
[EMAIL PROTECTED] wrote:
3. If the translator is set in the passive mode, it is started by the
file system server. It seems that I don't have a chance to override
its proc server.
These should be fixable by reversing the command I think:
settrans -afgpc /root/socket2/2 proc_proxy /root/h
[EMAIL PROTECTED] wrote:
Hi,
On Wed, Jun 25, 2008 at 04:44:51PM +0200, zhengda wrote:
Neal H. Walfield wrote:
Yes of course. If we want to override the TCP/IP stack, that doesn't
mean we want to override the pipe server as well, or the other way
round...
I think using the symbolic
Neal H. Walfield wrote:
This works in the case where you want to override all pf servers.
This case is important. Also important is the ability to override a
single pf server in a similar manner.
A couple comments on the code: please follow the GNU coding standards.
Second, I assume that you le
Hi everyone,
I want to write a proxy of the proc server (proc_proxy), so I can
provide a pseudo master device port to the translator without changing
its code.
My first idea was to create a message server which handles all RPCs in
process.defs. When a request comes, the message server calls
Hi,
I modified the code of glibc, so the user can override the default
pfinet server by using the environment variable.
Here is the patch:
--- glibc-2.7-old/hurd/hurdsock.c2008-06-21 01:38:30.04000 +0200
+++ glibc-2.7/hurd/hurdsock.c2008-06-21 01:45:28.34000 +0200
@@ -76,6 +76,3
uld be sufficient. But of course, you
could employ other filters if necessary. The modular approach suggested
above makes this easy :-)
Maybe BPF can also work for this case.
On Fri, Jun 13, 2008 at 10:59:13PM +0200, zhengda wrote:
1. How many pfinet servers are allowed to connect to one hyp
zhengda wrote:
Hi,
Here are my current problems:
1. How many pfinet servers are allowed to connect to one hypervisor?
If only one pfinet server is allowed to connect to one hypervisor,
hypervisors must communicate with each other to route packets sent
by pfinet servers.
If
Hi,
Here are my current problems:
1. How many pfinet servers are allowed to connect to one hypervisor?
If only one pfinet server is allowed to connect to one hypervisor,
hypervisors must communicate with each other to route packets sent
by pfinet servers.
If several pfinet s
Hi everyone,
I will create the network virtualization in Hurd,
so I need to implement a mechanism which help pfinet servers communicate
with each other.
That is, 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
receive
Hi everyone,
I will create the network virtualization in Hurd,
so I need to implement a mechanism which help pfinet servers communicate
with each other.
That is, 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
receive
[EMAIL PROTECTED] wrote:
Hi,
On Sat, May 31, 2008 at 04:17:37PM +0200, Zheng Da wrote:
step 1. A mechanism for different pfinet servers to communicate with each
other:
There are two possible solutions to reach the goal at least: the BPF
translator and the hypervisor.
For the approach of the
Hi,
I have some troubles with glibc.
First, I'm not sure I get the right source code of glibc for Hurd.
I download glibc from cvs
-d:pserver:[EMAIL PROTECTED]:/cvs/glibc co -r glibc-2_7-branch
glibc,
and patched it with the patches in
http://www.schwinge.homeip.net/~thomas/tmp/glibc-patches/
zhengda wrote:
[EMAIL PROTECTED] wrote:
Hi,
Well, I must remind you that you were supposed to provide a schedule in
your application... I accepted your not doing so, because the task
description was very unspecific, and you were not really in a position
to provide a schedule without discussing
Hi,
I have some troubles with glibc.
First, I'm not sure I get the right source code of glibc for Hurd.
I download glibc from cvs
-d:pserver:[EMAIL PROTECTED]:/cvs/glibc co -r glibc-2_7-branch
glibc,
and patched it with the patches in
http://www.schwinge.homeip.net/~thomas/tmp/glibc-patches/
[EMAIL PROTECTED] wrote:
Hi,
Well, I must remind you that you were supposed to provide a schedule in
your application... I accepted your not doing so, because the task
description was very unspecific, and you were not really in a position
to provide a schedule without discussing things first; but
Hi,
[EMAIL PROTECTED] wrote:
and get_privileged_ports() seems to invoke a system call of mach.
Why do you think so? The way I read the implementation of
__get_privileged_ports() in glibc (hurd/privports.c), it gets the ports
from the proc server in the normal case, not from Mach.
(There
Hello,
When I look into the code of servers in Hurd, I find almost every server
calls get_privileged_ports() to get the master device port and the
privileged host port.
and get_privileged_ports() seems to invoke a system call of mach.
If servers run in subhurd, do they get the same port as the
Hi,
[EMAIL PROTECTED] wrote:
No, not really. Unlike the full network hypervisor, which I mentioned as
an alternative design, the BPF translator is only responsible for
setting the filter rules; the actual packets are still sent/received
through the kernel device directly...
But being in charge
[EMAIL PROTECTED] wrote:
And why do you not think it's an elegant solution?
Well, I generally dislike the idea of the packet filter in the kernel...
On one Hand, it is convenient that you can run multiple systems in
parallel (e.g. subhurds), and they don't need to know about each other
at
[EMAIL PROTECTED] wrote:
On Wed, Apr 09, 2008 at 11:45:15PM +0200, zhengda wrote:
In hurd, pfinet registers a filter when it open the ethernet device
(this ethernet device can be thought as a stub, right?), so it can
receive the packet it wants from the network.
Sorry, no idea what
[EMAIL PROTECTED] wrote:
Hi,
On Fri, Apr 04, 2008 at 06:00:38PM +0200, Zheng Da wrote:
So could you give me some more advices to help me get into the project
faster? For example, which article or which part of code should I read
first?
I think studying the interaction between the TCP
[EMAIL PROTECTED] wrote:
Hi,
On Fri, Apr 04, 2008 at 06:00:38PM +0200, Zheng Da wrote:
So could you give me some more advices to help me get into the project
faster? For example, which article or which part of code should I read
first?
I think studying the interaction between the TCP
Hello,
I want to do the project of virtualization using Hurd mechanisms.
There are two choices for me: to improve subhurds and to create a new
subenvironments.
Here are the descriptions about them:
In my understanding, Hurd is a set of servers which provide the services
provided by the monolit
77 matches
Mail list logo