diff options
author | jkh <jkh@FreeBSD.org> | 1999-12-13 01:38:14 +0000 |
---|---|---|
committer | jkh <jkh@FreeBSD.org> | 1999-12-13 01:38:14 +0000 |
commit | 72de1aee50403c65a63d9fd52176203f003a5441 (patch) | |
tree | ad1bb101d2b0621410e91881efc38dfeddee971d /sys/net | |
parent | ab8c17ad2638c8b4eed989bda4a07d0b53d0327c (diff) | |
download | FreeBSD-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')
-rw-r--r-- | sys/net/if_vlan.c | 5 |
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: |