From owner-freebsd-net@FreeBSD.ORG Wed Jan 14 01:29:15 2004 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8143B16A4CE for ; Wed, 14 Jan 2004 01:29:15 -0800 (PST) Received: from xorpc.icir.org (xorpc.icir.org [192.150.187.68]) by mx1.FreeBSD.org (Postfix) with ESMTP id A424243D3F for ; Wed, 14 Jan 2004 01:29:14 -0800 (PST) (envelope-from rizzo@icir.org) Received: from xorpc.icir.org (localhost [127.0.0.1]) by xorpc.icir.org (8.12.9p1/8.12.8) with ESMTP id i0E9TDAF001719; Wed, 14 Jan 2004 01:29:13 -0800 (PST) (envelope-from rizzo@xorpc.icir.org) Received: (from rizzo@localhost) by xorpc.icir.org (8.12.9p1/8.12.3/Submit) id i0E9TDvf001718; Wed, 14 Jan 2004 01:29:13 -0800 (PST) (envelope-from rizzo) Date: Wed, 14 Jan 2004 01:29:13 -0800 From: Luigi Rizzo To: net@freebsd.org Message-ID: <20040114012913.A91612@xorpc.icir.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5.1i Subject: 'ipv6' type in /etc/protocols ? X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Jan 2004 09:29:15 -0000 hi, in implementing ipv6 support for ipfw2, i hit the following problem: /etc/protocols has an entry: ipv6 41 IPV6 # ipv6 which is somewhat confusing for the parser -- if you type something like ipfw add allow ipv6 from foo to bar the "ipv6" will match in the call to getprotobyname() and the above will be translated into a rule that matches packets with ip->ip_proto == 41 (6 is TCP, 17 is UDP, etc.), while i presume that what one would really want with the above notation is to match IPv6 packets, i.e. + layer2 packets with mac-type 0x86dd (ipv6) + layer3 packets with ip->ip_v == 6 Now, i can put a special case for the keyword 'ipv6', but I wonder, what do we do with ip->ip_proto == 41 ? Does it make sense to handle this request ? And in this case, what name do we use for it to avoid conflicts ? Looking at /sys/netinet/in.h, it appears that ip_proto == 4 and 41 refer to encapsulations of ipv4 and ipv6 into ip... cheers luigi