From owner-freebsd-net@FreeBSD.ORG Tue Mar 6 07:24:34 2012 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A1B27106566C for ; Tue, 6 Mar 2012 07:24:34 +0000 (UTC) (envelope-from pluknet@gmail.com) Received: from mail-lpp01m010-f54.google.com (mail-lpp01m010-f54.google.com [209.85.215.54]) by mx1.freebsd.org (Postfix) with ESMTP id 1B86B8FC08 for ; Tue, 6 Mar 2012 07:24:33 +0000 (UTC) Received: by lagv3 with SMTP id v3so7991798lag.13 for ; Mon, 05 Mar 2012 23:24:32 -0800 (PST) Received-SPF: pass (google.com: domain of pluknet@gmail.com designates 10.112.102.161 as permitted sender) client-ip=10.112.102.161; Authentication-Results: mr.google.com; spf=pass (google.com: domain of pluknet@gmail.com designates 10.112.102.161 as permitted sender) smtp.mail=pluknet@gmail.com; dkim=pass header.i=pluknet@gmail.com Received: from mr.google.com ([10.112.102.161]) by 10.112.102.161 with SMTP id fp1mr10078193lbb.71.1331018672864 (num_hops = 1); Mon, 05 Mar 2012 23:24:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=vS8DxgxpaR8DFCN2QSjVcx3MCUIY8eOEy5irv8x/St4=; b=QX0e15Y7l59/X/NO2AHhSkM6PV7KODzSvQwKcXu1D3NtiQfyBmpRIG1XaYlY0cfnhc byEfrLlVYw0PfROCH4iRjiYyV9y5hpsHMroNW3DAvqmVNte83cQkIw9aLmP9As7ySxup LZ4EFjYPhIxW19Bnymd57bV7pBcEtZEpvafi6sjPhT2vjcz98bWJ4H/PdUoxjlL8GemC LVN+W18Np14VYLn5VXgIPc1tJk3YEx4ZRoUp6p03g/L+cBFu0aP1kTHXBKVJlzyguKfK nxCCbNyhOT8HkAYGCKBFugrKVfczKHiymz0oy9v2Kh8s6PmjFuRSk9X7DbsmQ0bku7TB m+fw== MIME-Version: 1.0 Received: by 10.112.102.161 with SMTP id fp1mr8193945lbb.71.1331017045061; Mon, 05 Mar 2012 22:57:25 -0800 (PST) Received: by 10.152.21.73 with HTTP; Mon, 5 Mar 2012 22:57:25 -0800 (PST) In-Reply-To: References: Date: Tue, 6 Mar 2012 09:57:25 +0300 Message-ID: From: Sergey Kandaurov To: hiren panchasara Content-Type: text/plain; charset=ISO-8859-1 Cc: freebsd-net@freebsd.org Subject: Re: Difference between "struct addr" and "struct addrs" X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Mar 2012 07:24:34 -0000 On 6 March 2012 06:05, hiren panchasara wrote: > What is the difference between following 2 structs? > > /src/sys/net/if_var.h: struct ifaddr (from the comments seems like it > contains a particular address (of probably many) information for an > interface.) > > /src/include/ifaddrs.h: struct ifaddrs > struct ifaddr is the in-kernel representation of the interface address. In kernel each network interface consists of a linked list of interface addresses, described by ifaddr structures. See man ifnet(9): http://man.freebsd.org/ifnet struct ifaddrs is used in the userland BSD API getifaddrs(3). This interface is used to get interface addresses in userland programs. See how it is used in e.g. ifconfig(8) sources: /usr/src/sbin/ifconfig/ifconfig.c See man getifaddrs(3): http://man.freebsd.org/getifaddrs -- wbr, pluknet