How to set interface description containing space in 8.x

Jeremy Chadwick freebsd at jdc.parodius.com
Sat Oct 22 13:02:43 UTC 2011


On Sat, Oct 22, 2011 at 05:55:28AM -0700, Jeremy Chadwick wrote:
> On Sat, Oct 22, 2011 at 02:11:17PM +0200, sthaug at nethelp.no wrote:
> > FreeBSD 8.x (well, at least 8.2) has the very nice feature of letting
> > you set an interface *description* (just like you can on any Juniper/
> > Cisco/whatever router). This decription can contain spaces - so I can
> > do for instance:
> > 
> > xxx# ifconfig bge1 descr "abc def"
> > 
> > xxx# ifconfig bge1
> > bge1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
> >         description: abc def
> >         options=8009b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,LINKSTATE>
> >         ether 00:13:72:20:b4:6f
> >         media: Ethernet autoselect (1000baseT <full-duplex,flowcontrol,rxpause,txpause>)
> >         status: active
> > 
> > and we see that the decription includes a space. The question is - how
> > can I include a description containing one or more spaces in rc.conf?
> > 
> > The straighforward attempt,
> > 
> > ifconfig_bge1="up descr abc def"
> > 
> > doesn't work - "abc" and "def" are given as separate parameters to the
> > ifconfig command, resulting in "abc" being used and "def" regarded as
> > an extra parameter:
> > 
> > xxx# /etc/rc.d/netif start bge1
> > ifconfig: def: bad value
> > 
> > I have tried several variants,
> > 
> > ifconfig_bge1="up descr abc\ def"
> > ifconfig_bge1="up descr abc\\ def"
> > ifconfig_bge1="up descr 'abc def'"
> > ifconfig_bge1="up descr \"abc def\""
> > ifconfig_bge1="up descr abc_def"
> > 
> > but none have the desired result. Can anybody shed a light on this?
> 
> I have 100% success using apostrophes, as so:
> 
> ifconfig_em1="... descr 'snakes and crumpets'"
> 
> The "..." part of the string is just to indicate other stuff can go
> there, presumably.  My em1 interface isn't actually in use (no IP
> configured, etc.).
> 
> Result after running /etc/rc.d/netif start:
> 
> em1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
>         description: snakes and crumpets
>         options=219b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,WOL_MAGIC>
>         ether 00:30:48:d2:22:d1
>         media: Ethernet autoselect
>         status: no carrier
> 
> This is on RELENG_8 dated 2011/09/28.
> 
> If you want me to test it on my em0 interface (which is what actually has
> an IP configured, etc.) and do a full reboot, I can do that.  Let me
> know.
> 
> So there may have been some rc.d framework changes that address your
> problem.  Are you running -RELEASE?  If so those fixes probably aren't
> available.

And here's the commit that fixed it (src/etc/network.subr, which is
/etc/network.subr):

http://www.freebsd.org/cgi/cvsweb.cgi/src/etc/network.subr#rev1.195.2.12
http://www.freebsd.org/cgi/query-pr.cgi?pr=156675

So your choices are:

1. Run RELENG_8 (8.2-STABLE) or higher,
2. Wait for 8.3-RELEASE,
3. Hand-hack /etc/network.subr to address this, which you will lose
   every time you run mergemaster (I strongly recommend you do not do
   this; breakage in network.subr could be very bad for you).

I still think we should have ifconfig_XXX_descr though, just because
having super long ifconfig_XXX lines in rc.conf is sometimes tedious and
difficult to read.

-- 
| Jeremy Chadwick                                jdc at parodius.com |
| Parodius Networking                       http://www.parodius.com/ |
| UNIX Systems Administrator                   Mountain View, CA, US |
| Making life hard for others since 1977.               PGP 4BD6C0CB |



More information about the freebsd-stable mailing list