Lines Matching refs:nla

706 static int fib_gw_from_attr(__be32 *gw, struct nlattr *nla,  in fib_gw_from_attr()  argument
709 if (nla_len(nla) < sizeof(*gw)) { in fib_gw_from_attr()
714 *gw = nla_get_in_addr(nla); in fib_gw_from_attr()
751 struct nlattr *nla, *nlav, *attrs = rtnh_attrs(rtnh); in fib_get_nhs() local
753 nla = nla_find(attrs, attrlen, RTA_GATEWAY); in fib_get_nhs()
755 if (nla && nlav) { in fib_get_nhs()
760 if (nla) { in fib_get_nhs()
761 ret = fib_gw_from_attr(&fib_cfg.fc_gw4, nla, in fib_get_nhs()
774 nla = nla_find(attrs, attrlen, RTA_FLOW); in fib_get_nhs()
775 if (nla) { in fib_get_nhs()
776 if (nla_len(nla) < sizeof(u32)) { in fib_get_nhs()
780 fib_cfg.fc_flow = nla_get_u32(nla); in fib_get_nhs()
787 nla = nla_find(attrs, attrlen, RTA_ENCAP_TYPE); in fib_get_nhs()
788 if (nla) in fib_get_nhs()
789 fib_cfg.fc_encap_type = nla_get_u16(nla); in fib_get_nhs()
977 struct nlattr *nla, *nlav, *attrs = rtnh_attrs(rtnh); in fib_nh_match() local
980 nla = nla_find(attrs, attrlen, RTA_GATEWAY); in fib_nh_match()
982 if (nla && nlav) { in fib_nh_match()
988 if (nla) { in fib_nh_match()
991 err = fib_gw_from_attr(&gw, nla, extack); in fib_nh_match()
1021 nla = nla_find(attrs, attrlen, RTA_FLOW); in fib_nh_match()
1022 if (nla) { in fib_nh_match()
1023 if (nla_len(nla) < sizeof(u32)) { in fib_nh_match()
1027 if (nla_get_u32(nla) != nh->nh_tclassid) in fib_nh_match()
1041 struct nlattr *nla; in fib_metrics_match() local
1047 nla_for_each_attr(nla, cfg->fc_mx, cfg->fc_mx_len, remaining) { in fib_metrics_match()
1048 int type = nla_type(nla); in fib_metrics_match()
1061 nla_strscpy(tmp, nla, sizeof(tmp)); in fib_metrics_match()
1064 if (nla_len(nla) != sizeof(u32)) in fib_metrics_match()
1066 val = nla_get_u32(nla); in fib_metrics_match()
1619 struct nlattr *nla; in fib_nexthop_info() local
1622 nla = nla_reserve(skb, RTA_VIA, alen + 2); in fib_nexthop_info()
1623 if (!nla) in fib_nexthop_info()
1626 via = nla_data(nla); in fib_nexthop_info()