OSDN Git Service

Update to v30-pre9
authorChih-Wei Huang <cwhuang@linux.org.tw>
Tue, 11 Jun 2019 10:01:36 +0000 (18:01 +0800)
committerChih-Wei Huang <cwhuang@linux.org.tw>
Tue, 11 Jun 2019 10:01:36 +0000 (18:01 +0800)
46 files changed:
wireless_tools/19-udev-ifrename.rules
wireless_tools/CHANGELOG.h
wireless_tools/DISTRIBUTIONS.txt
wireless_tools/ESSID-BUG.txt [new file with mode: 0644]
wireless_tools/HOTPLUG-UDEV.txt [moved from wireless_tools/HOTPLUG.txt with 66% similarity]
wireless_tools/Makefile
wireless_tools/README
wireless_tools/README.fr
wireless_tools/cs/iwconfig.8
wireless_tools/fr.ISO8859-1/ifrename.8 [moved from wireless_tools/fr/ifrename.8 with 51% similarity]
wireless_tools/fr.ISO8859-1/iftab.5 [new file with mode: 0644]
wireless_tools/fr.ISO8859-1/iwconfig.8 [moved from wireless_tools/fr/iwconfig.8 with 63% similarity]
wireless_tools/fr.ISO8859-1/iwevent.8 [moved from wireless_tools/fr/iwevent.8 with 84% similarity]
wireless_tools/fr.ISO8859-1/iwgetid.8 [moved from wireless_tools/fr/iwgetid.8 with 91% similarity]
wireless_tools/fr.ISO8859-1/iwlist.8 [moved from wireless_tools/fr/iwlist.8 with 59% similarity]
wireless_tools/fr.ISO8859-1/iwpriv.8 [moved from wireless_tools/fr/iwpriv.8 with 76% similarity]
wireless_tools/fr.ISO8859-1/iwspy.8 [moved from wireless_tools/fr/iwspy.8 with 70% similarity]
wireless_tools/fr.ISO8859-1/wireless.7 [moved from wireless_tools/fr/wireless.7 with 87% similarity]
wireless_tools/fr.UTF-8/ifrename.8 [new file with mode: 0644]
wireless_tools/fr.UTF-8/iftab.5 [new file with mode: 0644]
wireless_tools/fr.UTF-8/iwconfig.8 [new file with mode: 0644]
wireless_tools/fr.UTF-8/iwevent.8 [new file with mode: 0644]
wireless_tools/fr.UTF-8/iwgetid.8 [new file with mode: 0644]
wireless_tools/fr.UTF-8/iwlist.8 [new file with mode: 0644]
wireless_tools/fr.UTF-8/iwpriv.8 [new file with mode: 0644]
wireless_tools/fr.UTF-8/iwspy.8 [new file with mode: 0644]
wireless_tools/fr.UTF-8/wireless.7 [new file with mode: 0644]
wireless_tools/fr/iftab.5 [deleted file]
wireless_tools/ifrename.8
wireless_tools/ifrename.c
wireless_tools/iw261_restore_full_essid.diff [new file with mode: 0644]
wireless_tools/iw262_restore_full_essid.diff [new file with mode: 0644]
wireless_tools/iwconfig.8
wireless_tools/iwconfig.c
wireless_tools/iwevent.c
wireless_tools/iwgetid.c
wireless_tools/iwlib-private.h [new file with mode: 0644]
wireless_tools/iwlib.c
wireless_tools/iwlib.h
wireless_tools/iwlist.8
wireless_tools/iwlist.c
wireless_tools/iwpriv.c
wireless_tools/iwspy.c
wireless_tools/udev.import_devpath.diff [deleted file]
wireless_tools/wireless.21.h
wireless_tools/wireless.22.h

index c8b319e..3aec9a6 100644 (file)
@@ -5,9 +5,9 @@
 # when udev runs (i.e. on boot partition).
 
 # Enable this rule to test with udevtest.
-#ENV{UDEV_LOG}=="6", SUBSYSTEM=="net", ACTION=="add", IMPORT="/sbin/ifrename -D -V -u -i %k", NAME:="%k"
+#ENV{UDEV_LOG}=="6", SUBSYSTEM=="net", ACTION=="add", IMPORT="/sbin/ifrename -D -V -u -i %k", NAME:="$env{INTERFACE}"
 
 # Main ifrename rule.
 # If interface is found in /etc/iftab, subsequent rename rules are bypassed.
 # If interface is not found in /etc/iftab, subsequent rename rules applies.
-SUBSYSTEM=="net", ACTION=="add", IMPORT="/sbin/ifrename -u -i %k", NAME:="%k"
+SUBSYSTEM=="net", ACTION=="add", IMPORT="/sbin/ifrename -u -i %k", NAME:="$env{INTERFACE}"
index 2084760..24b1ebe 100644 (file)
  *     ---
  *             (Bug reported by Florent Daignière)
  *     o Don't look for "fixed" out of array in set_txpower_info() [iwconfig]
+ *
+ * wireless 30 :
+ * -----------
+ *             (Suggested by Johannes Berg <johannes@sipsolutions.net>)
+ *     o Display non-ASCII char in ESSID using escape sequence [iwlib]
+ *     o Allow input of non-ASCII char in ESSID using escape sequence [iwlib]
+ *     ---
+ *     o Fix probing to not probe wildcards (left over '%d'->'*') [ifrename]
+ *     o Output number of mapping matched (display + exit status) [ifrename]
+ *             (Bug reported by Ben Hutchings)
+ *     o Don't load mapping file if using options '-n' + '-i' [ifrename]
+ *     ---
+ *     o When using takeover, redo probing in case eth0 was in use [ifrename]
+ *     o Update Hotplug documentation, add uDev bits [HOTPLUG-UDEV.txt]
+ *     o Add ESSID bug patches and documentation [ESSID-BUG.txt]
+ *     o Make wireless.21.h LGPL as promised a long time ago [wireless.21.h]
+ *     ---
+ *             (Bug reported by Shaddy Baddah)
+ *     o Fix unaligned access on SPARC in the 64->32 bit workaround [iwlib.c]
+ *     ---
+ *             (From Maxime Charpenne <maxime.charpenne@free.fr>)
+ *     o Mise à jour de la traduction en francais des pages manuel [fr/*]
+ *     ---
+ *     o Use wireless.22.h, make it LGPL [iwlib.h/wireless.22.h]
+ *     o Show Scanning Capabilities in "iwlist event" [iwlist]
+ *             (Bug reported by Nikita Zhernosenko)
+ *     o Fix parsing of retry/power when modifier is used [iwconfig]
+ *             (Bug reported by Alexis Phoenix)
+ *     o Remove trailing '/' in INSTALL_* that fooled checkinstall [Makefile]
+ *             (From Dan Williams <dcbw@redhat.com>)
+ *     o Scan capabilities in struct iw_range [wireless.h]
+ *             (From Guus Sliepen <guus@debian.org>)
+ *     o Install localised man page [Makefile]
+ *     ---
+ *     o Fix #define that broke 32->64 bit workaround [wireless.22.h]
+ *     o Workaround kernel bug when getting ESSID [iwlib/iwconfig/iwgetid]
+ *             (From Gerald Pfeifer  <gerald@pfeifer.com>)
+ *     o Fix gramar in man page, add about hidden networks [iwlist.8]
+ *     ---
+ *             (From Reinette Chatre <reinette.chatre@intel.com>)
+ *     o Enable scan buffer to grow up to 65535 instead of 32768 [iwlist]
+ *     o Return a proper error if scan result exceed buffer max [iwlist]
+ *             (From Jean Tourrilhes)
+ *     o Do above two fixes for the simple scan API [iwlib]
+ *             (From Claudio Ferronato <claiudio@libero.it>)
+ *     o Spelling and typos in [iwconfig.8]
+ *     ---
+ *     o Create iwlib-private.h to minimise namespace pollution [iwlib]
+ *     o More fix to the 64->32bit band-aid for encode [iwlib]
+ *     o Update udev rule to remove a warning [19-udev-ifrename.rules]
+ *             (from Ritesh Raj Sarraf <rrs@researchut.com> and Guus Sliepen)
+ *     o Propagate error codes out of main for get [iwconfig/iwlist/iwspy]
+ *             (From Guus Sliepen <guus@debian.org>)
+ *     o Remove spurious commands from Czech iwconfig manpage.
  */
 
 /* ----------------------------- TODO ----------------------------- */
  * --------
  *     Make disable a per encryption key modifier if some hardware
  *     requires it.
- *     IW_QUAL_RCPI
  *
  * iwspy :
  * -----
  * ifrename :
  * --------
  *     Link Type should use readable form instead of numeric value
+ *     When using -p with -n, only the new name should be probed.
  *
  * Doc & man pages :
  * ---------------
index 7ff2e66..9725e02 100644 (file)
@@ -177,8 +177,8 @@ Debian Sarge, in the 'ifscheme' package.
        The MAC address based mapping mentioned above is deprecated,
 you should use 'ifrename' to assign a consistent interface name to
 each of your network interface. This is documented in
-HOTPLUG.txt. This enable the combination of MAC address identification
-of interfaces with scheme multi-configuration.
+HOTPLUG-UDEV.txt. This enable the combination of MAC address
+identification of interfaces with scheme multi-configuration.
 
                                -----
 
diff --git a/wireless_tools/ESSID-BUG.txt b/wireless_tools/ESSID-BUG.txt
new file mode 100644 (file)
index 0000000..22c62c1
--- /dev/null
@@ -0,0 +1,38 @@
+               The ESSID bug
+               -------------
+
+       The latest Linux kernels have a bug in the handling of the
+ESSID. The Linux kernel maintainers seems reluctant to fix this
+bug. But, I've managed to find a way to workaround it in Wireless
+Tools 30.pre7.
+
+Symptoms :
+--------
+       1) There is a trailing '\x00' in the ESSID.
+       2) If a ESSID with 32 character is set, it can not be read again.
+                http://madwifi.org/ticket/930
+       3) You can not set an ESSID with a trailing '\x00'
+
+Resolution :
+----------
+       The patch provided in the Wireless Tools package should fix
+this problem. This patch remove a backward compatibility hack, and it
+is safe as it simplify the code.
+       The patch need to be applied to the kernel, the kernel
+recompiled and reinstalled.
+       If you have kernel 2.6.19 to 2.6.21 :
+               use iw261_restore_full_essid.diff
+       If you have kernel 2.6.22 or later :
+               use iw262_restore_full_essid.diff
+       I won't give detailed instructions because only people
+confortable with kernel rebuild should attempt this.
+
+Workaround :
+----------
+       Using Wireless Tools 30.pre7 or later will cure syptoms (1) and (2).
+       Using Wireless Tools 29 or earlier will hide the trailing '\x00'
+character (first symptom), but not the second and third symptoms.
+
+       Good luck...
+
+       Jean
similarity index 66%
rename from wireless_tools/HOTPLUG.txt
rename to wireless_tools/HOTPLUG-UDEV.txt
index d22a1f0..b074f07 100644 (file)
@@ -1,5 +1,5 @@
-               Sane network interface management with Hotplug
-               ----------------------------------------------
+               Sane network interface management with Hotplug or uDev
+               ------------------------------------------------------
 
 INTRODUCTION
 ------------
@@ -11,13 +11,15 @@ Pcmcia subsystem for PCI and USB, it was decided to create the much
 simpler Hotplug system.
        The USB subsystem already uses Hotplug. The Pcmcia subsystem
 is migrating to it : CardBus cards (32 bits) already use Hotplug,
-whereas Pcmcia cards (16 bits) still use the old Pcmcia scripts.
-       The Hotplug system is still in its infancy, but already shows
-some good promise. Most users are disappointed at first by its
-apparent lack of features compared to the Pcmcia scripts. In this
-document, we will show how to fully exploit the Hotplug system and try
-to implement the equivalent of all the functionality of the Pcmcia
-scripts.
+whereas Pcmcia cards (16 bits) often still use the old Pcmcia scripts.
+       The Hotplug system is now very mature. Most users comming from
+the old Pcmcia scripts are disappointed at first by its apparent lack
+of features, however it is very flexible and powerful. The new uDev
+system depend on Hotplug and integrates tightly with it.
+       In this document, we will show how to fully exploit the
+Hotplug system and try to implement the equivalent of all the
+functionality of the Pcmcia scripts.
+
 
 ASSUMPTIONS
 -----------
@@ -30,6 +32,7 @@ configuration described in DISTRIBUTIONS.txt.
 but we will to talk about network interface management in general, so
 this should apply also to built-in Ethernet cards.
 
+
 PROBLEM STATEMENT
 -----------------
        Let's assume a Linux system and two or more network devices,
@@ -53,6 +56,7 @@ interface names (starting at "eth0" and going up). I call that the
 to a single fixed configuration in the configuration
 database. Clearly, this won't satisfy our requirements.
 
+
 EXAMPLE SYSTEM
 --------------
        The distribution I use is Debian 3.0, and some parts of what I
@@ -76,6 +80,7 @@ to this document.
 has enough interfaces to make it interesting. All the examples I
 present in this document are extracted from this system.
 
+
 BASIC CONCEPTS
 --------------
        Most of the concept and tricks presented here are not really
@@ -86,25 +91,28 @@ new. The main contribution is to integrate them.
 always present in this system and available at boot time (Pcmcia cards
 were not made to be soldered in the Pcmcia slot). Therefore Hotplug is
 the way to go.
-       2) Built-in PCI and ISA cards are managed by the init scripts,
+       2) The Hotplug system can use either the original Hotplug
+scripts or the uDev daemon with the uDev scripts.
+       3) Built-in PCI and ISA cards are managed by the init scripts,
 as they have always been. The ISA subsystem will never have Hotplug
 support, and hotplug is not necessary for PCI cards.
-       3) Built-in devices that are disable most of the time should
+       4) Built-in devices that are disable most of the time should
 be enabled manually by the user. Therefore both Hotplug and the init
 scripts should ignore those devices by default.
-       4) (1), (2) and (3) must be compatible on the same system and
+       5) (1), (3) and (4) must be compatible on the same system and
 play nice with each other.
 
-       5) A well defined and consistent network interface name is
+       6) A well defined and consistent network interface name is
 assigned to each network hardware interface using 'ifrename'. Device A
 is always named 'ethA' (or whatever name you like such as
 'mynetworkcard').
-       6) No interface is called 'eth0' (or 'wlan0'). Any unknown
+       7) No interface is called 'eth0' (or 'wlan0'). Any unknown
 device would be 'eth0', so known devices should be called something
-else.
-       7) Multiple configurations for a single interface (schemes)
+else. There are also other issues with using 'eth0'.
+       8) Multiple configurations for a single interface (schemes)
 are managed by the ifup/ifdown subsystem.
 
+
 CONFIGURATION FROM INIT SCRIPTS
 -------------------------------
        It may seem paradoxical, but before setting up Hotplug, we
@@ -145,8 +153,9 @@ can skip directly to the next section.
        There are 3 alternatives to manage device drivers as
 modules.
                1) Some distributions have an explicit list of modules
-that are loaded at boot time. If you want to use that feature you need
-to check the documentation of your distribution.
+that are loaded at boot time, usuall in /etc/modules. If you want to
+use that feature you need to check the documentation of your
+distribution.
                2) Some system, such as Hotplug, Discover or Kudzu,
 can scan the various buses of the PC and load the appropriate
 drivers. This is mostly configuration-free, but may not support all
@@ -188,27 +197,50 @@ obviously you don't want to touch that.
 have (we'll fix that in a minute). Note that for modern PCI cards this
 is much more straightforward than for old ISA cards.
 
+       When loading modules on-demand, you usually can not use the
+name 'eth0' or other 'ethX' with a low number for your interfaces, as
+on-demand module may fail to load them. If there is a unknown
+interface or an interface not yet renamed on the system, it will be
+eth0, and the system will assume the module for eth0 is already loaded
+and will fail to load the proper module.
+       To test on-demand loading of module, you can do :
+--------------------------
+> /sbin/modprobe -r eth2
+> /sbin/modprobe eth2
+--------------------------
+
        3) Installing 'ifrename'
        ------------------------
        You will need to install ifrename on your system. 'ifrename'
 is part of the Wireless Tools package (version 27 and later) and is a
 complete rewrite of the now obsolete 'nameif'.
-       Some distributions, such as Debian Sarge, offer a separate
+       Some distributions, such as Debian 3.1/4.0, offer a separate
 package for 'ifrename', and in this case you should just install this
 package. Other distributions may include ifrename as part of their
 'wireless-tools' package (this should be the case for Gentoo, Fedora
-and Mandrake). Other distributions, such as Debian 3.0, don't include
-ifrename at all, so you should compile yourself a recent version of
-Wireless Tools (v27 or later) and install it.
+and Mandrake). Other distributions, such as Debian 3.0 and Unbuntu
+7.10, don't include ifrename at all, so you should compile yourself a
+recent version of Wireless Tools (v29 or later) and install it.
+       The installation of Wireless Tools is described in the INSTALL
+file of the Wireless Tools package. If you plan to only use ifrename,
+a good option is to compile a static version of Wireless Tools and
+only copy the resulting ifrename executable.
 
        In any case, you should verify that 'ifrename' is properly
 installed and check the path needed to call it :
 --------------------------
 > which ifrename
 /sbin/ifrename
+> whereis ifrename
+ifrename: /sbin/ifrename /usr/man/man8/ifrename.8 /usr/share/man/man8/ifrename.8.gz
 --------------------------
-       Most distributions will install 'ifrename' in '/sbin', while if
-you compile your own wireless tools, it will be in '/usr/local/sbin'.
+       Most distributions will install 'ifrename' in '/sbin', while
+if you compile your own wireless tools, by default it will be in
+'/usr/local/sbin' (see Makefile on how to change that).
+       If you are upgrading ifrename from a previous version, you
+should make sure that the new version of ifrename is either installed
+in the same location (overwrite old version) or in a place earlier in
+the PATH (check with whereis).
 
        4) Making the boot scripts call 'ifrename'
        ------------------------------------------
@@ -219,9 +251,12 @@ to look into your own init files, or ask people familiar with your
 distribution. It will need to run just before the call to 'ifup' or
 'ifconfig' command.
 
-       In Debian 3.0 and Debian Sarge, it needs to be run from
-/etc/init.d/networking, which is not the default. The necessary patch
-is below :
+       In Debian 4.0 (Etch) and later, the 'ifrename' package adds it
+own init script at the right place, called /etc/init.d/ifrename. You
+don't have to do anything.
+       In Debian 3.0 (Woody) and Debian 3.1 (Sarge), ifrename needs
+to be run from /etc/init.d/networking, which is not the default. The
+necessary patch to the init script is below :
 
 ----------------------------------------------------------------
 --- networking-orig     Wed Feb 18 13:56:23 2004
@@ -229,7 +264,7 @@ is below :
 @@ -120,6 +120,15 @@ case "$1" in
          doopt syncookies no
          doopt ip_forward no
+
 +       # Optionally remap interface names based on MAC address.
 +       # '/sbin/ifrename' is part of wireless-tools package.
 +       # /etc/iftab is currently not created by default. Jean II
@@ -267,7 +302,7 @@ bit looking around :
 -----------------------------
 # modprobe pcnet32
 # ifconfig eth0
-eth0      Link encap:Ethernet  HWaddr 00:10:83:34:BA:E5  
+eth0      Link encap:Ethernet  HWaddr 00:10:83:34:BA:E5
 [...]
 -----------------------------
 
@@ -292,6 +327,10 @@ you have to manage large number of computers (like a rack of servers
 or clusters), then you may want to look at other selectors offered by
 'ifrename'.
 
+       In this example, we used the MAC address of the card. Using
+the MAC address is not always an option, there is a section at the end
+of this document dedicated to those cases.
+
        To test that ifrename works, do the following :
                o Load all your drivers, see section (2)
                o Check /proc/net/dev to see which interface exist
@@ -328,14 +367,264 @@ iface eth2 inet static
        This was the last part. Now, at your next boot, all your
 interfaces should be assigned the proper name and the proper
 configuration.
+       If this is not the case, there is a troubleshooting section at
+the end of this document.
 
-CONFIGURATION VIA HOTPLUG
--------------------------
+
+CONFIGURATION VIA UDEV
+----------------------
        Dealing with removable interfaces is similar to dealing with
-built-in interfaces, the main difference is that we will use the
-Hotplug scripts instead of the init scripts. Another difference is
-that it will likely require more work on your part because most
-distributions are not fully ready for it.
+built-in interfaces, the main difference is that we will use Hotplug
+event with the uDev system instead of the init scripts. This requires
+a fairly recent distributions, older distributions don't have uDev or
+uDev system not capable enough.
+       Note that you can also use removable interfaces with the
+original Hotplug scripts. This is detailed in the next section. The
+installation of uDev changes a lot of things on a system, so may not
+be for everybody, however recent version of Gnome and KDE seem to
+require it.
+
+       1) Applicability
+       ----------------
+       The Hotplug configuration method is the best choice for any
+removable network interface, such as :
+               o Pcmcia (16 bits) network cards
+               o CardBus (32 bits) network cards
+               o USB network dongles
+               o Hot-PCI network cards
+       It may also be used to manage other types of network
+interfaces, although it may not be the best choice for them.
+
+       2) How Hotplug works with the uDev scripts
+       ------------------------------------------
+       When using uDev, the concept is similar to the original
+Hotplug scripts, however the implementation is slightly less
+transparent. Also, the name of the rules and the location of scripts
+vary from distribution from distribution.
+
+       When something interesting happens, the Linux kernel generates
+an Hotplug event. The uDev deamon (udevd) receive the event, does some
+processing on its own, use the rules in /etc/udev/rules.d/, and
+finally run the proper script in /lib/udev/.
+       There are 3 types of Hotplug events we care about :
+               o PCI event : a CardBus device is added or removed
+from the system. The hotplug rule loads the driver, in my case
+/etc/udev/rules.d/z55_hotplug.rules.
+               o USB event : a USB device is added or removed from
+the system. The hotplug rule loads the driver, in my case
+/etc/udev/rules.d/z55_hotplug.rules.
+               o Network event : a network interface is added or
+removed from the system. The script /lib/udev/net.agent is run.
+
+       If we insert a CardBus network card in the system, the
+following happens :
+               1) Kernel detects new CardBus device
+               2) Kernel generates PCI Hotplug event
+               3) udevd receive the event, runs the Hotplug rule.
+               4) The Hotplug rule find the proper driver module and loads it.
+               5) Driver module initialises, creates new network device
+               6) Kernel detects new network device
+               7) Kernel generates Network Hotplug event
+               8) /lib/udev/net.agent runs, configures network device
+       The sequence of events is similar for USB devices and for removals.
+
+       3) Installing uDev for Debian Lenny
+       -----------------------------------
+       Thanks to the great work of many people, Debian Lenny has all
+the necessary packages and complete udev support, and will work mostly
+'out of the box'.
+       You will need to install the following packages :
+               o udev
+               o ifrename
+
+       The configuration of Hotplug and uDev is simple. You only have
+to modify the file /etc/network/interfaces to enable your interfaces
+to be managed with Hotplug and uDev.
+       By default, ifup ignore all hotplug network events, as it
+assume network interfaces are configured using the static init
+scripts. To enable ifup to configure specific network interfaces on
+hotplug events, you need to list those interface in a "allow-hotplug"
+statement.
+       For example, your /etc/network/interfaces would include :
+--------- /etc/network/interfaces -----------
+# Enable Hotplug support (Etch and later)
+#
+allow-hotplug prism0 acx0
+---------------------------------------------
+
+       4) Installing uDev for Debian Etch (4.0)
+       ----------------------------------------
+       The uDev system provided with Debian Etch (4.0) is fully
+functional, except for one missing feature. This version of uDev can
+not integrate with ifrename. The version of ifrename provided also
+lacks uDev support.
+       If you want to use uDev with Debian Etch (4.0), there are two
+possibilities. The first solution is use the uDev system to rename
+interfaces, loosing some of the power of ifrename. The second solution
+is to upgrade both udevd and ifrename.
+
+       This is the procedure I personally use to upgrade udevd on
+Debian Etch (4.0) :
+       o Get the canonical version of udev 107 from :
+               http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html
+       o Compile it with "make".
+       o Do not "make install" !
+       o Run "strip udevd"
+       o Save a copy of the original udevd "cp /sbin/udevd /sbin/udevd.orig"
+       o Copy the new udevd with "cp udevd /sbin/udevd".
+       Note that udevd is an essential component of the OS. This
+procedure should be safe, but I do not guarantee it will always be
+safe.
+
+       Upgrading ifrename is simple, this is like installing ifrename
+and is described above in this document.
+
+       Once those two packages are upgraded, you can go follow the
+procedure going back to step (3).
+
+       5) Installing uDev for Debian Sarge (3.1)
+       -----------------------------------------
+       The uDev system provided with Debian Sarge (3.1) is a very old
+version of uDev that is not integrated with the Hotplug scripts. In
+other words, if you install uDev with Sarge, you will still need to
+use the original Hotplug scripts and configure your system with them.
+
+       6) Installing uDev on other distributions
+       --------------------------------------------
+       The canonical version of hotplug is available at :
+               http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html
+       The mailing list for udev is the Hotplug mailins list :
+               http://linux-hotplug.sourceforge.net/
+               http://marc.theaimsgroup.com/?l=linux-hotplug-devel&r=1&w=2
+
+       Most distributions have highly customized uDev packages and
+most likely the canonical version won't completely work on your
+system. The udevd deamon is has usually little changes, however the
+rules and scripts are very different.
+       To be able to use uDev with ifrename, you will need uDev
+version 107 and later, which has support for calling ifrename. You
+will also need ifrename version 29.pre17 or later (I recommend version
+29). Most modern distributions should already have those versions.
+       If this is the case, you only need to install the uDev and
+ifrename package. If there is no ifrename package, it's easy to
+compile it from source and install it.
+
+       7) Making uDev call ifrename
+       ----------------------------
+       We need to make sure that 'ifrename' is run by the uDev
+subsystem at the right time. Because of the complex way uDev works,
+the smooth integration can only be done one way. Other methods may
+leave the uDev system in a confused state, which may be a problem when
+the card/interface is removed.
+
+       Most often, the only thing to do it to copy the file
+'19-udev-ifrename.rules' from the Wireless Tools package to the
+directory "/etc/udev/rules.d/". It should work on most system.
+
+       What follow is a detailed explanation of what this additional
+rules does.
+       uDev needs to call ifrename as an IMPORT rule, and with the
+right parameter. As I said, this requires uDev version 107 and later
+and ifrename version 29.pre17 or later.
+       The ifrename rule need to be called *before* the 'persistent'
+rules. I also like the ifrename rule to happen after local rules. The
+uDev rules are processed in alphabetical orders, which is why the
+rules filename start usually with numbers. However, those name vary
+betwen distributions. Make sure the ifrename rule has a proper
+filename for your distribution.
+
+       The rules we add looks like this :
+------ /etc/udev/rules.d/19-udev-ifrename.rules ------
+# Main ifrename rule.
+# If interface is found in /etc/iftab, subsequent rename rules are bypassed.
+# If interface is not found in /etc/iftab, subsequent rename rules applies.
+SUBSYSTEM=="net", ACTION=="add", IMPORT="/sbin/ifrename -u -i %k", NAME:="%k"
+------------------------------------------------------
+
+       Lastly, make sure the rule has the right path for ifrename :
+--------------------------
+> which ifrename
+/sbin/ifrename
+--------------------------
+
+       8) Loading driver modules
+       -------------------------
+       Wow ! The most difficult part is done.
+       In theory, you don't need to do any specific configuration for
+the driver modules to be loaded. The uDev system should load the right
+driver module for you.
+       Also, you don't need to define aliases in /etc/modprobe.d/* or
+in /etc/modprobe.conf, it's useless and may be counterproductive.
+
+       If you use a driver compiled statically in the kernel, you
+also have nothing to do.
+
+       9) Renaming interfaces
+       -----------------------
+       We still use ifrename to assign names to interfaces. The
+configuration of 'ifrename' is the same. To keep the possibility of
+having multiple wireless cards (one in each CardBus slot), we use
+wildcards in both the MAC address and the name :
+
+--------- /etc/iftab -----------------------
+# SMC 2835W wireless CardBus card
+prism*         mac 00:30:B4:*
+---------------------------------------------
+
+       If you insert two cards, they would be named prism0 and
+prism1. If you want to control which card get each name, you should
+not use wildcards and set a specific line for each card :
+
+--------- /etc/iftab -----------------------
+# SMC 2835W wireless CardBus card
+prism0         mac 00:30:B4:64:27:8B
+prism1         mac 00:30:B4:64:27:8D
+---------------------------------------------
+
+       10) Configuring interfaces
+       --------------------------
+       At this point, configuration of uDev network interfaces is done
+just like their built-in counterparts. This part is still distribution
+specific, and still already documented in the file DISTRIBUTIONS.txt.
+
+       In Debian, you would need to modify the file
+/etc/network/interfaces like this :
+
+--------- /etc/network/interfaces -----------
+# Enable Hotplug support (Etch and later)
+#
+allow-hotplug prism0
+
+# SMC 2835W wireless CardBus card
+iface prism0 inet static
+    address 10.0.1.2
+    netmask 255.255.255.0
+    broadcast 10.0.1.255
+    wireless-essid THE_ESSID
+    wireless-mode ad-hoc
+    wireless-channel 5
+---------------------------------------------
+
+       Note that you can also use graphical tools such as
+NetworkManager to configure interfaces at this point.
+
+       Now, just cross your fingers and plug the card in the slot...
+       If it does not work, there is a troubleshooting section at the
+end of this document.
+
+
+CONFIGURATION VIA THE ORIGINAL HOTPLUG SCRIPTS
+----------------------------------------------
+       The previous section was dealing with removable interfaces
+with Hotplug events and the uDev system. In various cases, or for old
+distributions, it's preferable to use the original Hotplug
+scripts. The original Hotplug scripts are much less invasive on the
+system than uDev.
+       Using the original Hotplug scripts is similar to using uDev or
+dealing with built-in interfaces, the main difference is that the
+script used are different. Another difference is that it will likely
+require more work on your part because most distributions do not have
+all part properly integrated.
 
        1) Applicability
        ----------------
@@ -348,11 +637,14 @@ removable network interface, such as :
        It may also be used to manage other types of network
 interfaces, although it may not be the best choice for them.
 
-       2) How Hotplug works
-       --------------------
-       Conceptually, Hotplug is very simple. When something
-interesting happens, the Linux kernel generates an Hotplug event. This
-runs the proper script from the /etc/hotplug directory.
+       2) How the original Hotplug scripts works
+       -----------------------------------------
+       Conceptually, Hotplug is very simple, and the Hotplug scripts
+are quite easy to follow.
+
+       When something interesting happens, the Linux kernel generates
+an Hotplug event. This runs the main Hotplug script, which in turn
+runs the appropriate script from the /etc/hotplug directory.
        There are 3 types of Hotplug events we care about :
                o PCI event : a CardBus device is added or removed
 from the system. The script /etc/hotplug/pci.agent is run.
@@ -371,11 +663,13 @@ following happens :
                6) Kernel detects new network device
                7) Kernel generates Network Hotplug event
                8) /etc/hotplug/net.agent runs, configures network device
-       The sequence of events is similar for removals and USB devices.
+       The sequence of events is similar for USB devices and for removals.
 
        3) Make sure ifup does not deadlock
        -----------------------------------
        <Most people should ignore this part>
+       <This applies only to Debian 3.0 and earlier>
+
        The first problem is that we need to make sure the command
 'ifup' does not deadlock by calling itself re-entrantly. If the system
 has built-in interfaces, the 'ifup' may reenter itself at boot time
@@ -391,19 +685,46 @@ via Hotplug :
        Note that you can produce the same reentrancy if you call ifup
 manually on an interface which module is not yet loaded.
 
-       The default version of 'ifup' for Debian 3.0 and Debian Sarge
+       The default version of 'ifup' for Debian 3.0 and Debian 3.1
 is not reentrant and can therefore deadlock if not used properly. The
 patch to make 'ifup' properly reentrant is available here :
                http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=231197
-       Contemporary versions of Debian (Sarge and later) have a
+       Contemporary versions of Debian (3.1 and later) have a
 net.agent script that contains workarounds to prevents deadlock
 situations, so for normal use the default 'ifup' should work fine.
+       Modern version of Debian (4.0 and later) have a version of
+'ifup' that is reentrant and that won't deadlock.
 
        Other distributions have very different ifup programs and I
 have not tried those (tell me about it !).
 
-       4) Installing Hotplug for Debian Sarge (testing/unstable)
-       ---------------------------------------------------------
+       4) Installing uDev for Debian Etch (4.0) or Lenny
+       -------------------------------------------------
+       Thanks to the great work of many people, Debian Etch and Lenny
+has all the necessary packages and hotplug support, and will work
+mostly 'out of the box'.
+       You will need to install the following packages :
+               o hotplug
+               o ifrename
+
+       The configuration of network Hotplug has been much simplified
+compared to Debian Sarge (3.0). You only have
+to modify the file /etc/network/interfaces to enable your interfaces
+to be managed with Hotplug and uDev.
+       By default, ifup ignore all hotplug network events, as it
+assume network interfaces are configured using the static init
+scripts. To enable ifup to configure specific network interfaces on
+hotplug events, you need to list those interface in a "allow-hotplug"
+statement.
+       For example, your /etc/network/interfaces would include :
+--------- /etc/network/interfaces -----------
+# Enable Hotplug support (Etch and later)
+#
+allow-hotplug prism0 acx0
+---------------------------------------------
+
+       5) Installing Hotplug for Debian Sarge (3.1)
+       --------------------------------------------
        Thanks to the great work of many people, Debian Sarge has all
 the necessary packages and hotplug support, and will work mostly 'out
 of the box'.
@@ -454,7 +775,7 @@ mapping hotplug
     map ethA
 ---------------------------------------------
 
-       5) Installing Hotplug for Debian 3.0
+       6) Installing Hotplug for Debian 3.0
        ------------------------------------
        Debian 3.0 doesn't come by default with hotplug, but the
 hotplug package is available as regular Debian package (on the CD or
@@ -469,21 +790,21 @@ the file /etc/hotplug/net.agent.
 +++ net.agent   Fri Feb 20 18:22:50 2004
 @@ -26,7 +26,7 @@ if [ "$INTERFACE" = "" ]; then
  fi
+
  case $ACTION in
 -register)
 +add|register)
+
      case $INTERFACE in
         # interfaces that are registered after being "up" (?)
 @@ -52,7 +52,7 @@ register)
      mesg $1 $ACTION event not handled
      ;;
+
 -unregister)
 +remove|unregister)
-     # Assume that we want to run ifdown no matter what,  
-     # because it is not going to remove the data from the 
+     # Assume that we want to run ifdown no matter what,
+     # because it is not going to remove the data from the
      # ifstate database otherwise.
 -------------------------------------------------
 
@@ -491,7 +812,7 @@ the file /etc/hotplug/net.agent.
 hotplug is much more basic, and doesn't have any scanning at boot time
 and doesn't need to be enabled in /etc/network/interfaces.
 
-       6) Installing hotplug on other distributions
+       7) Installing hotplug on other distributions
        --------------------------------------------
        The canonical version of hotplug is available at :
                http://linux-hotplug.sourceforge.net/
@@ -501,11 +822,15 @@ chances are that the canonical version won't completely work on your
 system. All these various changing versions make it difficult for me
 to tell what exactly needs to be changed in the hotplug scripts to
 make them work. However, most should work out of the box.
+       Remember also that in most cases, you can not have the
+original Hotplug scripts and uDev together. If uDev is already
+installed on your system, downgrading to the original Hotplug scripts
+may be tricky.
 
        My guess is that in a few releases, all these problems will
 sort themselves out. Just be patient.
 
-       7) Dealing with 'init' hotplug
+       8) Dealing with 'init' hotplug
        ------------------------------
        In addition to the standard kernel Hotplug events, modern
 versions of the Hotplug scripts add init scripts that scan the system
@@ -543,7 +868,7 @@ will not be loaded.
 appropriate .rc script in /etc/hotplug, or just deleting/renaming
 those files.
 
-       8) Making hotplug scripts call ifrename
+       9) Making hotplug scripts call ifrename
        ---------------------------------------
        The last hotplug step is to make sure that 'ifrename' is run
 by the hotplug subsystem at the right time. As before, we want to run
@@ -567,7 +892,7 @@ of hotplug scripts, you will need to add this support yourself.
 @@ -40,6 +40,21 @@ add|register)
             # we can't do much here without distro-specific knowledge
             # such as whether/how to invoke DHCP, set up bridging, etc.
+
 +           # Run ifrename as needed - Jean II
 +           # Remap interface names based on MAC address. This works around
 +           # the dreaded configuration problem "all my cards are 'eth0'"...
@@ -633,14 +958,19 @@ prism1            mac 00:30:B4:64:27:8D
 
        11) Configuring interfaces
        -------------------------
-       At this point, configuration of Hotplug interfaces is done
-just like their built-in counterparts. This part is still distribution
-specific, and still already documented in the file DISTRIBUTIONS.txt.
+       At this point, configuration of Hotplug network interfaces is
+done just like their built-in counterparts. This part is still
+distribution specific, and still already documented in the file
+DISTRIBUTIONS.txt.
 
        In Debian, you would need to modify the file
 /etc/network/interfaces like this :
 
 --------- /etc/network/interfaces -----------
+# Enable Hotplug support (Etch and later)
+#
+allow-hotplug prism0 acx0
+
 # Enable Hotplug support (Sarge and later)
 mapping hotplug
     script grep
@@ -661,6 +991,7 @@ using waproamd to set these parameters.
 
        Now, just cross your fingers and plug the card in the slot...
 
+
 PCMCIA INTERFACES (16 bits)
 ---------------------------
        The Pcmcia subsystem has quite some legacy, and can use
@@ -708,6 +1039,7 @@ Pcmcia cards with ifrename. You would need to modify
 was done for /etc/hotplug/net.agent. But, as in the long term Pcmcia
 will migrate to Hotplug, I would not bother...
 
+
 MANUAL LOADING, DOCKING STATIONS
 --------------------------------
        Manual loading is used for built-in network interfaces that
@@ -767,7 +1099,7 @@ interfaces don't use wildcards. The '-p' option make sure ifrename
 probes the module prior to using it.
        Using "modprobe -r" make sure that if the driver is composed
 of multiple module all the modules are unloaded.
-       
+
        To enable the interface, just use :
 -----------------------------------
 ifup eth4
@@ -892,6 +1224,7 @@ iface prism0-other inet static
     wireless-key "s:secure"
 ------------------------------------------------------
 
+
 FIRMWARE LOADING
 ----------------
        A lot of modern wireless card don't have built in firmware and
@@ -917,7 +1250,8 @@ sysfs              /sys          sysfs  defaults                   0      0
 --------------------------------------------------
 
        Then, you add the firmware file in the directory where it's
-expected, which is /usr/lib/hotplug/firmware/ in most cases.
+expected, which is /lib/firmware/ in most cases, and
+/usr/lib/hotplug/firmware/ on older systems.
 
        Most distributions nowadays have a version of the Hotplug
 scripts that knows how to deal with firmware. If it is not the case,
@@ -951,8 +1285,9 @@ you make sure that the network init scripts run 'ifrename
 -p'. 'ifrename' will trigger the module to load, and all the Hotplug
 events will be generated properly to configure the interface.
 
-DEVICES WITH MULTIPLE NAMES
----------------------------
+
+DEVICES WITH MULTIPLE NAMES/INTERFACES
+--------------------------------------
        Some wireless drivers offer multiple network interfaces for
 the same device. A classical example is the Aironet driver that
 creates a 'ethX' and 'wifiY' for each card.
@@ -974,7 +1309,7 @@ airo*              mac 00:07:0E:* arp 1
 would do :
 --------- /etc/iftab -----------------------
 # Cisco Aironet 350 wireless Pcmcia card
-wifi*          mac 00:07:0E:*
+wifi*          mac 00:07:0E:* arp 801
 airo*          mac 00:07:0E:* arp 1
 ---------------------------------------------
 
@@ -983,6 +1318,7 @@ selectors, but it is architectured such as adding selectors is relatively
 trivial. If you find a case that 'ifrename' can't handle, you should
 just extend it.
 
+
 DEVICES WITHOUT MAC ADDRESSES
 -----------------------------
        Most Ethernet and Wireless devices have a fixed and unique MAC
@@ -1011,30 +1347,77 @@ usb-p           firmware "Prolific PL-2301/PL-2302"
 usb-4          bus-info usb-00:02.0-1.4
 ---------------------------------------------
 
+
 TROUBLESHOOTING
 ---------------
        If your interface doesn't show up as expected with ifconfig,
 you will need to find out why. First, you need to be familiar with the
 sequence of actions in the system and find which one did not happen.
 
+       1) Interfaces on the system
+       ---------------------------
+       You first need to check which network interfaces are currently
+available on your system and configuration was assigned to it. This is
+mostly done using 'ifconfig'.
+       To list only the configured network interfaces :
+--------------------------
+> /sbin/ifconfig
+--------------------------
+       The list all network interfaces :
+--------------------------
+> /sbin/ifconfig -a
+--------------------------
+       You can also use 'iwconfig' to check the wireless configuration.
+
+       2) Modules
+       ----------
        You need to check that the driver module(s) was loaded using
 'lsmod'.
 
+       If this device is configure via init scripts, you should test
+if the on-demand loading of module (module probing works). This is
+done with :
+--------------------------
+> /sbin/modprobe -r eth2
+> /sbin/modprobe eth2
+--------------------------
+
+       If your module does not load, first you should check that the
+hardware is present. This depend on the bus used, for PCI bus you will
+use 'lspci' and for USB bus you will use 'lsusb'.
+       The second step is to check if the driver for your hardware is
+available on the system.
+
+       3) Ifrename
+       -----------
        You need to check if the interface was properly renamed with
 'ifrename'. You can use 'ifrename -D -V' to debug your /etc/iftab.
        Get the list of interfaces on your system with 'ifconfig -a'
 or 'cat /proc/net/dev', and check if an interface is using the name
 you assigned or 'eth0'. Check any suspicious interfaces with 'ifconfig
-eth0', and check its MAC address. Note that some rare drivers don't
-have a proper MAC address before brought up, which fools ifrename.
+eth0', and check its MAC address.
        Verify that no line in /etc/iftab matches the all-zero MAC
 address. The all-zero MAC address matches the loopback interface 'lo'
 and various pseudo network devices, renaming the loopback interface is
 highly discouraged.
+       Finally, run ifrename in debug mode :
+--------------------------
+> /sbin/ifrename -D -V
+--------------------------
 
-       You need to check which configuration was given to the
-interface using 'ifconfig' and 'iwconfig'.
+       The only case where running ifrename in debug mode would
+differ from when it is run normally are drivers that don't have valid
+descriptor value until after ifrename is run. There are a few drivers,
+such as prism54, which don't have a proper MAC address before brought
+up. This obviously fools ifrename.
+       A way to debug that is to change the way ifrename is called to
+save the debug output. For example, you could call ifrename that way :
+------- /etc/hotplug/net.agent ------------------
+               NEWNAME=`/sbin/ifrename -i $INTERFACE -V 2>> /var/log/ifrename`
+-------------------------------------------------
 
+       4) Original Hotplug scripts
+       ---------------------------
        The Hotplug subsystem has also good debugging facilities.
        To enable Hotplug debugging, just make sure the variable DEBUG
 is defined in /sbin/hotplug :
@@ -1044,10 +1427,10 @@ is defined in /sbin/hotplug :
 @@ -22,7 +22,7 @@
  cd /etc/hotplug
  . hotplug.functions
+
 -# DEBUG=yes export DEBUG
 +DEBUG=yes export DEBUG
+
  if [ "$DEBUG" != "" ]; then
      mesg "arguments ($*) env (`env`)"
 ------------------------------------------------------
@@ -1056,6 +1439,49 @@ is defined in /sbin/hotplug :
 happen as expected (pci, firmware, net...), and verify the log
 messages from 'net.agent'.
 
+       5) UDev
+       -------
+       There are two main facilities to debug uDev, the 'udevtest'
+program and udev daemon debugging.
+
+       The uDev package comes with 'udevtest', a program that
+simulate a hotplug event, however this has many limitations and is not
+exactly like the real thing.
+       The file 19-udev-ifrename.rules has a special rule to work
+with udevtest. This rule runs ifrename in dry-run mode. This rule is
+disabled by default, and if you intend to use udevtest you should
+enable this rule :
+--------- 19-udev-ifrename.rules ---------------------
+# Enable this rule to test with udevtest.
+ENV{UDEV_LOG}=="6", SUBSYSTEM=="net", ACTION=="add", IMPORT="/sbin/ifrename -D -V -u -i %k", NAME:="%k"
+------------------------------------------------------
+       Then, to test on a specific interface, you would run it like this :
+----------------------
+> udevtest /sys/class/net/eth5
+[...]
+run_program: '/usr/sbin/ifrename' (stderr) 'Dry-run : Would rename eth0 to eth5.'
+[...]
+udev_rules_get_name: rule applied, 'eth0' becomes 'eth5'
+----------------------
+       The advantage of this procedure is that it's very simple to
+try and all the output is on the console.
+
+       The enable udevd debugging, you need to change the default log
+level to "debug" in the file /etc/udev/udev.conf :
+--------- /etc/udev/udev.conf ------------------------
+udev_log="debug"
+------------------------------------------------------
+       You will also need to reboot for this change to be
+effective. The alternative is to use 'udevcontrol'.
+       Make sure the special udevtest rule for ifrename described
+above is *NOT* enabled, i.e. it should be commented out or
+eliminated.
+       The debug message may be spread in various log files depending
+on the distribution. On Debian, I would find them with 'tail -f
+/var/log/debug'.
+
+
+
 
        Have fun...
 
index 2e43159..0078324 100644 (file)
@@ -17,7 +17,9 @@ RANLIB = ranlib
 ## Uncomment this to build tools using static version of the library.
 ## Mostly useful for embedded platforms without ldd, or to create
 ## a local version (non-root).
-# BUILD_STATIC = y
+## Standard distros should comment that option to save space and to
+## build libiw.so used by third parties...
+BUILD_STATIC = y
 
 ## Uncomment this to build without using libm (less efficient).
 ## This is mostly useful for embedded platforms without maths.
@@ -71,10 +73,10 @@ endif
 DYNAMIC_LINK= libiw.so
 
 # Install directories
-INSTALL_DIR= $(PREFIX)/sbin/
-INSTALL_LIB= $(PREFIX)/lib/
-INSTALL_INC= $(PREFIX)/include/
-INSTALL_MAN= $(PREFIX)/man/
+INSTALL_DIR= $(PREFIX)/sbin
+INSTALL_LIB= $(PREFIX)/lib
+INSTALL_INC= $(PREFIX)/include
+INSTALL_MAN= $(PREFIX)/man
 
 # Various commands
 RM = rm -f
@@ -183,12 +185,14 @@ install-hdr:: wireless.h
 
 # How could you live without those manapages ?
 install-man::
-       install -m 755 -d $(INSTALL_MAN)/man8/
-       install -m 644 $(MANPAGES8) $(INSTALL_MAN)/man8/
-       install -m 755 -d $(INSTALL_MAN)/man7/
-       install -m 644 $(MANPAGES7) $(INSTALL_MAN)/man7/
-       install -m 755 -d $(INSTALL_MAN)/man5/
-       install -m 644 $(MANPAGES5) $(INSTALL_MAN)/man5/
+       for lang in . cs fr.*; do \
+           install -m 755 -d $(INSTALL_MAN)/$$lang/man8/; \
+           install -m 644 $$lang/$(MANPAGES8) $(INSTALL_MAN)/$$lang/man8/; \
+           install -m 755 -d $(INSTALL_MAN)/$$lang/man7/; \
+           install -m 644 $$lang/$(MANPAGES7) $(INSTALL_MAN)/$$lang/man7/; \
+           install -m 755 -d $(INSTALL_MAN)/$$lang/man5/; \
+           install -m 644 $$lang/$(MANPAGES5) $(INSTALL_MAN)/$$lang/man5/; \
+       done
 
 install-iwmulticall:: iwmulticall
        install -m 755 -d $(INSTALL_DIR)
@@ -215,14 +219,16 @@ uninstall::
        $(RM) $(INSTALL_LIB)/$(DYNAMIC_LINK)
        $(RM) $(INSTALL_INC)/iwlib.h
        $(RM) $(INSTALL_INC)/wireless.h
-       for f in $(MANPAGES8); do \
-         $(RM) $(INSTALL_MAN)/man8/$$f; \
-       done
-       for f in $(MANPAGES7); do \
-         $(RM) $(INSTALL_MAN)/man7/$$f; \
-       done
-       for f in $(MANPAGES5); do \
-         $(RM) $(INSTALL_MAN)/man5/$$f; \
+       for lang in . cs fr.*; do \
+           for f in $(MANPAGES8); do \
+               $(RM) $(INSTALL_MAN)/$$lang/man8/$$f; \
+           done; \
+           for f in $(MANPAGES7); do \
+               $(RM) $(INSTALL_MAN)/$$lang/man7/$$f; \
+           done; \
+           for f in $(MANPAGES5); do \
+               $(RM) $(INSTALL_MAN)/$$lang/man5/$$f; \
+           done; \
        done
 
 # Include dependancies
index 442c622..8003249 100644 (file)
@@ -35,11 +35,11 @@ Extensions). Please read it carefully before asking questions.
 Extensions integration in the most common Linux distributions. I need
 your help to complete this file.
 
-HOTPLUG.txt
------------
+HOTPLUG-UDEV.txt
+----------------
        This file documents how to manage and configure removable
-wireless cards using Hotplug. This is more advanced than the simple
-procedures of DISTRIBUTION.txt. This is currently mostly Debian
+wireless cards using Hotplug or uDev. This is more advanced than the
+simple procedures of DISTRIBUTION.txt. This is currently mostly Debian
 specific, but I hope you will contribute for other distributions.
 
 PCMCIA.txt
@@ -64,7 +64,7 @@ command "man" will find them, such as /usr/local/man/man8, or can be
 read locally with the command :
                nroff -man xxx.8 | less
 
-localised man pages (fr/*)
+localised man pages (fr.ISO8859-1/* ; fr.UTF-8/* ; cs/*)
 -------------------
        Localised man pages are not made by me, therefore the only
 localisations available are those sent to me by courageous volonteers,
@@ -146,6 +146,12 @@ alone works, but it should point you in the proper direction.
 ----------------------
        udev rules to integrate properly ifrename (udev >= 107).
 
+iw26x_restore_full_essid.diff :
+-----------------------------
+       Current Linux kernel have a few bugs managing ESSID. These
+patches fix it. The first patch (iw261_...) is for kernel 2.6.19 to
+2.6.21, the second patch (iw262_...) is for kernel 2.6.22 and later.
+
 Other tools :
 -----------
        My web page lists many other tools using Wireless
index b71dc48..91d627d 100644 (file)
@@ -65,7 +65,7 @@ localement avec la commande :
                nroff -man xxx.8 | less
 (NDT : ou plus simplement avec « man ./xxx.8 »)
 
-pages man localisées (fr/*)
+pages man localisées (fr.ISO8859-1/* ; fr.UTF-8/* ; cs/*)
 --------------------
        Les pages de man localisées ne sont pas écrites par moi (NDT\ : ainsi
 que ce document), par conséquent les seules disponibles sont celles qui me sont
index 712eacd..b435112 100644 (file)
@@ -257,7 +257,7 @@ Pro nastaven
 (tím se nezmìní aktuální klíè). Je také mo¾né zadat klíè
 jako øetìzec ASCII znakù pomocí pøedpony
 .I s:
-Passphrase není v souèasnosti podporovaná.
+Passphrase není v souèasnosti podporovaná.
 .br
 Pro urèení, který klíè má být aktivní, se vlo¾í
 .I [index]
@@ -281,7 +281,7 @@ pokud je k dispozici.
 Pokud je tøeba nastavit více klíèù, nebo nastavit klíè a urèit aktivní klíè,
 je nutné pou¾ít více pøepínaèù
 .B key
-Parametry mohou být v jakémkoliv poøadí, poslední má pøednost.
+Parametry mohou být v jakémkoliv poøadí, poslední má pøednost.
 .br
 .B Pøíklady:
 .br
@@ -310,7 +310,7 @@ Pro nastaven
 .IR "timeout `hodnota'" .
 Je také mo¾né pøidat modifikátory
 .IR min " a " max
-Hodnoty znamenají poèet sekund, pro urèení v milisekundách
+Hodnoty znamenají poèet sekund, pro urèení v milisekundách
 nebo mikrosekundách se pou¾ije pøípona m nebo u. Nìkdy jsou
 tyto hodnoty bez jednotek (poèet období mezi beacons a podobnì).
 .br
@@ -375,7 +375,7 @@ nebo mikrosekund
 .br
 je také mo¾né pøidat modifikátory
 .IR min " a " max
-Pokud karta podporuje automatický re¾im, urèují tyto modifikátory rozmezí pro limit nebo lifetime.
+Pokud karta podporuje automatický re¾im, urèují tyto modifikátory rozmezí pro limit nebo lifetime.
 Nìkteré karty definují rùzné hodnoty v závislosti na velikosti
 paketù, napø. v 802.11 urèuje
 .I min limit
similarity index 51%
rename from wireless_tools/fr/ifrename.8
rename to wireless_tools/fr.ISO8859-1/ifrename.8
index f3b9fd4..6471ae1 100644 (file)
@@ -1,10 +1,14 @@
-.\" Jean II - HPL - 2004
+.\" Jean II - HPL - 2004-2007
 .\" ifrename.8
 .\"
 .\" Traduction 2004/08/25 Maxime CHARPENNE (voir
 .\" http://www.delafond.org/traducmanfr/)
 .\" 1ère traduction        : version 27-pre25
-.TH IFRENAME 8 "01 mars 2004" "wireless-tools" "Manuel du programmeur Linux"
+.\" mise à jour 2007/08    : version 29-pre21
+.\" mise à jour 2007/10    : version 30-pre1
+.\" Mise à jour 2007/10/29 : version 30-pre3
+.\"
+.TH IFRENAME 8 "26 février 2007" "wireless-tools" "Manuel du programmeur Linux"
 .\"
 .\" NAME part
 .\"
@@ -15,9 +19,9 @@ statiques
 .\" SYNOPSIS part
 .\"
 .SH SYNOPSIS
-.B "ifrename [-c configfile] [-p] [-d]"
+.B "ifrename [-c fichierconfig] [-p] [-d] [-u] [-v] [-V] [-D] [-C]"
 .br
-.B "ifrename [-c configfile] [-i interface] [-n newname]"
+.B "ifrename [-c fichierconfig] [-i interface] [-n nouveaunom]"
 .\"
 .\" DESCRIPTION part
 .\"
@@ -30,14 +34,15 @@ Par d
 est assigné le premier nom disponible
 .RI ( eth0 ", " eth1 "...)."
 L'ordre dans lequel les interfaces réseau sont créées peut varier. Pour les
-interfaces fixes («\ built-in interfaces\ »), l'énumération du noyau au
-démarrage peut varier. Pour les interfaces débranchables, l'utilisateur peut les
+interfaces internes («\ built-in interfaces\ »), l'énumération du noyau au
+démarrage peut varier. Pour les interfaces amovibles, l'utilisateur peut les
 brancher dans n'importe quel ordre.
 .PP
 .B Ifrename
 permet à l'utilisateur de décider quel nom une interface réseau aura.
-.B Ifrename 
-peut utiliser différents sélecteurs
+.B Ifrename
+peut utiliser différents
+.I sélecteurs
 .RI "(«\ " selectors "\ »)"
 pour spécifier comment les noms d'interface correspondent aux interfaces réseau
 du système, le plus commun des sélecteurs étant
@@ -48,7 +53,7 @@ de l'interface.
 doit être lancé avant que les interfaces ne soient démarrées, raison pour
 laquelle il est surtout utile dans divers scripts (init, hotplug), mais il est
 rarement utilisé directement par l'utilisateur. Par défaut,
-.B ifrename 
+.B ifrename
 renomme toutes les interfaces système présentes en utilisant les correspondances
 définies dans
 .IR /etc/iftab .
@@ -57,7 +62,7 @@ d
 .\"
 .SH PARAMÈTRES
 .TP
-.BI "-c " configfile
+.BI "-c " fichierconfig
 Fixe le fichier de configuration à utiliser (par défaut
 .IR /etc/iftab ).
 Le fichier de configuration définit la correspondance entre les sélecteurs et
@@ -65,13 +70,14 @@ les noms d'interface, et il est d
 .IR iftab (5).
 .br
 Si
-.I configfile
+.I fichierconfig
 est «\ -\ », la configuration est lue depuis stdin.
 .TP
 .B -p
-Sonde (charge) les modules noyau avant de renommer les interfaces. Par
-défaut,
-.B ifrename 
+Sonde (charge) les modules noyau avant de renommer les interfaces (NDT\ :
+.RI "«\ " p "robe\ »"
+en anglais). Par défaut,
+.B ifrename
 vérifie seulement les interfaces déjà chargées, et ne charge pas
 automatiquement les modules noyau requis. Cette option autorise une intégration
 en douceur dans les systèmes qui ne chargent pas les modules avant d'appeler
@@ -88,26 +94,43 @@ sont charg
 .TP
 .BI "-i " interface
 Renomme seulement
-.RI "l'" interface 
+.RI "l'" interface
 spécifiée, par opposition à toutes les interfaces présentes sur le système. Le
 nouveau nom de l'interface est affiché.
 .TP
-.BI "-n " newname
+.BI "-n " nouveaunom
 Si utilisé avec
 .IR -i ,
 spécifie le nouveau nom de l'interface. La liste des correspondances depuis le
-fichier de configuration est ignorée. Le nouveau nom peut être un joker
-(«\ wildcard\ ») qui contient une seule '*'.
+fichier de configuration est ignorée, l'interface spécifié avec
+.I -i
+est directement renommée en
+.IR nouveaunom .
+Le nouveau nom peut être un joker («\ wildcard\ ») qui contient une seule '*'.
+.br
+Si utilisé sans
+.IR -i ,
+renomme les interfaces en utilisant seulement les correspondances qui les
+renommeraient en
+.IR nouveaunom .
+Le nouveau nom ne peut pas être un joker. Cette utilisation de ifrename est
+déconseillée car inefficace
+.RI ( -n " sans " -i ).
+Toutes les interfaces du système ont besoin d'être traitée à chaque invocation,
+donc dans la plupart des cas il n'est pas plus rapide de simplement laisser
+ifrename les renommer toutes (sans les deux
+.IR -n " et " -i ).
 .TP
 .B -t
-Active l'absorption («\ takover\ ») de nom. Cela permet d'échanger un nom
-d'interface entre deux interfaces ou plus.
+Active le support de l'absorption («\ takover\ ») de nom. Cela permet
+d'échanger un nom d'interface entre deux interfaces ou plus.
 .br
 L'absorption permet à une interface de «\ voler\ » le nom d'une autre
 interface. Cela fonctionne seulement avec le noyau 2.6.X et si l'autre
 interface est désactivée. En conséquence, ce n'est pas compatible avec Hotplug.
 L'autre interface se voit assigner un nom aléatoire, mais peut être renommée
-plus tard avec 'ifrename'.
+plus tard avec
+.BR ifrename .
 .br
 Le nombre d'absorptions est limité pour éviter les boucles circulaires, et donc
 certaines situations d'échanges de noms complexes ne seront pas complètement
@@ -116,6 +139,54 @@ trait
 Dans tous les cas, l'échange de noms et l'utilisation de cette caractéristique
 sont découragés, et vous êtes invités à choisir des noms uniques et sans
 ambiguïté pour vos interfaces...
+.TP
+.B -u
+Active le mode de sortie
+.IR udev .
+Cela permet une intégration propre de
+.B ifrename
+dans le framework
+.IR udev ,
+.BR udevd (8)
+utilisera
+.B ifrename
+pour assigner les noms d'interfaces présents dans
+.IR /etc/iftab .
+Dans ce mode, la sortie de ifrename peut être analysée («\ parsed\ »)
+directement par
+.BR udevd (8)
+en tant qu'une action IMPORT. Cela nécessite la version 107 ou plus de
+.IR udev .
+.TP
+.B -D
+Mode «\ dry-run\ ». Ifrename ne changera aucune interface et affichera seulement
+les nouveaux noms d'interface, si applicable, et sortira.
+.br
+Dans le mode «\ dry-run\ », le nom joker d'interface est résolu. Le nouveau nom
+d'interface est affiché, même s'il est identique à l'ancien.
+.br
+Faire aussi attention que certains sélecteurs peuvent seulement être lus par
+root, (par exemple ceux basés sur
+.BR ethtool ),
+et ifrename échouera en silence s'il est lancé par un utilisateur normal. En
+d'autres termes, le mode «\ dry-run\ » lancé par un utilisateur standard ne
+donnera pas forcément le résultat attendu.
+.TP
+.B -V
+Mode verbeux. Ifrename affichera  les résultats de l'analyse de son fichier de
+configuration et de l'interrogation des séleceurs d'interfaces. Combiné avec
+l'option
+.RI "«\ " dry-run "\ »,"
+c'est une bonne manière de déboguer des configurations
+complexes ou des problèmes triviaux.
+.TP
+.B -C
+Compte les interfaces qui correspondent. Affiche le nombre d'interfaces
+qui correspondent et le retourne comme code retour de ifrename.
+.br
+Le nombre d'interfaces qui correspondent est le nombre d'interfaces du système
+pour lesquelles un lien a été trouvé dans le fichier de config (qui est
+différent du numéro de l'interface renommée).
 .\"
 .\" AUTHOR part
 .\"
@@ -125,7 +196,7 @@ Jean Tourrilhes \- jt@hpl.hp.com
 .\" TRADUCTION part
 .\"
 .SH TRADUCTION
-Maxime CHARPENNE, août 2004 (wireless_tools.27-pre25).
+Maxime CHARPENNE, octobre 2007 (wireless_tools.30-pre3).
 .\"
 .\" AVERTISSEMENT part
 .\"
diff --git a/wireless_tools/fr.ISO8859-1/iftab.5 b/wireless_tools/fr.ISO8859-1/iftab.5
new file mode 100644 (file)
index 0000000..40c1422
--- /dev/null
@@ -0,0 +1,334 @@
+.\" Jean II - HPL - 2004-2007
+.\" iftab.5
+.\"
+.\" Traduction 2004/08/25 Maxime CHARPENNE (voir
+.\" http://www.delafond.org/traducmanfr/)
+.\" 1ère traduction        : version 27-pre25
+.\" Mise à jour 2007/09    : version 29-pre21
+.\" Mise à jour 2007/10    : version 30-pre1
+.\" Mise à jour 2007/10/29 : version 30-pre3
+.\"
+.TH IFTAB 5 "26 février 2007" "wireless-tools" "Manuel du Programmeur Linux"
+.\"
+.\" NAME part
+.\"
+.SH NOM
+iftab \- informations statiques sur les interfaces réseau
+.\"
+.\" DESCRIPTION part
+.\"
+.SH DESCRIPTION
+Le fichier
+.B /etc/iftab
+contient de l'information descriptive à propos des diverses interfaces réseau.
+.B iftab
+n'est utilisé que par le programme
+.IR ifrename (8)
+pour assigner un nom d'interface réseau cohérent à chaque interface réseau.
+.PP
+.B /etc/iftab
+définit un ensemble de
+.IR correspondances " («\ " mappings "\ »)."
+Chaque correspondance contient un nom d'interface et un ensemble de sélecteurs
+(«\ selectors\ »). Les sélecteurs permettent à
+.B ifrename
+d'identifier chaque interface réseau du système. Si une interface réseau
+correspond à tous les descripteurs d'une correspondance,
+.B ifrename
+essaye de changer le nom de l'interface par le nom de l'interface donné dans la
+correspondance.
+.\"
+.\" MAPPINGS part
+.\"
+.SH CORRESPONDANCES («\ MAPPINGS\ »)
+Chaque correspondance est décrite sur une ligne distincte, elle commence avec
+.IR "interface name" " (nom d'interface),"
+et contient un ensemble de
+.RI "descripteurs («\ " descriptors "\ »),"
+séparés par des espaces ou des tabulations.
+.PP
+La relation entre les descripteurs d'une correspondance est un
+.IR "et logique" .
+Une correspondance s'applique à une interface réseau seulement si tous les
+descripteurs s'appliquent. Si une interface réseau ne supporte pas un
+descripteur particulier, elle ne s'appliquera à aucune correspondance qui
+utilise ce descripteur.
+.PP
+Si vous voulez utiliser des descripteurs alternatifs pour un nom d'interface
+(ou logique), spécifiez deux correspondances différentes avec le même nom
+d'interface (une par ligne).
+.B Ifrename
+utilise toujours la première correspondance en commençant par la
+.I fin
+de
+.BR iftab ,
+donc les correspondances les plus restrictives devraient être définies en
+dernier.
+.\"
+.\" INTERFACE NAME part
+.\"
+.SH NOM D'INTERFACE
+La première partie de chaque correspondance est un nom d'interface. Si une
+interface réseau correspond à tous les descripteurs d'une correspondance,
+.B ifrename
+essaye de changer le nom de l'interface par le nom de l'interface donné dans la
+correspondance.
+.PP
+Le nom de l'interface d'une correspondance est soit un nom d'interface complet
+(comme
+.IR eth2 " ou " wlan1 )
+soit un motif de nom d'interface contenant un seul caractère joker (comme
+.IR eth* " ou " wlan* ).
+Dans le cas d'un caractère joker («\ wildcard\ »), le noyau remplace le
+caractère '*' par le plus petit entier disponible faisant un nom d'interface
+unique. Le caractère joker est supporté seulement pour les noyaux 2.6.1 et
+2.4.30 et plus.
+.PP
+Il est déconseillé d'essayer de faire correspondre des interfaces à des noms
+d'interface par défaut tels que
+.IR eth0 ", " wlan0 " or " ppp0 .
+Le noyau les utilise comme nom par défaut pour toute nouvelle interface,
+il est donc très probable qu'une interface portant ce nom existe déjà et
+empêche ifrename de les utiliser. Même si vous utilisez ces noms, l'interface
+peut déjà être active dans certains cas. Ne pas utiliser ces noms permettra de
+détecter sur le champ les interfaces non configurées ou les nouvelles
+interfaces.
+.br
+Les bons noms sont uniques et significatifs, comme
+.IR mondsl " or " hubprive ,
+ou utilisez de plus grand nombre entier, comme
+.IR eth5 " or " wlan5 .
+Le second type est habituellement plus facile à intégrer dans divers
+utilitaires réseau.
+.\"
+.\" DESCRIPTORS part
+.\"
+.SH DESCRIPTEURS («\ DESCRIPTORS\ »)
+Chaque descripteur est composé d'un nom de descripteur et d'une valeur de
+descripteur. Les descripteurs spécifie un attribut statique d'une interface
+réseau, le but étant d'identifier de manière unique chaque matériel.
+.PP
+La plupart des utilisateurs n'utiliseront que le sélecteur
+.BR mac ,
+malgré ses problèmes potentiels, d'autres sélecteurs conviennent à des
+paramétrages plus spécialisés. La plupart des sélecteurs acceptent '*' dans la
+valeur du sélecteur pour correspondance joker, et la plupart des sélecteurs
+sont indifférents à la casse des caractères.
+.TP
+.BI mac " adresse mac"
+Correspond à l'Adresse MAC de l'interface avec l'adresse MAC spécifiée.
+L'adresse MAC de l'interface peut être montrée en utilisant
+.IR ifconfig (8)
+ou
+.IR ip (8).
+.br
+C'est le plus commun des sélecteurs, vu que chaque interface possède une
+adresse MAC unique, ce qui permet de les identifier sans ambigüité.
+Malgré tout, certaines interfaces n'ont pas d'adresse MAC valide tant qu'elles
+ne sont pas activées\ ; dans certains cas, utiliser ce sélecteur est pertinent
+ou impossible.
+.TP
+.BI arp " type arp"
+Fait correspondre le Type ARP («\ ARP Type\ ») (aussi appelé «\ Link Type\ »)
+de l'interface avec le type ARP spécifié par un nombre. Le Type ARP de
+l'interface peut être montré en utilisant
+.IR ifconfig (8)
+ou
+.IR ip (8),
+le type
+.B link/ether
+correspond à
+.B 1
+et le type
+.B link/ieee802.11
+correspond à
+.BR 801 .
+.br
+Ce sélecteur est utile quand un pilote crée plusieurs interfaces réseau pour
+une seule carte réseau.
+.TP
+.BI driver " nom de pilote"
+Fait correspondre le Nom de Pilote («\ Driver Name\ ») de l'interface avec le
+nom de pilote spécifié. Le Nom de Pilote de l'interface peut être montré en
+utilisant
+.IR "ethtool -i" (8).
+.TP
+.BI businfo " information de bus"
+Fait correspondre l'Information de Bus («\ Bus Information\ ») de l'interface
+avec l'information de bus spécifiée. L'Information de Bus de l'interface peut
+être montrée en utilisant
+.IR "ethtool -i" (8).
+.TP
+.BI firmware " version firmware "
+Fait correspondre la Version Firmware («\ Firmware Revision\ ») de l'interface
+avec l'information de la version firmware. La Version Firmware de l'interface
+peut être montrée en utilisant
+.IR "ethtool -i" (8).
+.TP
+.BI baseaddress " addresse de base"
+Fait correspondre l'Adresse de Base («\ Base Address\ ») de l'interface avec
+l'adresse de base spécifiée. L'Adresse de Base de l'interface peut être montrée
+en utilisant
+.IR ifconfig (8).
+.br
+Ce sélecteur n'est utile que pour les cartes ISA et EISA car la plupart des
+cartes utilisent l'allocation dynamique pour l'Adresse de Base.
+.TP
+.BI irq " ligne irq"
+Fait correspondre la Ligne IRQ (interruption) de l'interface avec la ligne IRQ
+spécifiée. La Ligne IRQ de l'interface peut être montrée en utilisant
+.IR ifconfig (8).
+.br
+Ce sélecteur n'est habituellement pas suffisant pour identifier de manière
+unique une interface, car les Lignes IRQ peuvent être partagées.
+.TP
+.BI iwproto " protocole wireless"
+Fait correspondre le Protocole Wireless de l'interface avec le protocole
+wireless spécifié. Le Protocole Wireless de l'interface peut être montré
+en utilisant
+.IR iwconfig (8),
+ou
+.IR iwgetid (8).
+.br
+Ce sélecteur n'est valable que pour les interfaces wireless et n'est pas
+suffisant pour en identifier une de manière unique.
+.TP
+.BI pcmciaslot " prise pcmcia "
+Fait correspondre le numéro de Prise Pcmpcia («\ Pcmcia Socket \ ») de
+l'interface. Le numéro de Prise Pcmpcia de l'interface peut être montré en
+utilisant
+.IR "cardctl ident" (8).
+.br
+Ce sélecteur est habituellement supporté pour les cartes 16 bits seulement,
+pour les cartes 32 bits il est conseillé d'utiliser le sélecteur
+.BR businfo .
+.TP
+.BI prevname " nom interface précédent"
+Fait correspondre le nom de l'interface avant qu'elle soit renommée avec
+le nom précédent spécifié.
+.br
+Ce sélecteur devrait être évité car le nom précédent de l'interface peut varier
+en fonction de diverses conditions. Une mise à jour système/noyau/pilote peut
+changer le nom original. Dès lors, ifrename ou un autre utilitaire peut la
+renommer avant l'exécution de ce sélecteur.
+.TP
+.BI SYSFS{ nomfichier } " valeur"
+Fait correspondre le contenu de l'attribut sysfs donné par nomfichier avec la
+valeur spécifiée. Pour les liens symboliques et les répertoires parents, fait
+correspondre le nom réel du répertoire de l'attribut sysfs donné par nomfichier
+avec la valeur spécifiée.
+.br
+Une liste des attributs sysfs les plus utiles est donnée dans la section
+suivante.
+.\"
+.\" SYSFS DESCRIPTORS part
+.\"
+.SH DESCRIPTEURS SYSFS
+Sur la plupart des systèmes, les attributs sysfs pour une carte donnée sont
+situés dans le répertoire nommé après cette interface dans
+.IR /sys/class/net/ .
+La plupart des attributs sysfs sont des fichiers, et leurs valeurs peuvent
+être lues en utilisant
+.IR cat "(1) ou " more (1).
+Il est aussi possible de faire des correspondances dans les attributs des
+sous-répertoires.
+.PP
+Certains attributs sysfs sont des liens symboliques qui pointent vers d'autres
+répertoires sysfs. Si l'attribut nomfichier est un lien symbolique, l'attribut
+sysfs sera résolu avec le nom du répertoire pointé par le lien en utilisant
+.IR readlink (1).
+La localisation du répertoire dans l'arborescence sysfs est importante aussi.
+Si l'attribut nomfichier fini par
+.IR /.. ,
+l'attribut sysfs sera résolu avec le nom réel du répertoire parent en utilisant
+.IR pwd (1).
+.PP
+Le système de fichier sysfs est supporté seulement avec les noyaux 2.6.X et a
+besoin d'être monté (habituellement dans
+.IR /sys ).
+Les sélecteurs sysfs ne sont pas aussi efficaces que les autres sélecteurs, et
+ne devraient donc pas être employés pour le maximum de performance.
+.PP
+Ci-après les attributs sysfs communs et leurs descripteurs ifrename équivalents.
+.TP
+.BI SYSFS{address} " valeur"
+Comme le descripteur
+.BR mac .
+.TP
+.BI SYSFS{type} " valeur"
+Comme le descripteur
+.BR arp .
+.TP
+.BI SYSFS{device} " valeur"
+Valable seulement jusqu'au noyau 2.6.20. Comme le sélecteur
+.BR businfo .
+.TP
+.BI SYSFS{..} " valeur"
+Valable seulement depuis le noyau 2.6.21. Comme le sélecteur
+.BR businfo .
+.TP
+.BI SYSFS{device/driver} " valeur"
+Valable seulement jusqu'au noyau 2.6.20. Comme le sélecteur
+.BR driver .
+.TP
+.BI SYSFS{../driver} " valeur"
+Valable seulement depuis le noyau 2.6.21. Comme le sélecteur
+.BR driver .
+.TP
+.BI SYSFS{device/irq} " valeur"
+Valable seulement jusqu'au noyau 2.6.20. Comme le sélecteur
+.BR irq .
+.TP
+.BI SYSFS{../irq} " valeur"
+Valable seulement depuis le noyau 2.6.21. Comme le sélecteur
+.BR irq .
+.\"
+.\" EXAMPLES part
+.\"
+.SH EXEMPLES
+# Ceci est un commentaire
+.br
+eth2           mac 08:00:09:DE:82:0E
+.br
+eth3           driver wavelan interrupt 15 baseaddress 0x390
+.br
+eth4           driver pcnet32 businfo 0000:02:05.0
+.br
+air*           mac 00:07:0E:* arp 1
+.br
+myvpn   SYSFS{address} 00:10:83:* SYSFS{type} 1
+.br
+bcm*            SYSFS{device} 0000:03:00.0 SYSFS{device/driver} bcm43xx
+.br
+bcm*            SYSFS{..} 0000:03:00.0 SYSFS{../driver} bcm43xx
+.\"
+.\" AUTHOR part
+.\"
+.SH AUTEUR
+Jean Tourrilhes \- jt@hpl.hp.com
+.\"
+.\" TRADUCTION part
+.\"
+.SH TRADUCTION
+Maxime CHARPENNE, octobre 2007 (wireless_tools.30-pre3).
+.\"
+.\" AVERTISSEMENT part
+.\"
+.SH AVERTISSEMENT SUR LA TRADUCTION
+Il est possible que cette traduction soit imparfaite ou périmée. En cas de
+doute, veuillez vous reporter au document original en langue anglaise fourni
+avec le programme.
+.\"
+.\" FILES part
+.\"
+.SH FICHIERS
+.I /etc/iftab
+.\"
+.\" SEE ALSO part
+.\"
+.SH VOIR AUSSI
+.BR ifrename (8),
+.BR ifconfig (8),
+.BR ip (8),
+.BR ethtool (8),
+.BR iwconfig (8).
similarity index 63%
rename from wireless_tools/fr/iwconfig.8
rename to wireless_tools/fr.ISO8859-1/iwconfig.8
index 9e45759..7fa30f6 100644 (file)
@@ -7,8 +7,11 @@
 .\" Mise à jour 2004/01/28 : version 27-pre9 (beta)
 .\" Mise à jour 2004/02/26 : version 27-pre11 (alpha)
 .\" Mise à jour 2004/08/23 : version 27-pre25
+.\" Mise à jour 2007/07    : version 29-pre21
+.\" Mise à jour 2007/10    : version 30-pre1
+.\" Mise à jour 2007/10/29 : version 30-pre3
 .\"
-.TH IWCONFIG 8 "22 juin 2004" "wireless-tools" "Manuel du programmeur Linux"
+.TH IWCONFIG 8 "30 mars 2006" "wireless-tools" "Manuel du programmeur Linux"
 .\"
 .\" NAME part
 .\"
@@ -20,15 +23,15 @@ iwconfig \- configure une interface r
 .SH SYNOPSIS
 .BI "iwconfig [" interface ]
 .br
-.BI "iwconfig " interface " [essid " X "] [nwid " N "] [freq " F "] [channel " C ]
+.BI "iwconfig " interface " [essid " X "] [nwid " N "] [mode " M "] [freq " F "]
 .br
-.BI "                   [sens " S "] [mode " M "] [ap " A "] [nick " NN ]
+.BI "                   [channel " C "] [sens " S "] [ap " A "] [nick " NN ]
 .br
 .BI "                   [rate " R "] [rts " RT "] [frag " FT "] [txpower " T ]
 .br
 .BI "                   [enc " E "] [key " K "] [power " P "] [retry " R ]
 .br
-.BI "                   [commit]
+.BI "                   [modu " M "] [commit]
 .br
 .BI "iwconfig --help"
 .br
@@ -40,7 +43,7 @@ iwconfig \- configure une interface r
 .B Iwconfig
 est similaire à
 .IR ifconfig (8),
-mais est dédié aux interfaces wireless. Il est utilisé pour manier les
+mais est dédié aux interfaces wireless. Il est utilisé pour positionner les
 paramètres des interfaces réseaux qui sont spécifiques aux opérations wireless
 (par exemple\ : la fréquence).
 .B Iwconfig
@@ -58,31 +61,39 @@ chaque mat
 .SH PARAMÈTRES
 .TP
 .B essid
-Positionne le ESSID ( ou Network Name - pour certains produits, il peut aussi
+Positionne le ESSID (ou Network Name - pour certains produits, il peut aussi
 être désigné comme Domain ID). L'ESSID est utilisé pour identifier les cellules
 qui font partie du même réseau virtuel.
 .br
-Par opposition à l'adresse de l'AP ou au NWID qui définissent une seule cellule,
-l'ESSID définit un groupe de cellules connectées via des répéteurs ou via
-l'infrastructure, où l'utilisateur peut «\ roamer\ » ou errer de manière
-transprente (c.-à-d. changer de cellule sans perdre sa connexion).
+Par opposition à l'adresse de l'AP (Point d'Accès) ou au NWID qui définissent
+une seule cellule, l'ESSID définit un groupe de cellules connectées via des
+répéteurs ou via l'infrastructure, où l'utilisateur peut errer («\ roamer\ »)
+de manière transprente (c.-à-d. changer de noeud sans perdre sa connexion).
 .br
-Avec certaines cartes, vous pouvez désactiver le contrôle du ESSID (ESSID
-promiscuous) avec
+Avec certaines cartes, vous pouvez désactiver le contrôle du ESSID («\ ESSID
+promiscuous\ ») avec
 .IR off " ou " any " (et " on
 pour le réactiver).
 .br
+Si le ESSID du réseau est un des mots-clefs spéciaux
+.RI ( off ", " on " ou " any ),
+vous devrez utiliser
+.I --
+pour l'échapper.
+.br
 .B Exemples :
 .br
 .I "   iwconfig eth0 essid any"
 .br
 .I "   iwconfig eth0 essid ""Mon Reseau""
+.br
+.I "   iwconfig eth0 essid -- ""ANY""
 .TP
-.BR nwid / domain
-Positionne le Network ID (pour certains produits, il peut aussi être appelé
-Domain ID). Comme tous les réseaux sans fil adjacents partagent le même médium,
-ce paramètre est utilisé pour les différencier (créer des réseaux logiques
-colocalisés) et pour identifier des noeuds appartenant à la même cellule.
+.BR nwid
+Positionne le Network ID. Comme tous les réseaux sans fil adjacents partagent
+le même médium, ce paramètre est utilisé pour les différencier (créer des
+réseaux logiques colocalisés) et pour identifier des noeuds appartenant à la
+même cellule.
 .br
 Ce paramètre est seulement utilisé par les matériels antérieurs à 802.11, la
 norme 802.11 se servant du ESSID et de l'adresse de l'AP pour cette fonction.
@@ -98,44 +109,15 @@ pour le r
 .br
 .I "   iwconfig eth0 nwid off"
 .TP
-.BR freq / channel
-Positionne la fréquence d'exploitation ou canal du périphérique. Une valeur
-inférieure à 1\ 000 indique un numéro de canal, une valeur supérieure à 1\ 000
-est une fréquence en Hz. Vous pouvez ajouter le suffixe k, M ou G à la valeur
-(par exemple, «\ 2.46G\ » pour la fréquence 2,46\ GHz), ou ajouter suffisamment
-de «\ 0\ ».
-.br
-Les canaux sont habituellement numérotés à partir de 1, et vous pouvez utiliser
-.IR iwlist (8)
-pour obtenir le nombre total de canaux, lister les fréquences disponibles, et
-afficher le fréquence courante comme un canal.
-Suivants les réglementations, certaines fréquences/canaux peuvent ne pas
-être disponibles.
-.br
-.B Exemples :
-.br
-.I "   iwconfig eth0 freq 2422000000"
-.br
-.I "   iwconfig eth0 freq 2.422G"
-.br
-.I "   iwconfig eth0 channel 3"
-.TP
-.B sens
-Positionne le seuil de sensibilité. C'est le niveau de signal le plus bas pour
-lequel le matériel essaye de réceptionner un paquet, les signaux plus bas sont
-ignorés. Ceci est utilisé pour éviter de recevoir le bruit de fond, donc vous
-devriez le positionner en fonction du niveau de bruit moyen. Les valeurs
-positives sont supposées être les valeurs brutes utilisées par le matériel ou
-un pourcentage, les valeurs négatives sont supposées être des dBm.
-.br
-Avec certains matériels, ce paramètre contrôle aussi le seuil de report
-(defer threshold) (signal le plus faible pour lequel le matériel considère le
-canal occupé) et le seuil de cession (handover threshold) (niveau de signal pour
-lequel le matériel commence à chercher un nouveau Point d'Accès).
+.BR nick [name]
+Positionne le surnom (nickname), ou nom de station. Quelques produits
+802.11 le définissent, mais il n'est pas utilisé dans la mesure où les
+protocoles les plus usités (MAC, IP, TCP) ne s'en servent pas en l'état.
+Seuls quelques outils de diagnostic peuvent l'utiliser.
 .br
 .B Exemple :
 .br
-.I "   iwconfig eth0 sens -80"
+.I "   iwconfig eth0 nickname ""My Linux Node""
 .TP
 .B mode
 Positionne le mode de fonctionnement du matériel, qui dépend de la topologie du
@@ -148,7 +130,7 @@ roaming ou errance),
 .I Master
 (le noeud est le maître qui synchronise ou agit comme un Point d'Accès),
 .I Repeater
-(le noeud transmet les paquets entre les autres n½uds wireless),
+(le noeud transmet les paquets entre les autres noeuds wireless),
 .I Secondary
 (le noeud agit comme un maître/répéteur supplémentaire),
 .I Monitor
@@ -161,9 +143,50 @@ roaming ou errance),
 .br
 .I "   iwconfig eth0 mode Ad-Hoc"
 .TP
+.BR freq / channel
+Positionne la fréquence d'exploitation ou canal du périphérique. Une valeur
+inférieure à 1\ 000 indique un numéro de canal, une valeur supérieure à 1\ 000
+est une fréquence en Hz. Vous pouvez ajouter le suffixe k, M ou G à la valeur
+(par exemple, «\ 2.46G\ » pour la fréquence 2,46\ GHz), ou ajouter suffisamment
+de '0'.
+.br
+Les canaux sont habituellement numérotés à partir de 1, et vous pouvez utiliser
+.IR iwlist (8)
+pour obtenir le nombre total de canaux, lister les fréquences disponibles, et
+afficher la fréquence courante comme un canal. Suivants les réglementations,
+certaines fréquences/canaux peuvent ne pas être disponibles.
+.br
+La plupart du temps lorsque le mode Managed est utilisé, le Point d'Accès
+impose le canal et le pilote refusera le paramètre de la fréquence. Dans le
+mode Ad-Hoc, le paramètre fréquence doit seulement être utilisé à la
+création de la cellule initiale, et doit être ignoré quand on rejoint une
+cellule existante.
+.br
+Vous pouvez aussi utiliser
+.I off
+ou
+.I auto
+pour laisser la carte choisir le meilleur canal (lorsque c'est supporté).
+.br
+.B Exemples :
+.br
+.I "   iwconfig eth0 freq 2422000000"
+.br
+.I "   iwconfig eth0 freq 2.422G"
+.br
+.I "   iwconfig eth0 channel 3"
+.br
+.I "   iwconfig eth0 channel auto"
+.TP
 .B ap
 Force la carte à s'enregistrer auprès du Point d'Accès donné par l'adresse,
-si c'est possible. Quand la qualité de la connexion devient trop mauvaise,
+si c'est possible. Cette adresse est l'identité de la cellule du Point
+d'Accès, celle indiqué par un scanning wireless, qui peut être différente de
+son adresse MAC. Si le lien wireless est point-à-point, mettre l'adresse de
+l'autre côté du lien. Si le lien est ad-hoc, mettre l'identité de la cellule
+du réseau ad-hoc.
+.br
+Quand la qualité de la connexion devient trop mauvaise,
 le pilote peut revenir en mode automatique (la carte sélectionne le meilleur
 Point d'Accès à portée).
 .br
@@ -174,7 +197,7 @@ ou vous pouvez utiliser
 .I any
 ou
 .I auto
-pour forcer la carte à se ré associer avec le meilleur Point d'Accès courant.
+pour forcer la carte à se ré-associer avec le meilleur Point d'Accès courant.
 .br
 .B Exemple :
 .br
@@ -184,30 +207,19 @@ pour forcer la carte 
 .br
 .I "   iwconfig eth0 ap off"
 .TP
-.BR nick [name]
-Positionne le surnom (nickname), ou nom de station. Quelques produits
-802.11 le définissent, mais il n'est pas utilisé dans la mesure où les
-protocoles les plus usités (MAC, IP, TCP) ne s'en servent pas en l'état.
-Seuls quelques outils de diagnostic peuvent l'utiliser.
-.br
-.B Exemple :
-.br
-.I "   iwconfig eth0 nickname ""My Linux Node""
-.TP
 .BR rate / bit [rate]
 Pour les cartes supportant plusieurs débits, positionne le débit en b/s. Le
 débit est la vitesse à laquelle les bits sont transmis sur le médium, la
-vitesse du lien pour l'utilisateur est inférieure à cause du partage du médium
-et des diverses entêtes.
+vitesse du lien pour l'utilisateur est inférieure à cause du partage du
+médium et des diverses entêtes.
 .br
-Vous pouvez ajouter le suffixe k, M ou G à la valeur (multiplicateur décimal\ :
-10^3, 10^6 et 10^9\ b/s), ou ajouter suffisamment de «\ 0\ ». Les valeurs
-en-dessous de 1000 sont spécifiques à la carte, habituellement un index de la
-liste des débit supportés. Utilisez
+Vous pouvez ajouter le suffixe k, M ou G à la valeur (multiplicateur
+décimal\ : 10^3, 10^6 et 10^9\ b/s), ou ajouter suffisamment de '0'. Les
+valeurs en-dessous de 1\ 000 sont spécifiques à la carte, habituellement un
+index de la liste des débit supportés. Utilisez
 .I auto
-pour sélectionner le mode débit automatique (repli à un débit moindre pour
-les canaux bruités), ce qui est le mode par défaut pour la plupart des cartes,
-et
+pour sélectionner le mode débit automatique (repli à un débit moindre pour les
+canaux bruités), ce qui est le mode par défaut pour la plupart des cartes, et
 .I fixed
 pour revenir à des paramètres fixes. Si vous spécifiez une valeur de débit
 et ajoutez
@@ -222,14 +234,110 @@ le driver utilisera tous les d
 .br
 .I "   iwconfig eth0 rate 5.5M auto"
 .TP
+.BR txpower
+Pour les cartes supportant plusieurs puissances de transmission, règle la
+puissance de transmission en dBm. Si
+.I W
+est la puissance en Watt, la puissance en dBm est
+.IR "P\ =\ 30\ +\ 10.log(W)" .
+Si la valeur est post-fixée par
+.IR mW ,
+elle sera automatiquement convertie en dBm.
+.br
+De plus,
+.IR on " et " off
+active et désactive la radio, et
+.IR auto " et " fixed
+active et désactive le contrôle de puissance (si ces fonctions sont
+disponibles).
+.br
+.B Exemples :
+.br
+.I "   iwconfig eth0 txpower 15"
+.br
+.I "   iwconfig eth0 txpower 30mW"
+.br
+.I "   iwconfig eth0 txpower auto"
+.br
+.I "   iwconfig eth0 txpower off"
+.TP
+.B sens
+Positionne le seuil de sensibilité. Cela définie comment la carte est sensible
+aux mauvaises conditions de fonctionnement (signal faible, interférence). Les
+valeurs positives sont considérées comme des valeurs brutes et utilisées telles
+quelles par le matériel ou un pourcentage, les valeurs négatives sont
+interprétées en dBm. En fonction de la conception du matétiel, ce paramètre
+peut contrôler diverses fonctions.
+.br
+Sur les cartes modernes, ce paramètre contrôle habituellement le seuil du
+handover/roaming (seuil de cession), signal le plus bas pour lequel le matériel
+reste associé au Point d'Accès courant. Lorsque le signal passe en-dessous de
+ce seuil, la carte commence à chercher un nouveau/meilleur Point d'Accès.
+Certaines cartes peuvent utiliser le nombre de beacons manquées pour déclencher
+cela. En cas de forte densité de Points d'Accès, un seuil plus haut assure
+d'être toujours associé au meilleur AP, et à l'inverse pour les faibles
+densités d'APs, un seuil plus bas réduit les pertes d'associations.
+.br
+Sur les cartes plus anciennes, ce paramètre contrôle habituellement le seuil de
+report (defer treshold), signal le plus faible pour lequel le matériel considère
+le canal occupé. Les niveaux de signal au-dessus de ce seuil font que le
+matériel inhibe sa propre transmission, tandis que les signaux plus faibles que
+ce seuil sont ignorés et le matériel est libre de transmettre. Cela est souvent
+fortement lié au seuil de réception, le plus bas niveau de signal pour lequel
+le matériel essaye de recevoir un paquet. Des paramètres apropriées pour ces
+seuils évitent à la carte de perdre du temps sur le bruit de fond lors des
+réceptions de transmissions faibles. Les conceptions modernes semblent contrôler
+ces seuils automatiquement.
+.br
+.br
+.B Exemple :
+.br
+.I "   iwconfig eth0 sens -80"
+.br
+.I "   iwconfig eth0 sens 2"
+.TP
+.BR retry
+La plupart des cartes supportent les retransmissions MAC (contrôle d'accès
+au médium), et certaines permettent le paramétrage du mécanisme des tentatives
+(en cas d'échec).
+.br
+Pour fixer le nombre maximum d'essais, entrez
+.IR "limit `valeur'" .
+C'est une valeur absolue (sans unité), et c'est le cas par défaut (si rien n'est
+spécifié).
+Pour fixer le temps maximum autorisé au mécanisme MAC pour ses tentatives,
+entrez
+.IR "lifetime `valeur'" .
+Par défaut, cette valeur est en secondes, ajouter le suffixe m ou u pour
+spécifier les valeurs en millisecondes ou microsecondes.
+.br
+Vous pouvez aussi ajouter les modificateurs
+.IR short ", " long ", " min " et " max "."
+Si la carte supporte le mode automatique, ils définissent les limites
+inférieure et supérieure (NDT\ : de l'intervalle temporel dans lequel le
+mécanisme MAC est autorisé à réitérer ses tentatives). D'autres cartes
+définissent des valeurs différentes en fonction de la taille des paquets, par
+exemple la norme 802.11 définit une
+.I min limit
+qui est la limite inférieure d'essai (paquets non RTS/CTS).
+.br
+.B Exemples :
+.br
+.I "   iwconfig eth0 retry 16"
+.br
+.I "   iwconfig eth0 retry lifetime 300m"
+.br
+.I "   iwconfig eth0 retry short 12"
+.br
+.I "   iwconfig eth0 retry min limit 8"
+.TP
 .BR rts [_threshold]
 RTS/CTS ajoute une «\ poignée de main\ » avant chaque transmission de paquet
 pour être sûr que le canal est libre. Cela ajoute des entêtes (NDT\ : données de
-gestion), mais augmente les performances en cas de n½uds cachés ou
-d'un grand nombre de noeuds actifs. Ce paramètre fixe la taille du plus petit
-paquet pour lequel le noeud envoie un RTS\ ; une valeur égale à la taille
-maximale des paquets inhibe ce mécanisme. Vous pouvez aussi positionner
-ce paramètre sur
+gestion), mais augmente les performances en cas de noeuds cachés ou d'un grand
+nombre de noeuds actifs. Ce paramètre fixe la taille du plus petit paquet pour
+lequel le noeud envoie un RTS\ ; une valeur égale à la taille maximale des
+paquets inhibe ce mécanisme. Vous pouvez aussi positionner ce paramètre sur
 .IR auto ", " fixed " ou " off .
 .br
 .B Exemples :
@@ -239,13 +347,19 @@ ce param
 .I "   iwconfig eth0 rts off"
 .TP
 .BR frag [mentation_threshold]
-La fragmentation permet de découper un paquet IP en une série de plus petits
-fragments transmis par le médium. Dans la plupart des cas, cela ajoute des
+La fragmentation permet de découper un paquet IP en une salve de plus petits
+fragments transmis sur le médium. Dans la plupart des cas, cela ajoute des
 entêtes, mais dans un environnement très bruité, cela réduit les coûts de
-transmission dus aux erreurs et permet aux paquets d'être acheminés malgré
-des séries d'interférences. Ce paramètre fixe la taille de fragment maximale\ ;
-une valeur égale à la taille maximale de paquet désactive ce procédé. Vous
-pouvez aussi mettre ce paramètre à
+transmission dûs aux erreurs et permet aux paquets d'être acheminés malgré
+des salves d'interférences. Ce paramètre fixe la taille de fragment maximale
+qui est toujours inférieure à la taille maximale des paquets.
+.br
+Ce paramètre peut aussi contrôler le «\ Frame Bursting\ » disponible sur
+certaines cartes, capacité à envoyer de multiple paquets IP ensembles. Ce
+mécanisme sera activé si la taille de fragment est plus grande que la taille
+maximale de paquet.
+.br
+Vous pouvez aussi mettre ce paramètre à
 .IR auto ", " fixed " ou " off .
 .br
 .B Exemples :
@@ -258,7 +372,7 @@ pouvez aussi mettre ce param
 Utilisé pour manipuler les clefs de cryptage ou brouillage et le mode de
 sécurité.
 .br
-Pour mettre la clef courante de cryptage, il suffit d'entrer la clef
+Pour configurer la clef courante de cryptage, il suffit d'entrer la clef
 en hexadécimal telle que
 .IR XXXX-XXXX-XXXX-XXXX " ou " XXXXXXXX .
 Pour entrer une autre clef que la clef courante, ajoutez (au début ou à la
@@ -290,7 +404,7 @@ n'accepte que des sessions crypt
 si disponible.
 .br
 Si vous avez besoin de mettre plusieurs clefs, ou de mettre une clef et de
-changer la clef active, vous avez besoin d'utiliser des instructions à clefs
+changer la clef active, vous avez besoin d'utiliser des instructions de clef
 .RB ( "key" )
 multiples. Les arguments peuvent être mis dans n'importe quel ordre, le
 dernier sera prioritaire.
@@ -317,15 +431,18 @@ dernier sera prioritaire.
 Utilisé pour manipuler les paramètres et le mode du procédé de gestion
 d'énergie.
 .br
-Pour fixer la période entre les éveils, entrez la
+Pour fixer la période entre les éveils, entrez
 .IR "period `valeur'" .
 Pour fixer la temporisation avant le retour en veille, entrez la
 .IR "timeout `valeur'" .
+Pour paramétrer le niveau générique de sauvegarde d'énergie, entrez
+.IR "saving `valeur'" .
 Vous pouvez aussi ajouter les modificateurs
 .IR min " et " max ".
 Par défaut, ces valeurs sont exprimées en secondes, ajoutez le suffixe m ou u
 pour spécifier les valeurs en millisecondes ou microsecondes. Parfois, ces
-valeurs sont sans unité (nombre de périodes de beacon, dwell ou similaire).
+valeurs sont sans unité (nombre de périodes de beacon, dwell, pourcentage ou
+similaire).
 .br
 .IR off " et " on
 désactive et réactive la gestion d'énergie. Enfin, vous pouvez mettre la
@@ -346,75 +463,43 @@ broadcast) et
 .br
 .I "   iwconfig eth0 power timeout 300u all"
 .br
+.I "   iwconfig eth0 power saving 3"
+.br
 .I "   iwconfig eth0 power off"
 .br
 .I "   iwconfig eth0 power min period 2 power max period 4"
 .TP
-.BR txpower
-Pour les cartes supportant plusieurs puissances de transmission, règle la
-puissance de transmission en dBm. Si
-.I W
-est la puissance en Watt, la puissance en dBm est
-.IR "P\ =\ 30\ +\ 10.log(W)" .
-Si la valeur est post fixée par
-.IR mW ,
-elle sera automatiquement convertie en dBm.
-.br
-De plus,
-.IR on " et " off
-active et désactive la radio, et
-.IR auto " et " fixed
-active et désactive le contrôle de puissance (si ces fonctions sont
-disponibles).
+.BR modu [lation]
+Force la carte à utiliser un jeu spécifique de modulations. Les cartes modernes
+supportent diverses modulations, certaines étant standards telles 802.11b ou
+802.11g, d'autres étant propriétaires. Cette commande force la carte à utiliser
+seulement le jeu spécifique de modulations listé par la ligne de commande. Ceci
+peut être utilisé pour résoudre des problèmes d'interopérabilité.
+.br
+La liste des modulations disponibles dépend du couple carte/pilote et peut être
+affichée en utilisant
+.IR "iwlist modulation" .
+Notez que certains couples carte/pilote peuvent ne pas être capables de
+sélectionner chaque modulation listée indépandement, certaines intervenant comme
+un groupe. Vous pouvez aussi mettre ce paramètre à
+.IR auto
+pour laisser le couple carte/pilote faire de son mieux.
 .br
 .B Exemples :
 .br
-.I "   iwconfig eth0 txpower 15"
-.br
-.I "   iwconfig eth0 txpower 30mW"
+.I "   iwconfig eth0 modu 11g"
 .br
-.I "   iwconfig eth0 txpower auto"
+.I "   iwconfig eth0 modu CCK OFDMa"
 .br
-.I "   iwconfig eth0 txpower off"
-.TP
-.BR retry
-La plupart des cartes supportent les retransmissions MAC (contrôle d'accès
-au médium), et certaines permettent le paramétrage du mécanisme des tentatives
-(en cas d'échec).
-.br
-Pour fixer le nombre maximum d'essais, entrez
-.IR "limit `valeur'" .
-C'est une valeur absolue (sans unité).
-Pour fixer le temps maximum autorisé au mécanisme MAC pour ses tentatives,
-entrez
-.IR "lifetime `valeur'" .
-Par défaut, cette valeur est en secondes, ajouter le suffixe m ou u pour
-spécifier les valeurs en millisecondes ou microsecondes.
-.br
-Vous pouvez aussi ajouter les modificateurs
-.IR min " et " max ".
-Si la carte supporte le mode automatique, ils définissent les limites du
-lifetime, ou les limites inférieure et supérieure (NDT\ : de l'intervalle
-temporel dans lequel le mécanisme MAC est autorisé à réitérer ses tentatives).
-D'autres cartes définissent des valeurs différentes en fonction de la taille
-des paquets, par exemple la norme 802.11 définit une
-.I min limit
-qui est la limite inférieure d'essai (paquets non RTS/CTS).
-.br
-.B Exemples :
-.br
-.I "   iwconfig eth0 retry 16"
-.br
-.I "   iwconfig eth0 retry lifetime 300m"
-.br
-.I "   iwconfig eth0 retry min limit 8"
+.I "   iwconfig eth0 modu auto"
 .TP
 .BR commit
 Certaines cartes peuvent ne pas appliquer immédiatement les changements
 effectués par les Wireless Extensions (elles peuvent attendre pour prendre en
 compte les changements ou les appliquer seulement quand la carte est montée via
-ifconfig). Cette commande (si disponible) force la carte à appliquer les
-changements en suspens.
+.IR ifconfig ).
+Cette commande (si disponible) force la carte à appliquer les changements en
+suspens.
 .br
 Cela n'est normalement pas nécessaire, car la carte appliquera éventuellement
 les changements, mais peut être utile pour débuggage.
@@ -424,7 +509,7 @@ les changements, mais peut 
 .SH AFFICHAGE
 Pour chaque matériel qui supporte les extensions wireless,
 .I iwconfig
-affiche le nom du
+affichera le nom du
 .B protocole MAC
 utilisé (nom du matériel pour les protocoles propriétaires),
 .RB l' ESSID
@@ -474,7 +559,7 @@ Le param
 .B Access Point
 sera montré comme une cellule
 .RB ( Cell )
-en mode ad hoc (pour des raisons évidentes), mais il fonctionne néanmoins
+en mode ad-hoc (pour des raisons évidentes), mais il fonctionne néanmoins
 de la même manière.
 .PP
 Si
@@ -488,18 +573,18 @@ documentation du pilote pour une interpr
 .B Link quality
 Qualité globale du lien. Peut être basé sur le niveau de contention ou des
 interférences, le taux d'erreur de trame ou de bit, la qualité du signal reçu,
-des synchronisations temporelles, ou autre métrique matérielle. C'est une valeur
-agrégat, et dépend totalement du pilote et du matériel.
+certaines synchronisations temporelles, ou d'autre métrique matérielle. C'est
+une valeur agrégat, et dépend totalement du pilote et du matériel.
 .TP
 .B Signal level
-Force du signal reçu (RSSI - force du signal reçu). Cela peut être des unités
+Force du signal reçu (RSSI - force du signal reçu). Ce peut être des unités
 arbitraires ou des dBm,
 .I iwconfig
-utilise des méta-informations du pilote pour interpréter les valeurs
+utilise les méta-informations du pilote pour interpréter les valeurs
 brutes données par
 .I /proc/net/wireless
-et affiche l'unité ou la valeur maximale correspondante (utilise l'arithmétique
-8 bits). En mode
+et affiche l'unité ou la valeur maximale correspondante (en utilisant
+l'arithmétique 8 bits). En mode
 .I Ad-Hoc
 cela peut être indéfini et vous devriez utiliser
 .IR iwspy .
@@ -525,7 +610,7 @@ un).
 .TP
 .B Tx excessive retries
 Nombre de paquets que la carte n'a pas réussi à envoyer. La plupart des
-protocoles MAC réessaient un certain nombre de fois avant d'abandonner.
+protocoles MAC réessayent un certain nombre de fois avant d'abandonner.
 .TP
 .B invalid misc
 Autres paquets perdus en relation avec les opérations spécifiques au sans fil.
@@ -544,7 +629,7 @@ Jean Tourrilhes \- jt@hpl.hp.com
 .\" TRADUCTION part
 .\"
 .SH TRADUCTION
-Maxime CHARPENNE, août 2004 (wireless_tools.27-pre25).
+Maxime CHARPENNE, octobre 2007 (wireless_tools.30-pre3).
 .\"
 .\" AVERTISSEMENT part
 .\"
similarity index 84%
rename from wireless_tools/fr/iwevent.8
rename to wireless_tools/fr.ISO8859-1/iwevent.8
index d287c8a..d29b895 100644 (file)
@@ -7,6 +7,9 @@
 .\" Manuel identique pour la version 27-pre9 (beta)
 .\" Mise à jour 2004/02/26 : version 27-pre11 (alpha)
 .\" Mise à jour 2004/08/23 : version 27-pre25
+.\" Mise à jour 2007/08    : version 29-pre21
+.\" Mise à jour 2007/10    : version 30-pre1
+.\" Mise à jour 2007/10/29 : version 30-pre3
 .\"
 .TH IWEVENT 8 "23 juin 2004" "net-tools" "Manuel du Programmeur Linux"
 .\"
@@ -26,7 +29,7 @@ pilotes et les changements de param
 .\"
 .SH DESCRIPTION
 .B iwevent
-affiche les «\ Wireless Events\ » (événements du système Wireless) reçu par le
+affiche les «\ Wireless Events\ » (événements du système Wireless) reçus par le
 socket RTNetlink. Chaque ligne affiche le Wireless Event spécifique qui décrit
 ce qui s'est passé sur l'interface sans fil spécifiée.
 .br
@@ -58,14 +61,14 @@ suivants\ :
 .br
 Tous ces événements seront générer sur toutes les interfaces sans fil par le
 sous-système «\ wireless\ » du noyau (mais seulement si le pilote a été converti
-àl'API du nouveau pilote).
 l'API du nouveau pilote).
 .PP
 La deuxième classe d'événements concerne ceux générés par le matériel, lorsque
 quelque chose arrive ou qu'une tâche s'est terminée. Ces événements incluent\ :
 .TP
 .B New Access Point/Cell address
-L'interface a joint un nouveau point d'accès ou cellule ad hoc, ou perdu son
-association avec. Il s'agit de la même adresse MAC affiché par
+L'interface a joint un nouveau Point d'Accès ou Cellule Ad-Hoc, ou a perdu son
+association avec un de ces derniers. Il s'agit de la même adresse affichée par
 .BR iwconfig .
 .TP
 .B Scan request completed
@@ -85,12 +88,12 @@ r
 .TP
 .B Registered node
 L'interface a réussi à enregistrer un nouveau client/paire sans fil. Sera
-généré la plupart du temps quand l'interface agit comme un point d'accès (mode
-master).
+généré la plupart du temps quand l'interface agit comme un Point d'Accès (mode
+Master).
 .TP
 .B Expired node
 L'enregistrement d'un client/paire sur cette interface a expiré. Sera généré la
-plupart du temps quand l'interface agit comme un point d'accès (mode master).
+plupart du temps quand l'interface agit comme un Point d'Accès (mode Master).
 .TP
 .B Spy threshold crossed
 La force du signal pour une des adresses de la «\ spy list\ » (NDT\ : voir
@@ -98,7 +101,7 @@ iwspy(8)) est pass
 haut.
 .PP
 La plupart des pilotes wireless génèrent seulement un sous-ensemble de ces
-événements, pas tous, la liste exacte dépendant de la combinaison spécifique
+événements, pas tous. La liste exacte dépend de la combinaison spécifique
 matériel/pilote. Veuillez consulter la documentation du pilote pour les détails
 de ce qui les génèrent, et utilisez
 .IR iwlist (8)
@@ -112,7 +115,7 @@ Jean Tourrilhes \- jt@hpl.hp.com
 .\" TRADUCTION part
 .\"
 .SH TRADUCTION
-Maxime CHARPENNE, août 2004 (wireless_tools.27-pre25).
+Maxime CHARPENNE, octobre 2007 (wireless_tools.30-pre3).
 .\"
 \" AVERTISSEMENT part
 .\"
similarity index 91%
rename from wireless_tools/fr/iwgetid.8
rename to wireless_tools/fr.ISO8859-1/iwgetid.8
index 3512ddb..c39b547 100644 (file)
@@ -8,6 +8,9 @@
 .\" Mise à jour 2004/01/29 : version 27-pre9 (beta)
 .\" Manuel identique pour la version 27-pre11 (alpha)
 .\" Mise à jour 2004/08/23 : version 27-pre25
+.\" Manuel identique pour la version 29-pre21
+.\" Manuel identique pour la version 30-pre1
+.\" Manuel identique pour la version 30-pre3
 .\"
 .TH IWGETID 8 "02 décembre 2003" "wireless-tools" "Manuel du Programmeur Linux"
 .\"
@@ -84,7 +87,7 @@ Affiche l'adresse MAC du
 .I Point d'Access
 ou de la
 .I Cellule
-sans fil.
+Wireless.
 .TP
 .B --freq
 Affiche la
@@ -94,10 +97,10 @@ ou le
 courant utilisé par l'interface.
 .TP
 .B --channel
-Affiche le canal
-.RI ( channel )
+Affiche le
+.IR canal " (" channel )
 courant utilisé par l'interface. Le canal est déterminé en utilisant la
-fréquence courante et la liste de fréquence fournie par l'interface.
+fréquence courante et la liste de fréquences fournie par l'interface.
 .TP
 .B --mode
 Affiche le
@@ -118,7 +121,7 @@ Wireless Extension doivent avoir.
 .\" TRADUCTION part
 .\"
 .SH TRADUCTION
-Maxime CHARPENNE, août 2004 (wireless_tools.27-pre25).
+Maxime CHARPENNE, octobre 2007 (wireless_tools.30-pre3).
 .\"
 \" AVERTISSEMENT part
 .\"
similarity index 59%
rename from wireless_tools/fr/iwlist.8
rename to wireless_tools/fr.ISO8859-1/iwlist.8
index 26eb5c2..d924eac 100644 (file)
@@ -7,8 +7,11 @@
 .\" Mise à jour 2004/01/29 : version 27-pre9 (beta)
 .\" Manuel identique pour la version 27-pre11 (alpha)
 .\" Mise à jour 2004/08/23 : version 27-pre25
+.\" Mise à jour 2007/09    : version 29-pre21
+.\" Mise à jour 2007/10    : version 30-pre1
+.\" Mise à jour 2007/10/29 : version 30-pre3
 .\"
-.TH IWLIST 8 "23 juin 2004" "wireless-tools" "Manuel du Programmeur Linux"
+.TH IWLIST 8 "13 avril 2006" "wireless-tools" "Manuel du Programmeur Linux"
 .\"
 .\" NAME part
 .\"
@@ -18,21 +21,29 @@ iwlist \- Obtient plus d'informations wireless d
 .\" SYNOPSIS part
 .\"
 .SH SYNOPSIS
-.BI "iwlist " interface " scanning"
+.BI "iwlist [" interface "] scanning"
 .br
-.BI "iwlist " interface " frequency"
+.BI "iwlist [" interface "] frequency"
 .br
-.BI "iwlist " interface " rate"
+.BI "iwlist [" interface "] rate"
 .br
-.BI "iwlist " interface " key"
+.BI "iwlist [" interface "] keys"
 .br
-.BI "iwlist " interface " power"
+.BI "iwlist [" interface "] power"
 .br
-.BI "iwlist " interface " txpower"
+.BI "iwlist [" interface "] txpower"
 .br
-.BI "iwlist " interface " retry"
+.BI "iwlist [" interface "] retry"
 .br
-.BI "iwlist " interface " event"
+.BI "iwlist [" interface "] event"
+.br
+.BI "iwlist [" interface "] auth"
+.br
+.BI "iwlist [" interface "] wpakeys"
+.br
+.BI "iwlist [" interface "] genie"
+.br
+.BI "iwlist [" interface "] modulation"
 .br
 .BI "iwlist --help"
 .br
@@ -44,7 +55,7 @@ iwlist \- Obtient plus d'informations wireless d
 .B Iwlist
 est utilisé pour afficher de l'information additionnelle d'une interface réseau
 wireless qui n'est pas affichée par
-.IR iwconfig (8)
+.IR iwconfig (8).
 L'argument principal est utilisé pour sélectionner une catégorie d'information,
 .B iwlist
 affiche dans une forme détaillée toute information relative à cette catégorie,
@@ -63,29 +74,35 @@ supporte.
 .br
 Le «\ Triggering scanning\ » est une opération nécessitant les privilèges
 de
-.I root
-et les utilisateurs normaux peuvent juste lire les résultats («\ letf-over scan
-results\ »). Par défaut, les paramètres courants du pilote auront une grande
-incidence sur la manière dont le scan est réalisé (la boucle du scan). Aussi,
-cette commande est supposée prendre des arguments supplémentaires pour contrôler
-le comportement du scan, mais cela n'est actuellement pas implémenté.
+.IR root
+uniquement et les utilisateurs normaux peuvent juste lire les résultats
+(«\ letf-over scan results\ »). Par défaut, la manière dont le scan est
+réalisé (la boucle du scan) dépend de la carte et de ses paramètres.
+.br
+Cette commande prend des arguments optionnels bien que la plupart des pilotes
+les ignoreront. L'option
+.B essid
+est utilisée pour appliquer le scan sur un ESSID donné. L'option
+.B last
+ne déclenche pas de scan et lit les résultats du scan («\ letf-over scan
+results\ »).
 .TP
 .BR freq [uency]/ channel
 Donne la liste des fréquences disponibles du périphérique et le nombre de canaux
 définis. Veuillez noter que, habituellement, le pilote retourne le nombre total
 de canaux et seulement les fréquences disponibles dans la région considérée,
-donc il n'y a pas correspondance entre le nombre de fréquences affichées et le
-nombre de canaux.
+donc il n'y a pas correspondance directe entre le nombre de fréquences
+affichées et le nombre de canaux.
 .TP
 .BR rate / bit [rate]
 Liste les débits supportés par le périphérique (en b/s).
 .TP
-.BR key / enc [ryption]
-Liste les tailles des clefs de cryptage supportées et affiche toutes
-les clefs de cryptage disponibles dans le périphérique.
+.BR keys / enc [ryption]
+Liste les tailles des clefs de cryptage supportées et liste toutes
+les clefs de cryptage paramétrées dans le périphérique.
 .TP
 .B power
-Liste les divers attributs et modes d'économie d'énergie («\ Power
+Liste les différents attributs et modes d'économie d'énergie («\ Power
 Management\ ») du périphérique.
 .TP
 .B txpower
@@ -114,14 +131,31 @@ pilote pour plus de d
 .B event
 Liste les événements wireless supportés par le périphérique.
 .TP
+.B auth
+Liste les paramètres courants de l'authentification WPA.
+.TP
+.BR wpa [keys]
+Liste toutes les clefs de cryptage WPA paramétrées dans le matériel.
+.TP
+.B genie
+Liste les éléments génériques d'information («\ Generic Information Elements\ »)
+paramétrés dans le matériel (utilisés pour le support WPA).
+.TP
+.BR modu [lation]
+Liste les modulations supportées par le matériel et les modulations actuellement
+activées.
+.TP
 .B --version
-Affiche la version des outils, ainsi que la version courante et recommandée des
-Wireless Extensions pour l'outil et les diverses interfaces sans fil.
+Affiche la version des outils, ainsi que les versions courante et recommandée
+des Wireless Extensions pour l'outil et les diverses interfaces sans fil.
+.TP
+.B --help
+Affiche un court message d'aide.
 .\"
 .\" TRADUCTION part
 .\"
 .SH TRADUCTION
-Maxime CHARPENNE, août 2004 (wireless_tools.27-pre25).
+Maxime CHARPENNE, octobre 2007 (wireless_tools.30-pre3).
 .\"
 \" AVERTISSEMENT part
 .\"
similarity index 76%
rename from wireless_tools/fr/iwpriv.8
rename to wireless_tools/fr.ISO8859-1/iwpriv.8
index 5df5220..c3d9c60 100644 (file)
@@ -3,9 +3,12 @@
 .\"
 .\" Traduction 2003/08/17 Maxime CHARPENNE (voir
 .\" http://www.delafond.org/traducmanfr/)
-.\" 1ère traduction     : version 26
-.\" Manuel identique pour version 27-pre9 (beta)
-.\" Manuel identique pour version 27-pre11 (alpha)
+.\" 1ère traduction        : version 26
+.\" Manuel identique pour la version 27-pre9 (beta)
+.\" Manuel identique pour la version 27-pre11 (alpha)
+.\" Mise à jour 2007/09    : version 29-pre21
+.\" Mise à jour 2007/10    : version 30-pre1
+.\" Mise à jour 2007/10/29 : version 30-pre3
 .\"
 .TH IWPRIV 8 "31 octobre 1996" "net-tools" "Manuel du programmeur Linux"
 .\"
@@ -20,15 +23,11 @@ sans fil
 .SH SYNOPSIS
 .BI "iwpriv [" interface ]
 .br
-.BI "iwpriv " "interface private-command " "[" private-parameters ]
+.BI "iwpriv " "interface commande-privée " "[" paramètres-privés ]
 .br
-.BI "iwpriv " "interface private-command [I] " "[" private-parameters ]
+.BI "iwpriv " "interface commande-privée " [ I "] [" paramètres-privés ]
 .br
 .BI "iwpriv " interface " --all"
-.br
-.BI "iwpriv " interface " roam " {on,off}
-.br
-.BI "iwpriv " interface " port " {ad-hoc,managed,N}
 .\"
 .\" DESCRIPTION part
 .\"
@@ -55,10 +54,10 @@ ces commandes sp
 .\"
 .SH PARAMÈTRES
 .TP
-.IR private-command " [" private-parameters ]
+.IR commande-privée " [" paramètres-privés ]
 Exécute la
-.I private-command
-(commande privée) spécifiée sur l'interface.
+.I commande-privée
+spécifiée sur l'interface.
 .br
 La commande peut éventuellement prendre ou nécessiter des arguments, et peut
 afficher de l'information. En conséquent, les paramètres de la ligne de
@@ -68,11 +67,10 @@ aux besoins de la commande. La liste des commandes que
 affiche (quand il est appelé sans paramètre) doit vous donner des indications
 sur ces paramètres.
 .br
-Cependant, vous devriez vous reporter à la documentation du pilote du
-périphérique pour utiliser les commandes correctement, ainsi que connaître
-leurs effets.
+Cependant, vous devriez vous reporter à la documentation du pilote du matériel
+pour utiliser les commandes correctement et connaître leurs effets.
 .TP
-.I "private-command [I]" "[" private-parameters ]
+.IR "commande-privée " [ I "] [" paramètres-privés ]
 Idem, sauf que
 .I I
 (un entier) est passé à la commande en tant que
@@ -84,19 +82,6 @@ pr
 .BR -a / --all
 Exécute et affiche toutes les commandes privées qui ne prennent aucun argument
 (c.-à-d. en lecture seule).
-.TP
-.B roam
-Active ou désactive le «\ roaming\ », s'il est supporté. Appelle la commande
-privée
-.IR setroam .
-Trouvé dans le pilote
-.I wavelan_cs
-.TP
-.B port
-Lit ou configure le type de port. Appelle les commandes privées
-.IR gport_type ", " sport_type ", " get_port " ou " set_port
-trouvées dans les pilotes
-.IR wavelan2_cs " et " wvlan_cs .
 .\"
 .\" DISPLAY part
 .\"
@@ -132,7 +117,7 @@ Jean Tourrilhes \- jt@hpl.hp.com
 .\" TRADUCTION part
 .\"
 .SH TRADUCTION
-Maxime CHARPENNE, août 2003.
+Maxime CHARPENNE, octobre 2007 (wireless_tools.30-pre3).
 .\"
 \" AVERTISSEMENT part
 .\"
similarity index 70%
rename from wireless_tools/fr/iwspy.8
rename to wireless_tools/fr.ISO8859-1/iwspy.8
index 3bd4e15..ea42fad 100644 (file)
@@ -6,18 +6,22 @@
 .\" 1ère traduction        : version 26
 .\" Manuel identique pour la version 27-pre9 (beta)
 .\" Manuel identique pour la version 27-pre11 (alpha)
+.\" Manuel identique pour la version 27-pre11 (alpha)
+.\" Mise à jour 2007/09    : version 29-pre21
+.\" Mise à jour 2007/10    : version 30-pre1
+.\" Mise à jour 2007/10/29 : version 30-pre3
 .\"
 .TH IWSPY 8 "31 octobre 1996" "net-tools" "Manuel du Programmeur Linux"
 .\"
 .\" NAME part
 .\"
 .SH NOM
-iwspy \- Obtenir des statistiques wireless depuis des n½uds donnés
+iwspy \- Obtenir des statistiques wireless depuis des noeuds donnés
 .\"
 .\" SYNOPSIS part
 .\"
 .SH SYNOPSIS
-.BI "iwspy " interface
+.BI "iwspy [" interface ]
 .br
 .BI "iwspy " interface " [+] " DNSNAME " | " IPADDR " | " HWADDR " [...]"
 .br
@@ -31,17 +35,22 @@ iwspy \- Obtenir des statistiques wireless depuis des n
 .\"
 .SH DESCRIPTION
 .B Iwspy
-est utilisé pour fixer une liste d'adresses sur une interface réseau sans fil,
-et obtenir des informations sur la qualité du lien pour chacune d'elles. Ces
-informations sont les mêmes que celles disponibles dans
+est utilisé pour fixer une liste d'adresses à surveiller sur une interface
+réseau sans fil, et obtenir des informations sur la qualité du lien pour
+chacune d'elles. Ces informations sont les mêmes que celles disponibles dans
 .IR /proc/net/wireless "\ :"
 qualité du lien, force du signal et niveau du bruit.
 .PP
 Ces informations sont mises à jour à chaque fois qu'un nouveau paquet est reçu,
 donc chaque adresse de la liste ajoute quelques précisions en plus.
 .PP
-Remarquez que cette fonctionnalité ne marche que pour les n½uds faisant partie
-des cellules sans fil courantes.
+Remarquez que cette fonctionnalité ne marche que pour les noeuds faisant partie
+de la cellule sans fil courante, vous ne pouvez pas surveiller un Point d'Accès
+avec lequel vous n'êtes pas associé (utiliser Scanning pour ça), ni les noeuds
+dans d'autres cellules. En mode Managed, les paquets sont souvent relayés par
+le Point d'Accès et, dans ce cas, vous obtiendrez la force du signal du Point
+d'Accès. Pour ces raisons cette fonctionnalité est surtout utile pour les
+modes Ad-Hoc et Master.
 .\"
 .\" PARAMETER part
 .\"
@@ -50,7 +59,7 @@ Vous pouvez fixer jusqu'
 .TP
 .BR DNSNAME " | " IPADDR
 Paramètre une adresse IP, ou dans certains cas un nom DNS (en utilisant le
-«\ resolver\ Â» de nom). Comme le matériel fonctionne avec des adresses
+«\ resolver\ » de nom). Comme le matériel fonctionne avec des adresses
 matérielles,
 .B iwspy
 traduira les adresses IP grâce à
@@ -62,8 +71,8 @@ Dans certains cas, cette adresse peut ne pas 
 vers ces noms/adresses et réessayer.
 .TP
 .B HWADDR
-Paramètre une adresse matérielle (MAC) (cette adresse n'est pas traduite et
-vérifer comme le sont les adresses IP). L'adresse doit contenir deux-points
+Paramètre une adresse matérielle (MAC) (cette adresse n'est pas traduite ni
+vérifée comme le sont les adresses IP). L'adresse doit contenir deux-points
 .RB ( : )
 pour être reconnue comme une adresse matérielle.
 .TP
@@ -74,7 +83,7 @@ utilisateur devrait utiliser cette option pour 
 .TP
 .B off
 Enlève la liste d'adresses courante et désactive la fonctionnalité de
-scrutation.
+surveillance.
 .TP
 .B setthr
 Fixe les seuils de force de signal
@@ -113,4 +122,3 @@ avec le programme.
 .BR iwevent (8),
 .BR iwpriv (8),
 .BR wireless (7).
-
similarity index 87%
rename from wireless_tools/fr/wireless.7
rename to wireless_tools/fr.ISO8859-1/wireless.7
index 63aa8f3..9d993cb 100644 (file)
@@ -5,7 +5,11 @@
 .\" http://www.delafond.org/traducmanfr/)
 .\" 1ère traduction        : version 27-pre11 (alpha)
 .\" Mise à jour 2004/08/24 : version 27-pre25
-.TH WIRELESS 7 "04 mars 2004" "wireless-tools" "Manuel du Programmeur Linux"
+.\" Manuel identique pour la version 29-pre21
+.\" Manuel identique pour la version 30-pre1
+.\" Manuel identique pour la version 30-pre3
+.\"
+.TH WIRELESS 7 "4 mars 2004" "wireless-tools" "Manuel du Programmeur Linux"
 .\"
 .\" NAME part
 .\"
@@ -29,19 +33,17 @@ sont une API vous permettant de manipuler les interfaces r
 Ils sont composés d'une gamme d'outils et de fichiers de configuration. Ils sont
 plus amplement détaillés dans le Linux Wireless LAN Howto.
 .br
-Les
-.B Wireless Tools
+.RB Les " Wireless Tools"
 sont utilisés pour changer la configuration des interfaces réseau LAN wireless
 à la volée, pour obtenir leur configuration courante, pour avoir des
 statistiques et pour les diagnostiquer. Ils sont décrits dans leur propre page
 man, voir ci-dessous pour les références.
 .br
-La
-.B configuration Wireless
+.RB La " configuration Wireless"
 est propre à chaque distribution Linux. Cette page man contiendra à l'avenir
 la procédure de configuration pour quelques distributions les plus communes.
-(quand j'en ai les informations nécessaires). Pour le moment, consultez le
-fichier DISTRIBUTIONS.txt inclus avec le paquetage Wireless Tools.
+Pour le moment, consultez le fichier DISTRIBUTIONS.txt inclus avec le paquetage
+Wireless Tools.
 .\"
 .\" DEBIAN 3.0 part
 .\"
@@ -126,7 +128,7 @@ Jean Tourrilhes \- jt@hpl.hp.com
 .\" TRADUCTION part
 .\"
 .SH TRADUCTION
-Maxime CHARPENNE, août 2004 (wireless-tools.27-pre25).
+Maxime CHARPENNE, octobre 2007 (wireless-tools.30-pre3).
 .\"
 .\" AVERTISSEMENT part
 .\"
diff --git a/wireless_tools/fr.UTF-8/ifrename.8 b/wireless_tools/fr.UTF-8/ifrename.8
new file mode 100644 (file)
index 0000000..fc54531
--- /dev/null
@@ -0,0 +1,218 @@
+.\" Jean II - HPL - 2004-2007
+.\" ifrename.8
+.\"
+.\" Traduction 2004/08/25 Maxime CHARPENNE (voir
+.\" http://www.delafond.org/traducmanfr/)
+.\" 1ère traduction        : version 27-pre25
+.\" mise à jour 2007/08    : version 29-pre21
+.\" mise à jour 2007/10    : version 30-pre1
+.\" Mise à jour 2007/10/29 : version 30-pre3
+.\"
+.TH IFRENAME 8 "26 février 2007" "wireless-tools" "Manuel du programmeur Linux"
+.\"
+.\" NAME part
+.\"
+.SH NOM
+ifrename \- renomme les interfaces réseau basées sur différents critères
+statiques
+.\"
+.\" SYNOPSIS part
+.\"
+.SH SYNOPSIS
+.B "ifrename [-c fichierconfig] [-p] [-d] [-u] [-v] [-V] [-D] [-C]"
+.br
+.B "ifrename [-c fichierconfig] [-i interface] [-n nouveaunom]"
+.\"
+.\" DESCRIPTION part
+.\"
+.SH DESCRIPTION
+.B Ifrename
+est un outil vous permettant d'assigner un nom cohérent à chacune de vos
+interfaces réseau.
+.PP
+Par défaut, les noms d'interface sont dynamiques, et à chaque interface réseau
+est assigné le premier nom disponible
+.RI ( eth0 ", " eth1 "...)."
+L'ordre dans lequel les interfaces réseau sont créées peut varier. Pour les
+interfaces internes («\ built-in interfaces\ »), l'énumération du noyau au
+démarrage peut varier. Pour les interfaces amovibles, l'utilisateur peut les
+brancher dans n'importe quel ordre.
+.PP
+.B Ifrename
+permet à l'utilisateur de décider quel nom une interface réseau aura.
+.B Ifrename
+peut utiliser différents
+.I sélecteurs
+.RI "(«\ " selectors "\ »)"
+pour spécifier comment les noms d'interface correspondent aux interfaces réseau
+du système, le plus commun des sélecteurs étant
+.RI "l'" "adresse MAC"
+de l'interface.
+.PP
+.B Ifrename
+doit être lancé avant que les interfaces ne soient démarrées, raison pour
+laquelle il est surtout utile dans divers scripts (init, hotplug), mais il est
+rarement utilisé directement par l'utilisateur. Par défaut,
+.B ifrename
+renomme toutes les interfaces système présentes en utilisant les correspondances
+définies dans
+.IR /etc/iftab .
+.\"
+.\" PARAMETER part
+.\"
+.SH PARAMÈTRES
+.TP
+.BI "-c " fichierconfig
+Fixe le fichier de configuration à utiliser (par défaut
+.IR /etc/iftab ).
+Le fichier de configuration définit la correspondance entre les sélecteurs et
+les noms d'interface, et il est décrit dans
+.IR iftab (5).
+.br
+Si
+.I fichierconfig
+est «\ -\ », la configuration est lue depuis stdin.
+.TP
+.B -p
+Sonde (charge) les modules noyau avant de renommer les interfaces (NDT\ :
+.RI "«\ " p "robe\ »"
+en anglais). Par défaut,
+.B ifrename
+vérifie seulement les interfaces déjà chargées, et ne charge pas
+automatiquement les modules noyau requis. Cette option autorise une intégration
+en douceur dans les systèmes qui ne chargent pas les modules avant d'appeler
+.BR ifrename .
+.TP
+.B -d
+Active divers bidouillages spécifiques à la
+.BR Debian .
+Combiné avec
+.BR -p ,
+seuls les modules pour les interfaces spécifiées dans
+.I /etc/network/interface
+sont chargés.
+.TP
+.BI "-i " interface
+Renomme seulement
+.RI "l'" interface
+spécifiée, par opposition à toutes les interfaces présentes sur le système. Le
+nouveau nom de l'interface est affiché.
+.TP
+.BI "-n " nouveaunom
+Si utilisé avec
+.IR -i ,
+spécifie le nouveau nom de l'interface. La liste des correspondances depuis le
+fichier de configuration est ignorée, l'interface spécifié avec
+.I -i
+est directement renommée en
+.IR nouveaunom .
+Le nouveau nom peut être un joker («\ wildcard\ ») qui contient une seule '*'.
+.br
+Si utilisé sans
+.IR -i ,
+renomme les interfaces en utilisant seulement les correspondances qui les
+renommeraient en
+.IR nouveaunom .
+Le nouveau nom ne peut pas être un joker. Cette utilisation de ifrename est
+déconseillée car inefficace
+.RI ( -n " sans " -i ).
+Toutes les interfaces du système ont besoin d'être traitée à chaque invocation,
+donc dans la plupart des cas il n'est pas plus rapide de simplement laisser
+ifrename les renommer toutes (sans les deux
+.IR -n " et " -i ).
+.TP
+.B -t
+Active le support de l'absorption («\ takover\ ») de nom. Cela permet
+d'échanger un nom d'interface entre deux interfaces ou plus.
+.br
+L'absorption permet à une interface de «\ voler\ » le nom d'une autre
+interface. Cela fonctionne seulement avec le noyau 2.6.X et si l'autre
+interface est désactivée. En conséquence, ce n'est pas compatible avec Hotplug.
+L'autre interface se voit assigner un nom aléatoire, mais peut être renommée
+plus tard avec
+.BR ifrename .
+.br
+Le nombre d'absorptions est limité pour éviter les boucles circulaires, et donc
+certaines situations d'échanges de noms complexes ne seront pas complètement
+traitées.
+.br
+Dans tous les cas, l'échange de noms et l'utilisation de cette caractéristique
+sont découragés, et vous êtes invités à choisir des noms uniques et sans
+ambiguïté pour vos interfaces...
+.TP
+.B -u
+Active le mode de sortie
+.IR udev .
+Cela permet une intégration propre de
+.B ifrename
+dans le framework
+.IR udev ,
+.BR udevd (8)
+utilisera
+.B ifrename
+pour assigner les noms d'interfaces présents dans
+.IR /etc/iftab .
+Dans ce mode, la sortie de ifrename peut être analysée («\ parsed\ »)
+directement par
+.BR udevd (8)
+en tant qu'une action IMPORT. Cela nécessite la version 107 ou plus de
+.IR udev .
+.TP
+.B -D
+Mode «\ dry-run\ ». Ifrename ne changera aucune interface et affichera seulement
+les nouveaux noms d'interface, si applicable, et sortira.
+.br
+Dans le mode «\ dry-run\ », le nom joker d'interface est résolu. Le nouveau nom
+d'interface est affiché, même s'il est identique à l'ancien.
+.br
+Faire aussi attention que certains sélecteurs peuvent seulement être lus par
+root, (par exemple ceux basés sur
+.BR ethtool ),
+et ifrename échouera en silence s'il est lancé par un utilisateur normal. En
+d'autres termes, le mode «\ dry-run\ » lancé par un utilisateur standard ne
+donnera pas forcément le résultat attendu.
+.TP
+.B -V
+Mode verbeux. Ifrename affichera  les résultats de l'analyse de son fichier de
+configuration et de l'interrogation des séleceurs d'interfaces. Combiné avec
+l'option
+.RI "«\ " dry-run "\ »,"
+c'est une bonne manière de déboguer des configurations
+complexes ou des problèmes triviaux.
+.TP
+.B -C
+Compte les interfaces qui correspondent. Affiche le nombre d'interfaces
+qui correspondent et le retourne comme code retour de ifrename.
+.br
+Le nombre d'interfaces qui correspondent est le nombre d'interfaces du système
+pour lesquelles un lien a été trouvé dans le fichier de config (qui est
+différent du numéro de l'interface renommée).
+.\"
+.\" AUTHOR part
+.\"
+.SH AUTEUR
+Jean Tourrilhes \- jt@hpl.hp.com
+.\"
+.\" TRADUCTION part
+.\"
+.SH TRADUCTION
+Maxime CHARPENNE, octobre 2007 (wireless_tools.30-pre3).
+.\"
+.\" AVERTISSEMENT part
+.\"
+.SH AVERTISSEMENT SUR LA TRADUCTION
+Il est possible que cette traduction soit imparfaite ou périmée. En cas de
+doute, veuillez vous reporter au document original en langue anglaise fourni
+avec le programme.
+.\"
+.\" FILES part
+.\"
+.SH FICHIERS
+.I /etc/iftab
+.\"
+.\" SEE ALSO part
+.\"
+.SH VOIR AUSSI
+.BR ifconfig (8),
+.BR ip (8),
+.BR iftab (5).
diff --git a/wireless_tools/fr.UTF-8/iftab.5 b/wireless_tools/fr.UTF-8/iftab.5
new file mode 100644 (file)
index 0000000..2790045
--- /dev/null
@@ -0,0 +1,334 @@
+.\" Jean II - HPL - 2004-2007
+.\" iftab.5
+.\"
+.\" Traduction 2004/08/25 Maxime CHARPENNE (voir
+.\" http://www.delafond.org/traducmanfr/)
+.\" 1ère traduction        : version 27-pre25
+.\" Mise à jour 2007/09    : version 29-pre21
+.\" Mise à jour 2007/10    : version 30-pre1
+.\" Mise à jour 2007/10/29 : version 30-pre3
+.\"
+.TH IFTAB 5 "26 février 2007" "wireless-tools" "Manuel du Programmeur Linux"
+.\"
+.\" NAME part
+.\"
+.SH NOM
+iftab \- informations statiques sur les interfaces réseau
+.\"
+.\" DESCRIPTION part
+.\"
+.SH DESCRIPTION
+Le fichier
+.B /etc/iftab
+contient de l'information descriptive à propos des diverses interfaces réseau.
+.B iftab
+n'est utilisé que par le programme
+.IR ifrename (8)
+pour assigner un nom d'interface réseau cohérent à chaque interface réseau.
+.PP
+.B /etc/iftab
+définit un ensemble de
+.IR correspondances " («\ " mappings "\ »)."
+Chaque correspondance contient un nom d'interface et un ensemble de sélecteurs
+(«\ selectors\ »). Les sélecteurs permettent à
+.B ifrename
+d'identifier chaque interface réseau du système. Si une interface réseau
+correspond à tous les descripteurs d'une correspondance,
+.B ifrename
+essaye de changer le nom de l'interface par le nom de l'interface donné dans la
+correspondance.
+.\"
+.\" MAPPINGS part
+.\"
+.SH CORRESPONDANCES («\ MAPPINGS\ »)
+Chaque correspondance est décrite sur une ligne distincte, elle commence avec
+.IR "interface name" " (nom d'interface),"
+et contient un ensemble de
+.RI "descripteurs («\ " descriptors "\ »),"
+séparés par des espaces ou des tabulations.
+.PP
+La relation entre les descripteurs d'une correspondance est un
+.IR "et logique" .
+Une correspondance s'applique à une interface réseau seulement si tous les
+descripteurs s'appliquent. Si une interface réseau ne supporte pas un
+descripteur particulier, elle ne s'appliquera à aucune correspondance qui
+utilise ce descripteur.
+.PP
+Si vous voulez utiliser des descripteurs alternatifs pour un nom d'interface
+(ou logique), spécifiez deux correspondances différentes avec le même nom
+d'interface (une par ligne).
+.B Ifrename
+utilise toujours la première correspondance en commençant par la
+.I fin
+de
+.BR iftab ,
+donc les correspondances les plus restrictives devraient être définies en
+dernier.
+.\"
+.\" INTERFACE NAME part
+.\"
+.SH NOM D'INTERFACE
+La première partie de chaque correspondance est un nom d'interface. Si une
+interface réseau correspond à tous les descripteurs d'une correspondance,
+.B ifrename
+essaye de changer le nom de l'interface par le nom de l'interface donné dans la
+correspondance.
+.PP
+Le nom de l'interface d'une correspondance est soit un nom d'interface complet
+(comme
+.IR eth2 " ou " wlan1 )
+soit un motif de nom d'interface contenant un seul caractère joker (comme
+.IR eth* " ou " wlan* ).
+Dans le cas d'un caractère joker («\ wildcard\ »), le noyau remplace le
+caractère '*' par le plus petit entier disponible faisant un nom d'interface
+unique. Le caractère joker est supporté seulement pour les noyaux 2.6.1 et
+2.4.30 et plus.
+.PP
+Il est déconseillé d'essayer de faire correspondre des interfaces à des noms
+d'interface par défaut tels que
+.IR eth0 ", " wlan0 " or " ppp0 .
+Le noyau les utilise comme nom par défaut pour toute nouvelle interface,
+il est donc très probable qu'une interface portant ce nom existe déjà et
+empêche ifrename de les utiliser. Même si vous utilisez ces noms, l'interface
+peut déjà être active dans certains cas. Ne pas utiliser ces noms permettra de
+détecter sur le champ les interfaces non configurées ou les nouvelles
+interfaces.
+.br
+Les bons noms sont uniques et significatifs, comme
+.IR mondsl " or " hubprive ,
+ou utilisez de plus grand nombre entier, comme
+.IR eth5 " or " wlan5 .
+Le second type est habituellement plus facile à intégrer dans divers
+utilitaires réseau.
+.\"
+.\" DESCRIPTORS part
+.\"
+.SH DESCRIPTEURS («\ DESCRIPTORS\ »)
+Chaque descripteur est composé d'un nom de descripteur et d'une valeur de
+descripteur. Les descripteurs spécifie un attribut statique d'une interface
+réseau, le but étant d'identifier de manière unique chaque matériel.
+.PP
+La plupart des utilisateurs n'utiliseront que le sélecteur
+.BR mac ,
+malgré ses problèmes potentiels, d'autres sélecteurs conviennent à des
+paramétrages plus spécialisés. La plupart des sélecteurs acceptent '*' dans la
+valeur du sélecteur pour correspondance joker, et la plupart des sélecteurs
+sont indifférents à la casse des caractères.
+.TP
+.BI mac " adresse mac"
+Correspond à l'Adresse MAC de l'interface avec l'adresse MAC spécifiée.
+L'adresse MAC de l'interface peut être montrée en utilisant
+.IR ifconfig (8)
+ou
+.IR ip (8).
+.br
+C'est le plus commun des sélecteurs, vu que chaque interface possède une
+adresse MAC unique, ce qui permet de les identifier sans ambigüité.
+Malgré tout, certaines interfaces n'ont pas d'adresse MAC valide tant qu'elles
+ne sont pas activées\ ; dans certains cas, utiliser ce sélecteur est pertinent
+ou impossible.
+.TP
+.BI arp " type arp"
+Fait correspondre le Type ARP («\ ARP Type\ ») (aussi appelé «\ Link Type\ »)
+de l'interface avec le type ARP spécifié par un nombre. Le Type ARP de
+l'interface peut être montré en utilisant
+.IR ifconfig (8)
+ou
+.IR ip (8),
+le type
+.B link/ether
+correspond à
+.B 1
+et le type
+.B link/ieee802.11
+correspond à
+.BR 801 .
+.br
+Ce sélecteur est utile quand un pilote crée plusieurs interfaces réseau pour
+une seule carte réseau.
+.TP
+.BI driver " nom de pilote"
+Fait correspondre le Nom de Pilote («\ Driver Name\ ») de l'interface avec le
+nom de pilote spécifié. Le Nom de Pilote de l'interface peut être montré en
+utilisant
+.IR "ethtool -i" (8).
+.TP
+.BI businfo " information de bus"
+Fait correspondre l'Information de Bus («\ Bus Information\ ») de l'interface
+avec l'information de bus spécifiée. L'Information de Bus de l'interface peut
+être montrée en utilisant
+.IR "ethtool -i" (8).
+.TP
+.BI firmware " version firmware "
+Fait correspondre la Version Firmware («\ Firmware Revision\ ») de l'interface
+avec l'information de la version firmware. La Version Firmware de l'interface
+peut être montrée en utilisant
+.IR "ethtool -i" (8).
+.TP
+.BI baseaddress " addresse de base"
+Fait correspondre l'Adresse de Base («\ Base Address\ ») de l'interface avec
+l'adresse de base spécifiée. L'Adresse de Base de l'interface peut être montrée
+en utilisant
+.IR ifconfig (8).
+.br
+Ce sélecteur n'est utile que pour les cartes ISA et EISA car la plupart des
+cartes utilisent l'allocation dynamique pour l'Adresse de Base.
+.TP
+.BI irq " ligne irq"
+Fait correspondre la Ligne IRQ (interruption) de l'interface avec la ligne IRQ
+spécifiée. La Ligne IRQ de l'interface peut être montrée en utilisant
+.IR ifconfig (8).
+.br
+Ce sélecteur n'est habituellement pas suffisant pour identifier de manière
+unique une interface, car les Lignes IRQ peuvent être partagées.
+.TP
+.BI iwproto " protocole wireless"
+Fait correspondre le Protocole Wireless de l'interface avec le protocole
+wireless spécifié. Le Protocole Wireless de l'interface peut être montré
+en utilisant
+.IR iwconfig (8),
+ou
+.IR iwgetid (8).
+.br
+Ce sélecteur n'est valable que pour les interfaces wireless et n'est pas
+suffisant pour en identifier une de manière unique.
+.TP
+.BI pcmciaslot " prise pcmcia "
+Fait correspondre le numéro de Prise Pcmpcia («\ Pcmcia Socket \ ») de
+l'interface. Le numéro de Prise Pcmpcia de l'interface peut être montré en
+utilisant
+.IR "cardctl ident" (8).
+.br
+Ce sélecteur est habituellement supporté pour les cartes 16 bits seulement,
+pour les cartes 32 bits il est conseillé d'utiliser le sélecteur
+.BR businfo .
+.TP
+.BI prevname " nom interface précédent"
+Fait correspondre le nom de l'interface avant qu'elle soit renommée avec
+le nom précédent spécifié.
+.br
+Ce sélecteur devrait être évité car le nom précédent de l'interface peut varier
+en fonction de diverses conditions. Une mise à jour système/noyau/pilote peut
+changer le nom original. Dès lors, ifrename ou un autre utilitaire peut la
+renommer avant l'exécution de ce sélecteur.
+.TP
+.BI SYSFS{ nomfichier } " valeur"
+Fait correspondre le contenu de l'attribut sysfs donné par nomfichier avec la
+valeur spécifiée. Pour les liens symboliques et les répertoires parents, fait
+correspondre le nom réel du répertoire de l'attribut sysfs donné par nomfichier
+avec la valeur spécifiée.
+.br
+Une liste des attributs sysfs les plus utiles est donnée dans la section
+suivante.
+.\"
+.\" SYSFS DESCRIPTORS part
+.\"
+.SH DESCRIPTEURS SYSFS
+Sur la plupart des systèmes, les attributs sysfs pour une carte donnée sont
+situés dans le répertoire nommé après cette interface dans
+.IR /sys/class/net/ .
+La plupart des attributs sysfs sont des fichiers, et leurs valeurs peuvent
+être lues en utilisant
+.IR cat "(1) ou " more (1).
+Il est aussi possible de faire des correspondances dans les attributs des
+sous-répertoires.
+.PP
+Certains attributs sysfs sont des liens symboliques qui pointent vers d'autres
+répertoires sysfs. Si l'attribut nomfichier est un lien symbolique, l'attribut
+sysfs sera résolu avec le nom du répertoire pointé par le lien en utilisant
+.IR readlink (1).
+La localisation du répertoire dans l'arborescence sysfs est importante aussi.
+Si l'attribut nomfichier fini par
+.IR /.. ,
+l'attribut sysfs sera résolu avec le nom réel du répertoire parent en utilisant
+.IR pwd (1).
+.PP
+Le système de fichier sysfs est supporté seulement avec les noyaux 2.6.X et a
+besoin d'être monté (habituellement dans
+.IR /sys ).
+Les sélecteurs sysfs ne sont pas aussi efficaces que les autres sélecteurs, et
+ne devraient donc pas être employés pour le maximum de performance.
+.PP
+Ci-après les attributs sysfs communs et leurs descripteurs ifrename équivalents.
+.TP
+.BI SYSFS{address} " valeur"
+Comme le descripteur
+.BR mac .
+.TP
+.BI SYSFS{type} " valeur"
+Comme le descripteur
+.BR arp .
+.TP
+.BI SYSFS{device} " valeur"
+Valable seulement jusqu'au noyau 2.6.20. Comme le sélecteur
+.BR businfo .
+.TP
+.BI SYSFS{..} " valeur"
+Valable seulement depuis le noyau 2.6.21. Comme le sélecteur
+.BR businfo .
+.TP
+.BI SYSFS{device/driver} " valeur"
+Valable seulement jusqu'au noyau 2.6.20. Comme le sélecteur
+.BR driver .
+.TP
+.BI SYSFS{../driver} " valeur"
+Valable seulement depuis le noyau 2.6.21. Comme le sélecteur
+.BR driver .
+.TP
+.BI SYSFS{device/irq} " valeur"
+Valable seulement jusqu'au noyau 2.6.20. Comme le sélecteur
+.BR irq .
+.TP
+.BI SYSFS{../irq} " valeur"
+Valable seulement depuis le noyau 2.6.21. Comme le sélecteur
+.BR irq .
+.\"
+.\" EXAMPLES part
+.\"
+.SH EXEMPLES
+# Ceci est un commentaire
+.br
+eth2           mac 08:00:09:DE:82:0E
+.br
+eth3           driver wavelan interrupt 15 baseaddress 0x390
+.br
+eth4           driver pcnet32 businfo 0000:02:05.0
+.br
+air*           mac 00:07:0E:* arp 1
+.br
+myvpn   SYSFS{address} 00:10:83:* SYSFS{type} 1
+.br
+bcm*            SYSFS{device} 0000:03:00.0 SYSFS{device/driver} bcm43xx
+.br
+bcm*            SYSFS{..} 0000:03:00.0 SYSFS{../driver} bcm43xx
+.\"
+.\" AUTHOR part
+.\"
+.SH AUTEUR
+Jean Tourrilhes \- jt@hpl.hp.com
+.\"
+.\" TRADUCTION part
+.\"
+.SH TRADUCTION
+Maxime CHARPENNE, octobre 2007 (wireless_tools.30-pre3).
+.\"
+.\" AVERTISSEMENT part
+.\"
+.SH AVERTISSEMENT SUR LA TRADUCTION
+Il est possible que cette traduction soit imparfaite ou périmée. En cas de
+doute, veuillez vous reporter au document original en langue anglaise fourni
+avec le programme.
+.\"
+.\" FILES part
+.\"
+.SH FICHIERS
+.I /etc/iftab
+.\"
+.\" SEE ALSO part
+.\"
+.SH VOIR AUSSI
+.BR ifrename (8),
+.BR ifconfig (8),
+.BR ip (8),
+.BR ethtool (8),
+.BR iwconfig (8).
diff --git a/wireless_tools/fr.UTF-8/iwconfig.8 b/wireless_tools/fr.UTF-8/iwconfig.8
new file mode 100644 (file)
index 0000000..60d9742
--- /dev/null
@@ -0,0 +1,654 @@
+.\" Jean II - HPLB - 1996 => HPL - 2004
+.\" iwconfig.8
+.\"
+.\" Traduction 2003/07/15 Maxime CHARPENNE (voir
+.\" http://www.delafond.org/traducmanfr/)
+.\" 1ère traduction        : version 26
+.\" Mise à jour 2004/01/28 : version 27-pre9 (beta)
+.\" Mise à jour 2004/02/26 : version 27-pre11 (alpha)
+.\" Mise à jour 2004/08/23 : version 27-pre25
+.\" Mise à jour 2007/07    : version 29-pre21
+.\" Mise à jour 2007/10    : version 30-pre1
+.\" Mise à jour 2007/10/29 : version 30-pre3
+.\"
+.TH IWCONFIG 8 "30 mars 2006" "wireless-tools" "Manuel du programmeur Linux"
+.\"
+.\" NAME part
+.\"
+.SH NOM
+iwconfig \- configure une interface réseau sans-fil (wireless)
+.\"
+.\" SYNOPSIS part
+.\"
+.SH SYNOPSIS
+.BI "iwconfig [" interface ]
+.br
+.BI "iwconfig " interface " [essid " X "] [nwid " N "] [mode " M "] [freq " F "]
+.br
+.BI "                   [channel " C "] [sens " S "] [ap " A "] [nick " NN ]
+.br
+.BI "                   [rate " R "] [rts " RT "] [frag " FT "] [txpower " T ]
+.br
+.BI "                   [enc " E "] [key " K "] [power " P "] [retry " R ]
+.br
+.BI "                   [modu " M "] [commit]
+.br
+.BI "iwconfig --help"
+.br
+.BI "iwconfig --version"
+.\"
+.\" DESCRIPTION part
+.\"
+.SH DESCRIPTION
+.B Iwconfig
+est similaire à
+.IR ifconfig (8),
+mais est dédié aux interfaces wireless. Il est utilisé pour positionner les
+paramètres des interfaces réseaux qui sont spécifiques aux opérations wireless
+(par exemple\ : la fréquence).
+.B Iwconfig
+peut aussi être utilisé pour afficher ces paramètres, et les statistiques
+concernant le sans fil (extraites de
+.IR /proc/net/wireless ).
+.PP
+Tous ces paramètres et statistiques dépendent du matériel. Chaque pilote ne
+fournira que quelques uns d'entre eux en fonction du support matériel, et
+l'étendue des valeurs peut changer. Veuillez vous référer aux pages man de
+chaque matériel pour plus de détails.
+.\"
+.\" PARAMETER part
+.\"
+.SH PARAMÈTRES
+.TP
+.B essid
+Positionne le ESSID (ou Network Name - pour certains produits, il peut aussi
+être désigné comme Domain ID). L'ESSID est utilisé pour identifier les cellules
+qui font partie du même réseau virtuel.
+.br
+Par opposition à l'adresse de l'AP (Point d'Accès) ou au NWID qui définissent
+une seule cellule, l'ESSID définit un groupe de cellules connectées via des
+répéteurs ou via l'infrastructure, où l'utilisateur peut errer («\ roamer\ »)
+de manière transprente (c.-à-d. changer de noeud sans perdre sa connexion).
+.br
+Avec certaines cartes, vous pouvez désactiver le contrôle du ESSID («\ ESSID
+promiscuous\ ») avec
+.IR off " ou " any " (et " on
+pour le réactiver).
+.br
+Si le ESSID du réseau est un des mots-clefs spéciaux
+.RI ( off ", " on " ou " any ),
+vous devrez utiliser
+.I --
+pour l'échapper.
+.br
+.B Exemples :
+.br
+.I "   iwconfig eth0 essid any"
+.br
+.I "   iwconfig eth0 essid ""Mon Reseau""
+.br
+.I "   iwconfig eth0 essid -- ""ANY""
+.TP
+.BR nwid
+Positionne le Network ID. Comme tous les réseaux sans fil adjacents partagent
+le même médium, ce paramètre est utilisé pour les différencier (créer des
+réseaux logiques colocalisés) et pour identifier des nœuds appartenant à la
+même cellule.
+.br
+Ce paramètre est seulement utilisé par les matériels antérieurs à 802.11, la
+norme 802.11 se servant du ESSID et de l'adresse de l'AP pour cette fonction.
+.br
+Avec certaines cartes, vous pouvez désactiver le contrôle du Network ID (NWID
+promiscuous) avec
+.IR off " (et " on
+pour le réactiver).
+.br
+.B Exemples :
+.br
+.I "   iwconfig eth0 nwid AB34
+.br
+.I "   iwconfig eth0 nwid off"
+.TP
+.BR nick [name]
+Positionne le surnom (nickname), ou nom de station. Quelques produits
+802.11 le définissent, mais il n'est pas utilisé dans la mesure où les
+protocoles les plus usités (MAC, IP, TCP) ne s'en servent pas en l'état.
+Seuls quelques outils de diagnostic peuvent l'utiliser.
+.br
+.B Exemple :
+.br
+.I "   iwconfig eth0 nickname ""My Linux Node""
+.TP
+.B mode
+Positionne le mode de fonctionnement du matériel, qui dépend de la topologie du
+réseau. Le mode peut être
+.I Ad-Hoc
+(réseau composé d'une seule cellule et sans Point d'Accès),
+.I Managed
+(un nœud se connecte à un réseau composé de plusieurs Points d'Accès, avec
+roaming ou errance),
+.I Master
+(le nœud est le maître qui synchronise ou agit comme un Point d'Accès),
+.I Repeater
+(le nœud transmet les paquets entre les autres nœuds wireless),
+.I Secondary
+(le nœud agit comme un maître/répéteur supplémentaire),
+.I Monitor
+(le nœud agit comme un moniteur passif et ne fait que recevoir des paquets) ou
+.IR Auto .
+.br
+.B Exemple :
+.br
+.I "   iwconfig eth0 mode Managed"
+.br
+.I "   iwconfig eth0 mode Ad-Hoc"
+.TP
+.BR freq / channel
+Positionne la fréquence d'exploitation ou canal du périphérique. Une valeur
+inférieure à 1\ 000 indique un numéro de canal, une valeur supérieure à 1\ 000
+est une fréquence en Hz. Vous pouvez ajouter le suffixe k, M ou G à la valeur
+(par exemple, «\ 2.46G\ » pour la fréquence 2,46\ GHz), ou ajouter suffisamment
+de '0'.
+.br
+Les canaux sont habituellement numérotés à partir de 1, et vous pouvez utiliser
+.IR iwlist (8)
+pour obtenir le nombre total de canaux, lister les fréquences disponibles, et
+afficher la fréquence courante comme un canal. Suivants les réglementations,
+certaines fréquences/canaux peuvent ne pas être disponibles.
+.br
+La plupart du temps lorsque le mode Managed est utilisé, le Point d'Accès
+impose le canal et le pilote refusera le paramètre de la fréquence. Dans le
+mode Ad-Hoc, le paramètre fréquence doit seulement être utilisé à la
+création de la cellule initiale, et doit être ignoré quand on rejoint une
+cellule existante.
+.br
+Vous pouvez aussi utiliser
+.I off
+ou
+.I auto
+pour laisser la carte choisir le meilleur canal (lorsque c'est supporté).
+.br
+.B Exemples :
+.br
+.I "   iwconfig eth0 freq 2422000000"
+.br
+.I "   iwconfig eth0 freq 2.422G"
+.br
+.I "   iwconfig eth0 channel 3"
+.br
+.I "   iwconfig eth0 channel auto"
+.TP
+.B ap
+Force la carte à s'enregistrer auprès du Point d'Accès donné par l'adresse,
+si c'est possible. Cette adresse est l'identité de la cellule du Point
+d'Accès, celle indiqué par un scanning wireless, qui peut être différente de
+son adresse MAC. Si le lien wireless est point-à-point, mettre l'adresse de
+l'autre côté du lien. Si le lien est ad-hoc, mettre l'identité de la cellule
+du réseau ad-hoc.
+.br
+Quand la qualité de la connexion devient trop mauvaise,
+le pilote peut revenir en mode automatique (la carte sélectionne le meilleur
+Point d'Accès à portée).
+.br
+Vous pouvez aussi utiliser
+.I off
+pour réactiver le mode automatique sans changer le Point d'Accès courant,
+ou vous pouvez utiliser
+.I any
+ou
+.I auto
+pour forcer la carte à se ré-associer avec le meilleur Point d'Accès courant.
+.br
+.B Exemple :
+.br
+.I "   iwconfig eth0 ap 00:60:1D:01:23:45"
+.br
+.I "   iwconfig eth0 ap any"
+.br
+.I "   iwconfig eth0 ap off"
+.TP
+.BR rate / bit [rate]
+Pour les cartes supportant plusieurs débits, positionne le débit en b/s. Le
+débit est la vitesse à laquelle les bits sont transmis sur le médium, la
+vitesse du lien pour l'utilisateur est inférieure à cause du partage du
+médium et des diverses entêtes.
+.br
+Vous pouvez ajouter le suffixe k, M ou G à la valeur (multiplicateur
+décimal\ : 10^3, 10^6 et 10^9\ b/s), ou ajouter suffisamment de '0'. Les
+valeurs en-dessous de 1\ 000 sont spécifiques à la carte, habituellement un
+index de la liste des débit supportés. Utilisez
+.I auto
+pour sélectionner le mode débit automatique (repli à un débit moindre pour les
+canaux bruités), ce qui est le mode par défaut pour la plupart des cartes, et
+.I fixed
+pour revenir à des paramètres fixes. Si vous spécifiez une valeur de débit
+et ajoutez
+.IR auto ,
+le driver utilisera tous les débits inférieurs et égaux à cette valeur.
+.br
+.B Exemples :
+.br
+.I "   iwconfig eth0 rate 11M"
+.br
+.I "   iwconfig eth0 rate auto"
+.br
+.I "   iwconfig eth0 rate 5.5M auto"
+.TP
+.BR txpower
+Pour les cartes supportant plusieurs puissances de transmission, règle la
+puissance de transmission en dBm. Si
+.I W
+est la puissance en Watt, la puissance en dBm est
+.IR "P\ =\ 30\ +\ 10.log(W)" .
+Si la valeur est post-fixée par
+.IR mW ,
+elle sera automatiquement convertie en dBm.
+.br
+De plus,
+.IR on " et " off
+active et désactive la radio, et
+.IR auto " et " fixed
+active et désactive le contrôle de puissance (si ces fonctions sont
+disponibles).
+.br
+.B Exemples :
+.br
+.I "   iwconfig eth0 txpower 15"
+.br
+.I "   iwconfig eth0 txpower 30mW"
+.br
+.I "   iwconfig eth0 txpower auto"
+.br
+.I "   iwconfig eth0 txpower off"
+.TP
+.B sens
+Positionne le seuil de sensibilité. Cela définie comment la carte est sensible
+aux mauvaises conditions de fonctionnement (signal faible, interférence). Les
+valeurs positives sont considérées comme des valeurs brutes et utilisées telles
+quelles par le matériel ou un pourcentage, les valeurs négatives sont
+interprétées en dBm. En fonction de la conception du matétiel, ce paramètre
+peut contrôler diverses fonctions.
+.br
+Sur les cartes modernes, ce paramètre contrôle habituellement le seuil du
+handover/roaming (seuil de cession), signal le plus bas pour lequel le matériel
+reste associé au Point d'Accès courant. Lorsque le signal passe en-dessous de
+ce seuil, la carte commence à chercher un nouveau/meilleur Point d'Accès.
+Certaines cartes peuvent utiliser le nombre de beacons manquées pour déclencher
+cela. En cas de forte densité de Points d'Accès, un seuil plus haut assure
+d'être toujours associé au meilleur AP, et à l'inverse pour les faibles
+densités d'APs, un seuil plus bas réduit les pertes d'associations.
+.br
+Sur les cartes plus anciennes, ce paramètre contrôle habituellement le seuil de
+report (defer treshold), signal le plus faible pour lequel le matériel considère
+le canal occupé. Les niveaux de signal au-dessus de ce seuil font que le
+matériel inhibe sa propre transmission, tandis que les signaux plus faibles que
+ce seuil sont ignorés et le matériel est libre de transmettre. Cela est souvent
+fortement lié au seuil de réception, le plus bas niveau de signal pour lequel
+le matériel essaye de recevoir un paquet. Des paramètres apropriées pour ces
+seuils évitent à la carte de perdre du temps sur le bruit de fond lors des
+réceptions de transmissions faibles. Les conceptions modernes semblent contrôler
+ces seuils automatiquement.
+.br
+.br
+.B Exemple :
+.br
+.I "   iwconfig eth0 sens -80"
+.br
+.I "   iwconfig eth0 sens 2"
+.TP
+.BR retry
+La plupart des cartes supportent les retransmissions MAC (contrôle d'accès
+au médium), et certaines permettent le paramétrage du mécanisme des tentatives
+(en cas d'échec).
+.br
+Pour fixer le nombre maximum d'essais, entrez
+.IR "limit `valeur'" .
+C'est une valeur absolue (sans unité), et c'est le cas par défaut (si rien n'est
+spécifié).
+Pour fixer le temps maximum autorisé au mécanisme MAC pour ses tentatives,
+entrez
+.IR "lifetime `valeur'" .
+Par défaut, cette valeur est en secondes, ajouter le suffixe m ou u pour
+spécifier les valeurs en millisecondes ou microsecondes.
+.br
+Vous pouvez aussi ajouter les modificateurs
+.IR short ", " long ", " min " et " max "."
+Si la carte supporte le mode automatique, ils définissent les limites
+inférieure et supérieure (NDT\ : de l'intervalle temporel dans lequel le
+mécanisme MAC est autorisé à réitérer ses tentatives). D'autres cartes
+définissent des valeurs différentes en fonction de la taille des paquets, par
+exemple la norme 802.11 définit une
+.I min limit
+qui est la limite inférieure d'essai (paquets non RTS/CTS).
+.br
+.B Exemples :
+.br
+.I "   iwconfig eth0 retry 16"
+.br
+.I "   iwconfig eth0 retry lifetime 300m"
+.br
+.I "   iwconfig eth0 retry short 12"
+.br
+.I "   iwconfig eth0 retry min limit 8"
+.TP
+.BR rts [_threshold]
+RTS/CTS ajoute une «\ poignée de main\ » avant chaque transmission de paquet
+pour être sûr que le canal est libre. Cela ajoute des entêtes (NDT\ : données de
+gestion), mais augmente les performances en cas de nœuds cachés ou d'un grand
+nombre de nœuds actifs. Ce paramètre fixe la taille du plus petit paquet pour
+lequel le nœud envoie un RTS\ ; une valeur égale à la taille maximale des
+paquets inhibe ce mécanisme. Vous pouvez aussi positionner ce paramètre sur
+.IR auto ", " fixed " ou " off .
+.br
+.B Exemples :
+.br
+.I "   iwconfig eth0 rts 250"
+.br
+.I "   iwconfig eth0 rts off"
+.TP
+.BR frag [mentation_threshold]
+La fragmentation permet de découper un paquet IP en une salve de plus petits
+fragments transmis sur le médium. Dans la plupart des cas, cela ajoute des
+entêtes, mais dans un environnement très bruité, cela réduit les coûts de
+transmission dûs aux erreurs et permet aux paquets d'être acheminés malgré
+des salves d'interférences. Ce paramètre fixe la taille de fragment maximale
+qui est toujours inférieure à la taille maximale des paquets.
+.br
+Ce paramètre peut aussi contrôler le «\ Frame Bursting\ » disponible sur
+certaines cartes, capacité à envoyer de multiple paquets IP ensembles. Ce
+mécanisme sera activé si la taille de fragment est plus grande que la taille
+maximale de paquet.
+.br
+Vous pouvez aussi mettre ce paramètre à
+.IR auto ", " fixed " ou " off .
+.br
+.B Exemples :
+.br
+.I "   iwconfig eth0 frag 512"
+.br
+.I "   iwconfig eth0 frag off"
+.TP
+.BR key / enc [ryption]
+Utilisé pour manipuler les clefs de cryptage ou brouillage et le mode de
+sécurité.
+.br
+Pour configurer la clef courante de cryptage, il suffit d'entrer la clef
+en hexadécimal telle que
+.IR XXXX-XXXX-XXXX-XXXX " ou " XXXXXXXX .
+Pour entrer une autre clef que la clef courante, ajoutez (au début ou à la
+fin)
+.I [index]
+à la clef elle-même (cela ne changera pas la clef active). Vous pouvez aussi
+entrer la clef comme une chaîne ASCII en utilisant le préfixe
+.IR s: .
+Les phrases en tant que mot de passe ne sont actuellement pas supportées.
+.br
+Pour changer la clef active parmi les clefs déjà entrées, il suffit d'entrer
+.RI l' "[index]"
+(sans entrer de valeur de clef).
+.br
+.IR off " et " on
+désactive et réactive le cryptage.
+.br
+Le mode de sécurité peut être
+.I open
+ou
+.IR restricted ,
+et sa signification dépend de la carte utilisée. Avec la plupart des cartes,
+le mode
+.I open
+n'utilise pas d'authentification et la carte accepte des sessions non cryptées,
+alors que le mode
+.I restricted
+n'accepte que des sessions cryptées et la carte utilisera l'authentification
+si disponible.
+.br
+Si vous avez besoin de mettre plusieurs clefs, ou de mettre une clef et de
+changer la clef active, vous avez besoin d'utiliser des instructions de clef
+.RB ( "key" )
+multiples. Les arguments peuvent être mis dans n'importe quel ordre, le
+dernier sera prioritaire.
+.br
+.B Exemples :
+.br
+.I "   iwconfig eth0 key 0123-4567-89"
+.br
+.I "   iwconfig eth0 key [3] 0123-4567-89"
+.br
+.I "   iwconfig eth0 key s:password [2]"
+.br
+.I "   iwconfig eth0 key [2]"
+.br
+.I "   iwconfig eth0 key open"
+.br
+.I "   iwconfig eth0 key off"
+.br
+.I "   iwconfig eth0 key restricted [3] 0123456789"
+.br
+.I "   iwconfig eth0 key 01-23 key 45-67 [4] key [4]"
+.TP
+.BR power
+Utilisé pour manipuler les paramètres et le mode du procédé de gestion
+d'énergie.
+.br
+Pour fixer la période entre les éveils, entrez
+.IR "period `valeur'" .
+Pour fixer la temporisation avant le retour en veille, entrez la
+.IR "timeout `valeur'" .
+Pour paramétrer le niveau générique de sauvegarde d'énergie, entrez
+.IR "saving `valeur'" .
+Vous pouvez aussi ajouter les modificateurs
+.IR min " et " max ".
+Par défaut, ces valeurs sont exprimées en secondes, ajoutez le suffixe m ou u
+pour spécifier les valeurs en millisecondes ou microsecondes. Parfois, ces
+valeurs sont sans unité (nombre de périodes de beacon, dwell, pourcentage ou
+similaire).
+.br
+.IR off " et " on
+désactive et réactive la gestion d'énergie. Enfin, vous pouvez mettre la
+gestion d'énergie en mode
+.I all
+(reçoit tous les paquets),
+.I unicast
+(reçoit seulement les paquets unicast, ignore les paquets multicast et de
+broadcast) et
+.I multicast
+(reçoit seulement les paquets multicast et de broadcast, ignore l'unicast).
+.br
+.B Exemples :
+.br
+.I "   iwconfig eth0 power period 2"
+.br
+.I "   iwconfig eth0 power 500m unicast"
+.br
+.I "   iwconfig eth0 power timeout 300u all"
+.br
+.I "   iwconfig eth0 power saving 3"
+.br
+.I "   iwconfig eth0 power off"
+.br
+.I "   iwconfig eth0 power min period 2 power max period 4"
+.TP
+.BR modu [lation]
+Force la carte à utiliser un jeu spécifique de modulations. Les cartes modernes
+supportent diverses modulations, certaines étant standards telles 802.11b ou
+802.11g, d'autres étant propriétaires. Cette commande force la carte à utiliser
+seulement le jeu spécifique de modulations listé par la ligne de commande. Ceci
+peut être utilisé pour résoudre des problèmes d'interopérabilité.
+.br
+La liste des modulations disponibles dépend du couple carte/pilote et peut être
+affichée en utilisant
+.IR "iwlist modulation" .
+Notez que certains couples carte/pilote peuvent ne pas être capables de
+sélectionner chaque modulation listée indépandement, certaines intervenant comme
+un groupe. Vous pouvez aussi mettre ce paramètre à
+.IR auto
+pour laisser le couple carte/pilote faire de son mieux.
+.br
+.B Exemples :
+.br
+.I "   iwconfig eth0 modu 11g"
+.br
+.I "   iwconfig eth0 modu CCK OFDMa"
+.br
+.I "   iwconfig eth0 modu auto"
+.TP
+.BR commit
+Certaines cartes peuvent ne pas appliquer immédiatement les changements
+effectués par les Wireless Extensions (elles peuvent attendre pour prendre en
+compte les changements ou les appliquer seulement quand la carte est montée via
+.IR ifconfig ).
+Cette commande (si disponible) force la carte à appliquer les changements en
+suspens.
+.br
+Cela n'est normalement pas nécessaire, car la carte appliquera éventuellement
+les changements, mais peut être utile pour débuggage.
+.\"
+.\" DISPLAY part
+.\"
+.SH AFFICHAGE
+Pour chaque matériel qui supporte les extensions wireless,
+.I iwconfig
+affichera le nom du
+.B protocole MAC
+utilisé (nom du matériel pour les protocoles propriétaires),
+.RB l' ESSID
+(Network Name), le
+.BR NWID ,
+la
+.B fréquence
+(ou canal), la
+.BR sensibilité ,
+le
+.B mode
+d'exploitation, l'adresse du
+.BR "Point d'Accès",
+le
+.BR débit ,
+le
+.BR "seuil RTS" " (" "RTS threshold" "), le "
+.BR "seuil de fragmentation" " (" "fragmentation threshold" "), la
+.B clef de cryptage
+et les paramètres de
+.BR "gestion de l'énergie" " (" "power management" ")"
+(en fonction de la disponibilité).
+.PP
+Les paramètres affichés ont la même signification et la même valeur que ceux
+que vous pouvez régler, veuillez vous reporter à la précédente partie pour
+leur explication détaillée.
+.br
+Quelques paramètres sont affichés seulement dans une forme abrégée (comme le
+cryptage). Vous devez utiliser
+.IR iwlist (8)
+pour avoir tous les détails.
+.br
+Certains paramètres ont deux modes (comme le débit). Si la valeur est préfixée
+par
+.RB «\ =\ »,
+cela veut dire que le paramètre est fixé et forcé à cette valeur, s'il est
+préfixé par
+.RB «\ :\ »,
+le paramètre est en mode automatique et la valeur courante est montrée (et peut
+changer).
+.TP
+.BR "Access Point" / Cell
+Une adresse égale à 00:00:00:00:00:00 signifie que la carte n'a pas réussi à
+s'associer avec un Point d'Accès (le plus souvent une question de
+configuration).
+Le paramètre
+.B Access Point
+sera montré comme une cellule
+.RB ( Cell )
+en mode ad-hoc (pour des raisons évidentes), mais il fonctionne néanmoins
+de la même manière.
+.PP
+Si
+.I /proc/net/wireless
+existe,
+.I iwconfig
+affichera aussi son contenu. Il faut noter que ces valeurs dépendent des
+spécifications du pilote et de la carte, vous devrez donc vous référez à la
+documentation du pilote pour une interprétation correcte de ces valeurs.
+.TP
+.B Link quality
+Qualité globale du lien. Peut être basé sur le niveau de contention ou des
+interférences, le taux d'erreur de trame ou de bit, la qualité du signal reçu,
+certaines synchronisations temporelles, ou d'autre métrique matérielle. C'est
+une valeur agrégat, et dépend totalement du pilote et du matériel.
+.TP
+.B Signal level
+Force du signal reçu (RSSI - force du signal reçu). Ce peut être des unités
+arbitraires ou des dBm,
+.I iwconfig
+utilise les méta-informations du pilote pour interpréter les valeurs
+brutes données par
+.I /proc/net/wireless
+et affiche l'unité ou la valeur maximale correspondante (en utilisant
+l'arithmétique 8 bits). En mode
+.I Ad-Hoc
+cela peut être indéfini et vous devriez utiliser
+.IR iwspy .
+.TP
+.B Noise level
+Niveau du bruit de fond (quand aucun paquet n'est transmis). Commentaires
+similaires à ceux de
+.BR "Signal level" .
+.TP
+.B Rx invalid nwid
+Nombre de paquets reçus avec un NWID ou ESSID différent. Utilisé pour détecter
+des problèmes de configuration ou l'existence de réseau adjacent (sur la même
+fréquence).
+.TP
+.B Rx invalid crypt
+Nombre de paquets que le matériel a été incapable de décrypter. Cela peut être
+utilisé pour détecter des mauvais paramètres de cryptage.
+.TP
+.B Rx invalid frag
+Nombre de paquets pour lesquels le matériel a été incapable de ré-assembler
+correctement les fragments de la couche liaison (le plus souvent, il en manque
+un).
+.TP
+.B Tx excessive retries
+Nombre de paquets que la carte n'a pas réussi à envoyer. La plupart des
+protocoles MAC réessayent un certain nombre de fois avant d'abandonner.
+.TP
+.B invalid misc
+Autres paquets perdus en relation avec les opérations spécifiques au sans fil.
+.TP
+.B Missed beacon
+Nombre de beacons périodiques émis par la Cellule ou le Point d'Accès que nous
+avons manqué. Les beacons sont envoyés à intervalles réguliers pour maintenir la
+coordination de la cellule, l'impossibilité de les recevoir indiquant souvent
+que la carte est hors de portée.
+.\"
+.\" AUTHOR part
+.\"
+.SH AUTEUR
+Jean Tourrilhes \- jt@hpl.hp.com
+.\"
+.\" TRADUCTION part
+.\"
+.SH TRADUCTION
+Maxime CHARPENNE, octobre 2007 (wireless_tools.30-pre3).
+.\"
+.\" AVERTISSEMENT part
+.\"
+.SH AVERTISSEMENT SUR LA TRADUCTION
+Il est possible que cette traduction soit imparfaite ou périmée. En cas de
+doute, veuillez vous reporter au document original en langue anglaise fourni
+avec le programme.
+.\"
+.\" FILES part
+.\"
+.SH FICHIERS
+.I /proc/net/wireless
+.\"
+.\" SEE ALSO part
+.\"
+.SH VOIR AUSSI
+.BR ifconfig (8),
+.BR iwspy (8),
+.BR iwlist (8),
+.BR iwevent (8),
+.BR iwpriv (8),
+.BR wireless (7).
diff --git a/wireless_tools/fr.UTF-8/iwevent.8 b/wireless_tools/fr.UTF-8/iwevent.8
new file mode 100644 (file)
index 0000000..9fa7689
--- /dev/null
@@ -0,0 +1,134 @@
+.\" Jean Tourrilhes - HPL - 2002 - 2004
+.\" iwevent.8
+.\"
+.\" Traduction 2003/08/17 Maxime CHARPENNE (voir
+.\" http://www.delafond.org/traducmanfr/)
+.\" 1ère traduction        : version 26
+.\" Manuel identique pour la version 27-pre9 (beta)
+.\" Mise à jour 2004/02/26 : version 27-pre11 (alpha)
+.\" Mise à jour 2004/08/23 : version 27-pre25
+.\" Mise à jour 2007/08    : version 29-pre21
+.\" Mise à jour 2007/10    : version 30-pre1
+.\" Mise à jour 2007/10/29 : version 30-pre3
+.\"
+.TH IWEVENT 8 "23 juin 2004" "net-tools" "Manuel du Programmeur Linux"
+.\"
+.\" NAME part
+.\"
+.SH NOM
+iwevent \- Affiche les Événements Wireless (Wireless Events) générés par les
+pilotes et les changements de paramètres.
+.\"
+.\" SYNOPSIS part
+.\"
+.SH SYNOPSIS
+.BI "iwevent "
+.br
+.\"
+.\" DESCRIPTION part
+.\"
+.SH DESCRIPTION
+.B iwevent
+affiche les «\ Wireless Events\ » (événements du système Wireless) reçus par le
+socket RTNetlink. Chaque ligne affiche le Wireless Event spécifique qui décrit
+ce qui s'est passé sur l'interface sans fil spécifiée.
+.br
+Cette commande ne prend aucun argument.
+.\"
+.\" DISPLAY part
+.\"
+.SH AFFICHAGE
+Il y a deux classes de Wireless Events.
+.PP
+La première classe regroupe les événements relatifs à un changement des
+paramètres du sans fil sur l'interface (typiquement fait par
+.B iwconfig
+ou un script appelant
+.BR iwconfig ).
+Seuls les paramètres qui peuvent entraîner une perturbation de la connectivité
+sont rapportés. Les événements actuellement rapportés changent un des paramètres
+suivants\ :
+.br
+.I "   Network ID"
+.br
+.I "   ESSID"
+.br
+.I "   Frequency"
+.br
+.I "   Mode"
+.br
+.I "   Encryption"
+.br
+Tous ces événements seront générer sur toutes les interfaces sans fil par le
+sous-système «\ wireless\ » du noyau (mais seulement si le pilote a été converti
+à l'API du nouveau pilote).
+.PP
+La deuxième classe d'événements concerne ceux générés par le matériel, lorsque
+quelque chose arrive ou qu'une tâche s'est terminée. Ces événements incluent\ :
+.TP
+.B New Access Point/Cell address
+L'interface a joint un nouveau Point d'Accès ou Cellule Ad-Hoc, ou a perdu son
+association avec un de ces derniers. Il s'agit de la même adresse affichée par
+.BR iwconfig .
+.TP
+.B Scan request completed
+Une requête de balayage (scanning) a été achevée, les résultats du «\ scan\ »
+sont disponibles (voir
+.BR iwlist ).
+.TP
+.B Tx packet dropped
+Un paquet à destination de cette adresse a été rejeté car l'interface croit que
+ce nœud ne répond plus (habituellement, le seuil maximum des émissions de la
+couche MAC est atteint). C'est habituellement la première indication pouvant
+révéler que le nœud a quitté la cellule ou est hors de portée, mais cela peut
+être due à une atténuation ou une contention excessive.
+.TP
+.B Custom driver event
+Événement spécifique au pilote. Veuillez consulter la documentation du pilote.
+.TP
+.B Registered node
+L'interface a réussi à enregistrer un nouveau client/paire sans fil. Sera
+généré la plupart du temps quand l'interface agit comme un Point d'Accès (mode
+Master).
+.TP
+.B Expired node
+L'enregistrement d'un client/paire sur cette interface a expiré. Sera généré la
+plupart du temps quand l'interface agit comme un Point d'Accès (mode Master).
+.TP
+.B Spy threshold crossed
+La force du signal pour une des adresses de la «\ spy list\ » (NDT\ : voir
+iwspy(8)) est passé en-dessous du seuil bas, ou est passé au-dessus du seuil
+haut.
+.PP
+La plupart des pilotes wireless génèrent seulement un sous-ensemble de ces
+événements, pas tous. La liste exacte dépend de la combinaison spécifique
+matériel/pilote. Veuillez consulter la documentation du pilote pour les détails
+de ce qui les génèrent, et utilisez
+.IR iwlist (8)
+pour vérifier ce que le pilote supporte.
+.\"
+.\" AUTHOR part
+.\"
+.SH AUTEUR
+Jean Tourrilhes \- jt@hpl.hp.com
+.\"
+.\" TRADUCTION part
+.\"
+.SH TRADUCTION
+Maxime CHARPENNE, octobre 2007 (wireless_tools.30-pre3).
+.\"
+\" AVERTISSEMENT part
+.\"
+.SH AVERTISSEMENT SUR LA TRADUCTION
+Il est possible que cette traduction soit imparfaite ou périmée. En cas de
+doute, veuillez vous reporter au document original en langue anglaise fourni
+avec le programme.
+.\"
+.\" SEE ALSO part
+.\"
+.SH VOIR AUSSI
+.BR iwconfig (8),
+.BR iwlist (8),
+.BR iwspy (8),
+.BR iwpriv (8),
+.BR wireless (7).
diff --git a/wireless_tools/fr.UTF-8/iwgetid.8 b/wireless_tools/fr.UTF-8/iwgetid.8
new file mode 100644 (file)
index 0000000..c4bc02d
--- /dev/null
@@ -0,0 +1,139 @@
+.\" Guus Sliepen - 2001
+.\" Completed and fixed up by Jean Tourrilhes - 2002-2003
+.\" iwgetid.8
+.\"
+.\" Traduction 2003/08/17 Maxime CHARPENNE (voir
+.\" http://www.delafond.org/traducmanfr/)
+.\" 1ère traduction        : version 26
+.\" Mise à jour 2004/01/29 : version 27-pre9 (beta)
+.\" Manuel identique pour la version 27-pre11 (alpha)
+.\" Mise à jour 2004/08/23 : version 27-pre25
+.\" Manuel identique pour la version 29-pre21
+.\" Manuel identique pour la version 30-pre1
+.\" Manuel identique pour la version 30-pre3
+.\"
+.TH IWGETID 8 "02 décembre 2003" "wireless-tools" "Manuel du Programmeur Linux"
+.\"
+.\" NAME part
+.\"
+.SH NOM
+iwgetid \- Rapporte le ESSID, NWID ou l'Adresse de l'AP/Cell (Point d'Accès/\
+Cellule) du réseau sans fil.
+.\"
+.\" SYNOPSIS part
+.\"
+.SH SYNOPSIS
+.BI "iwgetid " [interface] " [--raw] [--scheme] [--ap] [--freq]"
+.br
+.BI "                    [--mode] [--protocol] [--channel]
+.br
+.\"
+.\" DESCRIPTION part
+.\"
+.SH DESCRIPTION
+.B iwgetid
+est utilisé pour trouver le NWID, ESSID ou l'adresse de l'AP ou cellule du
+réseau sans fil utilisé présentement. L'information rapportée est la même
+que celle montrée par
+.BR iwconfig ", mais " iwgetid
+est plus facile à intégrer dans les scripts.
+.br
+Par défaut,
+.B iwgetid
+affichera
+.RI l' ESSID
+de la carte, et si la carte n'a pas d'ESSID, il affichera son
+.IR NWID .
+.br
+Le formatage par défaut de la sortie est embelli.
+.\"
+.\" OPTIONS part
+.\"
+.SH OPTIONS
+.TP
+.B --raw
+Cette option désactive l'embellissement de l'affichage de l'information. Cette
+option est orthogonale aux autres options (sauf
+.BR --scheme ),
+donc, avec la combinaison appropriée des options, il est possible d'afficher
+en brut l'ESSID, l'Adresse de l'AP ou le Mode.
+.br
+Ce format est idéal quand on stocke le résultat de iwgetid comme une variable
+dans les scripts
+.I Shell
+ou
+.IR Perl ,
+ou pour passer le résultat comme argument sur la ligne de commande de
+.BR iwconfig .
+.TP
+.B --scheme
+Cette option est similaire à la précédente, elle désactive l'embellissement de
+l'affichage des données et supprime tous les caractères non alphanumériques
+(comme les caractères d'espacement, la ponctuation et les caractères de
+contrôle).
+.br
+La sortie résultante est un identifiant Pcmcia valide («\ Pcmcia scheme
+identifer\ ») (qui peut être utilisé comme argument de la commande
+.BR "cardctl scheme" ).
+Ce format est aussi idéal quand on utilise le résultat de iwgetid comme un
+sélecteur («\ selector\ ») dans les scripts
+.I Shell
+ou
+.IR Perl ,
+ou comme un nom de fichier.
+.TP
+.B --ap
+Affiche l'adresse MAC du
+.I Point d'Access
+ou de la
+.I Cellule
+Wireless.
+.TP
+.B --freq
+Affiche la
+.I fréquence
+ou le
+.I canal
+courant utilisé par l'interface.
+.TP
+.B --channel
+Affiche le
+.IR canal " (" channel )
+courant utilisé par l'interface. Le canal est déterminé en utilisant la
+fréquence courante et la liste de fréquences fournie par l'interface.
+.TP
+.B --mode
+Affiche le
+.I mode
+courant de l'interface.
+.TP
+.B --protocol
+Affiche le
+.I nom de protocole
+de l'interface. Il permet d'identifer toutes les cartes qui sont compatibles
+entre elles et qui acceptent le même type de configuration.
+.br
+Cela peut aussi être utilisé pour
+.I vérifier la compatibilité de Wireless Extension
+sur l'interface, car c'est le seul attribut que tous les pilotes supportant
+Wireless Extension doivent avoir.
+.\"
+.\" TRADUCTION part
+.\"
+.SH TRADUCTION
+Maxime CHARPENNE, octobre 2007 (wireless_tools.30-pre3).
+.\"
+\" AVERTISSEMENT part
+.\"
+.SH AVERTISSEMENT SUR LA TRADUCTION
+Il est possible que cette traduction soit imparfaite ou périmée. En cas de
+doute, veuillez vous reporter au document original en langue anglaise fourni
+avec le programme.
+.\"
+.\" SEE ALSO part
+.\"
+.SH VOIR AUSSI
+.BR iwconfig (8),
+.BR ifconfig (8),
+.BR iwspy (8),
+.BR iwpriv (8).
diff --git a/wireless_tools/fr.UTF-8/iwlist.8 b/wireless_tools/fr.UTF-8/iwlist.8
new file mode 100644 (file)
index 0000000..a17d5cf
--- /dev/null
@@ -0,0 +1,179 @@
+.\" Jean II - HPLB - 96
+.\" iwlist.8
+.\"
+.\" Traduction 2003/08/17 Maxime CHARPENNE (voir
+.\" http://www.delafond.org/traducmanfr/)
+.\" 1ère traduction        : version 26
+.\" Mise à jour 2004/01/29 : version 27-pre9 (beta)
+.\" Manuel identique pour la version 27-pre11 (alpha)
+.\" Mise à jour 2004/08/23 : version 27-pre25
+.\" Mise à jour 2007/09    : version 29-pre21
+.\" Mise à jour 2007/10    : version 30-pre1
+.\" Mise à jour 2007/10/29 : version 30-pre3
+.\"
+.TH IWLIST 8 "13 avril 2006" "wireless-tools" "Manuel du Programmeur Linux"
+.\"
+.\" NAME part
+.\"
+.SH NOM
+iwlist \- Obtient plus d'informations wireless détaillées depuis une interface wireless
+.\"
+.\" SYNOPSIS part
+.\"
+.SH SYNOPSIS
+.BI "iwlist [" interface "] scanning"
+.br
+.BI "iwlist [" interface "] frequency"
+.br
+.BI "iwlist [" interface "] rate"
+.br
+.BI "iwlist [" interface "] keys"
+.br
+.BI "iwlist [" interface "] power"
+.br
+.BI "iwlist [" interface "] txpower"
+.br
+.BI "iwlist [" interface "] retry"
+.br
+.BI "iwlist [" interface "] event"
+.br
+.BI "iwlist [" interface "] auth"
+.br
+.BI "iwlist [" interface "] wpakeys"
+.br
+.BI "iwlist [" interface "] genie"
+.br
+.BI "iwlist [" interface "] modulation"
+.br
+.BI "iwlist --help"
+.br
+.BI "iwlist --version"
+.\"
+.\" DESCRIPTION part
+.\"
+.SH DESCRIPTION
+.B Iwlist
+est utilisé pour afficher de l'information additionnelle d'une interface réseau
+wireless qui n'est pas affichée par
+.IR iwconfig (8).
+L'argument principal est utilisé pour sélectionner une catégorie d'information,
+.B iwlist
+affiche dans une forme détaillée toute information relative à cette catégorie,
+y compris les informations déjà montrées par
+.IR iwconfig (8).
+.\"
+.\" PARAMETER part
+.\"
+.SH PARAMÈTRES
+.TP
+.BR scan [ning]
+Donne la liste des Points d'Accès et des cellules Ad-Hoc à portée, et
+optionnellement plein d'autres informations à leur propos (ESSID, Quality,
+Frequency, Mode...). Le type d'information retourné dépend de ce que la carte
+supporte.
+.br
+Le «\ Triggering scanning\ » est une opération nécessitant les privilèges
+de
+.IR root
+uniquement et les utilisateurs normaux peuvent juste lire les résultats
+(«\ letf-over scan results\ »). Par défaut, la manière dont le scan est
+réalisé (la boucle du scan) dépend de la carte et de ses paramètres.
+.br
+Cette commande prend des arguments optionnels bien que la plupart des pilotes
+les ignoreront. L'option
+.B essid
+est utilisée pour appliquer le scan sur un ESSID donné. L'option
+.B last
+ne déclenche pas de scan et lit les résultats du scan («\ letf-over scan
+results\ »).
+.TP
+.BR freq [uency]/ channel
+Donne la liste des fréquences disponibles du périphérique et le nombre de canaux
+définis. Veuillez noter que, habituellement, le pilote retourne le nombre total
+de canaux et seulement les fréquences disponibles dans la région considérée,
+donc il n'y a pas correspondance directe entre le nombre de fréquences
+affichées et le nombre de canaux.
+.TP
+.BR rate / bit [rate]
+Liste les débits supportés par le périphérique (en b/s).
+.TP
+.BR keys / enc [ryption]
+Liste les tailles des clefs de cryptage supportées et liste toutes
+les clefs de cryptage paramétrées dans le périphérique.
+.TP
+.B power
+Liste les différents attributs et modes d'économie d'énergie («\ Power
+Management\ ») du périphérique.
+.TP
+.B txpower
+Liste les différentes puissances d'émission («\ Transmit Powers\ »)
+disponibles dans le périphérique.
+.TP
+.B retry
+Liste les limites des tentatives de transmissions («\ transmit retry limits\ »)
+et la durée de vie des tentatives («\ retry lifetime\ ») du périphériques
+(NDT\ : voir la section
+.B retry
+de iwconfig(8)).
+.TP
+.BR ap / accesspoint / peers
+Donne la liste des Points d'Accès à portée, et optionnellement la qualié de leur
+lien. Cette option est
+.B obsolète
+et est maintenant dépréciée en faveur du support scan (voir ci-dessus), et la
+plupart des pilotes ne le supporte pas.
+.br
+Quelques pilotes peuvent utiliser cette commande pour retourner une
+liste spécifique de Paires («\ Peers\ ») ou de Points d'Accès, telle que la
+liste des Paires associés/enregistrés avec la carte. Voir la documentation du
+pilote pour plus de détails.
+.TP
+.B event
+Liste les événements wireless supportés par le périphérique.
+.TP
+.B auth
+Liste les paramètres courants de l'authentification WPA.
+.TP
+.BR wpa [keys]
+Liste toutes les clefs de cryptage WPA paramétrées dans le matériel.
+.TP
+.B genie
+Liste les éléments génériques d'information («\ Generic Information Elements\ »)
+paramétrés dans le matériel (utilisés pour le support WPA).
+.TP
+.BR modu [lation]
+Liste les modulations supportées par le matériel et les modulations actuellement
+activées.
+.TP
+.B --version
+Affiche la version des outils, ainsi que les versions courante et recommandée
+des Wireless Extensions pour l'outil et les diverses interfaces sans fil.
+.TP
+.B --help
+Affiche un court message d'aide.
+.\"
+.\" TRADUCTION part
+.\"
+.SH TRADUCTION
+Maxime CHARPENNE, octobre 2007 (wireless_tools.30-pre3).
+.\"
+\" AVERTISSEMENT part
+.\"
+.SH AVERTISSEMENT SUR LA TRADUCTION
+Il est possible que cette traduction soit imparfaite ou périmée. En cas de
+doute, veuillez vous reporter au document original en langue anglaise fourni
+avec le programme.
+.\"
+.\" FILES part
+.\"
+.SH FICHIERS
+.I /proc/net/wireless
+.\"
+.\" SEE ALSO part
+.\"
+.SH VOIR AUSSI
+.BR iwconfig (8),
+.BR iwspy (8).
+.BR iwevent (8),
+.BR iwpriv (8),
+.BR wireless (7).
diff --git a/wireless_tools/fr.UTF-8/iwpriv.8 b/wireless_tools/fr.UTF-8/iwpriv.8
new file mode 100644 (file)
index 0000000..9c7702f
--- /dev/null
@@ -0,0 +1,141 @@
+.\" Jean II - HPLB - 96
+.\" iwpriv.8
+.\"
+.\" Traduction 2003/08/17 Maxime CHARPENNE (voir
+.\" http://www.delafond.org/traducmanfr/)
+.\" 1ère traduction        : version 26
+.\" Manuel identique pour la version 27-pre9 (beta)
+.\" Manuel identique pour la version 27-pre11 (alpha)
+.\" Mise à jour 2007/09    : version 29-pre21
+.\" Mise à jour 2007/10    : version 30-pre1
+.\" Mise à jour 2007/10/29 : version 30-pre3
+.\"
+.TH IWPRIV 8 "31 octobre 1996" "net-tools" "Manuel du programmeur Linux"
+.\"
+.\" NAME part
+.\"
+.SH NOM
+iwpriv \- configure les paramètres optionnels (privés) d'une interface réseau
+sans fil
+.\"
+.\" SYNOPSIS part
+.\"
+.SH SYNOPSIS
+.BI "iwpriv [" interface ]
+.br
+.BI "iwpriv " "interface commande-privée " "[" paramètres-privés ]
+.br
+.BI "iwpriv " "interface commande-privée " [ I "] [" paramètres-privés ]
+.br
+.BI "iwpriv " interface " --all"
+.\"
+.\" DESCRIPTION part
+.\"
+.SH DESCRIPTION
+.B Iwpriv
+est l'outil à utiliser avec
+.IR iwconfig (8).
+.B Iwpriv
+traite les paramètres et attributs spécifiques à chaque pilote (contrairement
+.I iwconfig
+qui ne s'occupe que des génériques).
+.PP
+Sans argument,
+.B iwpriv
+liste les commandes privées disponibles sur chaque interface, ainsi que les
+paramètres qu'elles requièrent. En utilisant ces informations, l'utilisateur
+peut appliquer ces commandes particulières sur les interfaces spécifiées.
+.PP
+En théorie, la documentation de chaque pilote devrait indiquer comment utiliser
+ces commandes spécifiques et leurs effets.
+.\"
+.\" PARAMETER part
+.\"
+.SH PARAMÈTRES
+.TP
+.IR commande-privée " [" paramètres-privés ]
+Exécute la
+.I commande-privée
+spécifiée sur l'interface.
+.br
+La commande peut éventuellement prendre ou nécessiter des arguments, et peut
+afficher de l'information. En conséquent, les paramètres de la ligne de
+commande peuvent ou peuvent ne pas être nécessaires et doivent correspondre
+aux besoins de la commande. La liste des commandes que
+.B iwpriv
+affiche (quand il est appelé sans paramètre) doit vous donner des indications
+sur ces paramètres.
+.br
+Cependant, vous devriez vous reporter à la documentation du pilote du matériel
+pour utiliser les commandes correctement et connaître leurs effets.
+.TP
+.IR "commande-privée " [ I "] [" paramètres-privés ]
+Idem, sauf que
+.I I
+(un entier) est passé à la commande en tant que
+.I "Token Index"
+(indication d'index). Seules quelques commandes utiliseront ce «\ Token
+Index\ » (la plupart l'ignoreront), et la documentation du pilote devrait
+préciser quand il est nécessaire.
+.TP
+.BR -a / --all
+Exécute et affiche toutes les commandes privées qui ne prennent aucun argument
+(c.-à-d. en lecture seule).
+.\"
+.\" DISPLAY part
+.\"
+.SH AFFICHAGE
+Pour chaque matériel qui supporte les commandes privées,
+.I iwpriv
+affichera la liste des commandes privées disponibles.
+.PP
+Cela inclut le nom de la commande privée, le nombre d'arguments qui peuvent
+être entrés et leur type, ainsi que le nombre d'arguments qui peuvent être
+affichés et leur type.
+.PP
+Par exemple, vous pouvez avoir l'affichage suivant\ :
+.br
+.B "eth0      Available private ioctl :"
+.br
+.B "          setqualthr (89F0) : set   1 byte & get   0"
+.br
+.B "          gethisto (89F7) : set   0      & get  16 int"
+.PP
+Cela veut dire que vous pouvez fixer le seuil de qualité et afficher un
+histogramme jusqu'à 16 valeurs avec les commandes suivantes\ :
+.br
+.I "  iwpriv eth0 setqualthr 20"
+.br
+.I "  iwpriv eth0 gethisto"
+.\"
+.\" AUTHOR part
+.\"
+.SH AUTHOR
+Jean Tourrilhes \- jt@hpl.hp.com
+.\"
+.\" TRADUCTION part
+.\"
+.SH TRADUCTION
+Maxime CHARPENNE, octobre 2007 (wireless_tools.30-pre3).
+.\"
+\" AVERTISSEMENT part
+.\"
+.SH AVERTISSEMENT SUR LA TRADUCTION
+Il est possible que cette traduction soit imparfaite ou périmée. En cas de
+doute, veuillez vous reporter au document original en langue anglaise fourni
+avec le programme.
+.\"
+.\" FILES part
+.\"
+.SH FILES
+.I /proc/net/wireless
+.\"
+.\" SEE ALSO part
+.\"
+.SH SEE ALSO
+.BR iwconfig (8),
+.BR iwlist (8),
+.BR iwevent (8),
+.BR iwspy (8),
+.BR wireless (7).
diff --git a/wireless_tools/fr.UTF-8/iwspy.8 b/wireless_tools/fr.UTF-8/iwspy.8
new file mode 100644 (file)
index 0000000..3e2686c
--- /dev/null
@@ -0,0 +1,124 @@
+.\" Jean II - HPLB - 96
+.\" iwspy.8
+.\"
+.\" Traduction 2003/08/18 Maxime CHARPENNE (voir
+.\" http://www.delafond.org/traducmanfr/)
+.\" 1ère traduction        : version 26
+.\" Manuel identique pour la version 27-pre9 (beta)
+.\" Manuel identique pour la version 27-pre11 (alpha)
+.\" Manuel identique pour la version 27-pre11 (alpha)
+.\" Mise à jour 2007/09    : version 29-pre21
+.\" Mise à jour 2007/10    : version 30-pre1
+.\" Mise à jour 2007/10/29 : version 30-pre3
+.\"
+.TH IWSPY 8 "31 octobre 1996" "net-tools" "Manuel du Programmeur Linux"
+.\"
+.\" NAME part
+.\"
+.SH NOM
+iwspy \- Obtenir des statistiques wireless depuis des noeuds donnés
+.\"
+.\" SYNOPSIS part
+.\"
+.SH SYNOPSIS
+.BI "iwspy [" interface ]
+.br
+.BI "iwspy " interface " [+] " DNSNAME " | " IPADDR " | " HWADDR " [...]"
+.br
+.BI "iwspy " interface " off"
+.br
+.BI "iwspy " interface " setthr " "low high"
+.br
+.BI "iwspy " interface " getthr"
+.\"
+.\" DESCRIPTION part
+.\"
+.SH DESCRIPTION
+.B Iwspy
+est utilisé pour fixer une liste d'adresses à surveiller sur une interface
+réseau sans fil, et obtenir des informations sur la qualité du lien pour
+chacune d'elles. Ces informations sont les mêmes que celles disponibles dans
+.IR /proc/net/wireless "\ :"
+qualité du lien, force du signal et niveau du bruit.
+.PP
+Ces informations sont mises à jour à chaque fois qu'un nouveau paquet est reçu,
+donc chaque adresse de la liste ajoute quelques précisions en plus.
+.PP
+Remarquez que cette fonctionnalité ne marche que pour les noeuds faisant partie
+de la cellule sans fil courante, vous ne pouvez pas surveiller un Point d'Accès
+avec lequel vous n'êtes pas associé (utiliser Scanning pour ça), ni les noeuds
+dans d'autres cellules. En mode Managed, les paquets sont souvent relayés par
+le Point d'Accès et, dans ce cas, vous obtiendrez la force du signal du Point
+d'Accès. Pour ces raisons cette fonctionnalité est surtout utile pour les
+modes Ad-Hoc et Master.
+.\"
+.\" PARAMETER part
+.\"
+.SH PARAMÈTRES
+Vous pouvez fixer jusqu'à 8 adresses.
+.TP
+.BR DNSNAME " | " IPADDR
+Paramètre une adresse IP, ou dans certains cas un nom DNS (en utilisant le
+«\ resolver\ » de nom). Comme le matériel fonctionne avec des adresses
+matérielles,
+.B iwspy
+traduira les adresses IP grâce à
+.IR ARP .
+Dans certains cas, cette adresse peut ne pas être dans le cache ARP et
+.B iwspy
+échouera. Dans cette situation, exécuter
+.IR ping (8)
+vers ces noms/adresses et réessayer.
+.TP
+.B HWADDR
+Paramètre une adresse matérielle (MAC) (cette adresse n'est pas traduite ni
+vérifée comme le sont les adresses IP). L'adresse doit contenir deux-points
+.RB ( : )
+pour être reconnue comme une adresse matérielle.
+.TP
+.B +
+Ajoute un nouveau jeu d'adresses à la fin de la liste courante au lieu de la
+remplacer. La liste d'adresses est unique pour chaque carte, donc chaque
+utilisateur devrait utiliser cette option pour éviter les conflits.
+.TP
+.B off
+Enlève la liste d'adresses courante et désactive la fonctionnalité de
+surveillance.
+.TP
+.B setthr
+Fixe les seuils de force de signal
+.IR low " (bas) et " high " (haut)"
+pour les événements iwspy (pour les pilotes qui le supportent).
+.br
+Chaque fois que la force du signal, pour une des adresses contrôlées avec
+iwspy, passe au-dessous du seuil bas ou au-dessus du seuil haut, un Wireless
+Event est généré.
+.br
+Ceci peut être utilisé pour surveiller la qualité du lien sans avoir à lancer
+iwspy périodiquement.
+.TP
+.B getthr
+Récupère les seuils
+.IR low " (bas) et " high " (haut)"
+de la force du signal pour l'événement iwspy.
+.\"
+\" AVERTISSEMENT part
+.\"
+.SH AVERTISSEMENT SUR LA TRADUCTION
+Il est possible que cette traduction soit imparfaite ou périmée. En cas de
+doute, veuillez vous reporter au document original en langue anglaise fourni
+avec le programme.
+\"
+.\" FILES part
+.\"
+.SH FICHIERS
+.I /proc/net/wireless
+.\"
+.\" SEE ALSO part
+.\"
+.SH VOIR AUSSI
+.BR iwconfig (8),
+.BR iwlist (8),
+.BR iwevent (8),
+.BR iwpriv (8),
+.BR wireless (7).
diff --git a/wireless_tools/fr.UTF-8/wireless.7 b/wireless_tools/fr.UTF-8/wireless.7
new file mode 100644 (file)
index 0000000..55abb95
--- /dev/null
@@ -0,0 +1,147 @@
+.\" Jean Tourrilhes - HPL - 2002 - 2004
+.\" wireless.7
+.\"
+.\" Traduction 2004/02/26 Maxime CHARPENNE (voir
+.\" http://www.delafond.org/traducmanfr/)
+.\" 1ère traduction        : version 27-pre11 (alpha)
+.\" Mise à jour 2004/08/24 : version 27-pre25
+.\" Manuel identique pour la version 29-pre21
+.\" Manuel identique pour la version 30-pre1
+.\" Manuel identique pour la version 30-pre3
+.\"
+.TH WIRELESS 7 "4 mars 2004" "wireless-tools" "Manuel du Programmeur Linux"
+.\"
+.\" NAME part
+.\"
+.SH NOM
+wireless \- Wireless Tools et Wireless Extensions
+.\"
+.\" SYNOPSIS part
+.\"
+.SH SYNOPSIS
+.B iwconfig
+.br
+.B iwpriv \-a
+.br
+.\"
+.\" DESCRIPTION part
+.\"
+.SH DESCRIPTION
+Les
+.B Wireless Extensions
+sont une API vous permettant de manipuler les interfaces réseaux Wireless LAN.
+Ils sont composés d'une gamme d'outils et de fichiers de configuration. Ils sont
+plus amplement détaillés dans le Linux Wireless LAN Howto.
+.br
+.RB Les " Wireless Tools"
+sont utilisés pour changer la configuration des interfaces réseau LAN wireless
+à la volée, pour obtenir leur configuration courante, pour avoir des
+statistiques et pour les diagnostiquer. Ils sont décrits dans leur propre page
+man, voir ci-dessous pour les références.
+.br
+.RB La " configuration Wireless"
+est propre à chaque distribution Linux. Cette page man contiendra à l'avenir
+la procédure de configuration pour quelques distributions les plus communes.
+Pour le moment, consultez le fichier DISTRIBUTIONS.txt inclus avec le paquetage
+Wireless Tools.
+.\"
+.\" DEBIAN 3.0 part
+.\"
+.SH DEBIAN 3.0
+Dans la Debian 3.0 (et suivante) vous pouvez configurer les périphériques
+réseaux LAN wireless en utilisant l'outil de configuration réseau
+.BR ifupdown (8).
+.TP
+.B Fichier :
+.I /etc/network/interfaces
+.TP
+.B Format :
+.RI wireless\- "<fonction> <valeur>"
+.br
+wireless\-essid Maison
+.br
+wireless\-mode Ad\-Hoc
+.TP
+.B Voir aussi :
+.I /etc/network/if\-pre\-up.d/wireless\-tools
+.br
+.I /usr/share/doc/wireless\-tools/README.Debian
+.\"
+.\" SuSE 8.0 part
+.\"
+.SH SuSE 8.0
+La SuSE 8.0 (et suivante) a intégré la configuration wireless dans ses
+scripts réseaux.
+.TP
+.B Outils :
+.B Yast2
+.TP
+.B Fichiers :
+.I /etc/sysconfig/network/wireless
+.br
+.I /etc/sysconfig/network/ifcfg\-*
+.TP
+.B Format :
+.RI WIRELESS_ "<fonction>" = "<valeur>"
+.br
+WIRELESS_ESSID="Maison"
+.br
+WIRELESS_MODE=Ad\-Hoc
+.TP
+.B Voir aussi :
+man ifup
+.br
+info scpm
+.\"
+.\" PCMCIA part
+.\"
+.SH SCRIPTS ORIGINAUX PCMCIA
+Si vous utilisez les scripts originaux de configuration du paquetage Pcmcia,
+vous pouvez utiliser cette méthode.
+.TP
+.B Fichier :
+.I /etc/pcmcia/wireless.opts
+.TP
+.B Format :
+*,*,*,*)
+.br
+    ESSID="Maison"
+.br
+    MODE="Ad-Hoc"
+.br
+    ;;
+.TP
+.B Voir aussi :
+.I /etc/pcmcia/wireless
+.br
+Le fichier
+.I PCMCIA.txt
+qui fait partie du paquetage Wireless Tools.
+.\"
+.\" AUTHOR part
+.\"
+.SH AUTEUR
+Jean Tourrilhes \- jt@hpl.hp.com
+.br
+.I http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/
+.\"
+.\" TRADUCTION part
+.\"
+.SH TRADUCTION
+Maxime CHARPENNE, octobre 2007 (wireless-tools.30-pre3).
+.\"
+.\" AVERTISSEMENT part
+.\"
+.SH AVERTISSEMENT SUR LA TRADUCTION
+Il est possible que cette traduction soit imparfaite ou périmée. En cas de
+doute, veuillez vous reporter au document original en langue anglaise fourni
+avec le programme.
+.\"
+.\" SEE ALSO part
+.\"
+.SH VOIR AUSSI
+.BR iwconfig (8),
+.BR iwlist (8),
+.BR iwspy (8),
+.BR iwpriv (8),
+.BR iwevent (8).
diff --git a/wireless_tools/fr/iftab.5 b/wireless_tools/fr/iftab.5
deleted file mode 100644 (file)
index 21c8936..0000000
+++ /dev/null
@@ -1,196 +0,0 @@
-.\" Jean II - HPL - 2004
-.\" iftab.5
-.\"
-.\" Traduction 2004/08/25 Maxime CHARPENNE (voir
-.\" http://www.delafond.org/traducmanfr/)
-.\" 1ère traduction        : version 27-pre25
-.\"
-.TH IFTAB 5 "01 mars 2004" "wireless-tools" "Manuel du Programmeur Linux"
-.\"
-.\" NAME part
-.\"
-.SH NOM
-iftab \- informations statiques sur les interfaces réseau
-.\"
-.\" DESCRIPTION part
-.\"
-.SH DESCRIPTION
-Le fichier
-.B /etc/iftab
-contient de l'information descriptive à propos des diverses interfaces réseau.
-.B iftab
-n'est utilisé que par le programme
-.IR ifrename (8)
-pour assigner un nom d'interface réseau cohérent à chaque interface réseau.
-.PP
-.B /etc/iftab
-définit un ensemble de
-.RI "correspondances («\ " mappings "\ »)."
-Chaque correspondance contient un nom d'interface et un ensemble de sélecteurs
-(«\ selectors\ »). Les sélecteurs permettent à
-.B ifrename
-d'identifier chaque interface réseau du système. Si une interface réseau
-correspond à tous les descripteurs d'une correspondance,
-.B ifrename
-essaye de changer le nom de l'interface par le nom de l'interface donné dans la
-correspondance.
-.\"
-.\" MAPPINGS part
-.\"
-.SH CORRESPONDANCES («\ MAPPINGS\ »)
-Chaque correspondance est décrite sur une ligne distincte, elle commence avec
-.IR "interface name" " (nom d'interface),"
-et contient un ensemble de
-.RI "descripteurs («\ " descriptors "\ »),"
-séparés par des espaces ou des tabulations.
-.PP
-La relation entre les descripteurs d'une correspondance est un
-.IR "et logique" .
-Une correspondance s'applique à une interface réseau seulement si tous les
-descripteurs s'appliquent. Si une interface réseau ne supporte pas un
-descripteur particulier, elle ne s'appliquera à aucune correspondance qui
-utilise ce descripteur.
-.PP
-Si vous voulez utiliser des descripteurs alternatifs pour un nom d'interface
-(ou logique), spécifiez deux correspondances différentes avec le même nom
-d'interface (une par ligne).
-.B Ifrename
-utilise toujours la première correspondance en commençant par la
-.I fin
-de
-.BR iftab ,
-donc les correspondances les plus restrictives devraient être définies en
-dernier.
-.\"
-.\" INTERFACE NAME part
-.\"
-.SH NOM D'INTERFACE
-La première partie de chaque correspondance est un nom d'interface. Si une
-interface réseau correspond à tous les descripteurs d'une correspondance,
-.B ifrename
-essaye de changer le nom de l'interface par le nom de l'interface donné dans la
-correspondance.
-.PP
-Le nom de l'interface d'une correspondance est soit un nom d'interface complet
-(comme
-.IR eth2 " ou " wlan0 )
-ou un motif de nom d'interface contenant un seul caractère joker (comme
-.IR eth* " ou " wlan* ).
-Dans le cas d'un caractère joker («\ wildcard\ »), le noyau remplace le
-caractère '*' par le plus petit entier disponible faisant un nom d'interface
-unique.
-.\"
-.\" DESCRIPTORS part
-.\"
-.SH DESCRIPTEURS («\ DESCRIPTORS\ »)
-Chaque descripteur est composé d'un nom de descripteur et d'une valeur de
-descripteur. Les descripteurs définissent un attribut statique d'une interface
-réseau, le but étant d'identifier de manière unique chaque périphérique.
-.PP
-La plupart des utilisateurs n'utiliseront que le sélecteur
-.BR mac ,
-les autres sélecteurs étant pour une configuration plus spécialisée.
-.TP
-.BI mac " adresse mac"
-Correspond à l'Adresse MAC de l'interface avec l'adresse MAC spécifiée.
-L'adresse MAC de l'interface peut être montrée en utilisant
-.IR ifconfig (8)
-ou
-.IR ip (8).
-L'adresse MAC spécifiée peut contenir une '*' pour la correspondance joker
-(«\ wildcard matching\ »).
-.br
-C'est le plus commun des sélecteurs, vu que chaque interface possède une
-adresse MAC unique, ce qui permet de les identifier sans ambiguïté.
-.TP
-.BI arp " arp type"
-Fait correspondre le Type ARP («\ ARP Type\ ») (aussi appelé «\ Link Type\ »)
-de l'interface avec le type ARP spécifié. Le Type ARP de l'interface peut être
-montré en utilisant
-.IR ifconfig (8)
-ou
-.IR ip (8).
-.br
-Ce sélecteur est utile quand un pilote crée plusieurs interfaces réseau pour
-une seule carte réseau.
-.TP
-.BI driver " driver name"
-Fait correspondre le Nom de Pilote («\ Driver Name\ ») de l'interface avec le
-nom de pilote spécifié. Le Nom de Pilote de l'interface peut être montré en
-utilisant
-.IR "ethtool -i" (8).
-.TP
-.BI businfo " bus information"
-Fait correspondre l'Information de Bus («\ Bus Information\ ») de l'interface
-avec l'information de bus spécifiée. L'Information de Bus de l'interface peut
-être montrée en utilisant
-.IR "ethtool -i" (8).
-.TP
-.BI baseaddress " base address"
-Fait correspondre l'Adresse de Base («\ Base Address\ ») de l'interface avec
-l'adresse de base spécifiée. L'Adresse de Base de l'interface peut être montrée
-en utilisant
-.IR ifconfig (8).
-.br
-Ce sélecteur n'est utile que pour les cartes ISA et EISA car la plupart des
-cartes utilisent l'allocation dynamique pour l'Adresse de Base.
-.TP
-.BI irq " irq line"
-Fait correspondre la Ligne IRQ (interruption) de l'interface avec la ligne IRQ
-spécifiée. La Ligne IRQ de l'interface peut être montrée en utilisant
-.IR ifconfig (8).
-.br
-Ce sélecteur n'est habituellement pas suffisant pour identifier de manière
-unique une interface, car les Lignes IRQ peuvent être partagées.
-.TP
-.BI iwproto " wireless protocol"
-Fait correspondre le Protocole Wireless de l'interface avec le protocole
-wireless spécifié. Le Protocole Wireless de l'interface peut être montré
-en utilisant
-.IR iwconfig (8).
-.br
-Ce sélecteur n'est valable que pour les interfaces wireless et n'est pas
-suffisant pour en identifier une de manière unique.
-.\"
-.\" EXAMPLE part
-.\"
-.SH EXEMPLE
-# Ceci est un commentaire
-.br
-eth2           mac 08:00:09:DE:82:0E
-.br
-eth3           driver wavelan interrupt 15 baseaddress 0x390
-.br
-eth4           driver pcnet32 businfo 0000:02:05.0
-.br
-air*           mac 00:07:0E:* arp 1
-.\"
-.\" AUTHOR part
-.\"
-.SH AUTEUR
-Jean Tourrilhes \- jt@hpl.hp.com
-.\"
-.\" TRADUCTION part
-.\"
-.SH TRADUCTION
-Maxime CHARPENNE, août 2004 (wireless_tools.27-pre25).
-.\"
-.\" AVERTISSEMENT part
-.\"
-.SH AVERTISSEMENT SUR LA TRADUCTION
-Il est possible que cette traduction soit imparfaite ou périmée. En cas de
-doute, veuillez vous reporter au document original en langue anglaise fourni
-avec le programme.
-.\"
-.\" FILES part
-.\"
-.SH FICHIERS
-.I /etc/iftab
-.\"
-.\" SEE ALSO part
-.\"
-.SH VOIR AUSSI
-.BR ifrename (8),
-.BR ifconfig (8),
-.BR ip (8),
-.BR iwconfig (8).
index da10181..48b6be9 100644 (file)
@@ -11,7 +11,7 @@ ifrename \- rename network interfaces based on various static criteria
 .\" SYNOPSIS part
 .\"
 .SH SYNOPSIS
-.B "ifrename [-c configfile] [-p] [-d] [-u] [-v] [-V] [-D]"
+.B "ifrename [-c configfile] [-p] [-d] [-u] [-v] [-V] [-D] [-C]"
 .br
 .B "ifrename [-c configfile] [-i interface] [-n newname]"
 .\"
@@ -164,6 +164,14 @@ with the
 .I dry-run
 option, this is a good way to debug complex configurations or trivial
 problems.
+.TP
+.B -C
+Count matching interfaces. Display the number of interface matched,
+and return it as the exit status of ifrename.
+.br
+The number of interfaces matched is the number of interface on the
+system for which a mapping was found in the config file (which is
+different from the number of interface renamed).
 .\"
 .\" AUTHOR part
 .\"
index 9a29d17..9c6c806 100644 (file)
@@ -432,9 +432,12 @@ int        print_newname = 0;
 char * new_name = NULL;
 
 /* Takeover support */
-int    force_takeover = 0;     /* Takeover name from other interface */
+int    force_takeover = 0;     /* Takeover name from other interfaces */
 int    num_takeover = 0;       /* Number of takeover done */
 
+/* Number of mapping matched */
+int    num_mapping_match = 0;
+
 /* Dry-run support */
 int    dry_run = 0;            /* Just print new name, don't rename */
 
@@ -2313,7 +2316,7 @@ mapping_find(struct if_mapping *  target)
  * Probe interfaces based on our list of mappings.
  * This is the default, but usually not the best way to do it.
  */
-static void
+static inline void
 probe_mappings(int             skfd)
 {
   struct if_mapping *  ifnode;
@@ -2323,11 +2326,11 @@ probe_mappings(int              skfd)
   for(ifnode = mapping_list; ifnode != NULL; ifnode = ifnode->next)
     {
       /* Can't load wildcards interface name :-( */
-      if(strchr(ifnode->ifname, '%') != NULL)
+      if(strchr(ifnode->ifname, '*') != NULL)
        continue;
 
       if(verbose)
-       fprintf(stderr, "Probing : Trying to load interface [%s]\n",
+       fprintf(stderr, "Probing : Trying to load/probe interface [%s]\n",
                ifnode->ifname);
 
       /* Trick the kernel into loading the interface.
@@ -2348,7 +2351,7 @@ probe_mappings(int                skfd)
  * all built-in interfaces that should remain unconfigured won't
  * be probed (and can have mappings).
  */
-static void
+static inline void
 probe_debian(int               skfd)
 {
   FILE *               stream;
@@ -2531,6 +2534,9 @@ process_ifname(int        skfd,
        }
     }
 
+  /* This one matched */
+  num_mapping_match++;
+
   /* Check if called with an explicit interface name */
   if(print_newname)
     {
@@ -2567,28 +2573,28 @@ process_ifname(int      skfd,
 /*
  * Process all network interface present on the system.
  */
-static inline int
+static int
 process_iflist(int     skfd,
               char *   args[],
-              int      count)
+              int      count,
+              int      use_probe,
+              int      is_debian)
 {
   num_takeover = 0;
+  num_mapping_match = 0;
+
+  /* Load all the necesary modules */
+  if(use_probe)
+    {
+      if(is_debian)
+       probe_debian(skfd);
+      else
+       probe_mappings(skfd);
+    }
 
   /* Just do it */
   iw_enum_devices(skfd, &process_ifname, args, count);
 
-  /* If we do any takeover, the interface list grabbed with
-   * iw_enum_devices() may get out of sync with the real interfaces,
-   * and we may miss the victim interface. So, let's go through the
-   * list again.
-   * On the other hand, we may have ping pong between two interfaces,
-   * each claiming the same name, so let's not do it forever...
-   * Two time should be enough for most configs...
-   * Jean II */
-  if(force_takeover && num_takeover)
-    /* Play it again, Sam... */
-    iw_enum_devices(skfd, &process_ifname, args, count);
-
   /* Done */
   return(0);
 }
@@ -2616,15 +2622,16 @@ main(int        argc,
 {
   const char * conf_file = DEFAULT_CONF;
   char *       ifname = NULL;
-  int          use_probe = 0;
-  int          is_debian = 0;
+  int          use_probe = 0;          /* Probe for modules */
+  int          is_debian = 0;          /* Debian quirks (probing) */
+  int          print_num_match = 0;    /* Print/Return num of matches */
   int          skfd;
   int          ret;
 
   /* Loop over all command line options */
   while(1)
     {
-      int c = getopt_long(argc, argv, "c:dDi:n:ptuvV", long_opt, NULL);
+      int c = getopt_long(argc, argv, "c:CdDi:n:ptuvV", long_opt, NULL);
       if(c == -1)
        break;
 
@@ -2636,6 +2643,9 @@ main(int  argc,
        case 'c':
          conf_file = optarg;
          break;
+       case 'C':
+         print_num_match = 1;
+         break;
        case 'd':
          is_debian = 1;
          break;
@@ -2666,10 +2676,6 @@ main(int argc,
        }
     }
 
-  /* Read the specified/default config file, or stdin. */
-  if(mapping_readfile(conf_file) < 0)
-    return(-1);
-
   /* Create a channel to the NET kernel. */
   if((skfd = iw_sockets_open()) < 0)
     {
@@ -2688,6 +2694,10 @@ main(int argc,
        }
       else
        {
+         /* Read the specified/default config file, or stdin. */
+         if(mapping_readfile(conf_file) < 0)
+           return(-1);
+
          /* Rename only this interface based on mappings
           * Mostly used for HotPlug processing (from /etc/hotplug/net.agent)
           * or udev processing (from a udev IMPORT rule).
@@ -2700,19 +2710,38 @@ main(int        argc,
     }
   else
     {
-      /* Load all the necesary modules */
-      if(use_probe)
-       {
-         if(is_debian)
-           probe_debian(skfd);
-         else
-           probe_mappings(skfd);
-       }
+      /* Read the specified/default config file, or stdin. */
+      if(mapping_readfile(conf_file) < 0)
+       return(-1);
 
       /* Rename all system interfaces
        * Mostly used for boot time processing (from init scripts).
        */
-      ret = process_iflist(skfd, NULL, 0);
+      ret = process_iflist(skfd, NULL, 0, use_probe, is_debian);
+
+      /* If we do any takeover, the interface list grabbed with
+       * iw_enum_devices() may get out of sync with the real interfaces,
+       * and we may miss the victim interface. So, let's go through the
+       * list again.
+       * On the other hand, we may have ping pong between two interfaces,
+       * each claiming the same name, so let's not do it forever...
+       * Two time should be enough for most configs...
+       * Note also that takeover is usually done with eth0, and many time
+       * we fail to probe eth0 because an unrenamed interface was using it,
+       * so we redo everything also when probing...
+       * Jean II */
+      if(force_takeover && (num_takeover || use_probe))
+       {
+         /* Play it again, Sam... */
+         ret = process_iflist(skfd, NULL, 0, use_probe, is_debian);
+       }
+
+      /* Print number of mapping that matched */
+      if(print_num_match)
+       {
+         fprintf(stderr, "Setting : %d mapping matched.\n", num_mapping_match);
+         ret = num_mapping_match;
+       }
     }
 
   /* Cleanup */
diff --git a/wireless_tools/iw261_restore_full_essid.diff b/wireless_tools/iw261_restore_full_essid.diff
new file mode 100644 (file)
index 0000000..596d9e1
--- /dev/null
@@ -0,0 +1,60 @@
+diff -u -p linux/net/core/wireless.j2.c linux/net/core/wireless.c
+--- linux/net/core/wireless.j2.c       2007-03-21 14:41:51.000000000 -0700
++++ linux/net/core/wireless.c  2007-03-21 14:41:08.000000000 -0700
+@@ -766,39 +766,11 @@ static int ioctl_standard_call(struct ne
+               int     extra_size;
+               int     user_length = 0;
+               int     err;
+-              int     essid_compat = 0;
+               /* Calculate space needed by arguments. Always allocate
+                * for max space. Easier, and won't last long... */
+               extra_size = descr->max_tokens * descr->token_size;
+-              /* Check need for ESSID compatibility for WE < 21 */
+-              switch (cmd) {
+-              case SIOCSIWESSID:
+-              case SIOCGIWESSID:
+-              case SIOCSIWNICKN:
+-              case SIOCGIWNICKN:
+-                      if (iwr->u.data.length == descr->max_tokens + 1)
+-                              essid_compat = 1;
+-                      else if (IW_IS_SET(cmd) && (iwr->u.data.length != 0)) {
+-                              char essid[IW_ESSID_MAX_SIZE + 1];
+-
+-                              err = copy_from_user(essid, iwr->u.data.pointer,
+-                                                   iwr->u.data.length *
+-                                                   descr->token_size);
+-                              if (err)
+-                                      return -EFAULT;
+-
+-                              if (essid[iwr->u.data.length - 1] == '\0')
+-                                      essid_compat = 1;
+-                      }
+-                      break;
+-              default:
+-                      break;
+-              }
+-
+-              iwr->u.data.length -= essid_compat;
+-
+               /* Check what user space is giving us */
+               if(IW_IS_SET(cmd)) {
+                       /* Check NULL pointer */
+@@ -841,7 +813,6 @@ static int ioctl_standard_call(struct ne
+ #endif        /* WE_IOCTL_DEBUG */
+               /* Create the kernel buffer */
+-              /*    kzalloc ensures NULL-termination for essid_compat */
+               extra = kzalloc(extra_size, GFP_KERNEL);
+               if (extra == NULL) {
+                       return -ENOMEM;
+@@ -866,8 +837,6 @@ static int ioctl_standard_call(struct ne
+               /* Call the handler */
+               ret = handler(dev, &info, &(iwr->u), extra);
+-              iwr->u.data.length += essid_compat;
+-
+               /* If we have something to return to the user */
+               if (!ret && IW_IS_GET(cmd)) {
+                       /* Check if there is enough buffer up there */
diff --git a/wireless_tools/iw262_restore_full_essid.diff b/wireless_tools/iw262_restore_full_essid.diff
new file mode 100644 (file)
index 0000000..29ae815
--- /dev/null
@@ -0,0 +1,59 @@
+--- linux/net/wireless/wext.j1.c       2007-07-09 13:19:22.000000000 -0700
++++ linux/net/wireless/wext.c  2007-07-09 13:19:59.000000000 -0700
+@@ -741,39 +741,11 @@ static int ioctl_standard_call(struct ne
+               int     extra_size;
+               int     user_length = 0;
+               int     err;
+-              int     essid_compat = 0;
+               /* Calculate space needed by arguments. Always allocate
+                * for max space. Easier, and won't last long... */
+               extra_size = descr->max_tokens * descr->token_size;
+-              /* Check need for ESSID compatibility for WE < 21 */
+-              switch (cmd) {
+-              case SIOCSIWESSID:
+-              case SIOCGIWESSID:
+-              case SIOCSIWNICKN:
+-              case SIOCGIWNICKN:
+-                      if (iwr->u.data.length == descr->max_tokens + 1)
+-                              essid_compat = 1;
+-                      else if (IW_IS_SET(cmd) && (iwr->u.data.length != 0)) {
+-                              char essid[IW_ESSID_MAX_SIZE + 1];
+-
+-                              err = copy_from_user(essid, iwr->u.data.pointer,
+-                                                   iwr->u.data.length *
+-                                                   descr->token_size);
+-                              if (err)
+-                                      return -EFAULT;
+-
+-                              if (essid[iwr->u.data.length - 1] == '\0')
+-                                      essid_compat = 1;
+-                      }
+-                      break;
+-              default:
+-                      break;
+-              }
+-
+-              iwr->u.data.length -= essid_compat;
+-
+               /* Check what user space is giving us */
+               if (IW_IS_SET(cmd)) {
+                       /* Check NULL pointer */
+@@ -811,7 +783,6 @@ static int ioctl_standard_call(struct ne
+               }
+               /* Create the kernel buffer */
+-              /*    kzalloc ensures NULL-termination for essid_compat */
+               extra = kzalloc(extra_size, GFP_KERNEL);
+               if (extra == NULL)
+                       return -ENOMEM;
+@@ -830,8 +801,6 @@ static int ioctl_standard_call(struct ne
+               /* Call the handler */
+               ret = handler(dev, &info, &(iwr->u), extra);
+-              iwr->u.data.length += essid_compat;
+-
+               /* If we have something to return to the user */
+               if (!ret && IW_IS_GET(cmd)) {
+                       /* Check if there is enough buffer up there */
index f43c2b8..1585ec2 100644 (file)
@@ -288,7 +288,7 @@ This is an absolute value (without unit), and the default (when
 nothing is specified).
 To set the maximum length of time the MAC should retry, enter
 .IR "lifetime `value'" .
-By defaults, this value in in seconds, append the suffix m or u to
+By defaults, this value is in seconds, append the suffix m or u to
 specify values in milliseconds or microseconds.
 .br
 You can also add the
@@ -452,7 +452,7 @@ The list of available modulations depend on the card/driver and can be
 displayed using
 .IR "iwlist modulation" .
 Note that some card/driver may not be able to select each modulation
-listed independantly, some may come as a group. You may also set this
+listed independently, some may come as a group. You may also set this
 parameter to
 .IR auto
 let the card/driver do its best.
index d01f29a..0780424 100644 (file)
@@ -11,7 +11,7 @@
  *     Copyright (c) 1997-2007 Jean Tourrilhes <jt@hpl.hp.com>
  */
 
-#include "iwlib.h"             /* Header */
+#include "iwlib-private.h"             /* Private header */
 
 /**************************** CONSTANTS ****************************/
 
@@ -100,7 +100,7 @@ get_info(int                        skfd,
 #ifndef WE_ESSENTIAL
   /* Get NickName */
   wrq.u.essid.pointer = (caddr_t) info->nickname;
-  wrq.u.essid.length = IW_ESSID_MAX_SIZE + 1;
+  wrq.u.essid.length = IW_ESSID_MAX_SIZE + 2;
   wrq.u.essid.flags = 0;
   if(iw_get_ext(skfd, ifname, SIOCGIWNICKN, &wrq) >= 0)
     if(wrq.u.data.length > 1)
@@ -160,7 +160,7 @@ static void
 display_info(struct wireless_info *    info,
             char *                     ifname)
 {
-  char         buffer[128];    /* Temporary buffer */
+  char         buffer[256];    /* Temporary buffer */
 
   /* One token is more of less 5 characters, 14 tokens per line */
   int  tokens = 3;     /* For name */
@@ -173,12 +173,14 @@ display_info(struct wireless_info *       info,
     {
       if(info->b.essid_on)
        {
+         /* Escape the non-printable characters */
+         iw_essid_escape(buffer, info->b.essid, info->b.essid_len);
          /* Does it have an ESSID index ? */
          if((info->b.essid_on & IW_ENCODE_INDEX) > 1)
-           printf("ESSID:\"%s\" [%d]  ", info->b.essid,
+           printf("ESSID:\"%s\" [%d]  ", buffer,
                   (info->b.essid_on & IW_ENCODE_INDEX));
          else
-           printf("ESSID:\"%s\"  ", info->b.essid);
+           printf("ESSID:\"%s\"  ", buffer);
        }
       else
        printf("ESSID:off/any  ");
@@ -619,7 +621,9 @@ set_essid_info(int          skfd,
 {
   struct iwreq         wrq;
   int                  i = 1;
-  char                 essid[IW_ESSID_MAX_SIZE + 1];
+  char                 essid[4*IW_ESSID_MAX_SIZE + 1];
+  int                  essid_len;
+  int                  essid_index;
   int                  we_kernel_version;
 
   if((!strcasecmp(args[0], "off")) ||
@@ -627,6 +631,7 @@ set_essid_info(int          skfd,
     {
       wrq.u.essid.flags = 0;
       essid[0] = '\0';
+      essid_len = 0;
     }
   else
     if(!strcasecmp(args[0], "on"))
@@ -634,11 +639,12 @@ set_essid_info(int                skfd,
        /* Get old essid */
        memset(essid, '\0', sizeof(essid));
        wrq.u.essid.pointer = (caddr_t) essid;
-       wrq.u.essid.length = IW_ESSID_MAX_SIZE + 1;
+       wrq.u.essid.length = IW_ESSID_MAX_SIZE + 2;
        wrq.u.essid.flags = 0;
        if(iw_get_ext(skfd, ifname, SIOCGIWESSID, &wrq) < 0)
          return(IWERR_GET_EXT);
        wrq.u.essid.flags = 1;
+       essid_len = wrq.u.essid.length;
       }
     else
       {
@@ -651,31 +657,37 @@ set_essid_info(int                skfd,
          {
            if(++i >= count)
              return(IWERR_ARG_NUM);
+           essid_len = strlen(args[i]);
          }
 
-       /* Check the size of what the user passed us to avoid
-        * buffer overflows */
-       if(strlen(args[i]) > IW_ESSID_MAX_SIZE)
+       /* First size check : check if ot fits in our internal buffer.
+        * We do a two pass size check because of unescaping */
+       if(strlen(args[i]) > (4*IW_ESSID_MAX_SIZE))
          {
            errmax = IW_ESSID_MAX_SIZE;
            return(IWERR_ARG_SIZE);
          }
-       else
+
+       /* Unescape the ESSID to allow the user to enter weird chars */
+       essid_len = iw_essid_unescape(essid, args[i]);
+
+       /* Check the size to see if it fits the API. */
+       if(essid_len > IW_ESSID_MAX_SIZE)
          {
-           int         temp;
+           errmax = IW_ESSID_MAX_SIZE;
+           return(IWERR_ARG_SIZE);
+         }
 
-           wrq.u.essid.flags = 1;
-           strcpy(essid, args[i]);     /* Size checked, all clear */
-           i++;
+       wrq.u.essid.flags = 1;
+       i++;
 
-           /* Check for ESSID index */
-           if((i < count) &&
-              (sscanf(args[i], "[%i]", &temp) == 1) &&
-              (temp > 0) && (temp < IW_ENCODE_INDEX))
-             {
-               wrq.u.essid.flags = temp;
-               ++i;
-             }
+       /* Check for ESSID index */
+       if((i < count) &&
+          (sscanf(args[i], "[%i]", &essid_index) == 1) &&
+          (essid_index > 0) && (essid_index < IW_ENCODE_INDEX))
+         {
+           wrq.u.essid.flags = essid_index;
+           ++i;
          }
       }
 
@@ -684,7 +696,7 @@ set_essid_info(int          skfd,
 
   /* Finally set the ESSID value */
   wrq.u.essid.pointer = (caddr_t) essid;
-  wrq.u.essid.length = strlen(essid);
+  wrq.u.essid.length = essid_len;
   if(we_kernel_version < 21)
     wrq.u.essid.length++;
 
@@ -1034,8 +1046,8 @@ set_power_info(int                skfd,
        wrq.u.power.disabled = 0;
 
        /* Is there any value to grab ? */
-       value = strtod(args[0], &unit);
-       if(unit != args[0])
+       value = strtod(args[i], &unit);
+       if(unit != args[i])
          {
            struct iw_range     range;
            int                 flags;
@@ -1420,8 +1432,8 @@ set_retry_info(int                skfd,
   wrq.u.retry.disabled = 0;
 
   /* Is there any value to grab ? */
-  value = strtod(args[0], &unit);
-  if(unit == args[0])
+  value = strtod(args[i], &unit);
+  if(unit == args[i])
     {
       errarg = i;
       return(IWERR_ARG_TYPE);
@@ -1941,7 +1953,7 @@ main(int  argc,
 
          /* The device name must be the first argument */
          if(argc == 2)
-           print_info(skfd, argv[1], NULL, 0);
+           goterr = print_info(skfd, argv[1], NULL, 0);
          else
            /* The other args on the line specify options to be set... */
            goterr = set_info(skfd, argv + 2, argc - 2, argv[1]);
index c31964b..551ddb7 100644 (file)
@@ -17,7 +17,7 @@
 
 /***************************** INCLUDES *****************************/
 
-#include "iwlib.h"             /* Header */
+#include "iwlib-private.h"             /* Private header */
 
 #include <linux/netlink.h>
 #include <linux/rtnetlink.h>
@@ -341,10 +341,11 @@ print_event_token(struct iw_event *       event,          /* Extracted token */
     case SIOCSIWESSID:
     case SIOCGIWESSID:
       {
-       char essid[IW_ESSID_MAX_SIZE+1];
+       char essid[4*IW_ESSID_MAX_SIZE + 1];
        memset(essid, '\0', sizeof(essid));
        if((event->u.essid.pointer) && (event->u.essid.length))
-         memcpy(essid, event->u.essid.pointer, event->u.essid.length);
+         iw_essid_escape(essid,
+                         event->u.essid.pointer, event->u.essid.length);
        if(event->u.essid.flags)
          {
            /* Does it have an ESSID index ? */
@@ -365,7 +366,7 @@ print_event_token(struct iw_event * event,          /* Extracted token */
          memcpy(key, event->u.data.pointer, event->u.data.length);
        else
          event->u.data.flags |= IW_ENCODE_NOKEY;
-       printf("Set Encryption key:");
+       printf("Set Encryption key:{%X}", event->u.data.flags);
        if(event->u.data.flags & IW_ENCODE_DISABLED)
          printf("off\n");
        else
index bbd48a1..dce6c65 100644 (file)
@@ -9,7 +9,7 @@
  *     Copyright (c) 1997-2004 Jean Tourrilhes <jt@hpl.hp.com>
  */
 
-#include "iwlib.h"             /* Header */
+#include "iwlib-private.h"             /* Private header */
 
 #include <getopt.h>
 
@@ -84,8 +84,8 @@ print_essid(int                       skfd,
            int                 format)
 {
   struct iwreq         wrq;
-  char                 essid[IW_ESSID_MAX_SIZE + 1];   /* ESSID */
-  char                 pessid[IW_ESSID_MAX_SIZE + 1];  /* Pcmcia format */
+  char                 essid[IW_ESSID_MAX_SIZE + 2];   /* ESSID */
+  char                 pessid[4 * IW_ESSID_MAX_SIZE + 1];      /* Printable format */
   unsigned int         i;
   unsigned int         j;
 
@@ -94,7 +94,7 @@ print_essid(int                       skfd,
 
   /* Get ESSID */
   wrq.u.essid.pointer = (caddr_t) essid;
-  wrq.u.essid.length = IW_ESSID_MAX_SIZE + 1;
+  wrq.u.essid.length = IW_ESSID_MAX_SIZE + 2;
   wrq.u.essid.flags = 0;
   if(iw_get_ext(skfd, ifname, SIOCGIWESSID, &wrq) < 0)
     return(-1);
@@ -104,7 +104,7 @@ print_essid(int                     skfd,
     case FORMAT_SCHEME:
       /* Strip all white space and stuff */
       j = 0;
-      for(i = 0; i < strlen(essid); i++)
+      for(i = 0; i < wrq.u.essid.length; i++)
        if(isalnum(essid[i]))
          pessid[j++] = essid[i];
       pessid[j] = '\0';
@@ -116,7 +116,8 @@ print_essid(int                     skfd,
       printf("%s\n", essid);
       break;
     default:
-      printf("%-8.16s  ESSID:\"%s\"\n", ifname, essid);
+      iw_essid_escape(pessid, essid, wrq.u.essid.length);
+      printf("%-8.16s  ESSID:\"%s\"\n", ifname, pessid);
       break;
     }
 
diff --git a/wireless_tools/iwlib-private.h b/wireless_tools/iwlib-private.h
new file mode 100644 (file)
index 0000000..4096909
--- /dev/null
@@ -0,0 +1,171 @@
+/*
+ *     Wireless Tools
+ *
+ *             Jean II - HPLB 97->99 - HPL 99->09
+ *
+ * Private common header for the Wireless Extension library...
+ *
+ * This file is released under the GPL license.
+ *     Copyright (c) 1997-2009 Jean Tourrilhes <jt@hpl.hp.com>
+ */
+
+#ifndef IWLIB_PRIVATE_H
+#define IWLIB_PRIVATE_H
+
+/*#include "CHANGELOG.h"*/
+
+/***************************** INCLUDES *****************************/
+
+#include "iwlib.h"             /* Public header */
+
+/* Make gcc understand that when we say inline, we mean it.
+ * I really hate when the compiler is trying to be more clever than me,
+ * because in this case gcc is not able to figure out functions with a
+ * single call site, so not only I have to tag those functions inline
+ * by hand, but then it refuse to inline them properly.
+ * Total saving for iwevent : 150B = 0.7%.
+ * Fortunately, in gcc 3.4, they now automatically inline static functions
+ * with a single call site. Hurrah !
+ * Jean II */
+#undef IW_GCC_HAS_BROKEN_INLINE
+#if __GNUC__ == 3
+#if __GNUC_MINOR__ >= 1 && __GNUC_MINOR__ < 4
+#define IW_GCC_HAS_BROKEN_INLINE       1
+#endif /* __GNUC_MINOR__ */
+#endif /* __GNUC__ */
+/* However, gcc 4.0 has introduce a new "feature", when compiling with
+ * '-Os', it does not want to inline iw_ether_cmp() and friends.
+ * So, we need to fix inline again !
+ * Jean II */
+#if __GNUC__ == 4
+#define IW_GCC_HAS_BROKEN_INLINE       1
+#endif /* __GNUC__ */
+/* Now, really fix the inline */
+#ifdef IW_GCC_HAS_BROKEN_INLINE
+#ifdef inline
+#undef inline
+#endif /* inline */
+#define inline         inline          __attribute__((always_inline))
+#endif /* IW_GCC_HAS_BROKEN_INLINE */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/****************************** DEBUG ******************************/
+
+//#define DEBUG 1
+
+/************************ CONSTANTS & MACROS ************************/
+
+/* Paths */
+#define PROC_NET_WIRELESS      "/proc/net/wireless"
+#define PROC_NET_DEV           "/proc/net/dev"
+
+/* Some usefull constants */
+#define KILO   1e3
+#define MEGA   1e6
+#define GIGA   1e9
+/* For doing log10/exp10 without libm */
+#define LOG10_MAGIC    1.25892541179
+
+/* Backward compatibility for network headers */
+#ifndef ARPHRD_IEEE80211
+#define ARPHRD_IEEE80211 801           /* IEEE 802.11                  */
+#endif /* ARPHRD_IEEE80211 */
+
+#ifndef IW_EV_LCP_PK_LEN
+/* Size of the Event prefix when packed in stream */
+#define IW_EV_LCP_PK_LEN       (4)
+/* Size of the various events when packed in stream */
+#define IW_EV_CHAR_PK_LEN      (IW_EV_LCP_PK_LEN + IFNAMSIZ)
+#define IW_EV_UINT_PK_LEN      (IW_EV_LCP_PK_LEN + sizeof(__u32))
+#define IW_EV_FREQ_PK_LEN      (IW_EV_LCP_PK_LEN + sizeof(struct iw_freq))
+#define IW_EV_PARAM_PK_LEN     (IW_EV_LCP_PK_LEN + sizeof(struct iw_param))
+#define IW_EV_ADDR_PK_LEN      (IW_EV_LCP_PK_LEN + sizeof(struct sockaddr))
+#define IW_EV_QUAL_PK_LEN      (IW_EV_LCP_PK_LEN + sizeof(struct iw_quality))
+#define IW_EV_POINT_PK_LEN     (IW_EV_LCP_PK_LEN + 4)
+#endif /* IW_EV_LCP_PK_LEN */
+
+#ifndef IW_EV_LCP_PK2_LEN
+struct iw_pk_event
+{
+       __u16           len;                    /* Real lenght of this stuff */
+       __u16           cmd;                    /* Wireless IOCTL */
+       union iwreq_data        u;              /* IOCTL fixed payload */
+} __attribute__ ((packed));
+struct iw_pk_point
+{
+  void __user  *pointer;       /* Pointer to the data  (in user space) */
+  __u16                length;         /* number of fields or size in bytes */
+  __u16                flags;          /* Optional params */
+} __attribute__ ((packed));
+
+#define IW_EV_LCP_PK2_LEN      (sizeof(struct iw_pk_event) - sizeof(union iwreq_data))
+#define IW_EV_POINT_PK2_LEN    (IW_EV_LCP_PK2_LEN + sizeof(struct iw_pk_point) - IW_EV_POINT_OFF)
+#endif /* IW_EV_LCP_PK2_LEN */
+
+/************************* INLINE FUNTIONS *************************/
+/*
+ * Functions that are so simple that it's more efficient inlining them
+ * Most inline are private because gcc is fussy about inline...
+ */
+
+/*------------------------------------------------------------------*/
+/*
+ * Display an Ethernet Socket Address in readable format.
+ */
+static inline char *
+iw_saether_ntop(const struct sockaddr *sap, char* bufp)
+{
+  iw_ether_ntop((const struct ether_addr *) sap->sa_data, bufp);
+  return bufp;
+}
+/*------------------------------------------------------------------*/
+/*
+ * Input an Ethernet Socket Address and convert to binary.
+ */
+static inline int
+iw_saether_aton(const char *bufp, struct sockaddr *sap)
+{
+  sap->sa_family = ARPHRD_ETHER;
+  return iw_ether_aton(bufp, (struct ether_addr *) sap->sa_data);
+}
+
+/*------------------------------------------------------------------*/
+/*
+ * Create an Ethernet broadcast address
+ */
+static inline void
+iw_broad_ether(struct sockaddr *sap)
+{
+  sap->sa_family = ARPHRD_ETHER;
+  memset((char *) sap->sa_data, 0xFF, ETH_ALEN);
+}
+
+/*------------------------------------------------------------------*/
+/*
+ * Create an Ethernet NULL address
+ */
+static inline void
+iw_null_ether(struct sockaddr *sap)
+{
+  sap->sa_family = ARPHRD_ETHER;
+  memset((char *) sap->sa_data, 0x00, ETH_ALEN);
+}
+
+/*------------------------------------------------------------------*/
+/*
+ * Compare two ethernet addresses
+ */
+static inline int
+iw_ether_cmp(const struct ether_addr* eth1, const struct ether_addr* eth2)
+{
+  return memcmp(eth1, eth2, sizeof(*eth1));
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* IWLIB_PRIVATE_H */
index 0afa8c1..cd22a8b 100644 (file)
@@ -1,17 +1,17 @@
 /*
  *     Wireless Tools
  *
- *             Jean II - HPLB 97->99 - HPL 99->07
+ *             Jean II - HPLB 97->99 - HPL 99->09
  *
  * Common subroutines to all the wireless tools...
  *
  * This file is released under the GPL license.
- *     Copyright (c) 1997-2007 Jean Tourrilhes <jt@hpl.hp.com>
+ *     Copyright (c) 1997-2009 Jean Tourrilhes <jt@hpl.hp.com>
  */
 
 /***************************** INCLUDES *****************************/
 
-#include "iwlib.h"             /* Header */
+#include "iwlib-private.h"             /* Private header */
 
 /************************ CONSTANTS & MACROS ************************/
 
@@ -90,6 +90,15 @@ union        iw_range_raw
 #define iwr_off(f)     ( ((char *) &(((struct iw_range *) NULL)->f)) - \
                          (char *) NULL)
 
+/*
+ * Union to perform unaligned access when working around alignement issues
+ */
+union  iw_align_u16
+{
+       __u16           value;
+       unsigned char   byte[2];
+};
+
 /**************************** VARIABLES ****************************/
 
 /* Modes as human readable strings */
@@ -707,12 +716,13 @@ iw_get_basic_config(int                   skfd,
 
   /* Get ESSID */
   wrq.u.essid.pointer = (caddr_t) info->essid;
-  wrq.u.essid.length = IW_ESSID_MAX_SIZE + 1;
+  wrq.u.essid.length = IW_ESSID_MAX_SIZE + 2;
   wrq.u.essid.flags = 0;
   if(iw_get_ext(skfd, ifname, SIOCGIWESSID, &wrq) >= 0)
     {
       info->has_essid = 1;
       info->essid_on = wrq.u.data.flags;
+      info->essid_len = wrq.u.essid.length;
     }
 
   /* Get operation mode */
@@ -923,6 +933,132 @@ iw_protocol_compare(const char *  protocol1,
   return(0);
 }
 
+/************************ ESSID SUBROUTINES ************************/
+/*
+ * The ESSID identify 802.11 networks, and is an array if 32 bytes.
+ * Most people use it as an ASCII string, and are happy with it.
+ * However, any byte is valid, including the NUL character. Characters
+ * beyond the ASCII range are interpreted according to the locale and
+ * the OS, which is somethign we don't control (network of other
+ * people).
+ * Routines in here try to deal with that in asafe way.
+ */
+
+/*------------------------------------------------------------------*/
+/*
+ * Escape non-ASCII characters from ESSID.
+ * This allow us to display those weirds characters to the user.
+ *
+ * Source is 32 bytes max.
+ * Destination buffer needs to be at least 129 bytes, will be NUL
+ * terminated.
+ */
+void
+iw_essid_escape(char *         dest,
+               const char *    src,
+               const int       slen)
+{
+  const unsigned char *        s = (const unsigned char *) src;
+  const unsigned char *        e = s + slen;
+  char *               d = dest;
+
+  /* Look every character of the string */
+  while(s < e)
+    {
+      int      isescape;
+
+      /* Escape the escape to avoid ambiguity.
+       * We do a fast path test for performance reason. Compiler will
+       * optimise all that ;-) */
+      if(*s == '\\')
+       {
+         /* Check if we would confuse it with an escape sequence */
+         if((e-s) > 4 && (s[1] == 'x')
+            && (isxdigit(s[2])) && (isxdigit(s[3])))
+           {
+             isescape = 1;
+           }
+         else
+           isescape = 0;
+       }
+      else
+       isescape = 0;
+
+
+      /* Is it a non-ASCII character ??? */
+      if(isescape || !isascii(*s) || iscntrl(*s))
+       {
+         /* Escape */
+         sprintf(d, "\\x%02X", *s);
+         d += 4;
+       }
+      else
+       {
+         /* Plain ASCII, just copy */
+         *d = *s;
+         d++;
+       }
+      s++;
+    }
+
+  /* NUL terminate destination */
+  *d = '\0';
+}
+
+/* ---------------------------------------------------------------- */
+/*
+ * Un-Escape non-ASCII characters from ESSID
+ * This allow the user to specify weird characters in ESSID.
+ *
+ * The source is a NUL terminated string.
+ * Destination buffer is at least the size of source (ESSID will shrink)
+ * Destination may contains NUL, therefore we return the length.
+ * This function still works is src and dest are the same ;-)
+ */
+int
+iw_essid_unescape(char *       dest,
+                 const char *  src)
+{
+  const char * s = src;
+  char *       d = dest;
+  char *       p;
+  int          len;
+
+  /* Look-up the next '\' sequence, stop when no more */
+  while((p = strchr(s, '\\')) != NULL)
+    {
+      /* Copy block of unescaped chars before the '\' */
+      len = p - s;
+      memcpy(d, s, len);
+      d += len;
+      s += len;                /* Identical to 's = p' */
+
+      /* Check if it is really an escape sequence. We do also check for NUL */
+      if((s[1] == 'x') && (isxdigit(s[2])) && (isxdigit(s[3])))
+       {
+         unsigned int  temp;
+         /* Valid Escape sequence, un-escape it */
+         sscanf(s + 2, "%2X", &temp);
+         *d = temp;
+         d++;
+         s+=4;
+       }
+      else
+       {
+         /* Not valid, don't un-escape it */
+         *d = *s;
+         d++;
+         s++;
+       }
+    }
+
+  /* Copy remaining of the string */
+  len = strlen(s);
+  memcpy(d, s, len + 1);
+  /* Return length */
+  return((d - dest) + len);
+}
+
 /********************** FREQUENCY SUBROUTINES ***********************/
 /*
  * Note : the two functions below are the cause of troubles on
@@ -1987,54 +2123,6 @@ iw_check_if_addr_type(int                skfd,
   return(0);
 }
 
-#if 0
-/*------------------------------------------------------------------*/
-/*
- * Check if interface support the right address types...
- */
-int
-iw_check_addr_type(int         skfd,
-                  char *       ifname)
-{
-  /* Check the interface address type */
-  if(iw_check_if_addr_type(skfd, ifname) < 0)
-    return(-1);
-
-  /* Check the interface address type */
-  if(iw_check_mac_addr_type(skfd, ifname) < 0)
-    return(-1);
-
-  return(0);
-}
-#endif
-
-#if 0
-/*------------------------------------------------------------------*/
-/*
- * Ask the kernel for the MAC address of an interface.
- */
-int
-iw_get_mac_addr(int                    skfd,
-               const char *            ifname,
-               struct ether_addr *     eth,
-               unsigned short *        ptype)
-{
-  struct ifreq ifr;
-  int          ret;
-
-  /* Prepare request */
-  bzero(&ifr, sizeof(struct ifreq));
-  strncpy(ifr.ifr_name, ifname, IFNAMSIZ);
-
-  /* Do it */
-  ret = ioctl(skfd, SIOCGIFHWADDR, &ifr);
-
-  memcpy(eth->ether_addr_octet, ifr.ifr_hwaddr.sa_data, 6); 
-  *ptype = ifr.ifr_hwaddr.sa_family;
-  return(ret);
-}
-#endif
-
 /*------------------------------------------------------------------*/
 /*
  * Display an arbitrary length MAC address in readable format.
@@ -2557,13 +2645,17 @@ static const struct iw_ioctl_description standard_ioctl_descr[] = {
        },
        [SIOCSIWENCODE  - SIOCIWFIRST] = {
                .header_type    = IW_HEADER_TYPE_POINT,
-               .token_size     = 1,
+               /* Hack : this never returns any payload in event.
+                * Fix the 64->32 bit hack... */
+               .token_size     = 0,
                .max_tokens     = IW_ENCODING_TOKEN_MAX,
                .flags          = IW_DESCR_FLAG_EVENT | IW_DESCR_FLAG_RESTRICT,
        },
        [SIOCGIWENCODE  - SIOCIWFIRST] = {
                .header_type    = IW_HEADER_TYPE_POINT,
-               .token_size     = 1,
+               /* Hack : this never returns any payload in event.
+                * Fix the 64->32 bit hack... */
+               .token_size     = 0,
                .max_tokens     = IW_ENCODING_TOKEN_MAX,
                .flags          = IW_DESCR_FLAG_DUMP | IW_DESCR_FLAG_RESTRICT,
        },
@@ -2827,13 +2919,21 @@ iw_extract_event_stream(struct stream_descr *   stream, /* Stream of events */
               * Fixing that in the kernel would break 64 bits userspace. */
              if((token_len != extra_len) && (extra_len >= 4))
                {
-                 __u16         alt_dlen = *((__u16 *) pointer);
-                 unsigned int  alt_token_len = alt_dlen * descr->token_size;
-                 if((alt_token_len + 8) == extra_len)
-                   {
+                 union iw_align_u16    alt_dlen;
+                 unsigned int          alt_token_len;
+                 /* Usespace seems to not always like unaligned access,
+                  * so be careful and make sure to align value.
+                  * I hope gcc won't play any of its aliasing tricks... */
+                 alt_dlen.byte[0] = *(pointer);
+                 alt_dlen.byte[1] = *(pointer + 1);
+                 alt_token_len = alt_dlen.value * descr->token_size;
 #ifdef DEBUG
-                     printf("DBG - alt_token_len = %d\n", alt_token_len);
+                 printf("DBG - alt_token_len = %d\n", alt_token_len);
 #endif
+                 /* Verify that data is consistent if assuming 64 bit
+                  * alignement... */
+                 if((alt_token_len + 8) == extra_len)
+                   {
                      /* Ok, let's redo everything */
                      pointer -= event_len;
                      pointer += 4;
@@ -2841,8 +2941,12 @@ iw_extract_event_stream(struct stream_descr *    stream, /* Stream of events */
                      memcpy((char *) iwe + IW_EV_LCP_LEN + IW_EV_POINT_OFF,
                             pointer, event_len);
                      pointer += event_len + 4;
-                     iwe->u.data.pointer = pointer;
                      token_len = alt_token_len;
+                     /* We may have no payload */
+                     if(alt_token_len)
+                       iwe->u.data.pointer = pointer;
+                     else
+                       iwe->u.data.pointer = NULL;
                    }
                }
 
@@ -2983,7 +3087,7 @@ iw_process_scanning_token(struct iw_event *               event,
     case SIOCGIWESSID:
       wscan->b.has_essid = 1;
       wscan->b.essid_on = event->u.data.flags;
-      memset(wscan->b.essid, '\0', IW_ESSID_MAX_SIZE+1);
+      memset(wscan->b.essid, '\0', IW_ESSID_MAX_SIZE + 1);
       if((event->u.essid.pointer) && (event->u.essid.length))
        memcpy(wscan->b.essid, event->u.essid.pointer, event->u.essid.length);
       break;
@@ -3082,7 +3186,7 @@ iw_process_scan(int                       skfd,
   if(iw_get_ext(skfd, ifname, SIOCGIWSCAN, &wrq) < 0)
     {
       /* Check if buffer was too small (WE-17 only) */
-      if((errno == E2BIG) && (we_version > 16))
+      if((errno == E2BIG) && (we_version > 16) && (buflen < 0xFFFF))
        {
          /* Some driver may return very large scan results, either
           * because there are many cells, or because they have many
@@ -3098,6 +3202,10 @@ iw_process_scan(int                      skfd,
          else
            buflen *= 2;
 
+         /* wrq.u.data.length is 16 bits so max size is 65535 */
+         if(buflen > 0xFFFF)
+           buflen = 0xFFFF;
+
          /* Try again */
          goto realloc;
        }
index 31cf39b..6082ac5 100644 (file)
@@ -1,19 +1,17 @@
 /*
  *     Wireless Tools
  *
- *             Jean II - HPLB 97->99 - HPL 99->07
+ *             Jean II - HPLB 97->99 - HPL 99->09
  *
  * Common header for the Wireless Extension library...
  *
  * This file is released under the GPL license.
- *     Copyright (c) 1997-2007 Jean Tourrilhes <jt@hpl.hp.com>
+ *     Copyright (c) 1997-2009 Jean Tourrilhes <jt@hpl.hp.com>
  */
 
 #ifndef IWLIB_H
 #define IWLIB_H
 
-/*#include "CHANGELOG.h"*/
-
 /***************************** INCLUDES *****************************/
 
 /* Standard headers */
 /* Private copy of Wireless extensions (in this directoty) */
 #include "wireless.h"
 
-/* Make gcc understant that when we say inline, we mean it.
- * I really hate when the compiler is trying to be more clever than me,
- * because in this case gcc is not able to figure out functions with a
- * single call site, so not only I have to tag those functions inline
- * by hand, but then it refuse to inline them properly.
- * Total saving for iwevent : 150B = 0.7%.
- * Fortunately, in gcc 3.4, they now automatically inline static functions
- * with a single call site. Hurrah !
- * Jean II */
-#undef IW_GCC_HAS_BROKEN_INLINE
-#if __GNUC__ == 3
-#if __GNUC_MINOR__ >= 1 && __GNUC_MINOR__ < 4
-#define IW_GCC_HAS_BROKEN_INLINE       1
-#endif /* __GNUC_MINOR__ */
-#endif /* __GNUC__ */
-/* However, gcc 4.0 has introduce a new "feature", when compiling with
- * '-Os', it does not want to inline iw_ether_cmp() and friends.
- * So, we need to fix inline again !
- * Jean II */
-#if __GNUC__ == 4
-#define IW_GCC_HAS_BROKEN_INLINE       1
-#endif /* __GNUC__ */
-/* Now, really fix the inline */
-#ifdef IW_GCC_HAS_BROKEN_INLINE
-#ifdef inline
-#undef inline
-#endif /* inline */
-#define inline         inline          __attribute__((always_inline))
-#endif /* IW_GCC_HAS_BROKEN_INLINE */
-
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-/****************************** DEBUG ******************************/
-
-//#define DEBUG 1
-
 /************************ CONSTANTS & MACROS ************************/
 
 /* Various versions information */
 /* Recommended Wireless Extension version */
-#define WE_VERSION     21
+#define WE_VERSION     22
 /* Maximum forward compatibility built in this version of WT */
 #define WE_MAX_VERSION 22
 /* Version of Wireless Tools */
-#define WT_VERSION     29
-
-/* Paths */
-#define PROC_NET_WIRELESS      "/proc/net/wireless"
-#define PROC_NET_DEV           "/proc/net/dev"
-
-/* Some usefull constants */
-#define KILO   1e3
-#define MEGA   1e6
-#define GIGA   1e9
-/* For doing log10/exp10 without libm */
-#define LOG10_MAGIC    1.25892541179
-
-/* Backward compatibility for network headers */
-#ifndef ARPHRD_IEEE80211
-#define ARPHRD_IEEE80211 801           /* IEEE 802.11                  */
-#endif /* ARPHRD_IEEE80211 */
-
-#ifndef IW_EV_LCP_PK_LEN
-/* Size of the Event prefix when packed in stream */
-#define IW_EV_LCP_PK_LEN       (4)
-/* Size of the various events when packed in stream */
-#define IW_EV_CHAR_PK_LEN      (IW_EV_LCP_PK_LEN + IFNAMSIZ)
-#define IW_EV_UINT_PK_LEN      (IW_EV_LCP_PK_LEN + sizeof(__u32))
-#define IW_EV_FREQ_PK_LEN      (IW_EV_LCP_PK_LEN + sizeof(struct iw_freq))
-#define IW_EV_PARAM_PK_LEN     (IW_EV_LCP_PK_LEN + sizeof(struct iw_param))
-#define IW_EV_ADDR_PK_LEN      (IW_EV_LCP_PK_LEN + sizeof(struct sockaddr))
-#define IW_EV_QUAL_PK_LEN      (IW_EV_LCP_PK_LEN + sizeof(struct iw_quality))
-#define IW_EV_POINT_PK_LEN     (IW_EV_LCP_PK_LEN + 4)
-
-struct iw_pk_event
-{
-       __u16           len;                    /* Real lenght of this stuff */
-       __u16           cmd;                    /* Wireless IOCTL */
-       union iwreq_data        u;              /* IOCTL fixed payload */
-} __attribute__ ((packed));
-struct iw_pk_point
-{
-  void __user  *pointer;       /* Pointer to the data  (in user space) */
-  __u16                length;         /* number of fields or size in bytes */
-  __u16                flags;          /* Optional params */
-} __attribute__ ((packed));
-
-#define IW_EV_LCP_PK2_LEN      (sizeof(struct iw_pk_event) - sizeof(union iwreq_data))
-#define IW_EV_POINT_PK2_LEN    (IW_EV_LCP_PK2_LEN + sizeof(struct iw_pk_point) - IW_EV_POINT_OFF)
-
-#endif /* IW_EV_LCP_PK_LEN */
+#define WT_VERSION     30
 
 /****************************** TYPES ******************************/
 
@@ -183,7 +101,8 @@ typedef struct wireless_config
   int          key_flags;              /* Various flags */
   int          has_essid;
   int          essid_on;
-  char         essid[IW_ESSID_MAX_SIZE + 1];   /* ESSID (extended network) */
+  char         essid[IW_ESSID_MAX_SIZE + 2];   /* ESSID (extended network) */
+  int          essid_len;
   int          has_mode;
   int          mode;                   /* Operation mode */
 } wireless_config;
@@ -197,7 +116,7 @@ typedef struct wireless_info
   int          has_sens;
   iwparam      sens;                   /* sensitivity */
   int          has_nickname;
-  char         nickname[IW_ESSID_MAX_SIZE + 1]; /* NickName */
+  char         nickname[IW_ESSID_MAX_SIZE + 2]; /* NickName */
   int          has_ap_addr;
   sockaddr     ap_addr;                /* Access point address */
   int          has_bitrate;
@@ -284,7 +203,7 @@ typedef struct iw_modul_descr
 
 /**************************** PROTOTYPES ****************************/
 /*
- * All the functions in iwcommon.c
+ * All the functions in iwlib.c
  */
 
 /* ---------------------- SOCKET SUBROUTINES -----------------------*/
@@ -320,6 +239,14 @@ int
 int
        iw_protocol_compare(const char *        protocol1,
                            const char *        protocol2);
+/* ---------------------- ESSID SUBROUTINES ---------------------- */
+void
+       iw_essid_escape(char *          dest,
+                       const char *    src,
+                       const int       slen);
+int
+       iw_essid_unescape(char *        dest,
+                         const char *  src);
 /* -------------------- FREQUENCY SUBROUTINES --------------------- */
 void
        iw_float2freq(double    in,
@@ -416,18 +343,6 @@ int
 int
        iw_check_if_addr_type(int               skfd,
                              const char *      ifname);
-#if 0
-int
-       iw_check_addr_type(int          skfd,
-                          const char * ifname);
-#endif
-#if 0
-int
-       iw_get_mac_addr(int                     skfd,
-                       const char *            name,
-                       struct ether_addr *     eth,
-                       unsigned short *        ptype);
-#endif
 char *
        iw_mac_ntop(const unsigned char *       mac,
                    int                         maclen,
@@ -491,6 +406,7 @@ extern const struct iw_modul_descr  iw_modul_list[];
 /************************* INLINE FUNTIONS *************************/
 /*
  * Functions that are so simple that it's more efficient inlining them
+ * Most inline are private because gcc is fussy about inline...
  */
 
 /*
@@ -502,7 +418,7 @@ extern const struct iw_modul_descr  iw_modul_list[];
 /*
  * Wrapper to push some Wireless Parameter in the driver
  */
-static inline int
+static inline __attribute__((always_inline)) int
 iw_set_ext(int                 skfd,           /* Socket to the kernel */
           const char *         ifname,         /* Device name */
           int                  request,        /* WE ID */
@@ -518,7 +434,7 @@ iw_set_ext(int                      skfd,           /* Socket to the kernel */
 /*
  * Wrapper to extract some Wireless Parameter out of the driver
  */
-static inline int
+static inline __attribute__((always_inline)) int
 iw_get_ext(int                 skfd,           /* Socket to the kernel */
           const char *         ifname,         /* Device name */
           int                  request,        /* WE ID */
@@ -540,59 +456,6 @@ iw_sockets_close(int       skfd)
   close(skfd);
 }
 
-/*------------------------------------------------------------------*/
-/*
- * Display an Ethernet Socket Address in readable format.
- */
-static inline char *
-iw_saether_ntop(const struct sockaddr *sap, char* bufp)
-{
-  iw_ether_ntop((const struct ether_addr *) sap->sa_data, bufp);
-  return bufp;
-}
-/*------------------------------------------------------------------*/
-/*
- * Input an Ethernet Socket Address and convert to binary.
- */
-static inline int
-iw_saether_aton(const char *bufp, struct sockaddr *sap)
-{
-  sap->sa_family = ARPHRD_ETHER;
-  return iw_ether_aton(bufp, (struct ether_addr *) sap->sa_data);
-}
-
-/*------------------------------------------------------------------*/
-/*
- * Create an Ethernet broadcast address
- */
-static inline void
-iw_broad_ether(struct sockaddr *sap)
-{
-  sap->sa_family = ARPHRD_ETHER;
-  memset((char *) sap->sa_data, 0xFF, ETH_ALEN);
-}
-
-/*------------------------------------------------------------------*/
-/*
- * Create an Ethernet NULL address
- */
-static inline void
-iw_null_ether(struct sockaddr *sap)
-{
-  sap->sa_family = ARPHRD_ETHER;
-  memset((char *) sap->sa_data, 0x00, ETH_ALEN);
-}
-
-/*------------------------------------------------------------------*/
-/*
- * Compare two ethernet addresses
- */
-static inline int
-iw_ether_cmp(const struct ether_addr* eth1, const struct ether_addr* eth2)
-{
-  return memcmp(eth1, eth2, sizeof(*eth1));
-}
-
 #ifdef __cplusplus
 }
 #endif
index 2f0020e..aa84279 100644 (file)
@@ -69,12 +69,13 @@ only) and normal users can only read left-over scan results. By
 default, the way scanning is done (the scope of the scan) is dependant
 on the card and card settings.
 .br
-This command take optional arguments, however most drivers will ignore
+This command takes optional arguments, however most drivers will ignore
 those. The option
 .B essid
-is used to specify a scan on a specific ESSID. The option
+is used to specify a scan on a specific ESSID. With some card/driver,
+this enables to see hidden networks. The option
 .B last
-do not trigger a scan and read left-over scan results.
+does not trigger a scan and read left-over scan results.
 .TP
 .BR freq [uency]/ channel
 Give the list of available frequencies in the device and the number of
index 4a633a3..90c2a60 100644 (file)
@@ -11,7 +11,7 @@
  *     Copyright (c) 1997-2007 Jean Tourrilhes <jt@hpl.hp.com>
  */
 
-#include "iwlib.h"             /* Header */
+#include "iwlib-private.h"             /* Private header */
 #include <sys/time.h>
 
 /****************************** TYPES ******************************/
@@ -496,10 +496,11 @@ print_scanning_token(struct stream_descr *        stream, /* Stream of events */
       break;
     case SIOCGIWESSID:
       {
-       char essid[IW_ESSID_MAX_SIZE+1];
+       char essid[4*IW_ESSID_MAX_SIZE+1];
        memset(essid, '\0', sizeof(essid));
        if((event->u.essid.pointer) && (event->u.essid.length))
-         memcpy(essid, event->u.essid.pointer, event->u.essid.length);
+         iw_essid_escape(essid,
+                         event->u.essid.pointer, event->u.essid.length);
        if(event->u.essid.flags)
          {
            /* Does it have an ESSID index ? */
@@ -799,7 +800,8 @@ print_scanning_info(int             skfd,
          if(iw_get_ext(skfd, ifname, SIOCGIWSCAN, &wrq) < 0)
            {
              /* Check if buffer was too small (WE-17 only) */
-             if((errno == E2BIG) && (range.we_version_compiled > 16))
+             if((errno == E2BIG) && (range.we_version_compiled > 16)
+                && (buflen < 0xFFFF))
                {
                  /* Some driver may return very large scan results, either
                   * because there are many cells, or because they have many
@@ -815,6 +817,10 @@ print_scanning_info(int            skfd,
                  else
                    buflen *= 2;
 
+                 /* wrq.u.data.length is 16 bits so max size is 65535 */
+                 if(buflen > 0xFFFF)
+                   buflen = 0xFFFF;
+
                  /* Try again */
                  goto realloc;
                }
@@ -1688,6 +1694,17 @@ static const char *      event_capa_evt[] =
   [IWEVEXPIRED - IWEVFIRST] = "Expired node",
 };
 
+static const struct iwmask_name iw_scan_capa_name[] = {
+  { IW_SCAN_CAPA_ESSID,                "ESSID" },
+  { IW_SCAN_CAPA_BSSID,                "BSSID" },
+  { IW_SCAN_CAPA_CHANNEL,      "Channel" },
+  { IW_SCAN_CAPA_MODE,         "Mode" },
+  { IW_SCAN_CAPA_RATE,         "Rate" },
+  { IW_SCAN_CAPA_TYPE,         "Type" },
+  { IW_SCAN_CAPA_TIME,         "Time" },
+};
+#define        IW_SCAN_CAPA_NUM        IW_ARRAY_LEN(iw_scan_capa_name)
+
 /*------------------------------------------------------------------*/
 /*
  * Print the event capability for the device
@@ -1740,6 +1757,16 @@ print_event_capa_info(int                skfd,
                   cmd, event_capa_evt[cmd - IWEVFIRST]);
        }
       printf("\n");
+
+      /* Add Scanning Capacity as a bonus, if available */
+      if(range.scan_capa != 0)
+       {
+         printf("%-8.16s  Scanning capabilities :", ifname);
+         iw_print_mask_name(range.scan_capa,
+                            iw_scan_capa_name, IW_SCAN_CAPA_NUM,
+                            "\n\t\t- ");
+         printf("\n\n");
+       }
     }
   return(0);
 }
@@ -2159,6 +2186,7 @@ main(int  argc,
   char **args;                 /* Command arguments */
   int count;                   /* Number of arguments */
   const iwlist_cmd *iwcmd;
+  int goterr = 0;
 
   if(argc < 2)
     iw_usage(1);
@@ -2206,12 +2234,12 @@ main(int        argc,
 
   /* do the actual work */
   if (dev)
-    (*iwcmd->fn)(skfd, dev, args, count);
+    goterr = (*iwcmd->fn)(skfd, dev, args, count);
   else
     iw_enum_devices(skfd, iwcmd->fn, args, count);
 
   /* Close the socket. */
   iw_sockets_close(skfd);
 
-  return 0;
+  return goterr;
 }
index 4172fe2..8ee2029 100644 (file)
@@ -11,7 +11,7 @@
  *     Copyright (c) 1997-2007 Jean Tourrilhes <jt@hpl.hp.com>
  */
 
-#include "iwlib.h"             /* Header */
+#include "iwlib-private.h"             /* Private header */
 
 /************************** DOCUMENTATION **************************/
 
index 9d10d38..6e2fae2 100644 (file)
@@ -10,7 +10,7 @@
  *     Copyright (c) 1997-2004 Jean Tourrilhes <jt@hpl.hp.com>
  */
 
-#include "iwlib.h"             /* Header */
+#include "iwlib-private.h"             /* Private header */
 
 /************************* DISPLAY ROUTINES **************************/
 
@@ -357,7 +357,7 @@ main(int    argc,
        /* The device name must be the first argument */
        /* Name only : show spy list for that device only */
        if(argc == 2)
-         print_spy_info(skfd, argv[1], NULL, 0);
+         goterr = print_spy_info(skfd, argv[1], NULL, 0);
        else
          /* Special commands */
          if(!strcmp(argv[2], "setthr"))
diff --git a/wireless_tools/udev.import_devpath.diff b/wireless_tools/udev.import_devpath.diff
deleted file mode 100644 (file)
index 87c954b..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-diff -u -p udev-106/udev_rules.j1.c udev-106/udev_rules.c
---- udev-106/udev_rules.j1.c   2007-03-15 10:07:51.000000000 -0700
-+++ udev-106/udev_rules.c      2007-03-15 10:09:50.000000000 -0700
-@@ -186,7 +186,16 @@ static int import_keys_into_env(struct u
-               linepos = line;
-               if (get_key(&linepos, &variable, &value) == 0) {
-                       dbg("import '%s=%s'", variable, value);
--                      name_list_key_add(&udev->env_list, variable, value);
-+                      /* handle device, renamed by external tool,
-+                       * returning new path */
-+                      if (strcmp(variable, "DEVPATH") == 0) {
-+                              info("updating devpath from '%s' to '%s'",
-+                                   udev->dev->devpath, value);
-+                              sysfs_device_set_values(udev->dev, value,
-+                                                      NULL, NULL);
-+                      } else
-+                              name_list_key_add(&udev->env_list,
-+                                                variable, value);
-                       setenv(variable, value, 1);
-               }
-       }
-diff -u -p udev-106/udevtest.j1.c udev-106/udevtest.c
---- udev-106/udevtest.j1.c     2007-03-15 10:39:16.000000000 -0700
-+++ udev-106/udevtest.c        2007-03-15 10:42:09.000000000 -0700
-@@ -59,8 +59,13 @@ int main(int argc, char *argv[], char *e
-       info("version %s", UDEV_VERSION);
-       udev_config_init();
--      if (udev_log_priority < LOG_INFO)
-+      if (udev_log_priority < LOG_INFO) {
-+              char priority[32];
-+
-               udev_log_priority = LOG_INFO;
-+              sprintf(priority, "%i", udev_log_priority);
-+              setenv("UDEV_LOG", priority, 1);
-+      }
-       for (i = 1 ; i < argc; i++) {
-               char *arg = argv[i];
index 2d94fab..7d1b41f 100644 (file)
@@ -5,6 +5,12 @@
  *
  * Authors :   Jean Tourrilhes - HPL - <jt@hpl.hp.com>
  * Copyright (c) 1997-2005 Jean Tourrilhes, All Rights Reserved.
+ *
+ * This file, and only this file, is licensed under the terms of the LGPL.
+ * You can redistribute it and/or modify it under the terms of the GNU
+ * Lesser General Public License as published by the Free Software
+ * Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
  */
 
 #ifndef _LINUX_WIRELESS_H
index 9a885db..c5788fa 100644 (file)
@@ -5,6 +5,12 @@
  *
  * Authors :   Jean Tourrilhes - HPL - <jt@hpl.hp.com>
  * Copyright (c) 1997-2007 Jean Tourrilhes, All Rights Reserved.
+ *
+ * This file, and only this file, is licensed under the terms of the LGPL.
+ * You can redistribute it and/or modify it under the terms of the GNU
+ * Lesser General Public License as published by the Free Software
+ * Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
  */
 
 #ifndef _LINUX_WIRELESS_H
  *     - Add explicit flag to tell stats are in dBm : IW_QUAL_DBM
  *     - Add IW_IOCTL_IDX() and IW_EVENT_IDX() macros
  *
- * V19 to V20
- * ----------
- *     - RtNetlink requests support (SET/GET)
- *
  * V20 to V21
  * ----------
  *     - Remove (struct net_device *)->get_wireless_stats()
  *     - Change length in ESSID and NICK to strlen() instead of strlen()+1
+ *     - Add SIOCSIWMODUL/SIOCGIWMODUL for modulation setting
  *     - Add IW_RETRY_SHORT/IW_RETRY_LONG retry modifiers
+ *     - Add IW_POWER_SAVING power type
  *     - Power/Retry relative values no longer * 100000
+ *     - Add bitrate flags for unicast/broadcast
  *     - Add explicit flag to tell stats are in 802.11k RCPI : IW_QUAL_RCPI
  *
  * V21 to V22
  * ----------
  *     - Prevent leaking of kernel space in stream on 64 bits.
+ *     - Scan capabilities in struct iw_range (Dan Williams)
  */
 
 /**************************** CONSTANTS ****************************/
 #define SIOCIWLAST     SIOCIWLASTPRIV          /* 0x8BFF */
 #define IW_IOCTL_IDX(cmd)      ((cmd) - SIOCIWFIRST)
 
-/* Odd : get (world access), even : set (root access) */
+/* Odd : get (world access), Even : set (root access) */
 #define IW_IS_SET(cmd) (!((cmd) & 0x1))
 #define IW_IS_GET(cmd) ((cmd) & 0x1)
 
 /* Maximum size of returned data */
 #define IW_SCAN_MAX_DATA       4096    /* In bytes */
 
+/* Scan capability flags - in (struct iw_range *)->scan_capa */
+#define IW_SCAN_CAPA_NONE              0x00
+#define IW_SCAN_CAPA_ESSID             0x01
+#define IW_SCAN_CAPA_BSSID             0x02
+#define IW_SCAN_CAPA_CHANNEL           0x04
+#define IW_SCAN_CAPA_MODE              0x08
+#define IW_SCAN_CAPA_RATE              0x10
+#define IW_SCAN_CAPA_TYPE              0x20
+#define IW_SCAN_CAPA_TIME              0x40
+
 /* Max number of char in custom event - use multiple of them if needed */
 #define IW_CUSTOM_MAX          256     /* In bytes */
 
@@ -988,6 +1004,9 @@ struct     iw_range
        __u16           old_num_channels;
        __u8            old_num_frequency;
 
+       /* Scan capabilities */
+       __u8            scan_capa;      /* IW_SCAN_CAPA_* bit field */
+
        /* Wireless event capability bitmasks */
        __u32           event_capa[6];
 
@@ -1134,6 +1153,6 @@ struct iw_event
 #define IW_EV_PARAM_PK_LEN     (IW_EV_LCP_PK_LEN + sizeof(struct iw_param))
 #define IW_EV_ADDR_PK_LEN      (IW_EV_LCP_PK_LEN + sizeof(struct sockaddr))
 #define IW_EV_QUAL_PK_LEN      (IW_EV_LCP_PK_LEN + sizeof(struct iw_quality))
-#define IW_EV_POINT_PK_LEN     (IW_EV_LCP_LEN + 4)
+#define IW_EV_POINT_PK_LEN     (IW_EV_LCP_PK_LEN + 4)
 
 #endif /* _LINUX_WIRELESS_H */