Lines Matching refs:rt

163 p_path(struct snl_parsed_route *rt, bool is_mpath)  in p_path()  argument
171 gen_mask(rt->rtm_family, rt->rtm_dst_len, pmask); in p_path()
172 add_scopeid(rt->rta_dst, rt->rta_oif); in p_path()
173 add_scopeid(rt->rta_gw, rt->rta_oif); in p_path()
174 protrusion = p_sockaddr("destination", rt->rta_dst, pmask, rt->rta_rtflags, wid.dst); in p_path()
175 protrusion = p_sockaddr("gateway", rt->rta_gw, NULL, RTF_HOST, in p_path()
179 p_flags(rt->rta_rtflags | RTF_UP, buffer); in p_path()
181 xo_emit("{e:weight/%u}", rt->rtax_weight); in p_path()
183 xo_emit("{e:nhg-kidx/%u}", rt->rta_knh_id); in p_path()
185 xo_emit("{e:nhop-kidx/%u}", rt->rta_knh_id); in p_path()
186 if (rt->rta_nh_id != 0) { in p_path()
188 xo_emit("{e:nhg-uidx/%u}", rt->rta_nh_id); in p_path()
190 xo_emit("{e:nhop-uidx/%u}", rt->rta_nh_id); in p_path()
194 if (rt->rta_oif < ifmap_size) { in p_path()
195 strlcpy(prettyname, ifmap[rt->rta_oif].ifname, in p_path()
199 if (rt->rtax_mtu == 0) in p_path()
200 rt->rtax_mtu = ifmap[rt->rta_oif].mtu; in p_path()
205 xo_emit("{t:nhop/%*lu} ", wid.mtu, is_mpath ? 0 : rt->rta_knh_id); in p_path()
207 if (rt->rtax_mtu != 0) in p_path()
208 xo_emit("{t:mtu/%*lu} ", wid.mtu, rt->rtax_mtu); in p_path()
221 if (rt->rta_expires > 0) { in p_path()
222 xo_emit(" {:expire-time/%*u}", wid.expire, rt->rta_expires); in p_path()
230 struct snl_parsed_route rt = {}; in p_rtentry_netlink() local
231 if (!snl_parse_nlmsg(ss, hdr, &snl_rtm_route_parser, &rt)) in p_rtentry_netlink()
233 if (rt.rtax_weight == 0) in p_rtentry_netlink()
234 rt.rtax_weight = rt_default_weight; in p_rtentry_netlink()
236 if (rt.rta_multipath.num_nhops != 0) { in p_rtentry_netlink()
237 uint32_t orig_rtflags = rt.rta_rtflags; in p_rtentry_netlink()
238 uint32_t orig_mtu = rt.rtax_mtu; in p_rtentry_netlink()
239 for (uint32_t i = 0; i < rt.rta_multipath.num_nhops; i++) { in p_rtentry_netlink()
240 struct rta_mpath_nh *nhop = rt.rta_multipath.nhops[i]; in p_rtentry_netlink()
242 rt.rta_gw = nhop->gw; in p_rtentry_netlink()
243 rt.rta_oif = nhop->ifindex; in p_rtentry_netlink()
244 rt.rtax_weight = nhop->rtnh_weight; in p_rtentry_netlink()
245 rt.rta_rtflags = nhop->rta_rtflags ? nhop->rta_rtflags : orig_rtflags; in p_rtentry_netlink()
246 rt.rtax_mtu = nhop->rtax_mtu ? nhop->rtax_mtu : orig_mtu; in p_rtentry_netlink()
249 p_path(&rt, true); in p_rtentry_netlink()
259 .sdl_index = rt.rta_oif, in p_rtentry_netlink()
261 if (rt.rta_gw == NULL) in p_rtentry_netlink()
262 rt.rta_gw = (struct sockaddr *)&sdl_gw; in p_rtentry_netlink()
265 p_path(&rt, false); in p_rtentry_netlink()