summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhenning <henning@openbsd.org>2014-11-14 15:03:11 +0000
committerhenning <henning@openbsd.org>2014-11-14 15:03:11 +0000
commit7a983a7f82bec36aa7c6fc3b5a2d548dfbafd89f (patch)
tree12de7de5b952d76c4f788ee105f5db5118b3d841
parentregen (diff)
downloadwireguard-openbsd-7a983a7f82bec36aa7c6fc3b5a2d548dfbafd89f.tar.xz
wireguard-openbsd-7a983a7f82bec36aa7c6fc3b5a2d548dfbafd89f.zip
move the trunk related functions out of ifdef SMALL, to allow trunk on
RAMDISKs. grows ifconfig on SMALL media slightly, verified to still fit on amd64 i386 sparc64 alpha hppa macppc by me. ok krw reyk
-rw-r--r--sbin/ifconfig/ifconfig.c254
1 files changed, 127 insertions, 127 deletions
diff --git a/sbin/ifconfig/ifconfig.c b/sbin/ifconfig/ifconfig.c
index 133ff5546fd..3dac8b78d63 100644
--- a/sbin/ifconfig/ifconfig.c
+++ b/sbin/ifconfig/ifconfig.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ifconfig.c,v 1.287 2014/07/12 19:58:17 henning Exp $ */
+/* $OpenBSD: ifconfig.c,v 1.288 2014/11/14 15:03:11 henning Exp $ */
/* $NetBSD: ifconfig.c,v 1.40 1997/10/01 02:19:43 enami Exp $ */
/*
@@ -205,6 +205,10 @@ void unsetifgroup(const char *, int);
void setgroupattribs(char *, int, char *[]);
int printgroup(char *, int);
void setautoconf(const char *, int);
+void settrunkport(const char *, int);
+void unsettrunkport(const char *, int);
+void settrunkproto(const char *, int);
+void trunk_status(void);
#ifndef SMALL
void carp_status(void);
@@ -240,10 +244,6 @@ void setsppppeerflag(const char *, int);
void unsetsppppeerflag(const char *, int);
void sppp_status(void);
void sppp_printproto(const char *, struct sauthreq *);
-void settrunkport(const char *, int);
-void unsettrunkport(const char *, int);
-void settrunkproto(const char *, int);
-void trunk_status(void);
void setifpriority(const char *, int);
void setifpowersave(const char *, int);
void setifmetric(const char *, int);
@@ -337,6 +337,9 @@ const struct cmd {
{ "-group", NEXTARG, 0, unsetifgroup },
{ "autoconf", 1, 0, setautoconf },
{ "-autoconf", -1, 0, setautoconf },
+ { "trunkport", NEXTARG, 0, settrunkport },
+ { "-trunkport", NEXTARG, 0, unsettrunkport },
+ { "trunkproto", NEXTARG, 0, settrunkproto },
#ifdef INET6
{ "anycast", IN6_IFF_ANYCAST, 0, setia6flags },
{ "-anycast", -IN6_IFF_ANYCAST, 0, setia6flags },
@@ -397,9 +400,6 @@ const struct cmd {
{ "timeslot", NEXTARG, 0, settimeslot },
{ "txpower", NEXTARG, 0, setiftxpower },
{ "-txpower", 1, 0, setiftxpower },
- { "trunkport", NEXTARG, 0, settrunkport },
- { "-trunkport", NEXTARG, 0, unsettrunkport },
- { "trunkproto", NEXTARG, 0, settrunkproto },
{ "authproto", NEXTARG, 0, setspppproto },
{ "authname", NEXTARG, 0, setspppname },
{ "authkey", NEXTARG, 0, setspppkey },
@@ -2917,10 +2917,10 @@ status(int link, struct sockaddr_dl *sdl, int ls)
pppoe_status();
timeslot_status();
sppp_status();
- trunk_status();
mpe_status();
pflow_status();
#endif
+ trunk_status();
getifgroups();
(void) memset(&ifmr, 0, sizeof(ifmr));
@@ -3469,6 +3469,124 @@ unsetvlandev(const char *val, int d)
err(1, "SIOCSETVLAN");
}
+void
+settrunkport(const char *val, int d)
+{
+ struct trunk_reqport rp;
+
+ bzero(&rp, sizeof(rp));
+ strlcpy(rp.rp_ifname, name, sizeof(rp.rp_ifname));
+ strlcpy(rp.rp_portname, val, sizeof(rp.rp_portname));
+
+ if (ioctl(s, SIOCSTRUNKPORT, &rp))
+ err(1, "SIOCSTRUNKPORT");
+}
+
+void
+unsettrunkport(const char *val, int d)
+{
+ struct trunk_reqport rp;
+
+ bzero(&rp, sizeof(rp));
+ strlcpy(rp.rp_ifname, name, sizeof(rp.rp_ifname));
+ strlcpy(rp.rp_portname, val, sizeof(rp.rp_portname));
+
+ if (ioctl(s, SIOCSTRUNKDELPORT, &rp))
+ err(1, "SIOCSTRUNKDELPORT");
+}
+
+void
+settrunkproto(const char *val, int d)
+{
+ struct trunk_protos tpr[] = TRUNK_PROTOS;
+ struct trunk_reqall ra;
+ int i;
+
+ bzero(&ra, sizeof(ra));
+ ra.ra_proto = TRUNK_PROTO_MAX;
+
+ for (i = 0; i < (sizeof(tpr) / sizeof(tpr[0])); i++) {
+ if (strcmp(val, tpr[i].tpr_name) == 0) {
+ ra.ra_proto = tpr[i].tpr_proto;
+ break;
+ }
+ }
+ if (ra.ra_proto == TRUNK_PROTO_MAX)
+ errx(1, "Invalid trunk protocol: %s", val);
+
+ strlcpy(ra.ra_ifname, name, sizeof(ra.ra_ifname));
+ if (ioctl(s, SIOCSTRUNK, &ra) != 0)
+ err(1, "SIOCSTRUNK");
+}
+
+void
+trunk_status(void)
+{
+ struct trunk_protos tpr[] = TRUNK_PROTOS;
+ struct trunk_reqport rp, rpbuf[TRUNK_MAX_PORTS];
+ struct trunk_reqall ra;
+ struct lacp_opreq *lp;
+ const char *proto = "<unknown>";
+ int i, isport = 0;
+
+ bzero(&rp, sizeof(rp));
+ bzero(&ra, sizeof(ra));
+
+ strlcpy(rp.rp_ifname, name, sizeof(rp.rp_ifname));
+ strlcpy(rp.rp_portname, name, sizeof(rp.rp_portname));
+
+ if (ioctl(s, SIOCGTRUNKPORT, &rp) == 0)
+ isport = 1;
+
+ strlcpy(ra.ra_ifname, name, sizeof(ra.ra_ifname));
+ ra.ra_size = sizeof(rpbuf);
+ ra.ra_port = rpbuf;
+
+ if (ioctl(s, SIOCGTRUNK, &ra) == 0) {
+ lp = (struct lacp_opreq *)&ra.ra_lacpreq;
+
+ for (i = 0; i < (sizeof(tpr) / sizeof(tpr[0])); i++) {
+ if (ra.ra_proto == tpr[i].tpr_proto) {
+ proto = tpr[i].tpr_name;
+ break;
+ }
+ }
+
+ printf("\ttrunk: trunkproto %s", proto);
+ if (isport)
+ printf(" trunkdev %s", rp.rp_ifname);
+ putchar('\n');
+ if (ra.ra_proto == TRUNK_PROTO_LACP) {
+ char *act_mac = strdup(
+ ether_ntoa((struct ether_addr*)lp->actor_mac));
+ if (act_mac == NULL)
+ err(1, "strdup");
+ printf("\ttrunk id: [(%04X,%s,%04X,%04X,%04X),\n"
+ "\t\t (%04X,%s,%04X,%04X,%04X)]\n",
+ lp->actor_prio, act_mac,
+ lp->actor_key, lp->actor_portprio, lp->actor_portno,
+ lp->partner_prio,
+ ether_ntoa((struct ether_addr*)lp->partner_mac),
+ lp->partner_key, lp->partner_portprio,
+ lp->partner_portno);
+ free(act_mac);
+ }
+
+ for (i = 0; i < ra.ra_ports; i++) {
+ printf("\t\ttrunkport %s ", rpbuf[i].rp_portname);
+ printb_status(rpbuf[i].rp_flags, TRUNK_PORT_BITS);
+ putchar('\n');
+ }
+
+ if (showmediaflag) {
+ printf("\tsupported trunk protocols:\n");
+ for (i = 0; i < (sizeof(tpr) / sizeof(tpr[0])); i++)
+ printf("\t\ttrunkproto %s\n", tpr[i].tpr_name);
+ }
+ } else if (isport)
+ printf("\ttrunk: trunkdev %s\n", rp.rp_ifname);
+}
+
#ifndef SMALL
static const char *carp_states[] = { CARP_STATES };
static const char *carp_bal_modes[] = { CARP_BAL_MODES };
@@ -4405,124 +4523,6 @@ sppp_status(void)
}
void
-settrunkport(const char *val, int d)
-{
- struct trunk_reqport rp;
-
- bzero(&rp, sizeof(rp));
- strlcpy(rp.rp_ifname, name, sizeof(rp.rp_ifname));
- strlcpy(rp.rp_portname, val, sizeof(rp.rp_portname));
-
- if (ioctl(s, SIOCSTRUNKPORT, &rp))
- err(1, "SIOCSTRUNKPORT");
-}
-
-void
-unsettrunkport(const char *val, int d)
-{
- struct trunk_reqport rp;
-
- bzero(&rp, sizeof(rp));
- strlcpy(rp.rp_ifname, name, sizeof(rp.rp_ifname));
- strlcpy(rp.rp_portname, val, sizeof(rp.rp_portname));
-
- if (ioctl(s, SIOCSTRUNKDELPORT, &rp))
- err(1, "SIOCSTRUNKDELPORT");
-}
-
-void
-settrunkproto(const char *val, int d)
-{
- struct trunk_protos tpr[] = TRUNK_PROTOS;
- struct trunk_reqall ra;
- int i;
-
- bzero(&ra, sizeof(ra));
- ra.ra_proto = TRUNK_PROTO_MAX;
-
- for (i = 0; i < (sizeof(tpr) / sizeof(tpr[0])); i++) {
- if (strcmp(val, tpr[i].tpr_name) == 0) {
- ra.ra_proto = tpr[i].tpr_proto;
- break;
- }
- }
- if (ra.ra_proto == TRUNK_PROTO_MAX)
- errx(1, "Invalid trunk protocol: %s", val);
-
- strlcpy(ra.ra_ifname, name, sizeof(ra.ra_ifname));
- if (ioctl(s, SIOCSTRUNK, &ra) != 0)
- err(1, "SIOCSTRUNK");
-}
-
-void
-trunk_status(void)
-{
- struct trunk_protos tpr[] = TRUNK_PROTOS;
- struct trunk_reqport rp, rpbuf[TRUNK_MAX_PORTS];
- struct trunk_reqall ra;
- struct lacp_opreq *lp;
- const char *proto = "<unknown>";
- int i, isport = 0;
-
- bzero(&rp, sizeof(rp));
- bzero(&ra, sizeof(ra));
-
- strlcpy(rp.rp_ifname, name, sizeof(rp.rp_ifname));
- strlcpy(rp.rp_portname, name, sizeof(rp.rp_portname));
-
- if (ioctl(s, SIOCGTRUNKPORT, &rp) == 0)
- isport = 1;
-
- strlcpy(ra.ra_ifname, name, sizeof(ra.ra_ifname));
- ra.ra_size = sizeof(rpbuf);
- ra.ra_port = rpbuf;
-
- if (ioctl(s, SIOCGTRUNK, &ra) == 0) {
- lp = (struct lacp_opreq *)&ra.ra_lacpreq;
-
- for (i = 0; i < (sizeof(tpr) / sizeof(tpr[0])); i++) {
- if (ra.ra_proto == tpr[i].tpr_proto) {
- proto = tpr[i].tpr_name;
- break;
- }
- }
-
- printf("\ttrunk: trunkproto %s", proto);
- if (isport)
- printf(" trunkdev %s", rp.rp_ifname);
- putchar('\n');
- if (ra.ra_proto == TRUNK_PROTO_LACP) {
- char *act_mac = strdup(
- ether_ntoa((struct ether_addr*)lp->actor_mac));
- if (act_mac == NULL)
- err(1, "strdup");
- printf("\ttrunk id: [(%04X,%s,%04X,%04X,%04X),\n"
- "\t\t (%04X,%s,%04X,%04X,%04X)]\n",
- lp->actor_prio, act_mac,
- lp->actor_key, lp->actor_portprio, lp->actor_portno,
- lp->partner_prio,
- ether_ntoa((struct ether_addr*)lp->partner_mac),
- lp->partner_key, lp->partner_portprio,
- lp->partner_portno);
- free(act_mac);
- }
-
- for (i = 0; i < ra.ra_ports; i++) {
- printf("\t\ttrunkport %s ", rpbuf[i].rp_portname);
- printb_status(rpbuf[i].rp_flags, TRUNK_PORT_BITS);
- putchar('\n');
- }
-
- if (showmediaflag) {
- printf("\tsupported trunk protocols:\n");
- for (i = 0; i < (sizeof(tpr) / sizeof(tpr[0])); i++)
- printf("\t\ttrunkproto %s\n", tpr[i].tpr_name);
- }
- } else if (isport)
- printf("\ttrunk: trunkdev %s\n", rp.rp_ifname);
-}
-
-void
setkeepalive(const char *timeout, const char *count)
{
const char *errmsg = NULL;