mirror of
https://github.com/ipxe/ipxe
synced 2026-02-28 03:11:18 +03:00
[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>
This commit is contained in:
@@ -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;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user