1
2 #ifndef __INC_QOS_TYPE_H
3 #define __INC_QOS_TYPE_H
4
5
6
7
8
9
10 struct aci_aifsn {
11 u8 aifsn:4;
12 u8 acm:1;
13 u8 aci:2;
14 u8:1;
15 };
16
17
18
19
20
21 enum direction_value {
22 DIR_UP = 0,
23 DIR_DOWN = 1,
24 DIR_DIRECT = 2,
25 DIR_BI_DIR = 3,
26 };
27
28
29
30
31
32
33
34
35 struct qos_tsinfo {
36 u16 uc_traffic_type:1;
37 u16 uc_tsid:4;
38 u16 uc_direction:2;
39 u16 uc_access_policy:2;
40 u16 uc_aggregation:1;
41 u16 uc_psb:1;
42 u16 uc_up:3;
43 u16 uc_ts_info_ack_policy:2;
44 u8 uc_schedule:1;
45 u8:7;
46 };
47
48
49
50
51
52
53 struct tspec_body {
54 struct qos_tsinfo ts_info;
55 u16 nominal_msd_usize;
56 u16 max_msd_usize;
57 u32 min_service_itv;
58 u32 max_service_itv;
59 u32 inactivity_itv;
60 u32 suspen_itv;
61 u32 service_start_time;
62 u32 min_data_rate;
63 u32 mean_data_rate;
64 u32 peak_data_rate;
65 u32 max_burst_size;
66 u32 delay_bound;
67 u32 min_phy_rate;
68 u16 surplus_bandwidth_allowance;
69 u16 medium_time;
70 };
71
72
73
74
75 struct octet_string {
76 u8 *octet;
77 u16 length;
78 };
79
80 #define is_ac_valid(ac) (((ac) <= 7) ? true : false)
81
82 #endif