Lines Matching refs:extack
387 bool *is_fdb, struct netlink_ext_ack *extack) in valid_group_nh() argument
396 NL_SET_ERR_MSG(extack, in valid_group_nh()
405 NL_SET_ERR_MSG(extack, in valid_group_nh()
416 struct netlink_ext_ack *extack) in nh_check_attr_fdb_group() argument
423 NL_SET_ERR_MSG(extack, "FDB nexthop group can only have fdb nexthops"); in nh_check_attr_fdb_group()
430 NL_SET_ERR_MSG(extack, "FDB nexthop group cannot have mixed family nexthops"); in nh_check_attr_fdb_group()
438 struct netlink_ext_ack *extack) in nh_check_attr_group() argument
447 NL_SET_ERR_MSG(extack, in nh_check_attr_group()
458 NL_SET_ERR_MSG(extack, "Reserved fields in nexthop_grp must be 0"); in nh_check_attr_group()
462 NL_SET_ERR_MSG(extack, "Invalid value for weight"); in nh_check_attr_group()
467 NL_SET_ERR_MSG(extack, "Nexthop id can not be used twice in a group"); in nh_check_attr_group()
482 NL_SET_ERR_MSG(extack, "Invalid nexthop id"); in nh_check_attr_group()
485 if (!valid_group_nh(nh, len, &is_fdb_nh, extack)) in nh_check_attr_group()
488 if (nhg_fdb && nh_check_attr_fdb_group(nh, &nh_family, extack)) in nh_check_attr_group()
492 NL_SET_ERR_MSG(extack, "Non FDB nexthop group cannot have fdb nexthops"); in nh_check_attr_group()
501 NL_SET_ERR_MSG(extack, in nh_check_attr_group()
617 struct netlink_ext_ack *extack) in check_src_addr() argument
620 NL_SET_ERR_MSG(extack, "IPv6 routes using source address can not use nexthop objects"); in check_src_addr()
627 struct netlink_ext_ack *extack) in fib6_check_nexthop() argument
638 if (cfg && check_src_addr(&cfg->fc_src, extack) < 0) in fib6_check_nexthop()
656 NL_SET_ERR_MSG(extack, "Route cannot point to a fdb nexthop"); in fib6_check_nexthop()
662 NL_SET_ERR_MSG(extack, "IPv6 routes can not use an IPv4 nexthop"); in fib6_check_nexthop()
671 struct netlink_ext_ack *extack) in fib6_check_nh_list() argument
679 if (check_src_addr(&f6i->fib6_src.addr, extack) < 0) in fib6_check_nh_list()
683 return fib6_check_nexthop(new, NULL, extack); in fib6_check_nh_list()
687 struct netlink_ext_ack *extack) in nexthop_check_scope() argument
690 NL_SET_ERR_MSG(extack, in nexthop_check_scope()
696 NL_SET_ERR_MSG(extack, "Scope mismatch with nexthop"); in nexthop_check_scope()
708 struct netlink_ext_ack *extack) in fib_check_nexthop() argument
718 NL_SET_ERR_MSG(extack, "Route cannot point to a fdb nexthop"); in fib_check_nexthop()
724 NL_SET_ERR_MSG(extack, "Route with host scope can not have multiple nexthops"); in fib_check_nexthop()
731 err = nexthop_check_scope(nhi, scope, extack); in fib_check_nexthop()
735 NL_SET_ERR_MSG(extack, "Route cannot point to a fdb nexthop"); in fib_check_nexthop()
739 err = nexthop_check_scope(nhi, scope, extack); in fib_check_nexthop()
747 struct netlink_ext_ack *extack) in fib_check_nh_list() argument
754 err = fib_check_nexthop(new, fi->fib_scope, extack); in fib_check_nh_list()
940 struct netlink_ext_ack *extack) in replace_nexthop_grp() argument
946 NL_SET_ERR_MSG(extack, "Can not replace a nexthop group with a nexthop."); in replace_nexthop_grp()
986 struct netlink_ext_ack *extack) in replace_nexthop_single() argument
991 NL_SET_ERR_MSG(extack, "Can not replace a nexthop with a nexthop group."); in replace_nexthop_single()
1066 struct nexthop *new, struct netlink_ext_ack *extack) in replace_nexthop() argument
1075 err = fib_check_nh_list(old, new, extack); in replace_nexthop()
1079 err = fib6_check_nh_list(old, new, extack); in replace_nexthop()
1095 …NL_SET_ERR_MSG(extack, "Blackhole nexthop can not be a member of a group with more than one path"); in replace_nexthop()
1099 err = fib_check_nh_list(nhge->nh_parent, new, extack); in replace_nexthop()
1103 err = fib6_check_nh_list(nhge->nh_parent, new, extack); in replace_nexthop()
1109 err = replace_nexthop_grp(net, old, new, extack); in replace_nexthop()
1111 err = replace_nexthop_single(net, old, new, extack); in replace_nexthop()
1125 struct nh_config *cfg, struct netlink_ext_ack *extack) in insert_nexthop() argument
1151 rc = replace_nexthop(net, nh, new_nh, extack); in insert_nexthop()
1164 NL_SET_ERR_MSG(extack, "Replace specified without create and no entry exists"); in insert_nexthop()
1299 struct netlink_ext_ack *extack) in nh_create_ipv4() argument
1314 err = fib_nh_init(net, fib_nh, &fib_cfg, 1, extack); in nh_create_ipv4()
1324 err = fib_check_nh(net, fib_nh, tb_id, 0, extack); in nh_create_ipv4()
1338 struct netlink_ext_ack *extack) in nh_create_ipv6() argument
1358 extack); in nh_create_ipv6()
1372 struct netlink_ext_ack *extack) in nexthop_create() argument
1405 err = nh_create_ipv4(net, nh, nhi, cfg, extack); in nexthop_create()
1408 err = nh_create_ipv6(net, nh, nhi, cfg, extack); in nexthop_create()
1429 struct netlink_ext_ack *extack) in nexthop_add() argument
1435 NL_SET_ERR_MSG(extack, "Replace requires nexthop id"); in nexthop_add()
1442 NL_SET_ERR_MSG(extack, "No unused id"); in nexthop_add()
1450 nh = nexthop_create(net, cfg, extack); in nexthop_add()
1460 err = insert_nexthop(net, nh, cfg, extack); in nexthop_add()
1472 struct netlink_ext_ack *extack) in rtm_to_nh_config() argument
1479 extack); in rtm_to_nh_config()
1485 NL_SET_ERR_MSG(extack, "Invalid values in ancillary header"); in rtm_to_nh_config()
1489 NL_SET_ERR_MSG(extack, "Invalid nexthop flags in ancillary header"); in rtm_to_nh_config()
1502 NL_SET_ERR_MSG(extack, "Invalid address family"); in rtm_to_nh_config()
1507 NL_SET_ERR_MSG(extack, "Invalid attributes in request"); in rtm_to_nh_config()
1527 NL_SET_ERR_MSG(extack, "Fdb attribute can not be used with encap, oif or blackhole"); in rtm_to_nh_config()
1531 NL_SET_ERR_MSG(extack, "Unsupported nexthop flags in ancillary header"); in rtm_to_nh_config()
1539 NL_SET_ERR_MSG(extack, "Invalid family for group"); in rtm_to_nh_config()
1549 NL_SET_ERR_MSG(extack, "Invalid group type"); in rtm_to_nh_config()
1552 err = nh_check_attr_group(net, tb, extack); in rtm_to_nh_config()
1561 NL_SET_ERR_MSG(extack, "Blackhole attribute can not be used with gateway, oif, encap or fdb"); in rtm_to_nh_config()
1571 NL_SET_ERR_MSG(extack, "Device attribute required for non-blackhole and non-fdb nexthops"); in rtm_to_nh_config()
1581 NL_SET_ERR_MSG(extack, "Invalid device index"); in rtm_to_nh_config()
1584 NL_SET_ERR_MSG(extack, "Nexthop device is not up"); in rtm_to_nh_config()
1588 NL_SET_ERR_MSG(extack, "Carrier for nexthop device is down"); in rtm_to_nh_config()
1601 NL_SET_ERR_MSG(extack, "Invalid gateway"); in rtm_to_nh_config()
1608 NL_SET_ERR_MSG(extack, "Invalid gateway"); in rtm_to_nh_config()
1614 NL_SET_ERR_MSG(extack, in rtm_to_nh_config()
1621 NL_SET_ERR_MSG(extack, in rtm_to_nh_config()
1631 NL_SET_ERR_MSG(extack, "LWT encapsulation type is missing"); in rtm_to_nh_config()
1636 err = lwtunnel_valid_encap_type(cfg->nh_encap_type, extack); in rtm_to_nh_config()
1641 NL_SET_ERR_MSG(extack, "LWT encapsulation attribute is missing"); in rtm_to_nh_config()
1653 struct netlink_ext_ack *extack) in rtm_new_nexthop() argument
1660 err = rtm_to_nh_config(net, skb, nlh, &cfg, extack); in rtm_new_nexthop()
1662 nh = nexthop_add(net, &cfg, extack); in rtm_new_nexthop()
1671 struct netlink_ext_ack *extack) in nh_valid_get_del_req() argument
1678 extack); in nh_valid_get_del_req()
1691 NL_SET_ERR_MSG_ATTR(extack, tb[i], in nh_valid_get_del_req()
1697 NL_SET_ERR_MSG(extack, "Invalid values in header"); in nh_valid_get_del_req()
1702 NL_SET_ERR_MSG(extack, "Nexthop id is missing"); in nh_valid_get_del_req()
1708 NL_SET_ERR_MSG(extack, "Invalid nexthop id"); in nh_valid_get_del_req()
1717 struct netlink_ext_ack *extack) in rtm_del_nexthop() argument
1729 err = nh_valid_get_del_req(nlh, &id, extack); in rtm_del_nexthop()
1744 struct netlink_ext_ack *extack) in rtm_get_nexthop() argument
1752 err = nh_valid_get_del_req(nlh, &id, extack); in rtm_get_nexthop()
1822 struct netlink_ext_ack *extack = cb->extack; in nh_valid_dump_req() local
1841 NL_SET_ERR_MSG(extack, "Invalid device index"); in nh_valid_dump_req()
1849 NL_SET_ERR_MSG(extack, "Invalid master device index"); in nh_valid_dump_req()
1861 NL_SET_ERR_MSG(extack, "Unsupported attribute in dump request"); in nh_valid_dump_req()
1868 NL_SET_ERR_MSG(extack, "Invalid values in header for nexthop dump request"); in nh_valid_dump_req()