From: Tom Herbert <tom@herbertland.com>
To: davem@davemloft.net, kuba@kernel.org, edumazet@google.com,
netdev@vger.kernel.org, felipe@sipanda.io,
willemdebruijn.kernel@gmail.com, pablo@netfilter.org,
laforge@gnumonks.org, xeb@mail.ru
Cc: Tom Herbert <tom@herbertland.com>, Willem de Bruijn <willemb@google.com>
Subject: [PATCH net-next v3 04/13] udp_encaps: Set proper UDP_ENCAP types in tunnel setup
Date: Wed, 21 Aug 2024 14:22:03 -0700 [thread overview]
Message-ID: <20240821212212.1795357-5-tom@herbertland.com> (raw)
In-Reply-To: <20240821212212.1795357-1-tom@herbertland.com>
Instead of just setting UDP tunnel config encap_type to 1,
use the appropriate constat for the tunnel type. This value
can be used to determine the encapsulated protocol in UDP
by looking at the socket
Reviewed-by: Willem de Bruijn <willemb@google.com>
Signed-off-by: Tom Herbert <tom@herbertland.com>
---
drivers/infiniband/sw/rxe/rxe_net.c | 2 +-
drivers/net/amt.c | 2 +-
drivers/net/bareudp.c | 2 +-
drivers/net/geneve.c | 2 +-
drivers/net/pfcp.c | 2 +-
drivers/net/vxlan/vxlan_core.c | 3 ++-
drivers/net/wireguard/socket.c | 2 +-
net/ipv4/fou_core.c | 3 ++-
net/sctp/protocol.c | 2 +-
net/tipc/udp_media.c | 2 +-
10 files changed, 12 insertions(+), 10 deletions(-)
diff --git a/drivers/infiniband/sw/rxe/rxe_net.c b/drivers/infiniband/sw/rxe/rxe_net.c
index 75d1407db52d..1c2bb88132c5 100644
--- a/drivers/infiniband/sw/rxe/rxe_net.c
+++ b/drivers/infiniband/sw/rxe/rxe_net.c
@@ -193,7 +193,7 @@ static struct socket *rxe_setup_udp_tunnel(struct net *net, __be16 port,
if (err < 0)
return ERR_PTR(err);
- tnl_cfg.encap_type = 1;
+ tnl_cfg.encap_type = UDP_ENCAP_RXE;
tnl_cfg.encap_rcv = rxe_udp_encap_recv;
/* Setup UDP tunnel */
diff --git a/drivers/net/amt.c b/drivers/net/amt.c
index 6d15ab3bfbbc..fc421cf2c032 100644
--- a/drivers/net/amt.c
+++ b/drivers/net/amt.c
@@ -2970,7 +2970,7 @@ static int amt_socket_create(struct amt_dev *amt)
/* Mark socket as an encapsulation socket */
memset(&tunnel_cfg, 0, sizeof(tunnel_cfg));
tunnel_cfg.sk_user_data = amt;
- tunnel_cfg.encap_type = 1;
+ tunnel_cfg.encap_type = UDP_ENCAP_AMT;
tunnel_cfg.encap_rcv = amt_rcv;
tunnel_cfg.encap_err_lookup = amt_err_lookup;
tunnel_cfg.encap_destroy = NULL;
diff --git a/drivers/net/bareudp.c b/drivers/net/bareudp.c
index d5c56ca91b77..007fb8c5168b 100644
--- a/drivers/net/bareudp.c
+++ b/drivers/net/bareudp.c
@@ -248,7 +248,7 @@ static int bareudp_socket_create(struct bareudp_dev *bareudp, __be16 port)
/* Mark socket as an encapsulation socket */
memset(&tunnel_cfg, 0, sizeof(tunnel_cfg));
tunnel_cfg.sk_user_data = bareudp;
- tunnel_cfg.encap_type = 1;
+ tunnel_cfg.encap_type = UDP_ENCAP_BAREUDP;
tunnel_cfg.encap_rcv = bareudp_udp_encap_recv;
tunnel_cfg.encap_err_lookup = bareudp_err_lookup;
tunnel_cfg.encap_destroy = NULL;
diff --git a/drivers/net/geneve.c b/drivers/net/geneve.c
index 838e85ddec67..923c573b6e5c 100644
--- a/drivers/net/geneve.c
+++ b/drivers/net/geneve.c
@@ -611,7 +611,7 @@ static struct geneve_sock *geneve_socket_create(struct net *net, __be16 port,
/* Mark socket as an encapsulation socket */
memset(&tunnel_cfg, 0, sizeof(tunnel_cfg));
tunnel_cfg.sk_user_data = gs;
- tunnel_cfg.encap_type = 1;
+ tunnel_cfg.encap_type = UDP_ENCAP_GENEVE;
tunnel_cfg.gro_receive = geneve_gro_receive;
tunnel_cfg.gro_complete = geneve_gro_complete;
tunnel_cfg.encap_rcv = geneve_udp_encap_recv;
diff --git a/drivers/net/pfcp.c b/drivers/net/pfcp.c
index 69434fd13f96..c7e4fa606b16 100644
--- a/drivers/net/pfcp.c
+++ b/drivers/net/pfcp.c
@@ -170,7 +170,7 @@ static struct socket *pfcp_create_sock(struct pfcp_dev *pfcp)
tuncfg.sk_user_data = pfcp;
tuncfg.encap_rcv = pfcp_encap_recv;
- tuncfg.encap_type = 1;
+ tuncfg.encap_type = UDP_ENCAP_PFCP;
setup_udp_tunnel_sock(net, sock, &tuncfg);
diff --git a/drivers/net/vxlan/vxlan_core.c b/drivers/net/vxlan/vxlan_core.c
index 8983e75e9881..e02cbc018b8c 100644
--- a/drivers/net/vxlan/vxlan_core.c
+++ b/drivers/net/vxlan/vxlan_core.c
@@ -3572,7 +3572,8 @@ static struct vxlan_sock *vxlan_socket_create(struct net *net, bool ipv6,
/* Mark socket as an encapsulation socket. */
memset(&tunnel_cfg, 0, sizeof(tunnel_cfg));
tunnel_cfg.sk_user_data = vs;
- tunnel_cfg.encap_type = 1;
+ tunnel_cfg.encap_type = vs->flags & VXLAN_F_GPE ?
+ UDP_ENCAP_VXLAN_GPE : UDP_ENCAP_VXLAN;
tunnel_cfg.encap_rcv = vxlan_rcv;
tunnel_cfg.encap_err_lookup = vxlan_err_lookup;
tunnel_cfg.encap_destroy = NULL;
diff --git a/drivers/net/wireguard/socket.c b/drivers/net/wireguard/socket.c
index 0414d7a6ce74..f4b5bd14fd56 100644
--- a/drivers/net/wireguard/socket.c
+++ b/drivers/net/wireguard/socket.c
@@ -352,7 +352,7 @@ int wg_socket_init(struct wg_device *wg, u16 port)
int ret;
struct udp_tunnel_sock_cfg cfg = {
.sk_user_data = wg,
- .encap_type = 1,
+ .encap_type = UDP_ENCAP_WIREGUARD,
.encap_rcv = wg_receive
};
struct socket *new4 = NULL, *new6 = NULL;
diff --git a/net/ipv4/fou_core.c b/net/ipv4/fou_core.c
index 0abbc413e0fe..8241f762e45b 100644
--- a/net/ipv4/fou_core.c
+++ b/net/ipv4/fou_core.c
@@ -578,19 +578,20 @@ static int fou_create(struct net *net, struct fou_cfg *cfg,
fou->sock = sock;
memset(&tunnel_cfg, 0, sizeof(tunnel_cfg));
- tunnel_cfg.encap_type = 1;
tunnel_cfg.sk_user_data = fou;
tunnel_cfg.encap_destroy = NULL;
/* Initial for fou type */
switch (cfg->type) {
case FOU_ENCAP_DIRECT:
+ tunnel_cfg.encap_type = UDP_ENCAP_FOU;
tunnel_cfg.encap_rcv = fou_udp_recv;
tunnel_cfg.gro_receive = fou_gro_receive;
tunnel_cfg.gro_complete = fou_gro_complete;
fou->protocol = cfg->protocol;
break;
case FOU_ENCAP_GUE:
+ tunnel_cfg.encap_type = UDP_ENCAP_GUE;
tunnel_cfg.encap_rcv = gue_udp_recv;
tunnel_cfg.gro_receive = gue_gro_receive;
tunnel_cfg.gro_complete = gue_gro_complete;
diff --git a/net/sctp/protocol.c b/net/sctp/protocol.c
index 5a7436a13b74..290ebcf17a48 100644
--- a/net/sctp/protocol.c
+++ b/net/sctp/protocol.c
@@ -876,7 +876,7 @@ int sctp_udp_sock_start(struct net *net)
return err;
}
- tuncfg.encap_type = 1;
+ tuncfg.encap_type = UDP_ENCAP_SCTP;
tuncfg.encap_rcv = sctp_udp_rcv;
tuncfg.encap_err_lookup = sctp_udp_v4_err;
setup_udp_tunnel_sock(net, sock, &tuncfg);
diff --git a/net/tipc/udp_media.c b/net/tipc/udp_media.c
index 439f75539977..3c081b7b9d67 100644
--- a/net/tipc/udp_media.c
+++ b/net/tipc/udp_media.c
@@ -771,7 +771,7 @@ static int tipc_udp_enable(struct net *net, struct tipc_bearer *b,
if (err)
goto err;
tuncfg.sk_user_data = ub;
- tuncfg.encap_type = 1;
+ tuncfg.encap_type = UDP_ENCAP_TIPC;
tuncfg.encap_rcv = tipc_udp_recv;
tuncfg.encap_destroy = NULL;
setup_udp_tunnel_sock(net, ub->ubsock, &tuncfg);
--
2.34.1
next prev parent reply other threads:[~2024-08-21 21:22 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-21 21:21 [PATCH net-next v3 00/13] flow_dissector: Dissect UDP encapsulation protocols Tom Herbert
2024-08-21 21:22 ` [PATCH net-next v3 01/13] ipv6: Add udp6_lib_lookup to IPv6 stubs Tom Herbert
2024-08-21 21:22 ` [PATCH net-next v3 02/13] flow_dissector: Parse ETH_P_TEB and move out of GRE Tom Herbert
2024-08-21 21:22 ` [PATCH net-next v3 03/13] udp_encaps: Add new UDP_ENCAP constants Tom Herbert
2024-08-21 21:22 ` Tom Herbert [this message]
2024-08-21 21:22 ` [PATCH net-next v3 05/13] flow_dissector: UDP encap infrastructure Tom Herbert
2024-08-22 8:25 ` kernel test robot
2024-08-21 21:22 ` [PATCH net-next v3 06/13] flow_dissector: Parse vxlan in UDP Tom Herbert
2024-08-21 21:22 ` [PATCH net-next v3 07/13] flow_dissector: Parse foo-over-udp (FOU) Tom Herbert
2024-08-21 21:22 ` [PATCH net-next v3 08/13] flow_dissector: Parse ESP, L2TP, and SCTP in UDP Tom Herbert
2024-08-21 21:22 ` [PATCH net-next v3 09/13] flow_dissector: Parse Geneve " Tom Herbert
2024-08-21 21:22 ` [PATCH net-next v3 10/13] flow_dissector: Parse GUE " Tom Herbert
2024-08-21 21:22 ` [PATCH net-next v3 11/13] gtp: Move gtp_parse_exthdrs into net/gtp.h Tom Herbert
2024-08-21 21:22 ` [PATCH net-next v3 12/13] flow_dissector: Parse gtp in UDP Tom Herbert
2024-08-21 21:22 ` [PATCH net-next v3 13/13] flow_dissector: Add case in ipproto switch for NEXTHDR_NONE Tom Herbert
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240821212212.1795357-5-tom@herbertland.com \
--to=tom@herbertland.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=felipe@sipanda.io \
--cc=kuba@kernel.org \
--cc=laforge@gnumonks.org \
--cc=netdev@vger.kernel.org \
--cc=pablo@netfilter.org \
--cc=willemb@google.com \
--cc=willemdebruijn.kernel@gmail.com \
--cc=xeb@mail.ru \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).