-int supmedia = 0;
-int listcloners = 0;
-
-#ifdef INET6
-char addr_buf[MAXHOSTNAMELEN *2 + 1]; /*for getnameinfo()*/
-#endif
-
-void Perror __P((const char *cmd));
-
-int ifconfig __P((int argc, char *const *argv, const struct afswtch *afp));
-void notealias __P((const char *, int, int, const struct afswtch *afp));
-void printb __P((const char *s, unsigned value, const char *bits));
-void rt_xaddrs __P((caddr_t, caddr_t, struct rt_addrinfo *));
-void status __P((const struct afswtch *afp, int addrcount,
- struct sockaddr_dl *sdl, struct if_msghdr *ifm,
- struct ifa_msghdr *ifam));
-void tunnel_status __P((int s));
-void usage __P((void));
-
-#ifdef INET6
-void in6_fillscopeid __P((struct sockaddr_in6 *sin6));
-int prefix __P((void *, int));
-static char *sec2str __P((time_t));
-int explicit_prefix = 0;
-#endif
-
-typedef void c_func __P((const char *cmd, int arg, int s, const struct afswtch *afp));
-typedef void c_func2 __P((const char *arg, const char *arg2, int s, const struct afswtch *afp));
-c_func setifaddr, setifbroadaddr, setifdstaddr, setifnetmask;
-c_func2 settunnel;
-c_func deletetunnel;
-#ifdef INET6
-c_func setifprefixlen;
-c_func setip6flags;
-c_func setip6pltime;
-c_func setip6vltime;
-c_func2 setip6lifetime;
-#endif
-c_func setifipdst;
-c_func setifflags, setifmetric, setifmtu, setiflladdr;
-c_func clone_destroy;
-
-
-void clone_create(void);
-#define NEXTARG 0xffffff
-#define NEXTARG2 0xfffffe
-
-const
-struct cmd {
- const char *c_name;
- int c_parameter; /* NEXTARG means next argv */
- void (*c_func) __P((const char *, int, int, const struct afswtch *afp));
- void (*c_func2) __P((const char *, const char *, int, const struct afswtch *afp));
-} cmds[] = {
- { "up", IFF_UP, setifflags } ,
- { "down", -IFF_UP, setifflags },
- { "arp", -IFF_NOARP, setifflags },
- { "-arp", IFF_NOARP, setifflags },
- { "debug", IFF_DEBUG, setifflags },
- { "-debug", -IFF_DEBUG, setifflags },
- { "add", IFF_UP, notealias },
- { "alias", IFF_UP, notealias },
- { "-alias", -IFF_UP, notealias },
- { "delete", -IFF_UP, notealias },
- { "remove", -IFF_UP, notealias },
-#ifdef notdef
-#define EN_SWABIPS 0x1000
- { "swabips", EN_SWABIPS, setifflags },
- { "-swabips", -EN_SWABIPS, setifflags },
-#endif
- { "netmask", NEXTARG, setifnetmask },
-#ifdef INET6
- { "prefixlen", NEXTARG, setifprefixlen },
- { "anycast", IN6_IFF_ANYCAST, setip6flags },
- { "tentative", IN6_IFF_TENTATIVE, setip6flags },
- { "-tentative", -IN6_IFF_TENTATIVE, setip6flags },
- { "deprecated", IN6_IFF_DEPRECATED, setip6flags },
- { "-deprecated", -IN6_IFF_DEPRECATED, setip6flags },
- { "autoconf", IN6_IFF_AUTOCONF, setip6flags },
- { "-autoconf", -IN6_IFF_AUTOCONF, setip6flags },
- { "pltime", NEXTARG, setip6pltime },
- { "vltime", NEXTARG, setip6vltime },
-#endif
- { "metric", NEXTARG, setifmetric },
- { "broadcast", NEXTARG, setifbroadaddr },
- { "ipdst", NEXTARG, setifipdst },
- { "tunnel", NEXTARG2, NULL, settunnel },
- { "deletetunnel", 0, deletetunnel },
- { "link0", IFF_LINK0, setifflags },
- { "-link0", -IFF_LINK0, setifflags },
- { "link1", IFF_LINK1, setifflags },
- { "-link1", -IFF_LINK1, setifflags },
- { "link2", IFF_LINK2, setifflags },
- { "-link2", -IFF_LINK2, setifflags },
-#if USE_IF_MEDIA
- { "media", NEXTARG, setmedia },
- { "mediaopt", NEXTARG, setmediaopt },
- { "-mediaopt", NEXTARG, unsetmediaopt },
-#endif
-#ifdef USE_VLANS
- { "vlan", NEXTARG, setvlantag },
- { "vlandev", NEXTARG, setvlandev },
- { "-vlandev", NEXTARG, unsetvlandev },
-#endif
-#ifdef USE_BONDS
- { "bonddev", NEXTARG, setbonddev },
- { "-bonddev", NEXTARG, unsetbonddev },
- { "bondmode", NEXTARG, setbondmode },
-#endif
-#if 0
- /* XXX `create' special-cased below */
- {"create", 0, clone_create },
- {"plumb", 0, clone_create },
-#endif
- {"destroy", 0, clone_destroy },
- {"unplumb", 0, clone_destroy },
-#ifdef USE_IEEE80211
- { "ssid", NEXTARG, set80211ssid },
- { "nwid", NEXTARG, set80211ssid },
- { "stationname", NEXTARG, set80211stationname },
- { "station", NEXTARG, set80211stationname }, /* BSD/OS */
- { "channel", NEXTARG, set80211channel },
- { "authmode", NEXTARG, set80211authmode },
- { "powersavemode", NEXTARG, set80211powersavemode },
- { "powersave", 1, set80211powersave },
- { "-powersave", 0, set80211powersave },
- { "powersavesleep", NEXTARG, set80211powersavesleep },
- { "wepmode", NEXTARG, set80211wepmode },
- { "wep", 1, set80211wep },
- { "-wep", 0, set80211wep },
- { "weptxkey", NEXTARG, set80211weptxkey },
- { "wepkey", NEXTARG, set80211wepkey },
- { "nwkey", NEXTARG, set80211nwkey }, /* NetBSD */
- { "-nwkey", 0, set80211wep }, /* NetBSD */
-#endif
- { "normal", -IFF_LINK0, setifflags },
- { "compress", IFF_LINK0, setifflags },
- { "noicmp", IFF_LINK1, setifflags },
- { "mtu", NEXTARG, setifmtu },
- { "lladdr", NEXTARG, setiflladdr },
- { 0, 0, setifaddr },
- { 0, 0, setifdstaddr },
-};