Module Name:    src
Committed By:   martin
Date:           Thu Oct  8 18:05:00 UTC 2020

Modified Files:
        src/sys/netinet [netbsd-9]: in.c
        src/sys/netinet6 [netbsd-9]: in6.c

Log Message:
Pull up following revision(s) (requested by roy in ticket #1104):

        sys/netinet/in.c: revision 1.241
        sys/netinet6/in6.c: revision 1.282

inet: Treat LINK_STATE_UNKNOWN as LINK_STATE_UP when changing

It's something we have always done.
it's really rare for anything to transition to UNKNOWN from either
UP or DOWN, but technically it is possible.


To generate a diff of this commit:
cvs rdiff -u -r1.234 -r1.234.2.1 src/sys/netinet/in.c
cvs rdiff -u -r1.275 -r1.275.2.1 src/sys/netinet6/in6.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/netinet/in.c
diff -u src/sys/netinet/in.c:1.234 src/sys/netinet/in.c:1.234.2.1
--- src/sys/netinet/in.c:1.234	Mon Apr 29 11:57:22 2019
+++ src/sys/netinet/in.c	Thu Oct  8 18:04:59 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: in.c,v 1.234 2019/04/29 11:57:22 roy Exp $	*/
+/*	$NetBSD: in.c,v 1.234.2.1 2020/10/08 18:04:59 martin Exp $	*/
 
 /*
  * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
@@ -91,7 +91,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: in.c,v 1.234 2019/04/29 11:57:22 roy Exp $");
+__KERNEL_RCSID(0, "$NetBSD: in.c,v 1.234.2.1 2020/10/08 18:04:59 martin Exp $");
 
 #include "arp.h"
 
@@ -1555,14 +1555,15 @@ void
 in_if_link_state_change(struct ifnet *ifp, int link_state)
 {
 
-	switch (link_state) {
-	case LINK_STATE_DOWN:
+	/*
+	 * Treat LINK_STATE_UNKNOWN as UP.
+	 * LINK_STATE_UNKNOWN transitions to LINK_STATE_DOWN when
+	 * if_link_state_change() transitions to LINK_STATE_UP.
+	 */
+	if (link_state == LINK_STATE_DOWN)
 		in_if_link_down(ifp);
-		break;
-	case LINK_STATE_UP:
+	else
 		in_if_link_up(ifp);
-		break;
-	}
 }
 
 /*

Index: src/sys/netinet6/in6.c
diff -u src/sys/netinet6/in6.c:1.275 src/sys/netinet6/in6.c:1.275.2.1
--- src/sys/netinet6/in6.c:1.275	Mon Apr 29 11:57:22 2019
+++ src/sys/netinet6/in6.c	Thu Oct  8 18:04:59 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: in6.c,v 1.275 2019/04/29 11:57:22 roy Exp $	*/
+/*	$NetBSD: in6.c,v 1.275.2.1 2020/10/08 18:04:59 martin Exp $	*/
 /*	$KAME: in6.c,v 1.198 2001/07/18 09:12:38 itojun Exp $	*/
 
 /*
@@ -62,7 +62,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: in6.c,v 1.275 2019/04/29 11:57:22 roy Exp $");
+__KERNEL_RCSID(0, "$NetBSD: in6.c,v 1.275.2.1 2020/10/08 18:04:59 martin Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_inet.h"
@@ -2324,14 +2324,15 @@ void
 in6_if_link_state_change(struct ifnet *ifp, int link_state)
 {
 
-	switch (link_state) {
-	case LINK_STATE_DOWN:
+	/*
+	 * Treat LINK_STATE_UNKNOWN as UP.
+	 * LINK_STATE_UNKNOWN transitions to LINK_STATE_DOWN when
+	 * if_link_state_change() transitions to LINK_STATE_UP.
+	 */
+	if (link_state == LINK_STATE_DOWN)
 		in6_if_link_down(ifp);
-		break;
-	case LINK_STATE_UP:
+	else
 		in6_if_link_up(ifp);
-		break;
-	}
 }
 
 /*

Reply via email to