On Mon, 19 Apr 2010 14:17:59 +0200
Alexander Hall <[email protected]> wrote:
> On 04/19/10 13:34, Gregory Edigarov wrote:
> > Hello,
> >
> > This diff adds possibility for the network interfaces to have an
> > arbitrary names. this is done via ifconfig <oldname> name <newname>
>
> Just curious... What is the purpose?
>
> For pf.conf you can add an interface group name to the interface and
> use that as an alias.
well, it is not much for pf...
it is for the situations when it is better to have interface named in
one single strandard like ether0 ... etherN and not by their
make/model/driver. i had such situation some time before.
>
> /Alexander
>
>
> > Please test.
> > Thank you.
> >
> >
> > --- /usr/src/sys/net/if.c.orig Sat Apr 17 12:42:06 2010
> > +++ /usr/src/sys/net/if.c Sat Apr 17 13:27:12 2010
> > @@ -1416,6 +1416,17 @@
> > strlcpy(ifp->if_description, ifdescrbuf,
> > IFDESCRSIZE); }
> > break;
> > +
> > + case SIOCSIFNAME:
> > + if ((error = suser (p,0)) != 0)
> > + return (error);
> > + error = copyinstr(ifr->ifr_data, ifnamebuf,
> > + IFNAMSIZ,&bytesdone);
> > + if (error == 0) {
> > + (void)memset (ifp->if_xname, 0, IFNAMSIZ);
> > + strlcpy(ifp->if_xname,
> > ifnamebuf,IFNAMSIZ);
> > + }
> > + break;
> >
> > case SIOCGIFRTLABEL:
> > if (ifp->if_rtlabelid &&
> > --- /usr/src/sbin/ifconfig/ifconfig.c.orig Sat Apr 17
> > 13:43:47 2010 +++ /usr/src/sbin/ifconfig/ifconfig.c Sat Apr
> > 17 14:34:15 2010 @@ -149,6 +149,7 @@
> > void setifbroadaddr(const char *, int);
> > void setifdesc(const char *, int);
> > void unsetifdesc(const char *, int);
> > +void setifname(const char *, int);
> > void setifipdst(const char *, int);
> > void setifmetric(const char *, int);
> > void setifmtu(const char *, int);
> > @@ -465,6 +466,7 @@
> > { "descr", NEXTARG, 0,
> > setifdesc }, { "-description", 1, 0,
> > unsetifdesc }, { "-descr", 1,
> > 0, unsetifdesc },
> > + { "name", 1, 0,
> > setifname}, { NULL, /*src*/ 0,
> > 0, setifaddr }, { NULL, /*dst*/
> > 0, 0, setifdstaddr },
> > { NULL, /*illegal*/0, 0, NULL }, @@
> > -1118,6 +1120,14 @@
> > /* ARGSUSED */
> > void
> > +setifname(const char *val, int ignored)
> > +{
> > + ifr.ifr_data = (caddr_t)val;
> > + if (ioctl(s, SIOCSIFNAME, &ifr) < 0)
> > + warn("SIOCSIFNAME");
> > +}
> > +/* ARGSUSED */
> > +void
> > setifipdst(const char *addr, int ignored)
> > {
> > in_getaddr(addr, DSTADDR);
> > --- /usr/include/sys/sockio.h.orig Sat Apr 17 14:33:11 2010
> > +++ /usr/include/sys/sockio.h Sat Apr 17 14:32:41 2010
> > @@ -179,6 +179,8 @@
> > #define SIOCSLIFPHYRTABLEID _IOW('i', 161, struct ifreq) /*
> > set tunnel VRF id */ #define SIOCGLIFPHYRTABLEID _IOWR('i',
> > 162, struct ifreq) /* get tunnel id */
> > +#define SIOCSIFNAME _IOW('i', 163, struct ifreq) /* set
> > interface name */ +
> > #define SIOCSVH _IOWR('i', 245, struct
> > ifreq) /* set carp param */ #define
> > SIOCGVH _IOWR('i', 246, struct ifreq) /* get
> > carp param */
>
--
With best regards,
Gregory Edigarov