#ifndef _NETINET_IN_SELSRC_H #define _NETINET_IN_SELSRC_H #define IN_SELECTSRC_LEN 128 #define IN_SCORE_SRC_MAX 8 typedef int (*in_score_src_t)(const struct in_addr *src, int preference, int idx, const struct in_addr *dst); struct in_ifselsrc { uint32_t iss_seqno; in_score_src_t iss_score_src[IN_SCORE_SRC_MAX]; }; struct in_ifsysctl { struct ifnet *isc_ifp; struct sysctllog *isc_log; struct in_ifselsrc *isc_selsrc; }; enum in_category { IN_CATEGORY_LINKLOCAL = 0, IN_CATEGORY_PRIVATE, IN_CATEGORY_OTHER }; struct ifaddr *in_getifa(struct ifaddr *, const struct sockaddr *); void *in_selsrc_domifattach(struct ifnet *ifp); void in_selsrc_domifdetach(struct ifnet *ifp, void *aux); #endif /* _NETINET_IN_SELSRC_H */ |