diff options
author | Sreenivasa Honnur <Sreenivasa.Honnur@neterion.com> | 2008-02-20 17:09:15 -0500 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2008-03-17 07:49:26 -0400 |
commit | cdb5bf02f4fc0507518ea6b93c21b2707336ffef (patch) | |
tree | f750a05ea98b9f4ef3263b69b956fb26b80a15db /drivers/net/s2io.h | |
parent | 6cfc482b4b1c512d81712eba41fa324b24e5e7b2 (diff) |
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.h | 6 |
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 { | |||
546 | #define RXD_OWN_XENA s2BIT(7) | 546 | #define RXD_OWN_XENA s2BIT(7) |
547 | #define RXD_T_CODE (s2BIT(12)|s2BIT(13)|s2BIT(14)|s2BIT(15)) | 547 | #define RXD_T_CODE (s2BIT(12)|s2BIT(13)|s2BIT(14)|s2BIT(15)) |
548 | #define RXD_FRAME_PROTO vBIT(0xFFFF,24,8) | 548 | #define RXD_FRAME_PROTO vBIT(0xFFFF,24,8) |
549 | #define RXD_FRAME_VLAN_TAG s2BIT(24) | ||
549 | #define RXD_FRAME_PROTO_IPV4 s2BIT(27) | 550 | #define RXD_FRAME_PROTO_IPV4 s2BIT(27) |
550 | #define RXD_FRAME_PROTO_IPV6 s2BIT(28) | 551 | #define RXD_FRAME_PROTO_IPV6 s2BIT(28) |
551 | #define RXD_FRAME_IP_FRAG s2BIT(29) | 552 | #define RXD_FRAME_IP_FRAG s2BIT(29) |
@@ -829,10 +830,11 @@ struct lro { | |||
829 | int sg_num; | 830 | int sg_num; |
830 | int in_use; | 831 | int in_use; |
831 | __be16 window; | 832 | __be16 window; |
833 | u16 vlan_tag; | ||
832 | u32 cur_tsval; | 834 | u32 cur_tsval; |
833 | __be32 cur_tsecr; | 835 | __be32 cur_tsecr; |
834 | u8 saw_ts; | 836 | u8 saw_ts; |
835 | }; | 837 | } ____cacheline_aligned; |
836 | 838 | ||
837 | /* These flags represent the devices temporary state */ | 839 | /* These flags represent the devices temporary state */ |
838 | enum s2io_device_state_t | 840 | enum s2io_device_state_t |
@@ -1129,7 +1131,7 @@ static int | |||
1129 | s2io_club_tcp_session(u8 *buffer, u8 **tcp, u32 *tcp_len, struct lro **lro, | 1131 | s2io_club_tcp_session(u8 *buffer, u8 **tcp, u32 *tcp_len, struct lro **lro, |
1130 | struct RxD_t *rxdp, struct s2io_nic *sp); | 1132 | struct RxD_t *rxdp, struct s2io_nic *sp); |
1131 | static void clear_lro_session(struct lro *lro); | 1133 | static void clear_lro_session(struct lro *lro); |
1132 | static void queue_rx_frame(struct sk_buff *skb); | 1134 | static void queue_rx_frame(struct sk_buff *skb, u16 vlan_tag); |
1133 | static void update_L3L4_header(struct s2io_nic *sp, struct lro *lro); | 1135 | static void update_L3L4_header(struct s2io_nic *sp, struct lro *lro); |
1134 | static void lro_append_pkt(struct s2io_nic *sp, struct lro *lro, | 1136 | static void lro_append_pkt(struct s2io_nic *sp, struct lro *lro, |
1135 | struct sk_buff *skb, u32 tcp_len); | 1137 | struct sk_buff *skb, u32 tcp_len); |