mirror of https://github.com/ipxe/ipxe.git
[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 <mcb30@ipxe.org>pull/1/head
parent
51a9e517f2
commit
5273c2748c
|
@ -59,6 +59,8 @@ struct vlan_header {
|
||||||
*/
|
*/
|
||||||
#define VLAN_PRIORITY_IS_VALID( priority ) ( (priority) <= 7 )
|
#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_can_be_trunk ( struct net_device *trunk );
|
||||||
extern int vlan_create ( struct net_device *trunk, unsigned int tag,
|
extern int vlan_create ( struct net_device *trunk, unsigned int tag,
|
||||||
unsigned int priority );
|
unsigned int priority );
|
||||||
|
|
|
@ -193,8 +193,7 @@ static void vlan_sync ( struct net_device *netdev ) {
|
||||||
* @v tag VLAN tag
|
* @v tag VLAN tag
|
||||||
* @ret netdev VLAN device, if any
|
* @ret netdev VLAN device, if any
|
||||||
*/
|
*/
|
||||||
static struct net_device * vlan_find ( struct net_device *trunk,
|
struct net_device * vlan_find ( struct net_device *trunk, unsigned int tag ) {
|
||||||
uint16_t tag ) {
|
|
||||||
struct net_device *netdev;
|
struct net_device *netdev;
|
||||||
struct vlan_device *vlan;
|
struct vlan_device *vlan;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue