hc
2023-02-13 e440ec23c5a540cdd3f7464e8779219be6fd3d95
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef __DEFRAG__H__
#define __DEFRAG__H__
 
#include <linux/skbuff.h>
#include "sprdwl.h"
#include "wl_core.h"
 
#define MAX_DEFRAG_NUM 3
 
struct rx_defrag_desc {
   unsigned char sta_lut_index;
   unsigned char tid;
   unsigned char frag_num;
   unsigned short seq_num;
};
 
struct rx_defrag_node {
   struct list_head list;
   struct rx_defrag_desc desc;
   struct sk_buff_head skb_list;
   unsigned int msdu_len;
   unsigned char last_frag_num;
};
 
struct sprdwl_rx_defrag_entry {
   struct list_head list;
   struct sk_buff *skb_head;
   struct sk_buff *skb_last;
};
 
int sprdwl_defrag_init(struct sprdwl_rx_defrag_entry *defrag_entry);
void sprdwl_defrag_deinit(struct sprdwl_rx_defrag_entry *defrag_entry);
struct sk_buff
*defrag_data_process(struct sprdwl_rx_defrag_entry *defrag_entry,
            struct sk_buff *pskb);
 
void sprdwl_defrag_recover(struct sprdwl_intf *intf, struct sprdwl_vif *vif);
 
#endif /*__DEFRAG__H__*/