summaryrefslogtreecommitdiffstats
path: root/drivers/net/s2io.h
diff options
context:
space:
mode:
authorSreenivasa Honnur <Sreenivasa.Honnur@neterion.com>2008-02-20 17:09:15 -0500
committerJeff Garzik <jeff@garzik.org>2008-03-17 07:49:26 -0400
commitcdb5bf02f4fc0507518ea6b93c21b2707336ffef (patch)
treef750a05ea98b9f4ef3263b69b956fb26b80a15db /drivers/net/s2io.h
parent6cfc482b4b1c512d81712eba41fa324b24e5e7b2 (diff)
downloadlinux-cdb5bf02f4fc0507518ea6b93c21b2707336ffef.tar.gz
linux-cdb5bf02f4fc0507518ea6b93c21b2707336ffef.tar.bz2
linux-cdb5bf02f4fc0507518ea6b93c21b2707336ffef.zip
S2io: Support for vlan_rx_kill_vid entry point
- Resubmit #3 - Added s2io_vlan_rx_kill_vid entry point function for unregistering vlan. - Fix to aggregate vlan packets. IP offset is incremented by 4 bytes if the packet contains vlan header. Signed-off-by: Surjit Reang <surjit.reang@neterion.com> Signed-off-by: Ramkrishna Vepa <ram.vepa@neterion.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/net/s2io.h')
-rw-r--r--drivers/net/s2io.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/net/s2io.h b/drivers/net/s2io.h
index 5e351c0879fa..e68fdf7e4260 100644
--- a/drivers/net/s2io.h
+++ b/drivers/net/s2io.h
@@ -546,6 +546,7 @@ struct RxD_t {
#define RXD_OWN_XENA s2BIT(7)
#define RXD_T_CODE (s2BIT(12)|s2BIT(13)|s2BIT(14)|s2BIT(15))
#define RXD_FRAME_PROTO vBIT(0xFFFF,24,8)
+#define RXD_FRAME_VLAN_TAG s2BIT(24)
#define RXD_FRAME_PROTO_IPV4 s2BIT(27)
#define RXD_FRAME_PROTO_IPV6 s2BIT(28)
#define RXD_FRAME_IP_FRAG s2BIT(29)
@@ -829,10 +830,11 @@ struct lro {
int sg_num;
int in_use;
__be16 window;
+ u16 vlan_tag;
u32 cur_tsval;
__be32 cur_tsecr;
u8 saw_ts;
-};
+} ____cacheline_aligned;
/* These flags represent the devices temporary state */
enum s2io_device_state_t
@@ -1129,7 +1131,7 @@ static int
s2io_club_tcp_session(u8 *buffer, u8 **tcp, u32 *tcp_len, struct lro **lro,
struct RxD_t *rxdp, struct s2io_nic *sp);
static void clear_lro_session(struct lro *lro);
-static void queue_rx_frame(struct sk_buff *skb);
+static void queue_rx_frame(struct sk_buff *skb, u16 vlan_tag);
static void update_L3L4_header(struct s2io_nic *sp, struct lro *lro);
static void lro_append_pkt(struct s2io_nic *sp, struct lro *lro,
struct sk_buff *skb, u32 tcp_len);