Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 26 Feb 2001 10:49:08 +0200 (EET)
From:      Ana Romero <anar@ees2.oulu.fi>
To:        Francis Dupont <Francis.Dupont@enst-bretagne.fr>
Cc:        Questions FreeBSD <questions@freeBSD.org>
Subject:   error making world
Message-ID:  <Pine.GSO.4.33.0102261038060.1445-200000@stekt56>

next in thread | raw e-mail | index | archive | help

[-- Attachment #1 --]
HI!!

I have two identical laptops in which I am trying to make world to install
IPv6 inria
code. I succeded with the first one, but with the second I have errors
compiling in6_var.h file.I attach also the mentioned file. Do you know
how to fix it??
This is the error:



cc -nostdinc -O -pipe -I/usr/src/usr.bin/kdump/../ktrace
-I/usr/src/usr.bin/kdump/../..   -I/usr/obj/usr/src/tmp/usr/include -c
ioctl.c
In file included from ioctl.c:81:
/usr/obj/usr/src/tmp/usr/include/sys/memrange.h:16: warning: `MDF_ACTIVE'
redefined
/usr/obj/usr/src/tmp/usr/include/pccard/cardinfo.h:77: warning: this is the
location of the previous definition
In file included from ioctl.c:65:
/usr/obj/usr/src/tmp/usr/include/netinet/in6_var.h:52: field `ia_addr' has
incomplete type
/usr/obj/usr/src/tmp/usr/include/netinet/in6_var.h:53: field `ia_dstaddr'
has incomplete type
/usr/obj/usr/src/tmp/usr/include/netinet/in6_var.h:54: field `ia_sockmask'
has incomplete type
/usr/obj/usr/src/tmp/usr/include/netinet/in6_var.h:66: field `ifra_addr'
has incomplete type
/usr/obj/usr/src/tmp/usr/include/netinet/in6_var.h:67: field `ifra_dstaddr'
has incomplete type
/usr/obj/usr/src/tmp/usr/include/netinet/in6_var.h:68: field `ifra_mask'
has incomplete type
/usr/obj/usr/src/tmp/usr/include/netinet/in6_var.h:73: field `ifr_Addr' has
incomplete type
/usr/obj/usr/src/tmp/usr/include/netinet/in6_var.h:89: field `addr' has
incomplete type
/usr/obj/usr/src/tmp/usr/include/netinet/in6_var.h:90: field `dstaddr' has
incomplete type
/usr/obj/usr/src/tmp/usr/include/netinet/in6_var.h:224: field `inm6_addr'
has incomplete type
/usr/obj/usr/src/tmp/usr/include/netinet/in6_var.h:312: field `ina6_addr'
has incomplete type
*** Error code 1

Stop.
*** Error code 1

Stop.
*** Error code 1

Stop.
*** Error code 1

Stop.
*** Error code 1

Stop.
*** Error code 1

Stop. winner-laptop5# exit
exit


Script done on Mon Feb 26 10:40:27 2001





___________________________________

Ana Romero
Centre for Wireless Communications
PL 4500, Tutkijantie 2 E, FIN-90014
University of Oulu
Oulu, Finland



[-- Attachment #2 --]
/*
 * Copyright (c) 1985, 1986, 1993
 *	The Regents of the University of California.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. All advertising materials mentioning features or use of this software
 *    must display the following acknowledgement:
 *	This product includes software developed by the University of
 *	California, Berkeley and its contributors.
 * 4. Neither the name of the University nor the names of its contributors
 *    may be used to endorse or promote products derived from this software
 *    without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 *
 *	@(#)in_var.h	8.1 (Berkeley) 6/10/93
 */

#ifndef _NETINET_IN6_VAR_H_
#define _NETINET_IN6_VAR_H_

#include <sys/queue.h>

/*
 * Interface address, IPv6 version.  One of these structures
 * is allocated for each IPv6 address on an interface.
 * The ifaddr structure contains the protocol-independent part
 * of the structure and is assumed to be first.
 */
struct in6_ifaddr {
	struct	ifaddr ia_ifa;		/* protocol-independent info */
#define	ia_ifp		ia_ifa.ifa_ifp
#define ia_flags	ia_ifa.ifa_flags
	TAILQ_ENTRY(in6_ifaddr) ia_list; /* list of IPv6 addresses */
	struct	sockaddr_in6 ia_addr;	/* space for interface name */
	struct	sockaddr_in6 ia_dstaddr; /* space for broadcast addr */
	struct	sockaddr_in6 ia_sockmask; /* space for general netmask */
};

#ifndef NO_SIOC_6
/*
 * XXX - ioctl to be suppressed :
 *	SIOCDIFADDR6 SIOCAIFADDR6
 * and structs in6_aliasreq and in6_ifreq
 */

struct	in6_aliasreq {
	char	ifra_name[IFNAMSIZ];		/* if name, e.g. "en0" */
	struct	sockaddr_in6 ifra_addr;
	struct	sockaddr_in6 ifra_dstaddr;
	struct	sockaddr_in6 ifra_mask;
};

struct in6_ifreq {
	char	ifr_name[IFNAMSIZ];		/* if name, e.g. "en0" */
	struct	sockaddr_in6 ifr_Addr;
};
#endif	/* NO_SIOC_6 */

/*
 * Structure for SIOC[AGD]LIFADDR SIOC[GS]BTILADDR
 */
struct if_laddrreq {
	char iflr_name[IFNAMSIZ];
	unsigned int flags;	/* out: ia_flags; in: see below */
#define IFLR_PREFIX	0x1
#define IFLR_FIRST	0x2
#define IFLR_NOSET	0x4
#define IFLR_PREFDST	0x8
#define IFLR_KILL	0x10
	unsigned int prefixlen;
	struct sockaddr_storage addr;
	struct sockaddr_storage dstaddr;
};

/*
 * SIOC[GAD]LIFADDR.
 *	SIOCGLIFADDR: get first address (no wildchar: addr ignored as input)
 *	SIOCGLIFADDR with IFLR_PREFIX:
 *		Get first address that matches the specified prefix.
 *	SIOCALIFADDR: add the specified address. (no wildchar: addr must be set)
 *	SIOCALIFADDR with IFLR_PREFIX:
 *		Add the specified prefix, filling hostid part from
 *		eui-64 or the first link-local address.
 *		Return the correct address
 *	    local mods (only meaningful for SIOCALIFADDR)
 * 		IFLR_FIRST	add/put in first
 *		IFLR_PREFDST	fill hostid part of dstaddr (need IFLR_PREFIX)
 *		IFLR_NOSET	do only the verif/PREF part, do not set addr
 *	    If addr is new, prefixlen must be >0 and dstaddr must be set
 *		on a p2p interface 
 *	    If addr already exists, prefixlen == 0 means do not change and
 *		on a p2p interface, dstaddr.sa_family == 0 means do not change
 *	SIOCDLIFADDR: delete the specified address. (no wildchar: must exist)
 *	SIOCDLIFADDR with IFLR_PREFIX:
 *		Delete the first address that matches the specified prefix.
 *	SIOCDLIFADDR with IFLR_KILL:
 *		Sends an error to all the PCBs using the address as source.
 * return values:
 *	EINVAL on invalid parameters
 *	EADDRNOTAVAIL on prefix match failed/specified address not found
 *	other values may be returned from in6_ioctl()
 *
 * NOTE: SIOCALIFADDR(with IFLR_PREFIX set) allows any prefixlen.
 * this is to accomodate address naming scheme other than RFC237.
 */

/*
 * Given a pointer to an in6_ifaddr (ifaddr),
 * return a pointer to the addr as a sockaddr_in6.
 */
#define	IA_SIN6(ia) (&(((struct in6_ifaddr *)(ia))->ia_addr))
#define	IA_DSTSIN6(ia) (&(((struct in6_ifaddr *)(ia))->ia_dstaddr))

#define if_site6	if_scid6[MADDR6_SCP_SITE]

#ifndef NO_SIOC_6
/*
 * XXX - ioctl to be suppressed :
 *	SIOCDIFADDR6 SIOCAIFADDR6
 * and structs in6_aliasreq and in6_ifreq
 */

#define SIOCDIFADDR6  _IOW('i', 25, struct in6_ifreq)	/* delete IF addr */
#define SIOCAIFADDR6  _IOW('i', 26, struct in6_aliasreq)/* add/chg IF alias */
#endif	/* NO_SIOC_6 */

#define SIOCALIFADDR  _IOWR('i', 27, struct if_laddrreq)/* add IF addr */
#define SIOCGLIFADDR  _IOWR('i', 28, struct if_laddrreq)/* get IF addr */
#define SIOCDLIFADDR  _IOW('i', 29, struct if_laddrreq)	/* delete IF addr */

#define SIOCADDANY    _IOW('i', 41, struct if_laddrreq)	/* add an anycast */
#define SIOCDELANY    _IOW('i', 42, struct if_laddrreq)	/* delete an anycast */

#define SIOCGIFSCID6  _IOWR('i', 43, struct ifreq)	/* get a scope ID */
#define SIOCSIFSCID6  _IOW('i', 44, struct ifreq)	/* set a scope ID */

#define SIOCGTUGLADDR _IOWR('i', 45, struct if_laddrreq)/* get TUG real addr */
#define SIOCSTUGLADDR _IOW('i', 46, struct if_laddrreq)	/* set TUG real addr */

/* DTI and TUG: meme combat ! */
#define SIOCGDTILADDR _IOWR('i', 45, struct if_laddrreq)/* get DTI addr6 */
#define SIOCSDTILADDR _IOW('i', 46, struct if_laddrreq)	/* set DTI addr6 */

#define SIOCGBTILADDR _IOWR('i', 47, struct if_laddrreq)/* get BTI addr6 */
#define SIOCSBTILADDR _IOW('i', 48, struct if_laddrreq)	/* set BTI addr6 */

#define SIOCGDTILAST  _IOWR('i', 47, struct ifreq)	/* get DTI last */

#if defined(KERNEL) && defined(INET6)

TAILQ_HEAD(in6_ifaddrhead, in6_ifaddr);
extern	struct in6_ifaddrhead in6_ifaddr;
extern	int main_if6, main_site6;

/*
 * Macro for finding the interface (ifnet structure) corresponding to one
 * of our IPv6 addresses.
 */
#define IN6ADDR_TO_IFP(addr, ifp) \
	/* struct in6_addr addr; */ \
	/* struct ifnet *ifp; */ \
{ \
	register struct in6_ifaddr *ia; \
\
	for (ia = in6_ifaddr.tqh_first; \
	    ia != NULL && \
	      !SAME_ADDR6(((ia->ia_ifp->if_flags & IFF_POINTOPOINT) ? \
		    IA_DSTSIN6(ia) : IA_SIN6(ia))->sin6_addr, addr); \
	    ia = ia->ia_list.tqe_next) \
		 continue; \
	if (ia == NULL) \
	    for (ia = in6_ifaddr.tqh_first; \
		ia != NULL; \
		ia = ia->ia_list.tqe_next) \
		    if (ia->ia_ifp->if_flags & IFF_POINTOPOINT && \
			SAME_ADDR6(IA_SIN6(ia)->sin6_addr, addr)) \
			    break; \
	(ifp) = (ia == NULL) ? NULL : ia->ia_ifp; \
}

/*
 * Macro for finding the IPv6 address structure (in6_ifaddr) corresponding
 * to a given interface (ifnet structure).
 */
#define IFP_TO_IA6(ifp, ia) \
	/* struct ifnet *ifp; */ \
	/* struct in6_ifaddr *ia; */ \
{ \
	for ((ia) = in6_ifaddr.tqh_first; \
	    (ia) != NULL && (ia)->ia_ifp != (ifp); \
	    (ia) = (ia)->ia_list.tqe_next) \
		continue; \
}
#endif

/*
 * IPv6 multicast address structure.  There is one of these for each IPv6
 * multicast group to which this host belongs on a given network interface.
 * For every entry on the interface's if_multiaddrs list which represents
 * an IPv6 multicast group, there is one of these structures.  They are also
 * kept on a system-wide list to make it easier to keep our legacy ICMPv6 code
 * compatible with the rest of the world (see IN6_FIRST_MULTI et al, below).
 */
struct in6_multi {
	LIST_ENTRY(in6_multi) inm6_entry; /* list glue */ 
	struct	in6_addr inm6_addr;	/* IPv6 multicast address */
	struct	ifnet *inm6_ifp;	/* back pointer to ifnet */
	struct	ifmultiaddr *inm6_ifma;	/* back pointer to ifmultiaddr */
	u_int	inm6_timer;		/* ICMPv6 membership report timer */
	u_int	inm6_state;		/* state of the membership */
};

#define MULTI6_OTHERMEMBER		1
#define MULTI6_IREPORTEDLAST		2

#if defined(KERNEL) && defined(INET6)
extern LIST_HEAD(in6_multihead, in6_multi) in6_multihead;

/*
 * Structure used by macros below to remember position when stepping through
 * all of the in6_multi records.
 */
struct in6_multistep {
	struct in6_multi *i6_inm;
};

/*
 * Macro for looking up the in6_multi record for a given IPv6 multicast
 * address on a given interface. If no matching record is found,
 * "inm" is set null.
 */
#define IN6_LOOKUP_MULTI(addr, ifp, inm) \
	/* struct in6_addr addr; */ \
	/* struct ifnet *ifp; */ \
	/* struct in6_multi *inm; */ \
do { \
	register struct ifmultiaddr *ifma; \
\
	for (ifma = (ifp)->if_multiaddrs.lh_first; ifma; \
	     ifma = ifma->ifma_link.le_next) { \
		if (ifma->ifma_addr->sa_family == AF_INET6 \
		    && SAME_ADDR6(((struct sockaddr_in6 *)ifma->ifma_addr)->sin6_addr, \
				  (addr))) \
			break; \
	} \
	(inm) = ifma ? ifma->ifma_protospec : 0; \
} while(0)

/*
 * Macro to step through all of the in6_multi records, one at a time.
 * The current position is remembered in "step", which the caller must
 * provide.  IN6_FIRST_MULTI(), below, must be called to initialize "step"
 * and get the first record.  Both macros return a NULL "inm" when there
 * are no remaining records.
 */
#define IN6_NEXT_MULTI(step, inm) \
	/* struct in6_multistep  step; */ \
	/* struct in6_multi *inm; */ \
do { \
	if (((inm) = (step).i6_inm) != NULL) \
		(step).i6_inm = (step).i6_inm->inm6_entry.le_next; \
} while(0)

#define IN6_FIRST_MULTI(step, inm) \
	/* struct in6_multistep step; */ \
	/* struct in6_multi *inm; */ \
do { \
	(step).i6_inm = in6_multihead.lh_first; \
	IN6_NEXT_MULTI((step), (inm)); \
} while(0)

struct	route;
struct	in6_multi *in6_addmulti __P((struct in6_addr *, struct ifnet *));
void	in6_delmulti __P((struct in6_multi *));
void	in6_restartmulti __P((struct in6_addr *, struct ifnet *));
int	in6_control __P((struct socket *, u_long, caddr_t, struct ifnet *,
			 struct proc *));
int	in6_ifadown __P((struct ifaddr *ifa));
void	in6_ifscrub __P((struct ifnet *, struct in6_ifaddr *));
int	ip6flow_fastforward __P((struct mbuf *));
void	ip6flow_create __P((const struct route *, struct mbuf *));
void	ip6flow_slowtimo __P((void));

#endif /* KERNEL */

/*
 * Anycast address structure.
 */

struct in6_anycast {
#ifdef KERNEL
	LIST_ENTRY(in6_anycast) ina6_list;	/* list glue */
#endif
	struct	in6_addr ina6_addr;		/* IPv6 anycast address */
	u_int	ina6_refcount;			/* reference count */
	u_int	ina6_flags;			/* flags */
};
#define	IP6ANY_HOST_PROXY	1		/* proxy (host) */
#define	IP6ANY_ROUTER_PROXY	2		/* proxy (router) */
#define	IP6ANY_ANYCAST		3		/* anycast */

#if defined(KERNEL) && defined(INET6)

extern LIST_HEAD(in6_anyhead, in6_anycast) in6_anyhead;

#endif

/*
 * Definitions for IPv6 sysctl operations.
 *
 * Third level is protocol number.
 * Fourth level is desired variable within that protocol.
 */
#define	IP6PROTO_MAXID	(1)		/* don't list to IP6PROTO_MAX */

#define	CTL_IP6PROTO_NAMES { \
	{ "ipv6", CTLTYPE_NODE }, \
}

/*
 * Names for IPv6 sysctl objects
 */
#define	IP6CTL_FORWARDING	1	/* act as router */
#define	IP6CTL_MFORWARDING	2	/* act as multicast router */
#define	IP6CTL_FORWSRCRT	3	/* forward source-routed packets */
#define IP6CTL_DEFTTL		4	/* default TTL */
#define	IP6CTL_PRUNE		5	/* route prune timer */
#define	IP6CTL_KEEP		6	/* route default lifetime */
#define	IP6CTL_REACHABLE	7	/* reachable time */
#define	IP6CTL_RETRANS		8	/* retrans timer */
#define	IP6CTL_PROBE		9	/* delay first probe */
#define	IP6CTL_DOWN		10	/* hold down timer */
#define	IP6CTL_UMAXTRIES	11	/* max unicast solicit */
#define	IP6CTL_MMAXTRIES	12	/* max multicast solicit */
#define	IP6CTL_MHLEVEL		13	/* multi-homed support level */
#define	IP6CTL_MAININTF		14	/* index of the main interface */
#define	IP6CTL_MAINSITE		15	/* index of the main site */
#define	IP6CTL_ANYCASTS		16	/* anycast address list */
#define	IP6CTL_CTICNT		17	/* number of CTI interfaces */
#define	IP6CTL_BTICNT		18	/* number of BTI interfaces */
#define	IP6CTL_DTICNT		19	/* number of DTI interfaces */
#define	IP6CTL_STATS		20	/* ip6stat structure */
#define	IP6CTL_FASTFORWARDING	21	/* use fast IPv6 forwarding code */
#define	IP6CTL_MAXID		22

#define	IP6CTL_NAMES { \
	{ 0, 0 }, \
	{ "forwarding", CTLTYPE_INT }, \
	{ "mforwarding", CTLTYPE_INT }, \
	{ "forwsrcrt", CTLTYPE_INT }, \
	{ "ttl", CTLTYPE_INT }, \
	{ "prune", CTLTYPE_INT }, \
	{ "keep", CTLTYPE_INT }, \
	{ "reachable", CTLTYPE_INT }, \
	{ "retrans", CTLTYPE_INT }, \
	{ "probe", CTLTYPE_INT }, \
	{ "hold_down", CTLTYPE_INT }, \
	{ "utries_max", CTLTYPE_INT }, \
	{ "mtries_max", CTLTYPE_INT }, \
	{ "multi_homed", CTLTYPE_INT }, \
	{ "main_interface", CTLTYPE_INT }, \
	{ "main_site", CTLTYPE_INT }, \
	{ "anycasts", CTLTYPE_STRUCT }, \
	{ "cti_count", CTLTYPE_INT }, \
	{ "bti_count", CTLTYPE_INT }, \
	{ "dti_count", CTLTYPE_INT }, \
	{ "stats", CTLTYPE_STRUCT }, \
	{ "fastforwarding", CTLTYPE_INT }, \
}

int	main_interface __P((int *));
int	main_site __P((int *));

#endif

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.GSO.4.33.0102261038060.1445-200000>