Lines Matching refs:cfg
472 struct fib_config *cfg) in rtentry_to_fib_config() argument
477 memset(cfg, 0, sizeof(*cfg)); in rtentry_to_fib_config()
478 cfg->fc_nlinfo.nl_net = net; in rtentry_to_fib_config()
507 cfg->fc_dst_len = plen; in rtentry_to_fib_config()
508 cfg->fc_dst = addr; in rtentry_to_fib_config()
511 cfg->fc_nlflags = NLM_F_CREATE; in rtentry_to_fib_config()
512 cfg->fc_protocol = RTPROT_BOOT; in rtentry_to_fib_config()
516 cfg->fc_priority = rt->rt_metric - 1; in rtentry_to_fib_config()
519 cfg->fc_scope = RT_SCOPE_HOST; in rtentry_to_fib_config()
520 cfg->fc_type = RTN_UNREACHABLE; in rtentry_to_fib_config()
524 cfg->fc_scope = RT_SCOPE_NOWHERE; in rtentry_to_fib_config()
525 cfg->fc_type = RTN_UNICAST; in rtentry_to_fib_config()
542 cfg->fc_oif = dev->ifindex; in rtentry_to_fib_config()
543 cfg->fc_table = l3mdev_fib_table(dev); in rtentry_to_fib_config()
563 cfg->fc_prefsrc = ifa->ifa_local; in rtentry_to_fib_config()
571 cfg->fc_gw4 = addr; in rtentry_to_fib_config()
572 cfg->fc_gw_family = AF_INET; in rtentry_to_fib_config()
573 addr_type = inet_addr_type_table(net, addr, cfg->fc_table); in rtentry_to_fib_config()
576 cfg->fc_scope = RT_SCOPE_UNIVERSE; in rtentry_to_fib_config()
579 if (!cfg->fc_table) in rtentry_to_fib_config()
580 cfg->fc_table = RT_TABLE_MAIN; in rtentry_to_fib_config()
585 if (rt->rt_flags & RTF_GATEWAY && !cfg->fc_gw_family) in rtentry_to_fib_config()
588 if (cfg->fc_scope == RT_SCOPE_NOWHERE) in rtentry_to_fib_config()
589 cfg->fc_scope = RT_SCOPE_LINK; in rtentry_to_fib_config()
608 cfg->fc_mx = mx; in rtentry_to_fib_config()
609 cfg->fc_mx_len = len; in rtentry_to_fib_config()
621 struct fib_config cfg; in ip_rt_ioctl() local
631 err = rtentry_to_fib_config(net, cmd, rt, &cfg); in ip_rt_ioctl()
636 tb = fib_get_table(net, cfg.fc_table); in ip_rt_ioctl()
638 err = fib_table_delete(net, tb, &cfg, in ip_rt_ioctl()
643 tb = fib_new_table(net, cfg.fc_table); in ip_rt_ioctl()
646 &cfg, NULL); in ip_rt_ioctl()
652 kfree(cfg.fc_mx); in ip_rt_ioctl()
683 int fib_gw_from_via(struct fib_config *cfg, struct nlattr *nla, in fib_gw_from_via() argument
703 cfg->fc_gw_family = AF_INET; in fib_gw_from_via()
704 cfg->fc_gw4 = *((__be32 *)via->rtvia_addr); in fib_gw_from_via()
712 cfg->fc_gw_family = AF_INET6; in fib_gw_from_via()
713 cfg->fc_gw6 = *((struct in6_addr *)via->rtvia_addr); in fib_gw_from_via()
728 struct nlmsghdr *nlh, struct fib_config *cfg, in rtm_to_fib_config() argument
741 memset(cfg, 0, sizeof(*cfg)); in rtm_to_fib_config()
751 cfg->fc_dscp = inet_dsfield_to_dscp(rtm->rtm_tos); in rtm_to_fib_config()
753 cfg->fc_dst_len = rtm->rtm_dst_len; in rtm_to_fib_config()
754 cfg->fc_table = rtm->rtm_table; in rtm_to_fib_config()
755 cfg->fc_protocol = rtm->rtm_protocol; in rtm_to_fib_config()
756 cfg->fc_scope = rtm->rtm_scope; in rtm_to_fib_config()
757 cfg->fc_type = rtm->rtm_type; in rtm_to_fib_config()
758 cfg->fc_flags = rtm->rtm_flags; in rtm_to_fib_config()
759 cfg->fc_nlflags = nlh->nlmsg_flags; in rtm_to_fib_config()
761 cfg->fc_nlinfo.portid = NETLINK_CB(skb).portid; in rtm_to_fib_config()
762 cfg->fc_nlinfo.nlh = nlh; in rtm_to_fib_config()
763 cfg->fc_nlinfo.nl_net = net; in rtm_to_fib_config()
765 if (cfg->fc_type > RTN_MAX) { in rtm_to_fib_config()
774 cfg->fc_dst = nla_get_be32(attr); in rtm_to_fib_config()
777 cfg->fc_oif = nla_get_u32(attr); in rtm_to_fib_config()
781 cfg->fc_gw4 = nla_get_be32(attr); in rtm_to_fib_config()
782 if (cfg->fc_gw4) in rtm_to_fib_config()
783 cfg->fc_gw_family = AF_INET; in rtm_to_fib_config()
787 err = fib_gw_from_via(cfg, attr, extack); in rtm_to_fib_config()
792 cfg->fc_priority = nla_get_u32(attr); in rtm_to_fib_config()
795 cfg->fc_prefsrc = nla_get_be32(attr); in rtm_to_fib_config()
798 cfg->fc_mx = nla_data(attr); in rtm_to_fib_config()
799 cfg->fc_mx_len = nla_len(attr); in rtm_to_fib_config()
807 cfg->fc_mp = nla_data(attr); in rtm_to_fib_config()
808 cfg->fc_mp_len = nla_len(attr); in rtm_to_fib_config()
811 cfg->fc_flow = nla_get_u32(attr); in rtm_to_fib_config()
814 cfg->fc_table = nla_get_u32(attr); in rtm_to_fib_config()
817 cfg->fc_encap = attr; in rtm_to_fib_config()
820 cfg->fc_encap_type = nla_get_u16(attr); in rtm_to_fib_config()
821 err = lwtunnel_valid_encap_type(cfg->fc_encap_type, in rtm_to_fib_config()
827 cfg->fc_nh_id = nla_get_u32(attr); in rtm_to_fib_config()
832 if (cfg->fc_nh_id) { in rtm_to_fib_config()
833 if (cfg->fc_oif || cfg->fc_gw_family || in rtm_to_fib_config()
834 cfg->fc_encap || cfg->fc_mp) { in rtm_to_fib_config()
847 if (!cfg->fc_table) in rtm_to_fib_config()
848 cfg->fc_table = RT_TABLE_MAIN; in rtm_to_fib_config()
859 struct fib_config cfg; in inet_rtm_delroute() local
863 err = rtm_to_fib_config(net, skb, nlh, &cfg, extack); in inet_rtm_delroute()
867 if (cfg.fc_nh_id && !nexthop_find_by_id(net, cfg.fc_nh_id)) { in inet_rtm_delroute()
873 tb = fib_get_table(net, cfg.fc_table); in inet_rtm_delroute()
880 err = fib_table_delete(net, tb, &cfg, extack); in inet_rtm_delroute()
889 struct fib_config cfg; in inet_rtm_newroute() local
893 err = rtm_to_fib_config(net, skb, nlh, &cfg, extack); in inet_rtm_newroute()
897 tb = fib_new_table(net, cfg.fc_table); in inet_rtm_newroute()
903 err = fib_table_insert(net, tb, &cfg, extack); in inet_rtm_newroute()
904 if (!err && cfg.fc_type == RTN_LOCAL) in inet_rtm_newroute()
1075 struct fib_config cfg = { in fib_magic() local
1096 cfg.fc_table = tb->tb_id; in fib_magic()
1099 cfg.fc_scope = RT_SCOPE_LINK; in fib_magic()
1101 cfg.fc_scope = RT_SCOPE_HOST; in fib_magic()
1104 fib_table_insert(net, tb, &cfg, NULL); in fib_magic()
1106 fib_table_delete(net, tb, &cfg, NULL); in fib_magic()
1405 struct netlink_kernel_cfg cfg = { in nl_fib_lookup_init() local
1409 sk = netlink_kernel_create(net, NETLINK_FIB_LOOKUP, &cfg); in nl_fib_lookup_init()