1#ifndef _NETINET_IN_SELSRC_H
2#define _NETINET_IN_SELSRC_H
3
4#define	IN_SELECTSRC_LEN	128
5#define	IN_SCORE_SRC_MAX	8
6
7typedef int (*in_score_src_t)(const struct in_addr *src,
8                              int preference, int idx,
9			      const struct in_addr *dst);
10
11struct in_ifselsrc {
12	uint32_t		iss_seqno;
13	in_score_src_t		iss_score_src[IN_SCORE_SRC_MAX];
14};
15
16struct in_ifsysctl {
17	struct ifnet		*isc_ifp;
18	struct sysctllog	*isc_log;
19	struct in_ifselsrc	*isc_selsrc;
20};
21
22enum in_category {
23	IN_CATEGORY_LINKLOCAL = 0,
24	IN_CATEGORY_PRIVATE,
25	IN_CATEGORY_OTHER
26};
27
28struct ifaddr *in_getifa(struct ifaddr *, const struct sockaddr *);
29
30#endif /* _NETINET_IN_SELSRC_H */
31