Date: Mon, 25 Nov 2013 06:17:14 +0000 (UTC) From: "Andrey V. Elsukov" <ae@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r258539 - in user/ae/inet6/sys: net netinet6 Message-ID: <201311250617.rAP6HEL7005186@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: ae Date: Mon Nov 25 06:17:14 2013 New Revision: 258539 URL: http://svnweb.freebsd.org/changeset/base/258539 Log: Remove deembed_scopeid sysctl and related code. Modified: user/ae/inet6/sys/net/rtsock.c user/ae/inet6/sys/netinet6/scope6.c user/ae/inet6/sys/netinet6/scope6_var.h Modified: user/ae/inet6/sys/net/rtsock.c ============================================================================== --- user/ae/inet6/sys/net/rtsock.c Mon Nov 25 02:22:20 2013 (r258538) +++ user/ae/inet6/sys/net/rtsock.c Mon Nov 25 06:17:14 2013 (r258539) @@ -544,8 +544,10 @@ rtm_get_jailed(struct rt_addrinfo *info, saun->sin6.sin6_len = sizeof(struct sockaddr_in6); saun->sin6.sin6_family = AF_INET6; bcopy(&ia6, &saun->sin6.sin6_addr, sizeof(struct in6_addr)); - if (sa6_recoverscope(&saun->sin6) != 0) - return (ESRCH); + /* + saun->sin6.sin6_sin6_scope_id = in6_getscopezone(ifp, + in6_addrscope(&ia6)); + */ info->rti_info[RTAX_IFA] = (struct sockaddr *)&saun->sin6; break; } @@ -565,11 +567,6 @@ route_output(struct mbuf *m, struct sock struct rtentry *rt = NULL; struct radix_node_head *rnh; struct rt_addrinfo info; -#ifdef INET6 - struct sockaddr_storage ss; - struct sockaddr_in6 *sin6; - int i, rti_need_deembed = 0; -#endif int len, error = 0; struct ifnet *ifp = NULL; union sockaddr_union saun; @@ -600,11 +597,6 @@ route_output(struct mbuf *m, struct sock rtm->rtm_pid = curproc->p_pid; bzero(&info, sizeof(info)); info.rti_addrs = rtm->rtm_addrs; - /* - * rt_xaddrs() performs s6_addr[2] := sin6_scope_id for AF_INET6 - * link-local address because rtrequest requires addresses with - * embedded scope id. - */ if (rt_xaddrs((caddr_t)(rtm + 1), len + (caddr_t)rtm, &info)) { info.rti_info[RTAX_DST] = NULL; senderr(EINVAL); @@ -673,18 +665,11 @@ route_output(struct mbuf *m, struct sock if (info.rti_info[RTAX_GATEWAY]->sa_family == AF_LINK && (rtm->rtm_flags & RTF_LLDATA) != 0) { error = lla_rt_output(rtm, &info); -#ifdef INET6 - if (error == 0) - rti_need_deembed = (V_deembed_scopeid) ? 1 : 0; -#endif break; } error = rtrequest1_fib(RTM_ADD, &info, &saved_nrt, so->so_fibnum); if (error == 0 && saved_nrt) { -#ifdef INET6 - rti_need_deembed = (V_deembed_scopeid) ? 1 : 0; -#endif RT_LOCK(saved_nrt); rt_setmetrics(rtm->rtm_inits, &rtm->rtm_rmx, &saved_nrt->rt_rmx); @@ -701,10 +686,6 @@ route_output(struct mbuf *m, struct sock (info.rti_info[RTAX_GATEWAY]->sa_family == AF_LINK) && (rtm->rtm_flags & RTF_LLDATA) != 0) { error = lla_rt_output(rtm, &info); -#ifdef INET6 - if (error == 0) - rti_need_deembed = (V_deembed_scopeid) ? 1 : 0; -#endif break; } error = rtrequest1_fib(RTM_DELETE, &info, &saved_nrt, @@ -714,10 +695,6 @@ route_output(struct mbuf *m, struct sock rt = saved_nrt; goto report; } -#ifdef INET6 - /* rt_msg2() will not be used when RTM_DELETE fails. */ - rti_need_deembed = (V_deembed_scopeid) ? 1 : 0; -#endif break; case RTM_GET: @@ -966,22 +943,6 @@ flush: rp = sotorawcb(so); } if (rtm) { -#ifdef INET6 - if (rti_need_deembed) { - /* sin6_scope_id is recovered before sending rtm. */ - sin6 = (struct sockaddr_in6 *)&ss; - for (i = 0; i < RTAX_MAX; i++) { - if (info.rti_info[i] == NULL) - continue; - if (info.rti_info[i]->sa_family != AF_INET6) - continue; - bcopy(info.rti_info[i], sin6, sizeof(*sin6)); - if (sa6_recoverscope(sin6) == 0) - bcopy(sin6, info.rti_info[i], - sizeof(*sin6)); - } - } -#endif m_copyback(m, 0, rtm->rtm_msglen, (caddr_t)rtm); if (m->m_pkthdr.len < rtm->rtm_msglen) { m_freem(m); @@ -1075,11 +1036,6 @@ rt_xaddrs(caddr_t cp, caddr_t cplim, str return (0); /* should be EINVAL but for compat */ } /* accept it */ -#ifdef INET6 - if (sa->sa_family == AF_INET6) - sa6_embedscope((struct sockaddr_in6 *)sa, - V_ip6_use_defzone); -#endif rtinfo->rti_info[i] = sa; cp += SA_SIZE(sa); } @@ -1094,13 +1050,8 @@ rt_msg1(int type, struct rt_addrinfo *rt { struct rt_msghdr *rtm; struct mbuf *m; - int i; struct sockaddr *sa; -#ifdef INET6 - struct sockaddr_storage ss; - struct sockaddr_in6 *sin6; -#endif - int len, dlen; + int len, i; switch (type) { @@ -1143,17 +1094,8 @@ rt_msg1(int type, struct rt_addrinfo *rt if ((sa = rtinfo->rti_info[i]) == NULL) continue; rtinfo->rti_addrs |= (1 << i); - dlen = SA_SIZE(sa); -#ifdef INET6 - if (V_deembed_scopeid && sa->sa_family == AF_INET6) { - sin6 = (struct sockaddr_in6 *)&ss; - bcopy(sa, sin6, sizeof(*sin6)); - if (sa6_recoverscope(sin6) == 0) - sa = (struct sockaddr *)sin6; - } -#endif - m_copyback(m, len, dlen, (caddr_t)sa); - len += dlen; + m_copyback(m, len, SA_SIZE(sa), (caddr_t)sa); + len += SA_SIZE(sa); } if (m->m_pkthdr.len != len) { m_freem(m); @@ -1171,13 +1113,8 @@ rt_msg1(int type, struct rt_addrinfo *rt static int rt_msg2(int type, struct rt_addrinfo *rtinfo, caddr_t cp, struct walkarg *w) { - int i; - int len, dlen, second_time = 0; caddr_t cp0; -#ifdef INET6 - struct sockaddr_storage ss; - struct sockaddr_in6 *sin6; -#endif + int len, i, second_time = 0; rtinfo->rti_addrs = 0; again: @@ -1228,20 +1165,11 @@ again: if ((sa = rtinfo->rti_info[i]) == NULL) continue; rtinfo->rti_addrs |= (1 << i); - dlen = SA_SIZE(sa); if (cp) { -#ifdef INET6 - if (V_deembed_scopeid && sa->sa_family == AF_INET6) { - sin6 = (struct sockaddr_in6 *)&ss; - bcopy(sa, sin6, sizeof(*sin6)); - if (sa6_recoverscope(sin6) == 0) - sa = (struct sockaddr *)sin6; - } -#endif - bcopy((caddr_t)sa, cp, (unsigned)dlen); - cp += dlen; + bcopy((caddr_t)sa, cp, SA_SIZE(sa)); + cp += SA_SIZE(sa); } - len += dlen; + len += SA_SIZE(sa); } len = ALIGN(len); if (cp == NULL && w != NULL && !second_time) { Modified: user/ae/inet6/sys/netinet6/scope6.c ============================================================================== --- user/ae/inet6/sys/netinet6/scope6.c Mon Nov 25 02:22:20 2013 (r258538) +++ user/ae/inet6/sys/netinet6/scope6.c Mon Nov 25 06:17:14 2013 (r258539) @@ -38,7 +38,6 @@ __FBSDID("$FreeBSD$"); #include <sys/socket.h> #include <sys/systm.h> #include <sys/queue.h> -#include <sys/sysctl.h> #include <sys/syslog.h> #include <net/if.h> @@ -57,11 +56,6 @@ VNET_DEFINE(int, ip6_use_defzone) = 1; #else VNET_DEFINE(int, ip6_use_defzone) = 0; #endif -VNET_DEFINE(int, deembed_scopeid) = 1; -SYSCTL_DECL(_net_inet6_ip6); -SYSCTL_VNET_INT(_net_inet6_ip6, OID_AUTO, deembed_scopeid, CTLFLAG_RW, - &VNET_NAME(deembed_scopeid), 0, - "Extract embedded zone ID and set it to sin6_scope_id in sockaddr_in6."); /* * The scope6_lock protects the global sid default stored in Modified: user/ae/inet6/sys/netinet6/scope6_var.h ============================================================================== --- user/ae/inet6/sys/netinet6/scope6_var.h Mon Nov 25 02:22:20 2013 (r258538) +++ user/ae/inet6/sys/netinet6/scope6_var.h Mon Nov 25 06:17:14 2013 (r258539) @@ -45,9 +45,6 @@ struct scope6_id { uint32_t s6id_list[IPV6_ADDR_SCOPES_COUNT]; }; -VNET_DECLARE(int, deembed_scopeid); -#define V_deembed_scopeid VNET(deembed_scopeid) - void scope6_init(void); struct scope6_id *scope6_ifattach(struct ifnet *); void scope6_ifdetach(struct scope6_id *);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201311250617.rAP6HEL7005186>