From 5273c2748cbe48ad1fdc19d5f3026b3f10fa5057 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Wed, 1 Dec 2010 18:46:50 +0000 Subject: [PATCH] [vlan] Expose vlan_find() to network card drivers Some network cards automatically strip the VLAN header, providing the VLAN tag via a side channel such as a completion queue entry. These cards need to be able to report receive completions directly against the relevant VLAN device. Signed-off-by: Michael Brown --- src/include/ipxe/vlan.h | 2 ++ src/net/vlan.c | 3 +-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/include/ipxe/vlan.h b/src/include/ipxe/vlan.h index c9a9821a..d9f4484e 100644 --- a/src/include/ipxe/vlan.h +++ b/src/include/ipxe/vlan.h @@ -59,6 +59,8 @@ struct vlan_header { */ #define VLAN_PRIORITY_IS_VALID( priority ) ( (priority) <= 7 ) +extern struct net_device * vlan_find ( struct net_device *trunk, + unsigned int tag ); extern int vlan_can_be_trunk ( struct net_device *trunk ); extern int vlan_create ( struct net_device *trunk, unsigned int tag, unsigned int priority ); diff --git a/src/net/vlan.c b/src/net/vlan.c index 4440fd84..9ac560f1 100644 --- a/src/net/vlan.c +++ b/src/net/vlan.c @@ -193,8 +193,7 @@ static void vlan_sync ( struct net_device *netdev ) { * @v tag VLAN tag * @ret netdev VLAN device, if any */ -static struct net_device * vlan_find ( struct net_device *trunk, - uint16_t tag ) { +struct net_device * vlan_find ( struct net_device *trunk, unsigned int tag ) { struct net_device *netdev; struct vlan_device *vlan;