svn commit: r226572 - stable/9/sys/netinet
Bjoern A. Zeeb
bz at FreeBSD.org
Thu Oct 20 16:40:38 UTC 2011
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.
--
Bjoern A. Zeeb You have to have visions!
Stop bit received. Insert coin for new address family.
More information about the svn-src-stable-9
mailing list