From owner-freebsd-net@FreeBSD.ORG Sat Aug 9 05:53:13 2014 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id C0E93858; Sat, 9 Aug 2014 05:53:13 +0000 (UTC) Received: from web01.jbserver.net (web01.jbserver.net [IPv6:2a00:8240:6:a::1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 85F272149; Sat, 9 Aug 2014 05:53:13 +0000 (UTC) Received: from 18-132-17-190.fibertel.com.ar ([190.17.132.18] helo=[192.168.3.107]) by web01.jbserver.net with esmtpsa (TLSv1.2:DHE-RSA-AES128-SHA:128) (Exim 4.83) (envelope-from ) id 1XFzaX-0002Qb-4R; Sat, 09 Aug 2014 07:53:09 +0200 Message-ID: <53E5B71D.2030500@gont.com.ar> Date: Sat, 09 Aug 2014 01:52:29 -0400 From: Fernando Gont User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.0 MIME-Version: 1.0 To: Hiroki Sato Subject: Re: Routing IPv6 packets towards oneself with routing sockets? References: <53E2B586.3080700@gont.com.ar> <20140807.192403.845244220459089560.hrs@allbsd.org> <53E35DA7.4020800@gont.com.ar> <20140808.053757.1725805140861121363.hrs@allbsd.org> In-Reply-To: <20140808.053757.1725805140861121363.hrs@allbsd.org> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Cc: freebsd-net@freebsd.org X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 09 Aug 2014 05:53:13 -0000 Hi, Hiroki, On 08/07/2014 04:37 PM, Hiroki Sato wrote: > > fe> However, whenever I lookup an entry for fc00:1::1 with routing sockets, > fe> the only entry I obtain is fc00:1::/64 (a network route) rather than > fe> fc00:1::1/128 (a host route). > > Does this mean you got RTA_DST with fc00:1::/64 when > "bsd-lookup-simple -v fc00:1::1"? If so, it is very strange. Nope, you're right. I get fc00:1::1... the only "problem" was that the outgoing interface was incorrect... but as you noted, that had to do with me not setting RTA_IFP. (FWIW, my guide for using routing sockets was Stevens' UNPv1... but IIRC he never mentioned that of setting RTA_IFP, but rather suggested that RTA_GATEWAY could return AF_INET or AF_LINK (in his discussion about IPv4, since there was no discussion about IPv6). > Although your code assumes RTA_GATEWAY eventually returns the > outgoing interface, it is not always true. RTA_IFP should be used if > you want to look up it instead of looking up gateways until AF_LINK > is obtained. Certainly RTA_GATEWAY returns AF_LINK and you can check > sdl_index in it, but the index number is not always the same as the > actual outgoing interface (one of the examples is a host route). Just curious: what's the meaning of the AF_LINK I was reading? > A revised source file is attached. Some nits are also fixed: 1) > SA_SIZE() on MacOSX is not aligned with sizeof(long) and 2) > IFACE_LENGTH should be IFNAMSIZ. Thanks so much! -- I'll incorporate these into the ipv6toolkit (that's the reason for which I was playing with this in the first place). Thanks again! Best regards, -- Fernando Gont e-mail: fernando@gont.com.ar || fgont@si6networks.com PGP Fingerprint: 7809 84F5 322E 45C7 F1C9 3945 96EE A9EF D076 FFF1