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

[ Available lists | Index of cvs-all | Month of Dec 2004 | Week of 12 Dec 2004 | Raw email | View thread | Wrap long lines | Reply | Tag ]
From
Ken Smith <kensmith@cse.Buffalo.EDU>
Date
12 Dec 2004 20:41:13
Subject
Re: cvs commit: src/sbin/ifconfig ifconfig.c src/sys/net if.c if.h
Message-ID
20041212204111.GB5503@electra.cse.Buffalo.EDU


[ Hide this part ]
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@cse.buffalo.edu
there, funny things are everywhere. |
- Theodore Geisel |


Elapsed time: 0.131 seconds