Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 45bb0060 authored by Ulrich Weber's avatar Ulrich Weber Committed by David S. Miller
Browse files

ipv6: Remove IPV6_ADDR_RESERVED



RFC 4291 section 2.4 states that all uncategorized addresses
should be considered as Global Unicast.

This will remove IPV6_ADDR_RESERVED completely
and return IPV6_ADDR_UNICAST in ipv6_addr_type() instead.

Signed-off-by: default avatarUlrich Weber <uweber@astaro.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 1d9cfc4e
Loading
Loading
Loading
Loading
+0 −1
Original line number Original line Diff line number Diff line
@@ -73,7 +73,6 @@
#define IPV6_ADDR_SCOPE_MASK	0x00f0U
#define IPV6_ADDR_SCOPE_MASK	0x00f0U


#define IPV6_ADDR_MAPPED	0x1000U
#define IPV6_ADDR_MAPPED	0x1000U
#define IPV6_ADDR_RESERVED	0x2000U	/* reserved address space */


/*
/*
 *	Addr scopes
 *	Addr scopes
+1 −2
Original line number Original line Diff line number Diff line
@@ -992,8 +992,7 @@ struct ipv6_saddr_dst {


static inline int ipv6_saddr_preferred(int type)
static inline int ipv6_saddr_preferred(int type)
{
{
	if (type & (IPV6_ADDR_MAPPED|IPV6_ADDR_COMPATv4|
	if (type & (IPV6_ADDR_MAPPED|IPV6_ADDR_COMPATv4|IPV6_ADDR_LOOPBACK))
		    IPV6_ADDR_LOOPBACK|IPV6_ADDR_RESERVED))
		return 1;
		return 1;
	return 0;
	return 0;
}
}
+1 −1
Original line number Original line Diff line number Diff line
@@ -72,7 +72,7 @@ int __ipv6_addr_type(const struct in6_addr *addr)
				IPV6_ADDR_SCOPE_TYPE(IPV6_ADDR_SCOPE_GLOBAL));	/* addr-select 3.3 */
				IPV6_ADDR_SCOPE_TYPE(IPV6_ADDR_SCOPE_GLOBAL));	/* addr-select 3.3 */
	}
	}


	return (IPV6_ADDR_RESERVED |
	return (IPV6_ADDR_UNICAST |
		IPV6_ADDR_SCOPE_TYPE(IPV6_ADDR_SCOPE_GLOBAL));	/* addr-select 3.4 */
		IPV6_ADDR_SCOPE_TYPE(IPV6_ADDR_SCOPE_GLOBAL));	/* addr-select 3.4 */
}
}
EXPORT_SYMBOL(__ipv6_addr_type);
EXPORT_SYMBOL(__ipv6_addr_type);
+1 −1
Original line number Original line Diff line number Diff line
@@ -1873,7 +1873,7 @@ static int ip6_pkt_drop(struct sk_buff *skb, u8 code, int ipstats_mib_noroutes)
	switch (ipstats_mib_noroutes) {
	switch (ipstats_mib_noroutes) {
	case IPSTATS_MIB_INNOROUTES:
	case IPSTATS_MIB_INNOROUTES:
		type = ipv6_addr_type(&ipv6_hdr(skb)->daddr);
		type = ipv6_addr_type(&ipv6_hdr(skb)->daddr);
		if (type == IPV6_ADDR_ANY || type == IPV6_ADDR_RESERVED) {
		if (type == IPV6_ADDR_ANY) {
			IP6_INC_STATS(dev_net(dst->dev), ip6_dst_idev(dst),
			IP6_INC_STATS(dev_net(dst->dev), ip6_dst_idev(dst),
				      IPSTATS_MIB_INADDRERRORS);
				      IPSTATS_MIB_INADDRERRORS);
			break;
			break;