mirror of
https://github.com/opnsense/src.git
synced 2026-04-24 15:48:48 -04:00
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
a0d66e9e92
commit
08e5736618
1 changed files with 21 additions and 0 deletions
|
|
@ -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 a new issue