From c737895ad313f5b8b2d1ca8f6f012dd70d61a53b Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Thu, 25 Sep 2008 17:13:49 +0200 Subject: Add copyright and licensing header. --- hurd/network.mdwn | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'hurd') diff --git a/hurd/network.mdwn b/hurd/network.mdwn index 5786b01c..4abb75d4 100644 --- a/hurd/network.mdwn +++ b/hurd/network.mdwn @@ -1,3 +1,14 @@ +[[meta copyright="Copyright © 2002, 2004, 2005, 2007, 2008 Free Software +Foundation, Inc."]] + +[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled +[[GNU_Free_Documentation_License|/fdl]]."]]"""]] + How to setup networking in the Hurd. First, make sure that Mach recognizes your hardware. - -# The `pfinet` Translator - -To configure the network, the `pfinet` (*Protocol Family Internet*) translator -must be configured. This is done using the `settrans` command to attach a -translator to a given file system node. When programs access the node by, for -example, sending an RPC, the Hurd will transparently start the server to handle -the request. - - # settrans -fgap /servers/socket/2 /hurd/pfinet -i eth0 \ - -a 192.168.0.50 -g 192.168.0.1 -m 255.255.255.0 - -Here, `settrans` is passed several options: - -* `fg`, force any existing translator to go away. -* `ap`, make both active and passive translators. - -The active translator means that the operating system both starts the -translator immediately and passinve means that the settings are saved in the -file system node. The former also means that any error messages are sent to -`stderr`. - -The argument `/server/socket/2` is the node that the translator is to be -attached to. This is followed by the translator program to run and any -arguments to give it. - -`-a`, `-g` and `-m` are, quite obviously, the IP address, the gateway and -netmask. - -Help on settrans can be obtained by passing it the `--help` option. Help on a -specific translator can be gotten by invoking it from the command line with the -same argument, e.g.: - - # /hurd/pfinet --help - -As there can be a lot of output, consider piping this through a pager. - -Finally copy over your `/etc/resolv.conf` from GNU/Linux to allow your DNS to -resolve correctly. diff --git a/hurd/settrans.mdwn b/hurd/settrans.mdwn new file mode 100644 index 00000000..e4383961 --- /dev/null +++ b/hurd/settrans.mdwn @@ -0,0 +1,37 @@ +[[meta copyright="Copyright © 2002, 2004, 2005, 2007, 2008 Free Software +Foundation, Inc."]] + +[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled +[[GNU_Free_Documentation_License|/fdl]]."]]"""]] + +The `settrans` command is used to attach a [[translator]] (server) to a given +[[file_system_node|virtual_file_system]]. + +`settrans` is commonly used like this: + + $ settrans -fgap *NODE* *TRANSLATOR SETTING* + + * `fg`, **f**orce any existing translator to **g**o away from that node. + * `ap`, start an ***a**ctive translator*, and also establish a ***p**assive + translator* setting. + +*Active translator* means that the operating system starts the translator +immediately and *passive translator* in turn means that the settings are +instead saved in the file system node, and then, when programs access the node +by, for example, sending an [[RPC]], the Hurd will transparently start the +server to handle the request. + + +Help on settrans can be obtained by passing it the `--help` option. + +Likewise, help on a specific translator can be gotten by invoking it from the +command line with the same argument, e.g.: + + $ /hurd/pfinet --help + +As there can be a lot of output, consider piping this through a pager. diff --git a/hurd/translator.mdwn b/hurd/translator.mdwn index 3f763013..4f65bb41 100644 --- a/hurd/translator.mdwn +++ b/hurd/translator.mdwn @@ -17,6 +17,9 @@ and [[pfinet]]) and thus translates object invocations into calls appropriate for the backing store (e.g., ext2 file system, nfs server, etc.). +A translator is usually registered with a specific file system node by using +the [[`settrans`|settrans]] command. + Translators do not require any special privilege to run. The privilege they require is simply that to access the indiviudal resources they use. diff --git a/hurd/translator/pfinet.mdwn b/hurd/translator/pfinet.mdwn index acd7b855..41bc87c2 100644 --- a/hurd/translator/pfinet.mdwn +++ b/hurd/translator/pfinet.mdwn @@ -1,4 +1,5 @@ -[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]] +[[meta copyright="Copyright © 2002, 2004, 2005, 2007, 2008 Free Software +Foundation, Inc."]] [[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable id="license" text="Permission is granted to copy, distribute and/or modify this @@ -8,4 +9,26 @@ Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled [[GNU_Free_Documentation_License|/fdl]]."]]"""]] +To configure Internet connectivity, the `pfinet` (*Protocol Family Internet*) +[[translator]] must be configured. This is done using the +[[`settrans`|settrans]] command, for example like this: + + # settrans -fgap /servers/socket/2 /hurd/pfinet ↩ + -i eth0 -a 192.168.0.50 -g 192.168.0.1 -m 255.255.255.0 + +The argument `/server/socket/2` is the node that the translator is to be +attached to. This is followed by the translator program to run and any +arguments to give it. + +There, `-i`, `-a`, `-g` and `-m` are, quite obviously, the (Mach) device to +use, the IP address, the gateway and netmask. + +--- + +To make DNS lookups work, you'll also have to properly configure the +`/etc/resolv.conf` file, for example by copying it over from your GNU/Linux +installation. + +--- + Notes about [[IPv6]]. -- cgit v1.2.3 From 523e74d5f4d388cc7aadbf4b5470844f2108a0cb Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Sun, 28 Sep 2008 15:06:27 +0200 Subject: From a Thomas Bushnell email, debian-hurd, 2000-03-05. --- hurd.mdwn | 1 + hurd/networking.mdwn | 31 ++++++++++++++++++++++++++++++ hurd/translator.mdwn | 1 + hurd/translator/pfinet.mdwn | 3 ++- hurd/translator/pfinet/implementation.mdwn | 13 +++++++++++++ hurd/translator/pflocal.mdwn | 13 +++++++++++++ 6 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 hurd/networking.mdwn create mode 100644 hurd/translator/pfinet/implementation.mdwn create mode 100644 hurd/translator/pflocal.mdwn (limited to 'hurd') diff --git a/hurd.mdwn b/hurd.mdwn index 0bdcdca8..8392abef 100644 --- a/hurd.mdwn +++ b/hurd.mdwn @@ -69,3 +69,4 @@ * [[IO_Path]] * [[Debugging]] * [Hurd Sourcecode Reference](http://www.htu.tugraz.at/~past/hurd/global/): Searchable and browsable index of the code. +* [[Networking]] diff --git a/hurd/networking.mdwn b/hurd/networking.mdwn new file mode 100644 index 00000000..6e0ac56e --- /dev/null +++ b/hurd/networking.mdwn @@ -0,0 +1,31 @@ +[[meta copyright="Copyright © 2000, 2008 Free Software Foundation, Inc."]] + +[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled +[[GNU_Free_Documentation_License|/fdl]]."]]"""]] + +For each supported `PF_*` protocol family, there is a file `/servers/socket/N` +where `N` is the numberic value fo the `PF_*` symbol. Right now +[[`PF_LOCAL`|translator/pflocal]] (a.k.a. `PF_UNIX`) and +[[`PF_INET`|translator/pfinet]] are supported. + +User programs open those files, and use the `socket_create` [[RPC]] to make a +new socket. With that socket, they can use the other `socket_*` RPCs and also +the `io_*` RPCs. The `socket_*` RPCs are essentially clones of the Unix +syscalls in question. + +The only exception is `sockaddrs`, which are implemented as [[ports|libports]] +instead of the opaque data arrays they are in the syscalls. You manipulate +`sockaddr` ports with the `socket_create_address`, `socket_fabricate_address`, +and `socket_whatis_address` calls. The `sockaddr` port is then used in socket +calls like `socket_connect` and `socket_accept`. + +`PF_INET` `sockaddr` ports are manipulated with `socket_create_address` from +the usual `struct sockaddr_in`. `PF_LOCAL` `sockaddr` ports are stored by +`S_IFSOCK` filesystem nodes; you find the address associated with a node with +`ifsock_getsockaddr`. The [[file_system_server|translator]] will get a +`sockaddr` to return with `socket_fabricate_address`. diff --git a/hurd/translator.mdwn b/hurd/translator.mdwn index 4f65bb41..9cdd8a31 100644 --- a/hurd/translator.mdwn +++ b/hurd/translator.mdwn @@ -44,6 +44,7 @@ See some [[examples]] about how to use translators. # Existing Translators * [[pfinet]] +* [[pflocal]] * [[hostmux]] * [[storeio]] * [[ext2fs]] diff --git a/hurd/translator/pfinet.mdwn b/hurd/translator/pfinet.mdwn index 41bc87c2..a8da45d7 100644 --- a/hurd/translator/pfinet.mdwn +++ b/hurd/translator/pfinet.mdwn @@ -31,4 +31,5 @@ installation. --- -Notes about [[IPv6]]. + * [[Implementation]]. + * [[IPv6]]. diff --git a/hurd/translator/pfinet/implementation.mdwn b/hurd/translator/pfinet/implementation.mdwn new file mode 100644 index 00000000..08a29280 --- /dev/null +++ b/hurd/translator/pfinet/implementation.mdwn @@ -0,0 +1,13 @@ +[[meta copyright="Copyright © 2000, 2008 Free Software Foundation, Inc."]] + +[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled +[[GNU_Free_Documentation_License|/fdl]]."]]"""]] + +The `pfinet` server is a hacked Linux internet implementation with a glue layer +translating between the Hurd [[RPC]]s and the middle layer of the Linux +implementation. diff --git a/hurd/translator/pflocal.mdwn b/hurd/translator/pflocal.mdwn new file mode 100644 index 00000000..c1d4ac2b --- /dev/null +++ b/hurd/translator/pflocal.mdwn @@ -0,0 +1,13 @@ +[[meta copyright="Copyright © 2000, 2008 Free Software Foundation, Inc."]] + +[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled +[[GNU_Free_Documentation_License|/fdl]]."]]"""]] + +The implementation of the `pflocal` server is in the `pflocal` directory, and +uses [[`libpipe`|libpipe]] (shared code with the [[named_pipe|fifo]] +implementation). -- cgit v1.2.3 From a85991c19caa842a433d996627cdf95aae9f1168 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Sun, 28 Sep 2008 15:10:14 +0200 Subject: PF_INET6. --- hurd/networking.mdwn | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'hurd') diff --git a/hurd/networking.mdwn b/hurd/networking.mdwn index 6e0ac56e..bc33769a 100644 --- a/hurd/networking.mdwn +++ b/hurd/networking.mdwn @@ -11,7 +11,8 @@ is included in the section entitled For each supported `PF_*` protocol family, there is a file `/servers/socket/N` where `N` is the numberic value fo the `PF_*` symbol. Right now [[`PF_LOCAL`|translator/pflocal]] (a.k.a. `PF_UNIX`) and -[[`PF_INET`|translator/pfinet]] are supported. +[[`PF_INET`|translator/pfinet]] (together with +[[`PF_INET6`|translator/pfinet/ipv6]]) are supported. User programs open those files, and use the `socket_create` [[RPC]] to make a new socket. With that socket, they can use the other `socket_*` RPCs and also -- cgit v1.2.3