rtinfo
rt_xaddrs(caddr_t cp, caddr_t cplim, struct rt_addrinfo *rtinfo)
if ((rtinfo->rti_addrs & (1 << i)) == 0)
rtinfo->rti_info[i] = &sa_zero;
rtinfo->rti_info[i] = sa;
rtsock_msg_mbuf(int type, struct rt_addrinfo *rtinfo)
if ((sa = rtinfo->rti_info[i]) == NULL)
rtinfo->rti_addrs |= (1 << i);
rtsock_msg_buffer(int type, struct rt_addrinfo *rtinfo, struct walkarg *w, int *plen)
rtinfo->rti_addrs = 0;
if ((sa = rtinfo->rti_info[i]) == NULL)
rtinfo->rti_addrs |= (1 << i);
rt_missmsg_fib(int type, struct rt_addrinfo *rtinfo, int flags, int error,
struct sockaddr *sa = rtinfo->rti_info[RTAX_DST];
m = rtsock_msg_mbuf(type, rtinfo);
rtm->rtm_addrs = rtinfo->rti_addrs;
rt_missmsg(int type, struct rt_addrinfo *rtinfo, int flags, int error)
static struct mbuf *rtsock_msg_mbuf(int type, struct rt_addrinfo *rtinfo);
rt_missmsg_fib(type, rtinfo, flags, error, RT_ALL_FIBS);
static int rtsock_msg_buffer(int type, struct rt_addrinfo *rtinfo,
struct rt_addrinfo *rtinfo);
struct rt_addrinfo rtinfo;
bzero(&rtinfo, sizeof(rtinfo));
rtinfo.rti_info[RTAX_DST] = (struct sockaddr *)&dst;
rtinfo.rti_info[RTAX_GATEWAY] = (struct sockaddr *)&gw;
rtinfo.rti_addrs = RTA_DST | RTA_GATEWAY;
rt_missmsg_fib(type, &rtinfo, RTF_HOST | RTF_LLDATA | (
struct rtinfo *rti;
rti = (struct rtinfo *)cp.cp_val;
action_show_rtinfo(struct rtinfo *rti)
static int action_show_rtinfo(struct rtinfo *);
struct rtinfo *rti;
struct rtinfo *rti;
struct rtinfo *rti;
struct rtinfo *rti;
TAILQ_ENTRY(rtinfo) rti_next;
TAILQ_HEAD(, rtinfo) rai_route; /* route information option (link head) */
void rt_xaddrs(caddr_t cp, caddr_t cplim, struct rt_addrinfo *rtinfo);
rt_xaddrs(caddr_t cp, caddr_t cplim, struct rt_addrinfo *rtinfo)
memset(rtinfo->rti_info, 0, sizeof(rtinfo->rti_info));
if ((rtinfo->rti_addrs & (1 << i)) == 0)
rtinfo->rti_info[i] = sa;