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

Reply via email to