mirror of
https://github.com/torvalds/linux.git
synced 2026-07-28 01:55:51 +02:00
geneve: Pass struct geneve_dev to geneve_create_sock().
This is a prep patch to make a subsequent patch clean.
We will need to access geneve_dev->cfg.info.key.u.{ipv4,ipv6}.src
in geneve_create_sock() later.
Let's pass down struct geneve_dev from geneve_sock_add() to
geneve_create_sock() instead of individual config fields.
Signed-off-by: Kuniyuki Iwashima <kuniyu@google.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Link: https://patch.msgid.link/20260602190436.139591-3-kuniyu@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
1221c53985
commit
c7f83b9de2
|
|
@ -760,9 +760,10 @@ static int geneve_udp_encap_err_lookup(struct sock *sk, struct sk_buff *skb)
|
|||
return -EPFNOSUPPORT;
|
||||
}
|
||||
|
||||
static struct sock *geneve_create_sock(struct net *net, bool ipv6,
|
||||
__be16 port, bool ipv6_rx_csum)
|
||||
static struct sock *geneve_create_sock(struct net *net,
|
||||
struct geneve_dev *geneve, bool ipv6)
|
||||
{
|
||||
struct ip_tunnel_info *info = &geneve->cfg.info;
|
||||
struct udp_port_cfg udp_conf;
|
||||
struct socket *sock;
|
||||
int err;
|
||||
|
|
@ -772,13 +773,13 @@ static struct sock *geneve_create_sock(struct net *net, bool ipv6,
|
|||
if (ipv6) {
|
||||
udp_conf.family = AF_INET6;
|
||||
udp_conf.ipv6_v6only = 1;
|
||||
udp_conf.use_udp6_rx_checksums = ipv6_rx_csum;
|
||||
udp_conf.use_udp6_rx_checksums = geneve->cfg.use_udp6_rx_checksums;
|
||||
} else {
|
||||
udp_conf.family = AF_INET;
|
||||
udp_conf.local_ip.s_addr = htonl(INADDR_ANY);
|
||||
}
|
||||
|
||||
udp_conf.local_udp_port = port;
|
||||
udp_conf.local_udp_port = info->key.tp_dst;
|
||||
|
||||
/* Open UDP socket */
|
||||
err = udp_sock_create(net, &udp_conf, &sock);
|
||||
|
|
@ -970,8 +971,8 @@ static int geneve_gro_complete(struct sock *sk, struct sk_buff *skb,
|
|||
}
|
||||
|
||||
/* Create new listen socket if needed */
|
||||
static struct geneve_sock *geneve_socket_create(struct net *net, __be16 port,
|
||||
bool ipv6, bool ipv6_rx_csum)
|
||||
static struct geneve_sock *geneve_socket_create(struct net *net,
|
||||
struct geneve_dev *geneve, bool ipv6)
|
||||
{
|
||||
struct geneve_net *gn = net_generic(net, geneve_net_id);
|
||||
struct udp_tunnel_sock_cfg tunnel_cfg;
|
||||
|
|
@ -983,7 +984,7 @@ static struct geneve_sock *geneve_socket_create(struct net *net, __be16 port,
|
|||
if (!gs)
|
||||
return ERR_PTR(-ENOMEM);
|
||||
|
||||
sk = geneve_create_sock(net, ipv6, port, ipv6_rx_csum);
|
||||
sk = geneve_create_sock(net, geneve, ipv6);
|
||||
if (IS_ERR(sk)) {
|
||||
kfree(gs);
|
||||
return ERR_CAST(sk);
|
||||
|
|
@ -1073,8 +1074,7 @@ static int geneve_sock_add(struct geneve_dev *geneve, bool ipv6)
|
|||
goto out;
|
||||
}
|
||||
|
||||
gs = geneve_socket_create(net, geneve->cfg.info.key.tp_dst, ipv6,
|
||||
geneve->cfg.use_udp6_rx_checksums);
|
||||
gs = geneve_socket_create(net, geneve, ipv6);
|
||||
if (IS_ERR(gs))
|
||||
return PTR_ERR(gs);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user