Lines Matching refs:rtm
201 struct rtm
205 } rtm;
206 char *bp = rtm.buffer;
223 memset(&rtm, 0, sizeof(rtm));
224 rtm.hdr.rtm_version = RTM_VERSION;
225 rtm.hdr.rtm_seq = 1;
227 rtm.hdr.rtm_type = RTM_CHANGE;
229 rtm.hdr.rtm_type = RTM_ADD;
231 rtm.hdr.rtm_type = RTM_DELETE;
232 rtm.hdr.rtm_flags = RTF_UP;
237 rtm.hdr.rtm_flags |= RTF_STATIC;
238 rtm.hdr.rtm_addrs = RTA_DST | RTA_GATEWAY;
241 rtm.hdr.rtm_flags |= RTF_HOST;
243 rtm.hdr.rtm_addrs |= RTA_NETMASK;
244 if (rtm.hdr.rtm_flags & RTF_STATIC)
245 rtm.hdr.rtm_flags |= RTF_GATEWAY;
247 rtm.hdr.rtm_addrs |= RTA_IFA;
251 if (rtm.hdr.rtm_flags & RTF_HOST ||
252 !(rtm.hdr.rtm_flags & RTF_STATIC))
262 if (rtm.hdr.rtm_addrs & RTA_NETMASK)
265 if (rtm.hdr.rtm_addrs & RTA_IFA)
268 rtm.hdr.rtm_msglen = l = bp - (char *)&rtm;
269 if (write(r_fd, &rtm, l) == -1)
317 struct rt_msghdr *rtm;
348 for (p = link_buf; p < e; p += rtm->rtm_msglen) {
349 rtm = (struct rt_msghdr *)(void *)p;
350 switch(rtm->rtm_type) {
390 if (~rtm->rtm_addrs &
393 if (rtm->rtm_pid == getpid())
395 cp = (char *)(void *)(rtm + 1);
399 get_addrs(rtm->rtm_addrs, cp, rti_info);
422 if (rtm->rtm_type != RTM_CHGADDR)
438 handle_ifa(rtm->rtm_type, ifname,