Lines Matching defs:msg
1574 struct rtmsg *msg = NLMSG_DATA(mhdr);
1577 int hlen = ((msg->rtm_family == AF_INET) ? 32
1578 : ((msg->rtm_family == AF_INET6) ? 128 : -1));
1583 if (msg->rtm_family == AF_INET6) {
1586 if (!(msg->rtm_flags & RTM_F_CLONED)) return 0;
1588 if (msg->rtm_flags & RTM_F_CLONED) return 0;
1589 if (gfilter.tb == RT_TABLE_LOCAL && msg->rtm_type != RTN_LOCAL)
1591 else if (gfilter.tb == RT_TABLE_MAIN && msg->rtm_type == RTN_LOCAL)
1596 else if (gfilter.tb > 0 && gfilter.tb != msg->rtm_table) return 0;
1598 if (gfilter.proto && (msg->rtm_protocol != gfilter.proto)) return 0;
1601 if (gfilter.rdst.family && (msg->rtm_family != gfilter.rdst.family ||
1602 gfilter.rdst.netmask > msg->rtm_dst_len)) return 0;
1603 if (gfilter.mdst.family && (msg->rtm_family != gfilter.mdst.family
1604 || (gfilter.mdst.netmask < msg->rtm_dst_len))) return 0;
1605 if (gfilter.rsrc.family && (msg->rtm_family != gfilter.rsrc.family
1606 || gfilter.rsrc.netmask > msg->rtm_src_len)) return 0;
1607 if (gfilter.msrc.family && (msg->rtm_family != gfilter.msrc.family
1608 || (gfilter.msrc.netmask < msg->rtm_src_len))) return 0;
1611 for (rta = RTM_RTA(msg); RTA_OK(rta, tvar); rta=RTA_NEXT(rta, tvar))
1614 if (msg->rtm_type != RTN_UNICAST)
1615 sprintf(out,"%s%s ", out,rtmtype_idx2str(msg->rtm_type));
1617 inetval = (char *)inet_ntop(msg->rtm_family, RTA_DATA(attr[RTA_DST]),
1627 if (msg->rtm_dst_len) sprintf(out,"%s/%d ", out,msg->rtm_dst_len);
1631 inetval = (char *)inet_ntop(msg->rtm_family, RTA_DATA(attr[RTA_SRC]),
1641 if (msg->rtm_src_len) sprintf(out, "%s/%d ", out, msg->rtm_src_len);
1644 inetval = (char *)inet_ntop(msg->rtm_family, RTA_DATA(attr[RTA_GATEWAY]),
1652 if (strcmp((char *)inet_ntop(msg->rtm_family, gfilter.rvia.addr,
1665 inetval = (char *)inet_ntop(msg->rtm_family, RTA_DATA(attr[RTA_PREFSRC]),
1671 if (msg->rtm_family == AF_INET6) {
1674 if ((msg->rtm_flags & RTM_F_CLONED) || (ci && ci->rta_expires)) {
1675 if (msg->rtm_flags & RTM_F_CLONED) sprintf(out, "%s%s cache ",
1710 struct rtmsg *msg = NLMSG_DATA(mhdr);
1715 for (rta = RTM_RTA(msg); RTA_OK(rta, tvar); rta=RTA_NEXT(rta, tvar))
1718 if (msg->rtm_family == AF_INET6
1719 && !msg->rtm_dst_len
1720 && msg->rtm_type == RTN_UNREACHABLE
1786 struct rtmsg msg;
1794 request.msg.rtm_family = AF_UNSPEC;
1806 parse_prefix(addr, &netmask, &len, *argv, request.msg.rtm_family);
1807 if (len) request.msg.rtm_family = ((len == 4) ? AF_INET : AF_INET6);
1808 netmask = (request.msg.rtm_family == AF_INET6) ? 128 : 32;
1809 if (!idx) request.msg.rtm_src_len = netmask;
1810 else request.msg.rtm_dst_len = netmask;
1826 request.msg.rtm_flags |= RTM_F_NOTIFY;
1833 if (!request.msg.rtm_dst_len)
1841 struct rtmsg *msg = NLMSG_DATA(mhdr);
1849 for (rta = RTM_RTA(msg); RTA_OK(rta, tvar); rta=RTA_NEXT(rta, tvar))
1854 msg->rtm_src_len = 8*RTA_PAYLOAD(attr[RTA_PREFSRC]);
1880 struct rtmsg msg;
1991 request.msg.rtm_family = family;
1992 if (gfilter.tb < 0) request.msg.rtm_flags = RTM_F_CLONED;
2018 struct rtmsg msg;
2026 req.msg.rtm_family = AF_UNSPEC;
2027 req.msg.rtm_table = RT_TABLE_MAIN;
2028 req.msg.rtm_scope = RT_SCOPE_NOWHERE;
2031 req.msg.rtm_protocol = RTPROT_BOOT;
2032 req.msg.rtm_scope = RT_SCOPE_UNIVERSE;
2033 req.msg.rtm_type = RTN_UNICAST;
2043 parse_prefix(addr, &netmask, &len, *argv, req.msg.rtm_family);
2044 if (len) req.msg.rtm_family = ((len == 4) ? AF_INET : AF_INET6);
2049 parse_prefix(addr, &netmask, &len, *argv, req.msg.rtm_family);
2050 if (len) req.msg.rtm_family = ((len == 4) ? AF_INET : AF_INET6);
2064 req.msg.rtm_protocol = idx;
2068 req.msg.rtm_table = idxfromRPDB(*argv, RPDB_rttables);
2090 req.msg.rtm_type = idx;
2094 parse_prefix(addr, &netmask, &len, *argv, req.msg.rtm_family);
2095 if (len) req.msg.rtm_family = ((len == 4) ? AF_INET : AF_INET6);
2096 req.msg.rtm_dst_len = netmask;
2114 if (req.msg.rtm_type == RTN_LOCAL || req.msg.rtm_type == RTN_NAT)
2115 req.msg.rtm_scope = RT_SCOPE_HOST;
2116 else if (req.msg.rtm_type == RTN_BROADCAST||req.msg.rtm_type == RTN_MULTICAST
2117 || req.msg.rtm_type == RTN_ANYCAST)
2118 req.msg.rtm_scope = RT_SCOPE_LINK;
2119 else if (req.msg.rtm_type == RTN_UNICAST || req.msg.rtm_type == RTN_UNSPEC) {
2121 req.msg.rtm_scope = RT_SCOPE_NOWHERE;
2123 req.msg.rtm_scope = RT_SCOPE_LINK;
2125 if (req.msg.rtm_family == AF_UNSPEC) req.msg.rtm_family = AF_INET;
2191 struct rtmsg msg;
2200 request.msg.rtm_family = TT.addressfamily;
2201 request.msg.rtm_protocol = RTPROT_BOOT;
2202 request.msg.rtm_scope = RT_SCOPE_UNIVERSE;
2203 request.msg.rtm_table = 0;
2204 request.msg.rtm_type = ((opt == RTM_DELRULE) ? RTN_UNSPEC : RTN_UNICAST);
2215 parse_prefix(addr, &netmask, &len, *argv, request.msg.rtm_family);
2217 tmp = idx ? &request.msg.rtm_dst_len : &request.msg.rtm_src_len;
2247 request.msg.rtm_tos = tos;
2278 request.msg.rtm_table = tid;
2300 request.msg.rtm_type = RTN_NAT;
2306 request.msg.rtm_type = rtmtype_str2idx(*argv);
2318 if (!request.msg.rtm_family) request.msg.rtm_family = AF_INET;
2319 if (!tflag && opt == RTM_NEWRULE) request.msg.rtm_table = RT_TABLE_MAIN;
2328 struct rtmsg *msg = NLMSG_DATA(mhdr);
2331 int hlen = ((msg->rtm_family == AF_INET) ? 32
2332 : ((msg->rtm_family == AF_INET6) ? 128 : -1));
2338 for (rta = RTM_RTA(msg); RTA_OK(rta, tvar); rta=RTA_NEXT(rta, tvar))
2347 printf("%s", (msg->rtm_family == AF_INET || msg->rtm_family == AF_INET6)
2348 ? inet_ntop(msg->rtm_family, RTA_DATA(attr[RTA_SRC]),
2351 (msg->rtm_src_len != hlen) ? printf("/%u", msg->rtm_src_len) : 0;
2352 } else msg->rtm_src_len ? printf("0/%d", msg->rtm_src_len) : printf("all");
2356 printf("to %s", (msg->rtm_family == AF_INET || msg->rtm_family == AF_INET6)
2357 ? inet_ntop(msg->rtm_family, RTA_DATA(attr[RTA_DST]),
2359 (msg->rtm_dst_len != hlen) ? printf("/%u", msg->rtm_dst_len) : xputc(' ');
2360 } else if (msg->rtm_dst_len)
2361 printf("to 0/%d ", msg->rtm_dst_len);
2363 if (msg->rtm_tos)
2364 printf("tos %s ", namefromRPDB(msg->rtm_tos, RPDB_rtdsfield));
2371 if (msg->rtm_table)
2372 printf("lookup %s ", namefromRPDB(msg->rtm_table, RPDB_rttables));
2383 if (msg->rtm_type == RTN_NAT) {
2385 else printf("map-to %s ", inet_ntop(msg->rtm_family,
2387 } else if (msg->rtm_type != RTN_UNICAST)
2388 printf("%s", rtmtype_idx2str(msg->rtm_type));