svn commit: r226572 - stable/9/sys/netinet

Ben Kaduk minimarmot at gmail.com
Fri Nov 11 14:53:19 UTC 2011


On Thu, Oct 20, 2011 at 12:40 PM, Bjoern A. Zeeb <bz at freebsd.org> wrote:
> On 20. Oct 2011, at 15:58 , Gleb Smirnoff wrote:
>
>> Author: glebius
>> Date: Thu Oct 20 15:58:05 2011
>> New Revision: 226572
>> URL: http://svn.freebsd.org/changeset/base/226572
>>
>> Log:
>>  MFhead 226401,226402:
>>
>>    Remove last remnants of classful addressing:
>>
>>    - Remove ia_net, ia_netmask, ia_netbroadcast from struct in_ifaddr.
>>    - Remove net.inet.ip.subnetsarelocal, I bet no one need it in 2011.
>>    - fix bug when we were not forwarding to a host which matches classful
>>      net address. For example router having 192.168.x.y/16 network attached,
>>      would not forward traffic to 192.168.*.0, which are legal IPs in
>>      CIDR world.
>>    - For compatibility, leave autoguessing of mask based on class.
>>
>>    Reviewed by:  andre, bz, rwatson
>>
>>    Add support for IPv4 /31 prefixes, as described in RFC3021.
>>
>>    To run a /31 network, participating hosts MUST drop support
>>    for directed broadcasts, and treat the first and last addresses
>>    on subnet as unicast. The broadcast address for the prefix
>>    should be the link local broadcast address, INADDR_BROADCAST.
> ...
>> Modified: stable/9/sys/netinet/in_var.h
>> ==============================================================================
>> --- stable/9/sys/netinet/in_var.h     Thu Oct 20 15:55:01 2011        (r226571)
>> +++ stable/9/sys/netinet/in_var.h     Thu Oct 20 15:58:05 2011        (r226572)
>> @@ -60,12 +60,9 @@ struct in_ifaddr {
>>       struct  ifaddr ia_ifa;          /* protocol-independent info */
>> #define       ia_ifp          ia_ifa.ifa_ifp
>> #define ia_flags      ia_ifa.ifa_flags
>> -                                     /* ia_{,sub}net{,mask} in host order */
>> -     u_long  ia_net;                 /* network number of interface */
>> -     u_long  ia_netmask;             /* mask of net part */
>> -     u_long  ia_subnet;              /* subnet number, including net */
>> -     u_long  ia_subnetmask;          /* mask of subnet part */
>> -     struct  in_addr ia_netbroadcast; /* to recognize net broadcasts */
>> +                                     /* ia_subnet{,mask} in host order */
>> +     u_long  ia_subnet;              /* subnet address */
>> +     u_long  ia_subnetmask;          /* mask of subnet */
>>       LIST_ENTRY(in_ifaddr) ia_hash;  /* entry in bucket of inet addresses */
>>       TAILQ_ENTRY(in_ifaddr) ia_link; /* list of internet addresses */
>>       struct  sockaddr_in ia_addr;    /* reserve space for interface name */
>
> This should at least break parts of netstat and ifmcstat as I had told you in
> private email before.

Just so we're clear, it changes the API (at the RC stage!), causing at
least the net/openafs port to fail to compile.

I presume, given the commit message, that I am just not supposed to
use ia_net and ia_netmask any more, and that ia_submet and
ia_subnetmask are presumed to be sufficient?

-Ben Kaduk


More information about the svn-src-stable mailing list