Lines Matching refs:net

36 		       struct nlmsghdr *nlh, struct net *net, u32 portid,
39 static struct mpls_route *mpls_route_input_rcu(struct net *net, unsigned index) in mpls_route_input_rcu() argument
43 if (index < net->mpls.platform_labels) { in mpls_route_input_rcu()
45 rcu_dereference(net->mpls.platform_label); in mpls_route_input_rcu()
226 struct net *net = dev_net(dev); in mpls_forward() local
263 rt = mpls_route_input_rcu(net, dec.label); in mpls_forward()
388 static void mpls_notify_route(struct net *net, unsigned index, in mpls_notify_route() argument
399 rtmsg_lfib(event, index, rt, nlh, net, portid, nlm_flags); in mpls_notify_route()
402 static void mpls_route_update(struct net *net, unsigned index, in mpls_route_update() argument
411 platform_label = rtnl_dereference(net->mpls.platform_label); in mpls_route_update()
415 mpls_notify_route(net, index, rt, new, info); in mpls_route_update()
421 static unsigned find_free_label(struct net *net) in find_free_label() argument
427 platform_label = rtnl_dereference(net->mpls.platform_label); in find_free_label()
428 platform_labels = net->mpls.platform_labels; in find_free_label()
438 static struct net_device *inet_fib_lookup_dev(struct net *net, in inet_fib_lookup_dev() argument
446 rt = ip_route_output(net, daddr.s_addr, 0, 0, 0); in inet_fib_lookup_dev()
458 static struct net_device *inet_fib_lookup_dev(struct net *net, in inet_fib_lookup_dev() argument
466 static struct net_device *inet6_fib_lookup_dev(struct net *net, in inet6_fib_lookup_dev() argument
479 err = ipv6_stub->ipv6_dst_lookup(net, NULL, &dst, &fl6); in inet6_fib_lookup_dev()
490 static struct net_device *inet6_fib_lookup_dev(struct net *net, in inet6_fib_lookup_dev() argument
497 static struct net_device *find_outdev(struct net *net, in find_outdev() argument
506 dev = inet_fib_lookup_dev(net, mpls_nh_via(rt, nh)); in find_outdev()
509 dev = inet6_fib_lookup_dev(net, mpls_nh_via(rt, nh)); in find_outdev()
515 dev = dev_get_by_index(net, oif); in find_outdev()
530 static int mpls_nh_assign_dev(struct net *net, struct mpls_route *rt, in mpls_nh_assign_dev() argument
536 dev = find_outdev(net, rt, nh, oif); in mpls_nh_assign_dev()
563 struct net *net = cfg->rc_nlinfo.nl_net; in mpls_nh_build_from_cfg() local
584 err = mpls_nh_assign_dev(net, rt, nh, cfg->rc_ifindex); in mpls_nh_build_from_cfg()
594 static int mpls_nh_build(struct net *net, struct mpls_route *rt, in mpls_nh_build() argument
619 err = mpls_nh_assign_dev(net, rt, nh, oif); in mpls_nh_build()
720 struct net *net = cfg->rc_nlinfo.nl_net; in mpls_route_add() local
732 index = find_free_label(net); in mpls_route_add()
740 if (index >= net->mpls.platform_labels) in mpls_route_add()
749 platform_label = rtnl_dereference(net->mpls.platform_label); in mpls_route_add()
783 mpls_route_update(net, index, rt, &cfg->rc_nlinfo); in mpls_route_add()
795 struct net *net = cfg->rc_nlinfo.nl_net; in mpls_route_del() local
806 if (index >= net->mpls.platform_labels) in mpls_route_del()
809 mpls_route_update(net, index, NULL, &cfg->rc_nlinfo); in mpls_route_del()
897 struct net *net = dev_net(dev); in mpls_ifdown() local
901 platform_label = rtnl_dereference(net->mpls.platform_label); in mpls_ifdown()
902 for (index = 0; index < net->mpls.platform_labels; index++) { in mpls_ifdown()
1301 struct net *net = sock_net(skb->sk); in mpls_dump_routes() local
1312 platform_label = rtnl_dereference(net->mpls.platform_label); in mpls_dump_routes()
1313 platform_labels = net->mpls.platform_labels; in mpls_dump_routes()
1365 struct nlmsghdr *nlh, struct net *net, u32 portid, in rtmsg_lfib() argument
1383 rtnl_notify(skb, net, portid, RTNLGRP_MPLS_ROUTE, nlh, GFP_KERNEL); in rtmsg_lfib()
1388 rtnl_set_sk_err(net, RTNLGRP_MPLS_ROUTE, err); in rtmsg_lfib()
1391 static int resize_platform_label_table(struct net *net, size_t limit) in resize_platform_label_table() argument
1411 struct net_device *lo = net->loopback_dev; in resize_platform_label_table()
1424 struct net_device *lo = net->loopback_dev; in resize_platform_label_table()
1439 old = rtnl_dereference(net->mpls.platform_label); in resize_platform_label_table()
1440 old_limit = net->mpls.platform_labels; in resize_platform_label_table()
1444 mpls_route_update(net, index, NULL, NULL); in resize_platform_label_table()
1467 net->mpls.platform_labels = limit; in resize_platform_label_table()
1468 rcu_assign_pointer(net->mpls.platform_label, labels); in resize_platform_label_table()
1492 struct net *net = table->data; in mpls_platform_labels() local
1493 int platform_labels = net->mpls.platform_labels; in mpls_platform_labels()
1507 ret = resize_platform_label_table(net, platform_labels); in mpls_platform_labels()
1523 static int mpls_net_init(struct net *net) in mpls_net_init() argument
1527 net->mpls.platform_labels = 0; in mpls_net_init()
1528 net->mpls.platform_label = NULL; in mpls_net_init()
1534 table[0].data = net; in mpls_net_init()
1535 net->mpls.ctl = register_net_sysctl(net, "net/mpls", table); in mpls_net_init()
1536 if (net->mpls.ctl == NULL) { in mpls_net_init()
1544 static void mpls_net_exit(struct net *net) in mpls_net_exit() argument
1551 table = net->mpls.ctl->ctl_table_arg; in mpls_net_exit()
1552 unregister_net_sysctl_table(net->mpls.ctl); in mpls_net_exit()
1565 platform_label = rtnl_dereference(net->mpls.platform_label); in mpls_net_exit()
1566 platform_labels = net->mpls.platform_labels; in mpls_net_exit()