Handle SIOCSIFCAP by propogating the request to the parent interface. This
allows adding an vlan interface into a bridge. Thanks for William Katsak <wkatsak cs rutgers edu> for testing and fixing an issue in my previous patch draft. MFC after: 2 weeks
This commit is contained in:
parent
989552348a
commit
e422dfb4e0
@ -1775,6 +1775,27 @@ vlan_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
|
||||
}
|
||||
break;
|
||||
|
||||
case SIOCSIFCAP:
|
||||
VLAN_LOCK();
|
||||
if (TRUNK(ifv) != NULL) {
|
||||
p = PARENT(ifv);
|
||||
VLAN_UNLOCK();
|
||||
if ((p->if_type != IFT_ETHER) &&
|
||||
(ifr->ifr_reqcap & IFCAP_VLAN_HWTAGGING) == 0) {
|
||||
error = EINVAL;
|
||||
break;
|
||||
}
|
||||
error = (*p->if_ioctl)(p, cmd, data);
|
||||
if (error)
|
||||
break;
|
||||
/* Propogate vlan interface capabilities */
|
||||
vlan_trunk_capabilities(p);
|
||||
} else {
|
||||
VLAN_UNLOCK();
|
||||
error = EINVAL;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
error = EINVAL;
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user