diff options
author | Frank Blaschka <frank.blaschka@de.ibm.com> | 2008-04-24 04:15:22 -0400 |
---|---|---|
committer | Jeff Garzik <jgarzik@redhat.com> | 2008-04-29 01:56:31 -0400 |
commit | 213298f862d10ade909bdb7d833493d4bdad683d (patch) | |
tree | 79139717992ce400198604a131a017e571c6eb20 /drivers/s390 | |
parent | cd023216e64cc0359ec51312bef14ef2449535dd (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>
Diffstat (limited to 'drivers/s390')
-rw-r--r-- | drivers/s390/net/qeth_l3_main.c | 7 |
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 | ||