| /linux/include/net/ |
| H A D | ip6_route.h | 150 struct net_device *l3mdev; in ip6_route_get_saddr() local 157 l3mdev = dev_get_by_index_rcu(net, l3mdev_index); in ip6_route_get_saddr() 158 if (!f6i || !f6i->fib6_prefsrc.plen || l3mdev) in ip6_route_get_saddr() 160 same_vrf = !l3mdev || l3mdev_master_dev_rcu(dev) == l3mdev; in ip6_route_get_saddr() 164 err = ipv6_dev_get_saddr(net, same_vrf ? dev : l3mdev, daddr, prefs, saddr); in ip6_route_get_saddr()
|
| H A D | inet_hashtables.h | 79 int l3mdev; member 97 int l3mdev; member 220 const unsigned short snum, int l3mdev); 225 int l3mdev); 239 unsigned short port, int l3mdev, 244 int l3mdev, const struct sock *sk);
|
| H A D | fib_rules.h | 29 u8 l3mdev; member 131 return rule->l3mdev ? arg->table : rule->table; in fib_rule_get_table()
|
| /linux/net/ipv4/ |
| H A D | inet_connection_sock.c | 273 static bool inet_bhash2_addr_any_conflict(const struct sock *sk, int port, int l3mdev, in inet_bhash2_addr_any_conflict() argument 295 if (!inet_bind2_bucket_match_addr_any(tb2, net, port, l3mdev, sk)) in inet_bhash2_addr_any_conflict() 320 int i, low, high, attempt_half, port, l3mdev; in inet_csk_find_open_port() local 328 l3mdev = inet_sk_bound_l3mdev(sk); in inet_csk_find_open_port() 365 if (inet_bhash2_addr_any_conflict(sk, port, l3mdev, relax, false)) in inet_csk_find_open_port() 371 tb2 = inet_bind2_bucket_find(head2, net, port, l3mdev, sk); in inet_csk_find_open_port() 373 if (inet_bind_bucket_match(tb, net, port, l3mdev)) { in inet_csk_find_open_port() 506 int ret = -EADDRINUSE, port = snum, l3mdev; in inet_csk_get_port() local 513 l3mdev = inet_sk_bound_l3mdev(sk); in inet_csk_get_port() 530 if (inet_bind_bucket_match(tb, net, port, l3mdev)) in inet_csk_get_port() [all …]
|
| H A D | fib_rules.c | 64 rule->l3mdev) in fib4_rule_default() 313 if (rule->table == RT_TABLE_UNSPEC && !rule->l3mdev) { in fib4_rule_configure()
|
| H A D | fib_semantics.c | 2258 struct net_device *l3mdev; in fib_select_path() 2260 l3mdev = dev_get_by_index_rcu(net, fl4->flowi4_l3mdev); in fib_select_path() 2262 if (!l3mdev || in fib_select_path() 2263 l3mdev_master_dev_rcu(FIB_RES_DEV(*res)) == l3mdev) in fib_select_path() 2266 fl4->saddr = inet_select_addr(l3mdev, 0, RT_SCOPE_LINK); 2255 struct net_device *l3mdev; fib_select_path() local
|
| /linux/net/l3mdev/ |
| H A D | Makefile | 6 obj-y += l3mdev.o
|
| /linux/net/core/ |
| H A D | fib_rules.c | 296 if (rule->l3mdev && !l3mdev_fib_rule_match(rule->fr_net, fl, arg)) in fib_rule_match() 482 if (rule->l3mdev && r->l3mdev != rule->l3mdev) in rule_find() 524 nlrule->l3mdev = nla_get_u8(nla); in fib_nl2rule_l3mdev() 525 if (nlrule->l3mdev != 1) { in fib_nl2rule_l3mdev() 664 if (nlrule->l3mdev && nlrule->table) { in fib_nl2rule() 815 if (r->l3mdev != rule->l3mdev) in rule_exists() 1205 (rule->l3mdev && in fib_nl_fill_rule() 1206 nla_put_u8(skb, FRA_L3MDEV, rule->l3mdev)) || in fib_nl_fill_rule()
|
| H A D | lwt_bpf.c | 184 struct net_device *l3mdev = l3mdev_master_dev_rcu(skb_dst(skb)->dev); in bpf_lwt_xmit_reroute() local 185 int oif = l3mdev ? l3mdev->ifindex : 0; in bpf_lwt_xmit_reroute()
|
| /linux/Documentation/networking/ |
| H A D | vrf.rst | 72 2. An l3mdev FIB rule directs lookups to the table associated with the device. 73 A single l3mdev rule is sufficient for all VRFs. The VRF device adds the 74 l3mdev rule for IPv4 and IPv6 when the first device is created with a 122 arriving on interfaces enslaved to an l3mdev and processes may bind to 123 the same port if they bind to an l3mdev. 174 As of v4.8 the kernel supports the l3mdev FIB rule where a single rule 175 covers all VRFs. The l3mdev rule is created for IPv4 and IPv6 on first
|
| /linux/net/ipv6/ |
| H A D | fib6_rules.c | 48 rule->l3mdev) in fib6_rule_default() 454 if (rule->action == FR_ACT_TO_TBL && !rule->l3mdev) { in fib6_rule_configure()
|
| H A D | addrconf.c | 83 #include <net/l3mdev.h> 1992 struct net_device *l3mdev, *ndev; in __ipv6_chk_addr_and_flags() local 1998 l3mdev = l3mdev_master_dev_rcu(dev); in __ipv6_chk_addr_and_flags() 2005 if (l3mdev_master_dev_rcu(ndev) != l3mdev) in __ipv6_chk_addr_and_flags()
|
| H A D | ip6mr.c | 292 rule->table == RT6_TABLE_DFLT && !rule->l3mdev; in ip6mr_rule_default()
|
| /linux/ |
| H A D | MAINTAINERS | 14704 F: include/net/l3mdev.h 14705 F: net/l3mdev
|