• Home
  • Raw
  • Download

Lines Matching refs:cfg

479 				 struct fib_config *cfg)  in rtentry_to_fib_config()  argument
484 memset(cfg, 0, sizeof(*cfg)); in rtentry_to_fib_config()
485 cfg->fc_nlinfo.nl_net = net; in rtentry_to_fib_config()
514 cfg->fc_dst_len = plen; in rtentry_to_fib_config()
515 cfg->fc_dst = addr; in rtentry_to_fib_config()
518 cfg->fc_nlflags = NLM_F_CREATE; in rtentry_to_fib_config()
519 cfg->fc_protocol = RTPROT_BOOT; in rtentry_to_fib_config()
523 cfg->fc_priority = rt->rt_metric - 1; in rtentry_to_fib_config()
526 cfg->fc_scope = RT_SCOPE_HOST; in rtentry_to_fib_config()
527 cfg->fc_type = RTN_UNREACHABLE; in rtentry_to_fib_config()
531 cfg->fc_scope = RT_SCOPE_NOWHERE; in rtentry_to_fib_config()
532 cfg->fc_type = RTN_UNICAST; in rtentry_to_fib_config()
549 cfg->fc_oif = dev->ifindex; in rtentry_to_fib_config()
550 cfg->fc_table = l3mdev_fib_table(dev); in rtentry_to_fib_config()
570 cfg->fc_prefsrc = ifa->ifa_local; in rtentry_to_fib_config()
578 cfg->fc_gw4 = addr; in rtentry_to_fib_config()
579 cfg->fc_gw_family = AF_INET; in rtentry_to_fib_config()
580 addr_type = inet_addr_type_table(net, addr, cfg->fc_table); in rtentry_to_fib_config()
583 cfg->fc_scope = RT_SCOPE_UNIVERSE; in rtentry_to_fib_config()
586 if (!cfg->fc_table) in rtentry_to_fib_config()
587 cfg->fc_table = RT_TABLE_MAIN; in rtentry_to_fib_config()
592 if (rt->rt_flags & RTF_GATEWAY && !cfg->fc_gw_family) in rtentry_to_fib_config()
595 if (cfg->fc_scope == RT_SCOPE_NOWHERE) in rtentry_to_fib_config()
596 cfg->fc_scope = RT_SCOPE_LINK; in rtentry_to_fib_config()
615 cfg->fc_mx = mx; in rtentry_to_fib_config()
616 cfg->fc_mx_len = len; in rtentry_to_fib_config()
628 struct fib_config cfg; in ip_rt_ioctl() local
638 err = rtentry_to_fib_config(net, cmd, rt, &cfg); in ip_rt_ioctl()
643 tb = fib_get_table(net, cfg.fc_table); in ip_rt_ioctl()
645 err = fib_table_delete(net, tb, &cfg, in ip_rt_ioctl()
650 tb = fib_new_table(net, cfg.fc_table); in ip_rt_ioctl()
653 &cfg, NULL); in ip_rt_ioctl()
659 kfree(cfg.fc_mx); in ip_rt_ioctl()
690 int fib_gw_from_via(struct fib_config *cfg, struct nlattr *nla, in fib_gw_from_via() argument
710 cfg->fc_gw_family = AF_INET; in fib_gw_from_via()
711 cfg->fc_gw4 = *((__be32 *)via->rtvia_addr); in fib_gw_from_via()
719 cfg->fc_gw_family = AF_INET6; in fib_gw_from_via()
720 cfg->fc_gw6 = *((struct in6_addr *)via->rtvia_addr); in fib_gw_from_via()
735 struct nlmsghdr *nlh, struct fib_config *cfg, in rtm_to_fib_config() argument
748 memset(cfg, 0, sizeof(*cfg)); in rtm_to_fib_config()
751 cfg->fc_dst_len = rtm->rtm_dst_len; in rtm_to_fib_config()
752 cfg->fc_tos = rtm->rtm_tos; in rtm_to_fib_config()
753 cfg->fc_table = rtm->rtm_table; in rtm_to_fib_config()
754 cfg->fc_protocol = rtm->rtm_protocol; in rtm_to_fib_config()
755 cfg->fc_scope = rtm->rtm_scope; in rtm_to_fib_config()
756 cfg->fc_type = rtm->rtm_type; in rtm_to_fib_config()
757 cfg->fc_flags = rtm->rtm_flags; in rtm_to_fib_config()
758 cfg->fc_nlflags = nlh->nlmsg_flags; in rtm_to_fib_config()
760 cfg->fc_nlinfo.portid = NETLINK_CB(skb).portid; in rtm_to_fib_config()
761 cfg->fc_nlinfo.nlh = nlh; in rtm_to_fib_config()
762 cfg->fc_nlinfo.nl_net = net; in rtm_to_fib_config()
764 if (cfg->fc_type > RTN_MAX) { in rtm_to_fib_config()
773 cfg->fc_dst = nla_get_be32(attr); in rtm_to_fib_config()
776 cfg->fc_oif = nla_get_u32(attr); in rtm_to_fib_config()
780 cfg->fc_gw4 = nla_get_be32(attr); in rtm_to_fib_config()
781 if (cfg->fc_gw4) in rtm_to_fib_config()
782 cfg->fc_gw_family = AF_INET; in rtm_to_fib_config()
786 err = fib_gw_from_via(cfg, attr, extack); in rtm_to_fib_config()
791 cfg->fc_priority = nla_get_u32(attr); in rtm_to_fib_config()
794 cfg->fc_prefsrc = nla_get_be32(attr); in rtm_to_fib_config()
797 cfg->fc_mx = nla_data(attr); in rtm_to_fib_config()
798 cfg->fc_mx_len = nla_len(attr); in rtm_to_fib_config()
806 cfg->fc_mp = nla_data(attr); in rtm_to_fib_config()
807 cfg->fc_mp_len = nla_len(attr); in rtm_to_fib_config()
810 cfg->fc_flow = nla_get_u32(attr); in rtm_to_fib_config()
813 cfg->fc_table = nla_get_u32(attr); in rtm_to_fib_config()
816 cfg->fc_encap = attr; in rtm_to_fib_config()
819 cfg->fc_encap_type = nla_get_u16(attr); in rtm_to_fib_config()
820 err = lwtunnel_valid_encap_type(cfg->fc_encap_type, in rtm_to_fib_config()
826 cfg->fc_nh_id = nla_get_u32(attr); in rtm_to_fib_config()
831 if (cfg->fc_nh_id) { in rtm_to_fib_config()
832 if (cfg->fc_oif || cfg->fc_gw_family || in rtm_to_fib_config()
833 cfg->fc_encap || cfg->fc_mp) { in rtm_to_fib_config()
846 if (!cfg->fc_table) in rtm_to_fib_config()
847 cfg->fc_table = RT_TABLE_MAIN; in rtm_to_fib_config()
858 struct fib_config cfg; in inet_rtm_delroute() local
862 err = rtm_to_fib_config(net, skb, nlh, &cfg, extack); in inet_rtm_delroute()
866 if (cfg.fc_nh_id && !nexthop_find_by_id(net, cfg.fc_nh_id)) { in inet_rtm_delroute()
872 tb = fib_get_table(net, cfg.fc_table); in inet_rtm_delroute()
879 err = fib_table_delete(net, tb, &cfg, extack); in inet_rtm_delroute()
888 struct fib_config cfg; in inet_rtm_newroute() local
892 err = rtm_to_fib_config(net, skb, nlh, &cfg, extack); in inet_rtm_newroute()
896 tb = fib_new_table(net, cfg.fc_table); in inet_rtm_newroute()
902 err = fib_table_insert(net, tb, &cfg, extack); in inet_rtm_newroute()
903 if (!err && cfg.fc_type == RTN_LOCAL) in inet_rtm_newroute()
1074 struct fib_config cfg = { in fib_magic() local
1095 cfg.fc_table = tb->tb_id; in fib_magic()
1098 cfg.fc_scope = RT_SCOPE_LINK; in fib_magic()
1100 cfg.fc_scope = RT_SCOPE_HOST; in fib_magic()
1103 fib_table_insert(net, tb, &cfg, NULL); in fib_magic()
1105 fib_table_delete(net, tb, &cfg, NULL); in fib_magic()
1406 struct netlink_kernel_cfg cfg = { in nl_fib_lookup_init() local
1410 sk = netlink_kernel_create(net, NETLINK_FIB_LOOKUP, &cfg); in nl_fib_lookup_init()