find: support -HLP
[oweals/busybox.git] / networking / ifenslave.c
index 28f0c0b6b7ec4fcae08273b5fa52b10424603d18..c3be8180b6f75716c324011bf1e7590b2cfbcaba 100644 (file)
  *         set version to 1.1.0
  */
 
+//usage:#define ifenslave_trivial_usage
+//usage:       "[-cdf] MASTER_IFACE SLAVE_IFACE..."
+//usage:#define ifenslave_full_usage "\n\n"
+//usage:       "Configure network interfaces for parallel routing\n"
+//usage:     "\n       -c,--change-active      Change active slave"
+//usage:     "\n       -d,--detach             Remove slave interface from bonding device"
+//usage:     "\n       -f,--force              Force, even if interface is not Ethernet"
+/* //usage:  "\n       -r,--receive-slave      Create a receive-only slave" */
+//usage:
+//usage:#define ifenslave_example_usage
+//usage:       "To create a bond device, simply follow these three steps:\n"
+//usage:       "- ensure that the required drivers are properly loaded:\n"
+//usage:       "  # modprobe bonding ; modprobe <3c59x|eepro100|pcnet32|tulip|...>\n"
+//usage:       "- assign an IP address to the bond device:\n"
+//usage:       "  # ifconfig bond0 <addr> netmask <mask> broadcast <bcast>\n"
+//usage:       "- attach all the interfaces you need to the bond device:\n"
+//usage:       "  # ifenslave bond0 eth0 eth1 eth2\n"
+//usage:       "  If bond0 didn't have a MAC address, it will take eth0's. Then, all\n"
+//usage:       "  interfaces attached AFTER this assignment will get the same MAC addr.\n\n"
+//usage:       "  To detach a dead interface without setting the bond device down:\n"
+//usage:       "  # ifenslave -d bond0 eth1\n\n"
+//usage:       "  To set the bond device down and automatically release all the slaves:\n"
+//usage:       "  # ifconfig bond0 down\n\n"
+//usage:       "  To change active slave:\n"
+//usage:       "  # ifenslave -c bond0 eth0\n"
+
 #include "libbb.h"
 
 /* #include <net/if.h> - no. linux/if_bonding.h pulls in linux/if.h */
 #include <linux/if.h>
-#include <net/if_arp.h>
+//#include <net/if_arp.h> - not needed?
 #include <linux/if_bonding.h>
 #include <linux/sockios.h>
 #include "fix_u32.h" /* hack, so we may include kernel's ethtool.h */
@@ -244,7 +270,7 @@ static int set_if_addr(char *master_ifname, char *slave_ifname)
                if (res < 0) {
                        ifr.ifr_addr.sa_family = AF_INET;
                        memset(ifr.ifr_addr.sa_data, 0,
-                              sizeof(ifr.ifr_addr.sa_data));
+                               sizeof(ifr.ifr_addr.sa_data));
                }
 
                res = set_ifrname_and_do_ioctl(ifra[i].s_ioctl, &ifr, slave_ifname);
@@ -520,7 +546,7 @@ int ifenslave_main(int argc UNUSED_PARAM, char **argv)
 #ifdef WHY_BOTHER
        /* Neither -c[hange] nor -d[etach] -> it's "enslave" then;
         * and -f[orce] is not there too. Check that it's ethernet. */
-       if (!(opt & (OPT_d|OPT_c|OPT_f)) {
+       if (!(opt & (OPT_d|OPT_c|OPT_f))) {
                /* The family '1' is ARPHRD_ETHER for ethernet. */
                if (master.hwaddr.ifr_hwaddr.sa_family != 1) {
                        bb_error_msg_and_die(