git: 317fa5169d35 - main - netinet: Remove the IP(V6)_RSS_LISTEN_BUCKET socket option

From: Mark Johnston <markj_at_FreeBSD.org>
Date: Tue, 28 Feb 2023 21:05:29 UTC
The branch main has been updated by markj:

URL: https://cgit.FreeBSD.org/src/commit/?id=317fa5169d35c508a05c520a764630252adebea8

commit 317fa5169d35c508a05c520a764630252adebea8
Author:     Mark Johnston <markj@FreeBSD.org>
AuthorDate: 2023-02-28 20:57:21 +0000
Commit:     Mark Johnston <markj@FreeBSD.org>
CommitDate: 2023-02-28 20:57:21 +0000

    netinet: Remove the IP(V6)_RSS_LISTEN_BUCKET socket option
    
    It has no effect, and an exp-run revealed that it is not in use.
    
    PR:             261398 (exp-run)
    Reviewed by:    mjg, glebius
    Sponsored by:   Klara, Inc.
    Differential Revision:  https://reviews.freebsd.org/D38822
---
 sys/netinet/in.h          |  3 ++-
 sys/netinet/in_pcb.c      |  1 -
 sys/netinet/in_pcb.h      |  6 +++---
 sys/netinet/ip_output.c   | 14 +-------------
 sys/netinet6/in6.h        |  4 ++--
 sys/netinet6/ip6_output.c | 16 ----------------
 6 files changed, 8 insertions(+), 36 deletions(-)

diff --git a/sys/netinet/in.h b/sys/netinet/in.h
index 99809b3ebaa4..0106f55e1f1a 100644
--- a/sys/netinet/in.h
+++ b/sys/netinet/in.h
@@ -463,7 +463,8 @@ VNET_DECLARE(uint32_t, in_loopback_mask);
 				     /* unused; was IP_FAITH */
 #define	IP_ONESBCAST		23   /* bool: send all-ones broadcast */
 #define	IP_BINDANY		24   /* bool: allow bind to any address */
-#define	IP_RSS_LISTEN_BUCKET	26   /* int; set RSS listen bucket */
+				     /* unused; was IP_BIND_MULTI */
+				     /* unused; was IP_RSS_LISTEN_BUCKET */
 #define	IP_ORIGDSTADDR		27   /* bool: receive IP dst addr/port w/dgram */
 #define	IP_RECVORIGDSTADDR      IP_ORIGDSTADDR
 
diff --git a/sys/netinet/in_pcb.c b/sys/netinet/in_pcb.c
index ce95ece8f5f2..5768979f21e0 100644
--- a/sys/netinet/in_pcb.c
+++ b/sys/netinet/in_pcb.c
@@ -2645,7 +2645,6 @@ in_pcbtoxinpcb(const struct inpcb *inp, struct xinpcb *xi)
 	xi->inp_flowtype = inp->inp_flowtype;
 	xi->inp_flags = inp->inp_flags;
 	xi->inp_flags2 = inp->inp_flags2;
-	xi->inp_rss_listen_bucket = inp->inp_rss_listen_bucket;
 	xi->in6p_cksum = inp->in6p_cksum;
 	xi->in6p_hops = inp->in6p_hops;
 	xi->inp_ip_tos = inp->inp_ip_tos;
diff --git a/sys/netinet/in_pcb.h b/sys/netinet/in_pcb.h
index 9ab9ed87528e..f8a2a311cf4e 100644
--- a/sys/netinet/in_pcb.h
+++ b/sys/netinet/in_pcb.h
@@ -263,7 +263,6 @@ struct inpcb {
 	uint32_t inp_flowid;		/* (x) flow id / queue id */
 	struct m_snd_tag *inp_snd_tag;	/* (i) send tag for outgoing mbufs */
 	uint32_t inp_flowtype;		/* (x) M_HASHTYPE value */
-	uint32_t inp_rss_listen_bucket;	/* (x) overridden RSS listen bucket */
 
 	/* Local and foreign ports, local and foreign addr. */
 	struct	in_conninfo inp_inc;	/* (i) list for PCB's local port */
@@ -347,7 +346,7 @@ struct xinpcb {
 	uint32_t	inp_flowtype;		/* (s) */
 	int32_t		inp_flags;		/* (s,p) */
 	int32_t		inp_flags2;		/* (s) */
-	int32_t		inp_rss_listen_bucket;	/* (n) */
+	uint32_t	inp_unused;
 	int32_t		in6p_cksum;		/* (n) */
 	int32_t		inp_spare32[4];
 	uint16_t	in6p_hops;		/* (n) */
@@ -669,7 +668,8 @@ int	inp_so_options(const struct inpcb *inp);
 #define	INP_REUSEPORT		0x00000008 /* SO_REUSEPORT option is set */
 /*				0x00000010 */
 #define	INP_REUSEADDR		0x00000020 /* SO_REUSEADDR option is set */
-#define	INP_RSS_BUCKET_SET	0x00000080 /* IP_RSS_LISTEN_BUCKET is set */
+/*				0x00000040 */
+/*				0x00000080 */
 #define	INP_RECVFLOWID		0x00000100 /* populate recv datagram with flow info */
 #define	INP_RECVRSSBUCKETID	0x00000200 /* populate recv datagram with bucket id */
 #define	INP_RATE_LIMIT_CHANGED	0x00000400 /* rate limit needs attention */
diff --git a/sys/netinet/ip_output.c b/sys/netinet/ip_output.c
index 13ba15050769..ceae756affa3 100644
--- a/sys/netinet/ip_output.c
+++ b/sys/netinet/ip_output.c
@@ -1166,9 +1166,6 @@ ip_ctloutput(struct socket *so, struct sockopt *sopt)
 					break;
 			}
 			/* FALLTHROUGH */
-#ifdef	RSS
-		case IP_RSS_LISTEN_BUCKET:
-#endif
 		case IP_TOS:
 		case IP_TTL:
 		case IP_MINTTL:
@@ -1264,16 +1261,7 @@ ip_ctloutput(struct socket *so, struct sockopt *sopt)
 			case IP_RECVFLOWID:
 				OPTSET2(INP_RECVFLOWID, optval);
 				break;
-#ifdef	RSS
-			case IP_RSS_LISTEN_BUCKET:
-				if ((optval >= 0) &&
-				    (optval < rss_getnumbuckets())) {
-					inp->inp_rss_listen_bucket = optval;
-					OPTSET2(INP_RSS_BUCKET_SET, 1);
-				} else {
-					error = EINVAL;
-				}
-				break;
+#ifdef RSS
 			case IP_RECVRSSBUCKETID:
 				OPTSET2(INP_RECVRSSBUCKETID, optval);
 				break;
diff --git a/sys/netinet6/in6.h b/sys/netinet6/in6.h
index 23a31010d081..41fe07fe093d 100644
--- a/sys/netinet6/in6.h
+++ b/sys/netinet6/in6.h
@@ -483,8 +483,8 @@ struct route_in6 {
 				    */
 
 #define	IPV6_BINDANY		64 /* bool: allow bind to any address */
-
-#define	IPV6_RSS_LISTEN_BUCKET	66 /* int; set RSS listen bucket */
+				   /* unused; was IPV6_BIND_MULTI */
+				   /* unused; was IPV6_RSS_LISTEN_BUCKET */
 #define	IPV6_FLOWID		67 /* int; flowid of given socket */
 #define	IPV6_FLOWTYPE		68 /* int; flowtype of given socket */
 #define	IPV6_RSSBUCKETID	69 /* int; RSS bucket ID of given socket */
diff --git a/sys/netinet6/ip6_output.c b/sys/netinet6/ip6_output.c
index 01c6ba5b41d4..59ac04842854 100644
--- a/sys/netinet6/ip6_output.c
+++ b/sys/netinet6/ip6_output.c
@@ -1752,9 +1752,6 @@ ip6_ctloutput(struct socket *so, struct sockopt *sopt)
 			case IPV6_AUTOFLOWLABEL:
 			case IPV6_ORIGDSTADDR:
 			case IPV6_BINDANY:
-#ifdef	RSS
-			case IPV6_RSS_LISTEN_BUCKET:
-#endif
 			case IPV6_VLAN_PCP:
 				if (optname == IPV6_BINDANY && td != NULL) {
 					error = priv_check(td,
@@ -1932,19 +1929,6 @@ do {									\
 				case IPV6_BINDANY:
 					OPTSET(INP_BINDANY);
 					break;
-#ifdef	RSS
-				case IPV6_RSS_LISTEN_BUCKET:
-					if ((optval >= 0) &&
-					    (optval < rss_getnumbuckets())) {
-						INP_WLOCK(inp);
-						inp->inp_rss_listen_bucket = optval;
-						OPTSET2_N(INP_RSS_BUCKET_SET, 1);
-						INP_WUNLOCK(inp);
-					} else {
-						error = EINVAL;
-					}
-					break;
-#endif
 				case IPV6_VLAN_PCP:
 					if ((optval >= -1) && (optval <=
 					    (INP_2PCP_MASK >> INP_2PCP_SHIFT))) {