summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/net/if_vlan.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/sys/net/if_vlan.c b/sys/net/if_vlan.c
index 1be2888..54c4833 100644
--- a/sys/net/if_vlan.c
+++ b/sys/net/if_vlan.c
@@ -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;
OpenPOWER on IntegriCloud