summaryrefslogtreecommitdiffstats
path: root/sys/net/if_vlan.c
diff options
context:
space:
mode:
authorjkh <jkh@FreeBSD.org>1999-12-13 01:38:14 +0000
committerjkh <jkh@FreeBSD.org>1999-12-13 01:38:14 +0000
commit72de1aee50403c65a63d9fd52176203f003a5441 (patch)
treead1bb101d2b0621410e91881efc38dfeddee971d /sys/net/if_vlan.c
parentab8c17ad2638c8b4eed989bda4a07d0b53d0327c (diff)
downloadFreeBSD-src-72de1aee50403c65a63d9fd52176203f003a5441.zip
FreeBSD-src-72de1aee50403c65a63d9fd52176203f003a5441.tar.gz
sys/net/if_vlan.c fails to maintain the IFF_RUNNING flag on the
vlan interfaces it manages. This prevents the interface from actually sending or receiving data. Submitted by: C. Stephen Gunn <csg@waterspout.com> PR: 15290
Diffstat (limited to 'sys/net/if_vlan.c')
-rw-r--r--sys/net/if_vlan.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/net/if_vlan.c b/sys/net/if_vlan.c
index bc0de3a..d8639d4 100644
--- a/sys/net/if_vlan.c
+++ b/sys/net/if_vlan.c
@@ -272,7 +272,7 @@ vlan_start(struct ifnet *ifp)
return;
}
-void
+int
vlan_input_tag(struct ether_header *eh, struct mbuf *m, u_int16_t t)
{
int i;
@@ -509,7 +509,7 @@ vlan_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
if (vlr.vlr_parent[0] == '\0') {
vlan_unconfig(ifp);
if_down(ifp);
- ifp->if_flags = 0;
+ ifp->if_flags &= ~(IFF_UP|IFF_RUNNING);
break;
}
p = ifunit(vlr.vlr_parent);
@@ -521,6 +521,7 @@ vlan_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
if (error)
break;
ifv->ifv_tag = vlr.vlr_tag;
+ ifp->if_flags |= IFF_RUNNING;
break;
case SIOCGETVLAN:
OpenPOWER on IntegriCloud