/linux-6.12.1/net/ipv4/ |
D | inet_hashtables.c | 68 int l3mdev) in inet_bind_bucket_create() argument 74 tb->l3mdev = l3mdev; in inet_bind_bucket_create() 96 unsigned short port, int l3mdev) in inet_bind_bucket_match() argument 99 tb->l3mdev == l3mdev; in inet_bind_bucket_match() 109 tb2->l3mdev = tb->l3mdev; in inet_bind2_bucket_init() 226 int bhash, l3mdev; in __inet_inherit_port() local 242 l3mdev = inet_sk_bound_l3mdev(sk); in __inet_inherit_port() 250 if (inet_bind_bucket_match(tb, net, port, l3mdev)) in __inet_inherit_port() 255 net, head, port, l3mdev); in __inet_inherit_port() 267 l3mdev = inet_sk_bound_l3mdev(sk); in __inet_inherit_port() [all …]
|
D | inet_connection_sock.c | 289 static bool inet_bhash2_addr_any_conflict(const struct sock *sk, int port, int l3mdev, in inet_bhash2_addr_any_conflict() argument 311 if (!inet_bind2_bucket_match_addr_any(tb2, net, port, l3mdev, sk)) in inet_bhash2_addr_any_conflict() 336 int i, low, high, attempt_half, port, l3mdev; in inet_csk_find_open_port() local 344 l3mdev = inet_sk_bound_l3mdev(sk); in inet_csk_find_open_port() 381 if (inet_bhash2_addr_any_conflict(sk, port, l3mdev, relax, false)) in inet_csk_find_open_port() 387 tb2 = inet_bind2_bucket_find(head2, net, port, l3mdev, sk); in inet_csk_find_open_port() 389 if (inet_bind_bucket_match(tb, net, port, l3mdev)) { in inet_csk_find_open_port() 521 int ret = -EADDRINUSE, port = snum, l3mdev; in inet_csk_get_port() local 528 l3mdev = inet_sk_bound_l3mdev(sk); in inet_csk_get_port() 545 if (inet_bind_bucket_match(tb, net, port, l3mdev)) in inet_csk_get_port() [all …]
|
D | fib_rules.c | 62 rule->l3mdev) in fib4_rule_default() 273 if (rule->table == RT_TABLE_UNSPEC && !rule->l3mdev) { in fib4_rule_configure()
|
D | fib_semantics.c | 2271 struct net_device *l3mdev; in fib_select_path() local 2273 l3mdev = dev_get_by_index_rcu(net, fl4->flowi4_l3mdev); in fib_select_path() 2275 if (!l3mdev || in fib_select_path() 2276 l3mdev_master_dev_rcu(FIB_RES_DEV(*res)) == l3mdev) in fib_select_path() 2279 fl4->saddr = inet_select_addr(l3mdev, 0, RT_SCOPE_LINK); in fib_select_path()
|
/linux-6.12.1/include/net/ |
D | ip6_route.h | 133 struct net_device *l3mdev; in ip6_route_get_saddr() local 140 l3mdev = dev_get_by_index_rcu(net, l3mdev_index); in ip6_route_get_saddr() 141 if (!f6i || !f6i->fib6_prefsrc.plen || l3mdev) in ip6_route_get_saddr() 143 same_vrf = !l3mdev || l3mdev_master_dev_rcu(dev) == l3mdev; in ip6_route_get_saddr() 147 err = ipv6_dev_get_saddr(net, same_vrf ? dev : l3mdev, daddr, prefs, saddr); in ip6_route_get_saddr()
|
D | inet_hashtables.h | 79 int l3mdev; member 96 int l3mdev; member 228 const unsigned short snum, int l3mdev); 234 int l3mdev); 248 unsigned short port, int l3mdev, 253 int l3mdev, const struct sock *sk);
|
D | fib_rules.h | 29 u8 l3mdev; member 120 return rule->l3mdev ? arg->table : rule->table; in fib_rule_get_table()
|
/linux-6.12.1/net/core/ |
D | fib_rules.c | 277 if (rule->l3mdev && !l3mdev_fib_rule_match(rule->fr_net, fl, arg)) in fib_rule_match() 463 if (rule->l3mdev && r->l3mdev != rule->l3mdev) in rule_find() 499 nlrule->l3mdev = nla_get_u8(nla); in fib_nl2rule_l3mdev() 500 if (nlrule->l3mdev != 1) { in fib_nl2rule_l3mdev() 631 if (nlrule->l3mdev && nlrule->table) { in fib_nl2rule() 724 if (r->l3mdev != rule->l3mdev) in rule_exists() 1062 (rule->l3mdev && in fib_nl_fill_rule() 1063 nla_put_u8(skb, FRA_L3MDEV, rule->l3mdev)) || in fib_nl_fill_rule()
|
D | lwt_bpf.c | 177 struct net_device *l3mdev = l3mdev_master_dev_rcu(skb_dst(skb)->dev); in bpf_lwt_xmit_reroute() local 178 int oif = l3mdev ? l3mdev->ifindex : 0; in bpf_lwt_xmit_reroute()
|
/linux-6.12.1/net/l3mdev/ |
D | Makefile | 6 obj-y += l3mdev.o
|
/linux-6.12.1/Documentation/networking/ |
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-6.12.1/net/ |
D | Makefile | 75 obj-$(CONFIG_NET_L3_MASTER_DEV) += l3mdev/
|
D | Kconfig | 274 source "net/l3mdev/Kconfig"
|
/linux-6.12.1/net/ipv6/ |
D | fib6_rules.c | 45 rule->l3mdev) in fib6_rule_default() 382 if (rule->action == FR_ACT_TO_TBL && !rule->l3mdev) { in fib6_rule_configure()
|
D | addrconf.c | 1977 struct net_device *l3mdev, *ndev; in __ipv6_chk_addr_and_flags() local 1983 l3mdev = l3mdev_master_dev_rcu(dev); in __ipv6_chk_addr_and_flags() 1990 if (l3mdev_master_dev_rcu(ndev) != l3mdev) in __ipv6_chk_addr_and_flags()
|
D | ip6mr.c | 287 rule->table == RT6_TABLE_DFLT && !rule->l3mdev; in ip6mr_rule_default()
|
/linux-6.12.1/drivers/net/ethernet/mellanox/mlxsw/ |
D | spectrum_router.c | 8079 if (!fib4_rule_default(rule) && !rule->l3mdev) in mlxsw_sp_router_fib_rule_event() 8083 if (!fib6_rule_default(rule) && !rule->l3mdev) in mlxsw_sp_router_fib_rule_event() 8087 if (!ipmr_rule_default(rule) && !rule->l3mdev) in mlxsw_sp_router_fib_rule_event() 8091 if (!ip6mr_rule_default(rule) && !rule->l3mdev) in mlxsw_sp_router_fib_rule_event()
|
/linux-6.12.1/ |
D | MAINTAINERS | 12807 F: include/net/l3mdev.h 12808 F: net/l3mdev
|