vlan: clean up hard_start_xmit functions
Remove excessive comments and debugging, use NETDEV_TX codes, remove some empty lines. Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
1349fe9a6b
Коммит
d80aa31bbf
|
@ -307,53 +307,31 @@ static int vlan_dev_hard_start_xmit(struct sk_buff *skb, struct net_device *dev)
|
||||||
* NOTE: THIS ASSUMES DIX ETHERNET, SPECIFICALLY NOT SUPPORTING
|
* NOTE: THIS ASSUMES DIX ETHERNET, SPECIFICALLY NOT SUPPORTING
|
||||||
* OTHER THINGS LIKE FDDI/TokenRing/802.3 SNAPs...
|
* OTHER THINGS LIKE FDDI/TokenRing/802.3 SNAPs...
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (veth->h_vlan_proto != htons(ETH_P_8021Q) ||
|
if (veth->h_vlan_proto != htons(ETH_P_8021Q) ||
|
||||||
vlan_dev_info(dev)->flags & VLAN_FLAG_REORDER_HDR) {
|
vlan_dev_info(dev)->flags & VLAN_FLAG_REORDER_HDR) {
|
||||||
int orig_headroom = skb_headroom(skb);
|
unsigned int orig_headroom = skb_headroom(skb);
|
||||||
u16 vlan_tci;
|
u16 vlan_tci;
|
||||||
|
|
||||||
/* This is not a VLAN frame...but we can fix that! */
|
|
||||||
vlan_dev_info(dev)->cnt_encap_on_xmit++;
|
vlan_dev_info(dev)->cnt_encap_on_xmit++;
|
||||||
|
|
||||||
pr_debug("%s: proto to encap: 0x%hx\n",
|
|
||||||
__func__, ntohs(veth->h_vlan_proto));
|
|
||||||
/* Construct the second two bytes. This field looks something
|
|
||||||
* like:
|
|
||||||
* usr_priority: 3 bits (high bits)
|
|
||||||
* CFI 1 bit
|
|
||||||
* VLAN ID 12 bits (low bits)
|
|
||||||
*/
|
|
||||||
vlan_tci = vlan_dev_info(dev)->vlan_id;
|
vlan_tci = vlan_dev_info(dev)->vlan_id;
|
||||||
vlan_tci |= vlan_dev_get_egress_qos_mask(dev, skb);
|
vlan_tci |= vlan_dev_get_egress_qos_mask(dev, skb);
|
||||||
|
|
||||||
skb = __vlan_put_tag(skb, vlan_tci);
|
skb = __vlan_put_tag(skb, vlan_tci);
|
||||||
if (!skb) {
|
if (!skb) {
|
||||||
stats->tx_dropped++;
|
stats->tx_dropped++;
|
||||||
return 0;
|
return NETDEV_TX_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (orig_headroom < VLAN_HLEN)
|
if (orig_headroom < VLAN_HLEN)
|
||||||
vlan_dev_info(dev)->cnt_inc_headroom_on_tx++;
|
vlan_dev_info(dev)->cnt_inc_headroom_on_tx++;
|
||||||
}
|
}
|
||||||
|
|
||||||
pr_debug("%s: about to send skb: %p to dev: %s\n",
|
stats->tx_packets++;
|
||||||
__func__, skb, skb->dev->name);
|
|
||||||
pr_debug(" " MAC_FMT " " MAC_FMT " %4hx %4hx %4hx\n",
|
|
||||||
veth->h_dest[0], veth->h_dest[1], veth->h_dest[2],
|
|
||||||
veth->h_dest[3], veth->h_dest[4], veth->h_dest[5],
|
|
||||||
veth->h_source[0], veth->h_source[1], veth->h_source[2],
|
|
||||||
veth->h_source[3], veth->h_source[4], veth->h_source[5],
|
|
||||||
veth->h_vlan_proto, veth->h_vlan_TCI,
|
|
||||||
veth->h_vlan_encapsulated_proto);
|
|
||||||
|
|
||||||
stats->tx_packets++; /* for statics only */
|
|
||||||
stats->tx_bytes += skb->len;
|
stats->tx_bytes += skb->len;
|
||||||
|
|
||||||
skb->dev = vlan_dev_info(dev)->real_dev;
|
skb->dev = vlan_dev_info(dev)->real_dev;
|
||||||
dev_queue_xmit(skb);
|
dev_queue_xmit(skb);
|
||||||
|
return NETDEV_TX_OK;
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int vlan_dev_hwaccel_hard_start_xmit(struct sk_buff *skb,
|
static int vlan_dev_hwaccel_hard_start_xmit(struct sk_buff *skb,
|
||||||
|
@ -362,12 +340,6 @@ static int vlan_dev_hwaccel_hard_start_xmit(struct sk_buff *skb,
|
||||||
struct net_device_stats *stats = &dev->stats;
|
struct net_device_stats *stats = &dev->stats;
|
||||||
u16 vlan_tci;
|
u16 vlan_tci;
|
||||||
|
|
||||||
/* Construct the second two bytes. This field looks something
|
|
||||||
* like:
|
|
||||||
* usr_priority: 3 bits (high bits)
|
|
||||||
* CFI 1 bit
|
|
||||||
* VLAN ID 12 bits (low bits)
|
|
||||||
*/
|
|
||||||
vlan_tci = vlan_dev_info(dev)->vlan_id;
|
vlan_tci = vlan_dev_info(dev)->vlan_id;
|
||||||
vlan_tci |= vlan_dev_get_egress_qos_mask(dev, skb);
|
vlan_tci |= vlan_dev_get_egress_qos_mask(dev, skb);
|
||||||
skb = __vlan_hwaccel_put_tag(skb, vlan_tci);
|
skb = __vlan_hwaccel_put_tag(skb, vlan_tci);
|
||||||
|
@ -377,8 +349,7 @@ static int vlan_dev_hwaccel_hard_start_xmit(struct sk_buff *skb,
|
||||||
|
|
||||||
skb->dev = vlan_dev_info(dev)->real_dev;
|
skb->dev = vlan_dev_info(dev)->real_dev;
|
||||||
dev_queue_xmit(skb);
|
dev_queue_xmit(skb);
|
||||||
|
return NETDEV_TX_OK;
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int vlan_dev_change_mtu(struct net_device *dev, int new_mtu)
|
static int vlan_dev_change_mtu(struct net_device *dev, int new_mtu)
|
||||||
|
|
Загрузка…
Ссылка в новой задаче