On 2016/04/12 13:00, Martin Pieuchot wrote:
> Relying on the "scopeid" field is not a viable long-term solution. I'm
> spending too much time these days trying to figure out which interface
> correspond to which index.
>
> Here's a difference in output, then the diff itself. ok?
>
> @@ -1,31 +1,29 @@
> lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 32768
> + index 4
> priority: 0
> groups: lo
> inet6 ::1 prefixlen 128
> inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4
> inet 127.0.0.1 netmask 0xff000000
> em0:
> flags=18b43<UP,BROADCAST,RUNNING,PROMISC,ALLMULTI,SIMPLEX,MULTICAST,MPSAFE>
> mtu 1500
> - lladdr f0:de:f9:1d:88:53
> + index 1 lladdr f0:de:f9:1d:88:53
This will break scripts, e.g. "awk '/lladdr/ {print $2}'"
I would expect putting it after lladdr would be better for the sort
of scripts a user is likely to write, but bsd.rd would need a change
if that was done, it uses sed 's/.*lladdr \(.*\)/\1/p;d'
On a new line would be safer.
> priority: 0
> trunk: trunkdev trunk0
> media: Ethernet autoselect (100baseTX full-duplex,rxpause,txpause)
> status: active
> iwn0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
> - lladdr f0:de:f9:1d:88:53
> + index 2 lladdr f0:de:f9:1d:88:53
> priority: 4
> trunk: trunkdev trunk0
> groups: wlan
> media: IEEE802.11 autoselect (HT-MCS6 mode 11n)
> status: active
> enc0: flags=0<>
> + index 3
> priority: 0
> groups: enc
> status: active
> trunk0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
> - lladdr f0:de:f9:1d:88:53
> + index 5 lladdr f0:de:f9:1d:88:53
> priority: 0
> trunk: trunkproto failover
> trunkport iwn0
> @@ -35,13 +33,12 @@
> status: active
> inet 192.168.178.68 netmask 0xffffff00 broadcast 192.168.178.255
> tap0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
> - lladdr fe:e1:ba:d0:d4:e7
> + index 6 lladdr fe:e1:ba:d0:d4:e7
> priority: 0
> groups: tap
> status: no carrier
> inet 172.172.0.1 netmask 0xffff0000 broadcast 172.172.255.255
> inet6 fe80::fce1:baff:fed0:d4e7%tap0 prefixlen 64 scopeid 0x6
> pflog0: flags=141<UP,RUNNING,PROMISC> mtu 33144
> + index 7
> priority: 0
> groups: pflog
>
> Index: ifconfig.c
> ===================================================================
> RCS file: /cvs/src/sbin/ifconfig/ifconfig.c,v
> retrieving revision 1.319
> diff -u -p -r1.319 ifconfig.c
> --- ifconfig.c 6 Apr 2016 11:48:51 -0000 1.319
> +++ ifconfig.c 12 Apr 2016 10:52:51 -0000
> @@ -2916,11 +2916,16 @@ status(int link, struct sockaddr_dl *sdl
> if (showcapsflag)
> printifhwfeatures(NULL, 1);
> #endif
> - if (sdl != NULL && sdl->sdl_alen &&
> - (sdl->sdl_type == IFT_ETHER || sdl->sdl_type == IFT_CARP))
> - (void)printf("\tlladdr %s\n", ether_ntoa(
> - (struct ether_addr *)LLADDR(sdl)));
> -
> + if (sdl != NULL) {
> + printf("\tindex %u", sdl->sdl_index);
> + if ((sdl->sdl_alen > 0) &&
> + (sdl->sdl_type == IFT_ETHER || sdl->sdl_type == IFT_CARP)) {
> + printf(" lladdr %s",
> + ether_ntoa((struct ether_addr *)LLADDR(sdl)),
> + sdl->sdl_index);
> + }
> + printf("\n");
> + }
> #ifndef SMALL
> (void) memset(&ifrdesc, 0, sizeof(ifrdesc));
> (void) strlcpy(ifrdesc.ifr_name, name, sizeof(ifrdesc.ifr_name));
>