Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
[linux-2.6-block.git] / drivers / net / ethernet / broadcom / bnx2x / bnx2x_vfpf.h
index 208568bc7a71d72d8e19aea70f02485e17c0e8ee..c922b81170e5bc20c4ff69d34d16d40f853c9d8a 100644 (file)
@@ -162,6 +162,7 @@ struct pfvf_acquire_resp_tlv {
 #define PFVF_CAP_RSS           0x00000001
 #define PFVF_CAP_DHC           0x00000002
 #define PFVF_CAP_TPA           0x00000004
+#define PFVF_CAP_TPA_UPDATE    0x00000008
                char fw_ver[32];
                u16 db_size;
                u8  indices_per_sb;
@@ -303,6 +304,25 @@ struct vfpf_set_q_filters_tlv {
        u32 rx_mask;    /* see mask constants at the top of the file */
 };
 
+struct vfpf_tpa_tlv {
+       struct vfpf_first_tlv   first_tlv;
+
+       struct vf_pf_tpa_client_info {
+               aligned_u64 sge_addr[PFVF_MAX_QUEUES_PER_VF];
+               u8 update_ipv4;
+               u8 update_ipv6;
+               u8 max_tpa_queues;
+               u8 max_sges_for_packet;
+               u8 complete_on_both_clients;
+               u8 dont_verify_thr;
+               u8 tpa_mode;
+               u16 sge_buff_size;
+               u16 max_agg_size;
+               u16 sge_pause_thr_low;
+               u16 sge_pause_thr_high;
+       } tpa_client_info;
+};
+
 /* close VF (disable VF) */
 struct vfpf_close_tlv {
        struct vfpf_first_tlv   first_tlv;
@@ -331,6 +351,7 @@ union vfpf_tlvs {
        struct vfpf_set_q_filters_tlv   set_q_filters;
        struct vfpf_release_tlv         release;
        struct vfpf_rss_tlv             update_rss;
+       struct vfpf_tpa_tlv             update_tpa;
        struct channel_list_end_tlv     list_end;
        struct tlv_buffer_size          tlv_buf_size;
 };
@@ -405,6 +426,7 @@ enum channel_tlvs {
        CHANNEL_TLV_PF_SET_VLAN,
        CHANNEL_TLV_UPDATE_RSS,
        CHANNEL_TLV_PHYS_PORT_ID,
+       CHANNEL_TLV_UPDATE_TPA,
        CHANNEL_TLV_MAX
 };