cvs commit: src/sbin/ifconfig ifconfig.c src/sys/net if.c if.h

Ken Smith kensmith at cse.Buffalo.EDU
Sun Dec 12 12:41:13 PST 2004


On Sun, Dec 12, 2004 at 08:12:50PM +0000, Brooks Davis wrote:
> brooks      2004-12-12 20:12:50 UTC
> 
>   FreeBSD src repository
> 
>   Modified files:        (Branch: RELENG_4)
>     sbin/ifconfig        ifconfig.c 
>     sys/net              if.c if.h 
>   Log:
>   MFC the addition of ifi_datalen to struct if_data and ifconfig support
>   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 maintain
>   the 4.x ABI.
>   
>   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

In if.h you are adding new fields that didn't exist before:

 #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 */

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?

Thanks.

-- 
						Ken Smith
- From there to here, from here to      |       kensmith at cse.buffalo.edu
  there, funny things are everywhere.   |
                      - Theodore Geisel |


More information about the cvs-src mailing list