Module Name: src Committed By: roy Date: Tue Sep 29 19:33:36 UTC 2020
Modified Files: src/sys/netinet: in.c src/sys/netinet6: in6.c Log Message: 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.240 -r1.241 src/sys/netinet/in.c cvs rdiff -u -r1.281 -r1.282 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.240 src/sys/netinet/in.c:1.241 --- src/sys/netinet/in.c:1.240 Fri Sep 11 15:22:12 2020 +++ src/sys/netinet/in.c Tue Sep 29 19:33:36 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: in.c,v 1.240 2020/09/11 15:22:12 roy Exp $ */ +/* $NetBSD: in.c,v 1.241 2020/09/29 19:33:36 roy 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.240 2020/09/11 15:22:12 roy Exp $"); +__KERNEL_RCSID(0, "$NetBSD: in.c,v 1.241 2020/09/29 19:33:36 roy Exp $"); #include "arp.h" @@ -1579,14 +1579,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.281 src/sys/netinet6/in6.c:1.282 --- src/sys/netinet6/in6.c:1.281 Tue Jun 16 17:12:18 2020 +++ src/sys/netinet6/in6.c Tue Sep 29 19:33:36 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: in6.c,v 1.281 2020/06/16 17:12:18 maxv Exp $ */ +/* $NetBSD: in6.c,v 1.282 2020/09/29 19:33:36 roy 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.281 2020/06/16 17:12:18 maxv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: in6.c,v 1.282 2020/09/29 19:33:36 roy Exp $"); #ifdef _KERNEL_OPT #include "opt_inet.h" @@ -2250,14 +2250,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; - } } int