| /* SPDX-License-Identifier: GPL-2.0 */ |
| #ifndef _TSTYPE_H_ |
| #define _TSTYPE_H_ |
| #include "rtl819x_Qos.h" |
| |
| #define TS_ADDBA_DELAY 60 |
| |
| #define TOTAL_TS_NUM 16 |
| #define TCLAS_NUM 4 |
| |
| /* This define the Tx/Rx directions */ |
| enum tr_select { |
| TX_DIR = 0, |
| RX_DIR = 1, |
| }; |
| |
| union qos_tclas { |
| struct type_general { |
| u8 priority; |
| u8 classifier_type; |
| u8 mask; |
| } type_general; |
| |
| struct type0_eth { |
| u8 priority; |
| u8 classifier_type; |
| u8 mask; |
| u8 src_addr[6]; |
| u8 dst_addr[6]; |
| u16 type; |
| } type0_eth; |
| |
| struct type1_ipv4 { |
| u8 priority; |
| u8 classifier_type; |
| u8 mask; |
| u8 version; |
| u8 src_ip[4]; |
| u8 dst_ip[4]; |
| u16 src_port; |
| u16 dst_port; |
| u8 dscp; |
| u8 protocol; |
| u8 reserved; |
| } type1_ipv4; |
| |
| struct type1_ipv6 { |
| u8 priority; |
| u8 classifier_type; |
| u8 mask; |
| u8 version; |
| u8 src_ip[16]; |
| u8 dst_ip[16]; |
| u16 src_port; |
| u16 dst_port; |
| u8 flow_label[3]; |
| } type1_ipv6; |
| |
| struct type2_8021q { |
| u8 priority; |
| u8 classifier_type; |
| u8 mask; |
| u16 tag_type; |
| } type2_8021q; |
| }; |
| |
| struct ts_common_info { |
| struct list_head list; |
| struct timer_list setup_timer; |
| struct timer_list inact_timer; |
| u8 addr[6]; |
| struct tspec_body t_spec; |
| union qos_tclas t_class[TCLAS_NUM]; |
| u8 t_clas_proc; |
| u8 t_clas_num; |
| }; |
| |
| struct tx_ts_record { |
| struct ts_common_info ts_common_info; |
| u16 tx_cur_seq; |
| struct ba_record tx_pending_ba_record; |
| struct ba_record tx_admitted_ba_record; |
| u8 add_ba_req_in_progress; |
| u8 add_ba_req_delayed; |
| u8 using_ba; |
| struct timer_list ts_add_ba_timer; |
| u8 num; |
| }; |
| |
| struct rx_ts_record { |
| struct ts_common_info ts_common_info; |
| u16 rx_indicate_seq; |
| u16 rx_timeout_indicate_seq; |
| struct list_head rx_pending_pkt_list; |
| struct timer_list rx_pkt_pending_timer; |
| struct ba_record rx_admitted_ba_record; |
| u16 rx_last_seq_num; |
| u8 rx_last_frag_num; |
| u8 num; |
| }; |
| |
| #endif |