From 2e4531a12bfbc2afef6a6c8a9a73f167b0365626 Mon Sep 17 00:00:00 2001 From: "Andrey V. Elsukov" Date: Wed, 9 May 2018 10:50:51 +0000 Subject: [PATCH] Add IFCAP_LINKSTATE support to if_loop(4). Reviewed by: wollman Obtained from: Yandex LLC MFC after: 3 weeks Differential Revision: https://reviews.freebsd.org/D15278 --- sys/net/if_loop.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sys/net/if_loop.c b/sys/net/if_loop.c index d5f338b4a73..c8a47cba6e6 100644 --- a/sys/net/if_loop.c +++ b/sys/net/if_loop.c @@ -136,7 +136,7 @@ lo_clone_create(struct if_clone *ifc, int unit, caddr_t params) ifp->if_output = looutput; ifp->if_snd.ifq_maxlen = ifqmaxlen; ifp->if_capabilities = ifp->if_capenable = - IFCAP_HWCSUM | IFCAP_HWCSUM_IPV6; + IFCAP_HWCSUM | IFCAP_HWCSUM_IPV6 | IFCAP_LINKSTATE; ifp->if_hwassist = LO_CSUM_FEATURES | LO_CSUM_FEATURES6; if_attach(ifp); bpfattach(ifp, DLT_NULL, sizeof(u_int32_t)); @@ -413,6 +413,8 @@ loioctl(struct ifnet *ifp, u_long cmd, caddr_t data) break; case SIOCSIFFLAGS: + if_link_state_change(ifp, (ifp->if_flags & IFF_UP) ? + LINK_STATE_UP: LINK_STATE_DOWN); break; case SIOCSIFCAP: