On 15/04/16 17:48, Michael Brown wrote:
On 15/04/16 17:19, Ladi Prosek wrote:
These patches add a small tweak to vlan_rx to make it accept
priority tagged packets. Since this should be supported even
without full VLAN support,

Why must this be supported when VLAN is not enabled as a feature?

I have a preference for a simpler patch such as:

diff --git a/src/net/vlan.c b/src/net/vlan.c
index f515c2d..a30a0d7 100644
--- a/src/net/vlan.c
+++ b/src/net/vlan.c
@@ -203,6 +203,11 @@ struct net_device * vlan_find ( struct net_device *trunk, unsigned int tag ) {
        struct net_device *netdev;
        struct vlan_device *vlan;

+       /* VLAN 0 represents a priority-tagged packet on the trunk device */
+       if ( ! tag )
+               return trunk;
+
+       /* Find VLAN device */
        for_each_netdev ( netdev ) {
                if ( netdev->op != &vlan_operations )
                        continue;
@@ -340,6 +346,12 @@ int vlan_create ( struct net_device *trunk, unsigned int tag,
        struct vlan_device *vlan;
        int rc;

+       /* VLAN 0 is not permitted */
+       if ( ! tag ) {
+               DBGC ( trunk, "VLAN %s cannot create VLAN 0\n", trunk->name );
+               return -ENOTTY;
+       }
+
        /* If VLAN already exists, just update the priority */
        if ( ( netdev = vlan_find ( trunk, tag ) ) != NULL ) {
                vlan = netdev->priv;


but I'm prepared to be swayed if there are good reasons otherwise.

Michael
_______________________________________________
ipxe-devel mailing list
ipxe-devel@lists.ipxe.org
https://lists.ipxe.org/mailman/listinfo.cgi/ipxe-devel

Reply via email to