*** sys/net/if.c.orig Fri Apr 15 07:52:03 2005 --- sys/net/if.c Sat Nov 26 17:34:41 2005 *************** *** 1072,1077 **** --- 1072,1078 ---- { struct ifreq *ifr; struct ifstat *ifs; + struct ifdescreq *ifrd; int error = 0; int new_flags; size_t namelen, onamelen; *************** *** 1214,1219 **** --- 1215,1232 ---- EVENTHANDLER_INVOKE(ifnet_arrival_event, ifp); /* Announce the return of the interface. */ rt_ifannouncemsg(ifp, IFAN_ARRIVAL); + break; + + /* bartp */ + + case SIOCSIFDESCR: + ifrd = (struct ifdescreq *)data; + strlcpy(ifp->if_descr, ifrd->ifrd_descr, MAXIFDESCRSIZE); + break; + + case SIOCGIFDESCR: + ifrd = (struct ifdescreq *)data; + strlcpy(ifrd->ifrd_descr, ifp->if_descr, MAXIFDESCRSIZE); break; case SIOCSIFMETRIC:
*** sys/net/if.h.orig Tue Mar 1 03:03:13 2005 --- sys/net/if.h Tue Nov 29 17:21:13 2005 *************** *** 72,77 **** --- 72,80 ---- char *ifcr_buffer; /* buffer for cloner names */ }; + #define MAXIFDESCRSIZE 48 + + /* * Structure describing information about an interface * which may be of interest to management entities. *************** *** 269,274 **** --- 272,282 ---- struct sockaddr ifra_addr; struct sockaddr ifra_broadaddr; struct sockaddr ifra_mask; + }; + + struct ifdescreq { + char ifrd_name[IFNAMSIZ]; /* if name, e.g. "en0" */ + char ifrd_descr[MAXIFDESCRSIZE]; /* interface description */ }; struct ifmediareq { *** sys/net/if_var.h.orig Sun May 8 13:00:16 2005 --- sys/net/if_var.h Sat Nov 26 17:34:06 2005 *************** *** 200,205 **** --- 200,206 ---- int if_afdata_initialized; struct mtx if_afdata_mtx; struct task if_starttask; /* task for IFF_NEEDSGIANT */ + char if_descr[MAXIFDESCRSIZE]; }; typedef void if_init_f_t(void *); *** sbin/ifconfig/ifconfig.c.orig Mon Mar 21 21:05:33 2005 --- sbin/ifconfig/ifconfig.c Fri Nov 25 15:29:35 2005 *************** *** 175,180 **** --- 175,181 ---- c_func setifflags, setifmetric, setifmtu, setifcap; c_func clone_destroy; c_func setifname; + c_func setifdescr; void clone_create(void); *************** *** 310,315 **** --- 311,317 ---- { "noicmp", IFF_LINK1, setifflags }, { "mtu", NEXTARG, setifmtu }, { "name", NEXTARG, setifname }, + { "descr", NEXTARG, setifdescr }, { 0, 0, setifaddr }, { 0, 0, setifdstaddr }, }; *************** *** 1008,1013 **** --- 1010,1031 ---- (*afp->af_getaddr)(addr, DSTADDR); } + static void + setifdescr(const char *val, int dummy __unused, int s, + const struct afswtch *afp) + { + struct ifdescreq ifrd; + + strlcpy( ifrd.ifrd_name, ifr.ifr_name, sizeof(ifr.ifr_name) ); + strlcpy( ifrd.ifrd_descr, val, sizeof(ifrd.ifrd_descr) ); + + if (ioctl(s, SIOCSIFDESCR, (caddr_t)&ifrd) < 0) { + warn("ioctl (set descr)"); + return; + } + } + + /* * Note: doing an SIOCIGIFFLAGS scribbles on the union portion * of the ifreq structure, which may confuse other parts of ifconfig. *************** *** 1121,1126 **** --- 1139,1145 ---- struct rt_addrinfo info; int allfamilies, s; struct ifstat ifs; + struct ifdescreq ifrd; if (afp == NULL) { allfamilies = 1; *************** *** 1219,1224 **** --- 1238,1250 ---- #endif ) warnx("%s has no %s interface address!", name, afp->af_name); + + /* bartp */ + + strncpy(ifrd.ifrd_name, name, sizeof ifrd.ifrd_name); + if (ioctl(s, SIOCGIFDESCR, (caddr_t)&ifrd) == 0 && ifrd.ifrd_descr[0]!=0 ) { + printf(" descr: %s\n", ifrd.ifrd_descr); + } close(s); return; *** sys/sys/sockio.h.orig Wed Apr 7 10:19:49 2004 --- sys/sys/sockio.h Fri Nov 25 15:07:55 2005 *************** *** 80,85 **** --- 80,90 ---- #define SIOCSIFMAC _IOW('i', 39, struct ifreq) /* set IF MAC label */ #define SIOCSIFNAME _IOW('i', 40, struct ifreq) /* set IF name */ + /* bartp */ + #define SIOCSIFDESCR _IOW('i', 41, struct ifdescreq) /* set IF descr */ + #define SIOCGIFDESCR _IOWR('i', 42, struct ifdescreq) /* get IF descr */ + + #define SIOCADDMULTI _IOW('i', 49, struct ifreq) /* add m'cast addr */ #define SIOCDELMULTI _IOW('i', 50, struct ifreq) /* del m'cast addr */ #define SIOCGIFMTU _IOWR('i', 51, struct ifreq) /* get IF mtu */ _______________________________________________ freebsd-net@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-net To unsubscribe, send any mail to "[EMAIL PROTECTED]"