Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 22 Feb 2025 02:12:46 GMT
From:      Gleb Smirnoff <glebius@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: 532106f7aa29 - main - netinet: use in_broadcast() inline
Message-ID:  <202502220212.51M2CktR099284@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by glebius:

URL: https://cgit.FreeBSD.org/src/commit/?id=532106f7aa29a5879a168030ec43119d47ee2bd5

commit 532106f7aa29a5879a168030ec43119d47ee2bd5
Author:     Gleb Smirnoff <glebius@FreeBSD.org>
AuthorDate: 2025-02-22 02:11:06 +0000
Commit:     Gleb Smirnoff <glebius@FreeBSD.org>
CommitDate: 2025-02-22 02:11:06 +0000

    netinet: use in_broadcast() inline
    
    There should be no functional change.
    
    Reviewed by:            rrs, markj
    Differential Revision:  https://reviews.freebsd.org/D49088
---
 sys/netinet/in.c          | 2 +-
 sys/netinet/in_jail.c     | 8 +-------
 sys/netinet/ip_fastfwd.c  | 8 +++-----
 sys/netinet/ip_icmp.c     | 9 ++-------
 sys/netinet/ip_input.c    | 4 +---
 sys/netinet/sctp_output.c | 6 ++----
 sys/netinet/sctp_pcb.c    | 6 ++----
 sys/netinet/sctputil.c    | 3 +--
 8 files changed, 13 insertions(+), 33 deletions(-)

diff --git a/sys/netinet/in.c b/sys/netinet/in.c
index 7d8cbc6725ad..7196eabc123e 100644
--- a/sys/netinet/in.c
+++ b/sys/netinet/in.c
@@ -1299,7 +1299,7 @@ in_ifnet_broadcast(struct in_addr in, struct ifnet *ifp)
 
 	NET_EPOCH_ASSERT();
 
-	if (in.s_addr == INADDR_BROADCAST || in.s_addr == INADDR_ANY)
+	if (in_broadcast(in))
 		return (true);
 	if ((ifp->if_flags & IFF_BROADCAST) == 0)
 		return (false);
diff --git a/sys/netinet/in_jail.c b/sys/netinet/in_jail.c
index 9b6b8f670df1..7b2120f575ca 100644
--- a/sys/netinet/in_jail.c
+++ b/sys/netinet/in_jail.c
@@ -97,13 +97,7 @@ prison_qcmp_v4(const void *ip1, const void *ip2)
 bool
 prison_valid_v4(const void *ip)
 {
-	in_addr_t ia = ((const struct in_addr *)ip)->s_addr;
-
-	/*
-	 * We do not have to care about byte order for these
-	 * checks so we will do them in NBO.
-	 */
-	return (ia != INADDR_ANY && ia != INADDR_BROADCAST);
+	return (!in_broadcast(*(const struct in_addr *)ip));
 }
 
 /*
diff --git a/sys/netinet/ip_fastfwd.c b/sys/netinet/ip_fastfwd.c
index 7a80cce908c1..9b81760e58f3 100644
--- a/sys/netinet/ip_fastfwd.c
+++ b/sys/netinet/ip_fastfwd.c
@@ -278,14 +278,12 @@ ip_tryforward(struct mbuf *m)
 	 */
 	if ((m->m_flags & (M_BCAST|M_MCAST)) ||
 	    (m->m_pkthdr.rcvif->if_flags & IFF_LOOPBACK) ||
-	    ntohl(ip->ip_src.s_addr) == (u_long)INADDR_BROADCAST ||
-	    ntohl(ip->ip_dst.s_addr) == (u_long)INADDR_BROADCAST ||
+	    in_broadcast(ip->ip_src) ||
+	    in_broadcast(ip->ip_dst) ||
 	    IN_MULTICAST(ntohl(ip->ip_src.s_addr)) ||
 	    IN_MULTICAST(ntohl(ip->ip_dst.s_addr)) ||
 	    IN_LINKLOCAL(ntohl(ip->ip_src.s_addr)) ||
-	    IN_LINKLOCAL(ntohl(ip->ip_dst.s_addr)) ||
-	    ip->ip_src.s_addr == INADDR_ANY ||
-	    ip->ip_dst.s_addr == INADDR_ANY )
+	    IN_LINKLOCAL(ntohl(ip->ip_dst.s_addr)) )
 		return m;
 
 	/*
diff --git a/sys/netinet/ip_icmp.c b/sys/netinet/ip_icmp.c
index 2b61820cdaa8..936f76e7fbe3 100644
--- a/sys/netinet/ip_icmp.c
+++ b/sys/netinet/ip_icmp.c
@@ -635,15 +635,10 @@ icmp_input(struct mbuf **mp, int *offp, int proto)
 		 */
 		if (icmplen < ICMP_MASKLEN)
 			break;
-		switch (ip->ip_dst.s_addr) {
-		case INADDR_BROADCAST:
-		case INADDR_ANY:
+		if (in_broadcast(ip->ip_dst))
 			icmpdst.sin_addr = ip->ip_src;
-			break;
-
-		default:
+		else
 			icmpdst.sin_addr = ip->ip_dst;
-		}
 		ia = (struct in_ifaddr *)ifaof_ifpforaddr(
 			    (struct sockaddr *)&icmpdst, m->m_pkthdr.rcvif);
 		if (ia == NULL)
diff --git a/sys/netinet/ip_input.c b/sys/netinet/ip_input.c
index 3c340b376433..08c48996a798 100644
--- a/sys/netinet/ip_input.c
+++ b/sys/netinet/ip_input.c
@@ -789,9 +789,7 @@ passin:
 		 */
 		goto ours;
 	}
-	if (ip->ip_dst.s_addr == (u_long)INADDR_BROADCAST)
-		goto ours;
-	if (ip->ip_dst.s_addr == INADDR_ANY)
+	if (in_broadcast(ip->ip_dst))
 		goto ours;
 	/* RFC 3927 2.7: Do not forward packets to or from IN_LINKLOCAL. */
 	if (IN_LINKLOCAL(ntohl(ip->ip_dst.s_addr)) ||
diff --git a/sys/netinet/sctp_output.c b/sys/netinet/sctp_output.c
index 2a3c0248be60..02ad901259f4 100644
--- a/sys/netinet/sctp_output.c
+++ b/sys/netinet/sctp_output.c
@@ -3655,8 +3655,7 @@ sctp_process_cmsgs_for_init(struct sctp_tcb *stcb, struct mbuf *control, int *er
 				sin.sin_len = sizeof(struct sockaddr_in);
 				sin.sin_port = stcb->rport;
 				m_copydata(control, cmsg_data_off, sizeof(struct in_addr), (caddr_t)&sin.sin_addr);
-				if ((sin.sin_addr.s_addr == INADDR_ANY) ||
-				    (sin.sin_addr.s_addr == INADDR_BROADCAST) ||
+				if (in_broadcast(sin.sin_addr) ||
 				    IN_MULTICAST(ntohl(sin.sin_addr.s_addr))) {
 					*error = EINVAL;
 					return (1);
@@ -3687,8 +3686,7 @@ sctp_process_cmsgs_for_init(struct sctp_tcb *stcb, struct mbuf *control, int *er
 #ifdef INET
 				if (IN6_IS_ADDR_V4MAPPED(&sin6.sin6_addr)) {
 					in6_sin6_2_sin(&sin, &sin6);
-					if ((sin.sin_addr.s_addr == INADDR_ANY) ||
-					    (sin.sin_addr.s_addr == INADDR_BROADCAST) ||
+					if (in_broadcast(sin.sin_addr) ||
 					    IN_MULTICAST(ntohl(sin.sin_addr.s_addr))) {
 						*error = EINVAL;
 						return (1);
diff --git a/sys/netinet/sctp_pcb.c b/sys/netinet/sctp_pcb.c
index 6bbbacfa761e..185530e3bc5e 100644
--- a/sys/netinet/sctp_pcb.c
+++ b/sys/netinet/sctp_pcb.c
@@ -4130,8 +4130,7 @@ sctp_aloc_assoc_locked(struct sctp_inpcb *inp, struct sockaddr *firstaddr,
 
 			sin = (struct sockaddr_in *)firstaddr;
 			if ((ntohs(sin->sin_port) == 0) ||
-			    (sin->sin_addr.s_addr == INADDR_ANY) ||
-			    (sin->sin_addr.s_addr == INADDR_BROADCAST) ||
+			    in_broadcast(sin->sin_addr) ||
 			    IN_MULTICAST(ntohl(sin->sin_addr.s_addr)) ||
 			    ((inp->sctp_flags & SCTP_PCB_FLAGS_BOUND_V6) &&
 			    (SCTP_IPV6_V6ONLY(inp) != 0))) {
@@ -6009,8 +6008,7 @@ sctp_load_addresses_from_init(struct sctp_tcb *stcb, struct mbuf *m,
 					/* Skip multi-cast addresses */
 					goto next_param;
 				}
-				if ((sin.sin_addr.s_addr == INADDR_BROADCAST) ||
-				    (sin.sin_addr.s_addr == INADDR_ANY)) {
+				if (in_broadcast(sin.sin_addr)) {
 					goto next_param;
 				}
 				sa = (struct sockaddr *)&sin;
diff --git a/sys/netinet/sctputil.c b/sys/netinet/sctputil.c
index 17e49b413464..ddfa71d5c7ed 100644
--- a/sys/netinet/sctputil.c
+++ b/sys/netinet/sctputil.c
@@ -6634,8 +6634,7 @@ sctp_connectx_helper_add(struct sctp_tcb *stcb, struct sockaddr *addr,
 		case AF_INET:
 			incr = sizeof(struct sockaddr_in);
 			sin = (struct sockaddr_in *)sa;
-			if ((sin->sin_addr.s_addr == INADDR_ANY) ||
-			    (sin->sin_addr.s_addr == INADDR_BROADCAST) ||
+			if (in_broadcast(sin->sin_addr) ||
 			    IN_MULTICAST(ntohl(sin->sin_addr.s_addr))) {
 				SCTP_LTRACE_ERR_RET(NULL, stcb, NULL, SCTP_FROM_SCTPUTIL, EINVAL);
 				(void)sctp_free_assoc(inp, stcb, SCTP_NORMAL_PROC,



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202502220212.51M2CktR099284>