aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrank Blaschka <frank.blaschka@de.ibm.com>2008-04-24 04:15:22 -0400
committerJeff Garzik <jgarzik@redhat.com>2008-04-29 01:56:31 -0400
commit213298f862d10ade909bdb7d833493d4bdad683d (patch)
tree79139717992ce400198604a131a017e571c6eb20
parentcd023216e64cc0359ec51312bef14ef2449535dd (diff)
qeth: layer 3 support vlan IPv6 on hiper socket
hiper socket require the QETH_HDR_EXT_VLAN_FRAME flag in the qdio header to handle vlan tagged frames. Signed-off-by: Frank Blaschka <frank.blaschka@de.ibm.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
-rw-r--r--drivers/s390/net/qeth_l3_main.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/s390/net/qeth_l3_main.c b/drivers/s390/net/qeth_l3_main.c
index 62a54364a512..f385e93d757a 100644
--- a/drivers/s390/net/qeth_l3_main.c
+++ b/drivers/s390/net/qeth_l3_main.c
@@ -2568,9 +2568,10 @@ static void qeth_l3_fill_header(struct qeth_card *card, struct qeth_hdr *hdr,
2568 * v6 uses passthrough, v4 sets the tag in the QDIO header. 2568 * v6 uses passthrough, v4 sets the tag in the QDIO header.
2569 */ 2569 */
2570 if (card->vlangrp && vlan_tx_tag_present(skb)) { 2570 if (card->vlangrp && vlan_tx_tag_present(skb)) {
2571 hdr->hdr.l3.ext_flags = (ipv == 4) ? 2571 if ((ipv == 4) || (card->info.type == QETH_CARD_TYPE_IQD))
2572 QETH_HDR_EXT_VLAN_FRAME : 2572 hdr->hdr.l3.ext_flags = QETH_HDR_EXT_VLAN_FRAME;
2573 QETH_HDR_EXT_INCLUDE_VLAN_TAG; 2573 else
2574 hdr->hdr.l3.ext_flags = QETH_HDR_EXT_INCLUDE_VLAN_TAG;
2574 hdr->hdr.l3.vlan_id = vlan_tx_tag_get(skb); 2575 hdr->hdr.l3.vlan_id = vlan_tx_tag_get(skb);
2575 } 2576 }
2576 2577