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