Lines Matching defs:rtm
5159 struct rtmsg *rtm;
5163 err = nlmsg_parse_deprecated(nlh, sizeof(*rtm), tb, RTA_MAX,
5169 rtm = nlmsg_data(nlh);
5171 if (rtm->rtm_tos) {
5184 .fc_table = rtm->rtm_table,
5185 .fc_dst_len = rtm->rtm_dst_len,
5186 .fc_src_len = rtm->rtm_src_len,
5188 .fc_protocol = rtm->rtm_protocol,
5189 .fc_type = rtm->rtm_type,
5196 if (rtm->rtm_type == RTN_UNREACHABLE ||
5197 rtm->rtm_type == RTN_BLACKHOLE ||
5198 rtm->rtm_type == RTN_PROHIBIT ||
5199 rtm->rtm_type == RTN_THROW)
5202 if (rtm->rtm_type == RTN_LOCAL)
5205 if (rtm->rtm_flags & RTM_F_CLONED)
5208 cfg->fc_flags |= (rtm->rtm_flags & RTNH_F_ONLINK);
5230 int plen = (rtm->rtm_dst_len + 7) >> 3;
5239 int plen = (rtm->rtm_src_len + 7) >> 3;
5757 struct rtmsg *rtm;
5760 nlh = nlmsg_put(skb, portid, seq, type, sizeof(*rtm), flags);
5774 rtm = nlmsg_data(nlh);
5775 rtm->rtm_family = AF_INET6;
5776 rtm->rtm_dst_len = rt6_dst->plen;
5777 rtm->rtm_src_len = rt6_src->plen;
5778 rtm->rtm_tos = 0;
5783 rtm->rtm_table = table < 256 ? table : RT_TABLE_COMPAT;
5787 rtm->rtm_type = rt->fib6_type;
5788 rtm->rtm_flags = 0;
5789 rtm->rtm_scope = RT_SCOPE_UNIVERSE;
5790 rtm->rtm_protocol = rt->fib6_protocol;
5793 rtm->rtm_flags |= RTM_F_CLONED;
5798 rtm->rtm_dst_len = 128;
5799 } else if (rtm->rtm_dst_len)
5806 rtm->rtm_src_len = 128;
5807 } else if (rtm->rtm_src_len &&
5814 int err = ip6mr_get_route(net, skb, rtm, portid);
5895 rtm->rtm_type = RTN_BLACKHOLE;
5901 rtm->rtm_flags |= nh_flags;
5907 rtm->rtm_flags |= nh_flags;
5917 rtm->rtm_flags |= RTM_F_OFFLOAD;
5919 rtm->rtm_flags |= RTM_F_TRAP;
5921 rtm->rtm_flags |= RTM_F_OFFLOAD_FAILED;
6113 struct rtmsg *rtm;
6116 rtm = nlmsg_payload(nlh, sizeof(*rtm));
6117 if (!rtm) {
6124 return nlmsg_parse_deprecated(nlh, sizeof(*rtm), tb, RTA_MAX,
6127 if ((rtm->rtm_src_len && rtm->rtm_src_len != 128) ||
6128 (rtm->rtm_dst_len && rtm->rtm_dst_len != 128) ||
6129 rtm->rtm_table || rtm->rtm_protocol || rtm->rtm_scope ||
6130 rtm->rtm_type) {
6134 if (rtm->rtm_flags & ~RTM_F_FIB_MATCH) {
6140 err = nlmsg_parse_deprecated_strict(nlh, sizeof(*rtm), tb, RTA_MAX,
6145 if ((tb[RTA_SRC] && !rtm->rtm_src_len) ||
6146 (tb[RTA_DST] && !rtm->rtm_dst_len)) {
6193 struct rtmsg *rtm;
6203 rtm = nlmsg_data(nlh);
6204 fibmatch = !!(rtm->rtm_flags & RTM_F_FIB_MATCH);
6250 fl6.flowlabel = ip6_make_flowinfo(rtm->rtm_tos, flowlabel);