Lines Matching defs:rtm
191 struct rtm
195 } rtm;
196 char *bp = rtm.buffer, *p;
213 memset(&rtm, 0, sizeof(rtm));
214 rtm.hdr.rtm_version = RTM_VERSION;
215 rtm.hdr.rtm_seq = 1;
217 rtm.hdr.rtm_type = RTM_CHANGE;
219 rtm.hdr.rtm_type = RTM_ADD;
221 rtm.hdr.rtm_type = RTM_DELETE;
222 rtm.hdr.rtm_flags = RTF_UP;
227 rtm.hdr.rtm_flags |= RTF_STATIC;
228 rtm.hdr.rtm_addrs = RTA_DST | RTA_GATEWAY;
230 rtm.hdr.rtm_flags |= RTF_HOST;
232 rtm.hdr.rtm_addrs |= RTA_NETMASK;
233 if (rtm.hdr.rtm_flags & RTF_STATIC)
234 rtm.hdr.rtm_flags |= RTF_GATEWAY;
236 rtm.hdr.rtm_addrs |= RTA_IFA;
240 if (rtm.hdr.rtm_flags & RTF_HOST ||
241 !(rtm.hdr.rtm_flags & RTF_STATIC))
251 if (rtm.hdr.rtm_addrs & RTA_NETMASK) {
266 if (rtm.hdr.rtm_addrs & RTA_IFA)
269 rtm.hdr.rtm_msglen = l = bp - (char *)&rtm;
270 if (write(r_fd, &rtm, l) == -1)
313 struct rt_msghdr *rtm;
344 for (p = link_buf; p < e; p += rtm->rtm_msglen) {
345 rtm = (struct rt_msghdr *)(void *)p;
346 switch(rtm->rtm_type) {
367 if (!(rtm->rtm_addrs & RTA_DST) ||
368 !(rtm->rtm_addrs & RTA_GATEWAY) ||
369 !(rtm->rtm_addrs & RTA_NETMASK))
371 if (rtm->rtm_pid == getpid())
373 cp = (char *)(void *)(rtm + 1);
377 get_addrs(rtm->rtm_addrs, cp, rti_info);
400 if (rtm->rtm_type != RTM_CHGADDR)
416 handle_ifa(rtm->rtm_type, ifname,