Date: Sun, 12 Dec 2004 22:28:50 +0100 From: Wilko Bulte <wb@freebie.xs4all.nl> To: Brooks Davis <brooks@one-eyed-alien.net> Cc: cvs-src@FreeBSD.ORG Subject: Re: cvs commit: src/sbin/ifconfig ifconfig.c src/sys/net if.c if.h Message-ID: <20041212212850.GA1493@freebie.xs4all.nl> In-Reply-To: <20041212205321.GA28802@odin.ac.hmc.edu> References: <200412122012.iBCKCou6068020@repoman.freebsd.org> <20041212204111.GB5503@electra.cse.Buffalo.EDU> <20041212205321.GA28802@odin.ac.hmc.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, Dec 12, 2004 at 12:53:21PM -0800, Brooks Davis wrote.. > On Sun, Dec 12, 2004 at 03:41:11PM -0500, Ken Smith wrote: > > On Sun, Dec 12, 2004 at 08:12:50PM +0000, Brooks Davis wrote: > > > brooks 2004-12-12 20:12:50 UTC > > >=20 > > > FreeBSD src repository > > >=20 > > > Modified files: (Branch: RELENG_4) > > > sbin/ifconfig ifconfig.c=20 > > > sys/net if.c if.h=20 > > > Log: > > > MFC the addition of ifi_datalen to struct if_data and ifconfig supp= ort > > > for it. The change to struct if_data differs slightly from the one= in > > > 5.3 in that a pad is added after ifi_xmitquota rather then adding > > > ifi_link_state before ifi_recvquota. This is necessicary to mainta= in > > > the 4.x ABI. > > > =20 > > > Revision Changes Path > > > 1.51.2.23 +4 -1 src/sbin/ifconfig/ifconfig.c > > > 1.85.2.28 +2 -0 src/sys/net/if.c > > > 1.58.2.12 +2 -0 src/sys/net/if.h > >=20 > > In if.h you are adding new fields that didn't exist before: > >=20 > > #ifndef _NET_IF_H_ > > @@ -97,6 +97,8 @@ struct if_data { > > u_char ifi_hdrlen; /* media header length */ > > u_char ifi_recvquota; /* polling quota for receive intrs */ > > u_char ifi_xmitquota; /* polling quota for xmit intrs */ > > + u_char ifi_do_no_use; /* pad for ifi_datalen's position */ > > + u_char ifi_datalen; /* length of this data struct */ > > u_long ifi_mtu; /* maximum transmission unit */ > > u_long ifi_metric; /* routing metric (external only) */ > > u_long ifi_baudrate; /* linespeed */ > >=20 > > So any already compiled executables that use the if_data structure would > > be looking for ifi_mtu/ifi_metric/ifi_baudrate in the wrong place after > > this change. Are you absolutely sure this is not breaking ABI? >=20 > ifi_mtu, etc remain in the same location because the two new variables > fill in the hidden padding required to align ifi_mtu. I've verified > that old and new ifconfigs work with old and new kernels. The change Als on 64 bit machines? Just wondering.. > will allow 4.11 ifconfigs to work with 6.x if we add fields to struct > if_data (fairly probable). --=20 Wilko Bulte wilko@FreeBSD.org
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20041212212850.GA1493>