|
@@ -104,24 +104,24 @@ typedef union {
|
|
* @rx.dev.priv_cb_w.protocol_tag: protocol tag set by app for rcvd packet type
|
|
* @rx.dev.priv_cb_w.protocol_tag: protocol tag set by app for rcvd packet type
|
|
* @rx.dev.priv_cb_w.flow_tag: flow tag set by application for 5 tuples rcvd
|
|
* @rx.dev.priv_cb_w.flow_tag: flow tag set by application for 5 tuples rcvd
|
|
*
|
|
*
|
|
|
|
+ * @rx.dev.priv_cb_m.peer_cached_buf_frm: peer cached buffer
|
|
|
|
+ * @rx.dev.priv_cb_m.flush_ind: flush indication
|
|
|
|
+ * @rx.dev.priv_cb_m.packet_buf_pool: packet buff bool
|
|
* @rx.dev.priv_cb_m.tcp_seq_num: TCP sequence number
|
|
* @rx.dev.priv_cb_m.tcp_seq_num: TCP sequence number
|
|
* @rx.dev.priv_cb_m.tcp_ack_num: TCP ACK number
|
|
* @rx.dev.priv_cb_m.tcp_ack_num: TCP ACK number
|
|
* @rx.dev.priv_cb_m.lro_ctx: LRO context
|
|
* @rx.dev.priv_cb_m.lro_ctx: LRO context
|
|
* @rx.dev.priv_cb_m.dp.wifi3.msdu_len: length of RX packet
|
|
* @rx.dev.priv_cb_m.dp.wifi3.msdu_len: length of RX packet
|
|
* @rx.dev.priv_cb_m.dp.wifi3.peer_id: peer_id for RX packet
|
|
* @rx.dev.priv_cb_m.dp.wifi3.peer_id: peer_id for RX packet
|
|
* @rx.dev.priv_cb_m.dp.wifi2.map_index:
|
|
* @rx.dev.priv_cb_m.dp.wifi2.map_index:
|
|
- * @rx.dev.priv_cb_m.vdev_id: vdev_id for RX pkt
|
|
|
|
* @rx.dev.priv_cb_m.ipa_owned: packet owned by IPA
|
|
* @rx.dev.priv_cb_m.ipa_owned: packet owned by IPA
|
|
*
|
|
*
|
|
* @rx.lro_eligible: flag to indicate whether the MSDU is LRO eligible
|
|
* @rx.lro_eligible: flag to indicate whether the MSDU is LRO eligible
|
|
- * @rx.peer_cached_buf_frm: peer cached buffer
|
|
|
|
* @rx.tcp_proto: L4 protocol is TCP
|
|
* @rx.tcp_proto: L4 protocol is TCP
|
|
* @rx.tcp_pure_ack: A TCP ACK packet with no payload
|
|
* @rx.tcp_pure_ack: A TCP ACK packet with no payload
|
|
* @rx.ipv6_proto: L3 protocol is IPV6
|
|
* @rx.ipv6_proto: L3 protocol is IPV6
|
|
* @rx.ip_offset: offset to IP header
|
|
* @rx.ip_offset: offset to IP header
|
|
* @rx.tcp_offset: offset to TCP header
|
|
* @rx.tcp_offset: offset to TCP header
|
|
* @rx_ctx_id: Rx context id
|
|
* @rx_ctx_id: Rx context id
|
|
- * @flush_ind: flush indication
|
|
|
|
* @num_elements_in_list: number of elements in the nbuf list
|
|
* @num_elements_in_list: number of elements in the nbuf list
|
|
*
|
|
*
|
|
* @rx.tcp_udp_chksum: L4 payload checksum
|
|
* @rx.tcp_udp_chksum: L4 payload checksum
|
|
@@ -132,7 +132,7 @@ typedef union {
|
|
* @rx.flag_chfrag_start: first MSDU in an AMSDU
|
|
* @rx.flag_chfrag_start: first MSDU in an AMSDU
|
|
* @rx.flag_chfrag_cont: middle or part of MSDU in an AMSDU
|
|
* @rx.flag_chfrag_cont: middle or part of MSDU in an AMSDU
|
|
* @rx.flag_chfrag_end: last MSDU in an AMSDU
|
|
* @rx.flag_chfrag_end: last MSDU in an AMSDU
|
|
- * @rx.packet_buff_pool: indicate packet from pre-allocated pool for Rx ring
|
|
|
|
|
|
+ * @rx.flag_retry: flag to indicate MSDU is retried
|
|
* @rx.flag_da_mcbc: flag to indicate mulicast or broadcast packets
|
|
* @rx.flag_da_mcbc: flag to indicate mulicast or broadcast packets
|
|
* @rx.flag_da_valid: flag to indicate DA is valid for RX packet
|
|
* @rx.flag_da_valid: flag to indicate DA is valid for RX packet
|
|
* @rx.flag_sa_valid: flag to indicate SA is valid for RX packet
|
|
* @rx.flag_sa_valid: flag to indicate SA is valid for RX packet
|
|
@@ -146,12 +146,12 @@ typedef union {
|
|
* @rx.trace.packet_track: RX_DATA packet
|
|
* @rx.trace.packet_track: RX_DATA packet
|
|
* @rx.trace.rsrvd: enable packet logging
|
|
* @rx.trace.rsrvd: enable packet logging
|
|
*
|
|
*
|
|
- * @rx.ftype: mcast2ucast, TSO, SG, MESH
|
|
|
|
|
|
+ * @rx.vdev_id: vdev_id for RX pkt
|
|
* @rx.is_raw_frame: RAW frame
|
|
* @rx.is_raw_frame: RAW frame
|
|
* @rx.fcs_err: FCS error
|
|
* @rx.fcs_err: FCS error
|
|
* @rx.tid_val: tid value
|
|
* @rx.tid_val: tid value
|
|
- * @rx.flag_retry: flag to indicate MSDU is retried
|
|
|
|
* @rx.reserved: reserved
|
|
* @rx.reserved: reserved
|
|
|
|
+ * @rx.ftype: mcast2ucast, TSO, SG, MESH
|
|
*
|
|
*
|
|
* @tx.dev.priv_cb_w.fctx: ctx to handle special pkts defined by ftype
|
|
* @tx.dev.priv_cb_w.fctx: ctx to handle special pkts defined by ftype
|
|
* @tx.dev.priv_cb_w.ext_cb_ptr: extended cb pointer
|
|
* @tx.dev.priv_cb_w.ext_cb_ptr: extended cb pointer
|
|
@@ -219,9 +219,11 @@ struct qdf_nbuf_cb {
|
|
* Do not change location of this bit.
|
|
* Do not change location of this bit.
|
|
*/
|
|
*/
|
|
uint32_t ipa_owned:1,
|
|
uint32_t ipa_owned:1,
|
|
- reserved:15,
|
|
|
|
- vdev_id:8,
|
|
|
|
- reserved1:8;
|
|
|
|
|
|
+ peer_cached_buf_frm:1,
|
|
|
|
+ flush_ind:1,
|
|
|
|
+ packet_buf_pool:1,
|
|
|
|
+ reserved:12,
|
|
|
|
+ reserved1:16;
|
|
uint32_t tcp_seq_num;
|
|
uint32_t tcp_seq_num;
|
|
uint32_t tcp_ack_num;
|
|
uint32_t tcp_ack_num;
|
|
union {
|
|
union {
|
|
@@ -237,14 +239,14 @@ struct qdf_nbuf_cb {
|
|
} priv_cb_m;
|
|
} priv_cb_m;
|
|
} dev;
|
|
} dev;
|
|
uint32_t lro_eligible:1,
|
|
uint32_t lro_eligible:1,
|
|
- peer_cached_buf_frm:1,
|
|
|
|
|
|
+ is_raw_frame:1,
|
|
tcp_proto:1,
|
|
tcp_proto:1,
|
|
tcp_pure_ack:1,
|
|
tcp_pure_ack:1,
|
|
ipv6_proto:1,
|
|
ipv6_proto:1,
|
|
ip_offset:7,
|
|
ip_offset:7,
|
|
tcp_offset:7,
|
|
tcp_offset:7,
|
|
rx_ctx_id:4,
|
|
rx_ctx_id:4,
|
|
- flush_ind:1,
|
|
|
|
|
|
+ fcs_err:1,
|
|
num_elements_in_list:8;
|
|
num_elements_in_list:8;
|
|
uint32_t tcp_udp_chksum:16,
|
|
uint32_t tcp_udp_chksum:16,
|
|
tcp_win:16;
|
|
tcp_win:16;
|
|
@@ -252,7 +254,7 @@ struct qdf_nbuf_cb {
|
|
uint8_t flag_chfrag_start:1,
|
|
uint8_t flag_chfrag_start:1,
|
|
flag_chfrag_cont:1,
|
|
flag_chfrag_cont:1,
|
|
flag_chfrag_end:1,
|
|
flag_chfrag_end:1,
|
|
- packet_buff_pool:1,
|
|
|
|
|
|
+ flag_retry:1,
|
|
flag_da_mcbc:1,
|
|
flag_da_mcbc:1,
|
|
flag_da_valid:1,
|
|
flag_da_valid:1,
|
|
flag_sa_valid:1,
|
|
flag_sa_valid:1,
|
|
@@ -263,12 +265,9 @@ struct qdf_nbuf_cb {
|
|
packet_track:4,
|
|
packet_track:4,
|
|
rsrvd:3;
|
|
rsrvd:3;
|
|
} trace;
|
|
} trace;
|
|
- uint8_t ftype;
|
|
|
|
- uint8_t is_raw_frame:1,
|
|
|
|
- fcs_err:1,
|
|
|
|
- tid_val:4,
|
|
|
|
- flag_retry:1,
|
|
|
|
- reserved:1;
|
|
|
|
|
|
+ uint16_t vdev_id:8,
|
|
|
|
+ tid_val:4,
|
|
|
|
+ ftype:4;
|
|
} rx;
|
|
} rx;
|
|
|
|
|
|
/* Note: MAX: 40 bytes */
|
|
/* Note: MAX: 40 bytes */
|
|
@@ -347,8 +346,6 @@ QDF_COMPILE_TIME_ASSERT(qdf_nbuf_cb_size,
|
|
|
|
|
|
#define QDF_NBUF_CB_RX_LRO_ELIGIBLE(skb) \
|
|
#define QDF_NBUF_CB_RX_LRO_ELIGIBLE(skb) \
|
|
(((struct qdf_nbuf_cb *)((skb)->cb))->u.rx.lro_eligible)
|
|
(((struct qdf_nbuf_cb *)((skb)->cb))->u.rx.lro_eligible)
|
|
-#define QDF_NBUF_CB_RX_PEER_CACHED_FRM(skb) \
|
|
|
|
- (((struct qdf_nbuf_cb *)((skb)->cb))->u.rx.peer_cached_buf_frm)
|
|
|
|
#define QDF_NBUF_CB_RX_TCP_PROTO(skb) \
|
|
#define QDF_NBUF_CB_RX_TCP_PROTO(skb) \
|
|
(((struct qdf_nbuf_cb *)((skb)->cb))->u.rx.tcp_proto)
|
|
(((struct qdf_nbuf_cb *)((skb)->cb))->u.rx.tcp_proto)
|
|
#define QDF_NBUF_CB_RX_TCP_PURE_ACK(skb) \
|
|
#define QDF_NBUF_CB_RX_TCP_PURE_ACK(skb) \
|
|
@@ -361,8 +358,6 @@ QDF_COMPILE_TIME_ASSERT(qdf_nbuf_cb_size,
|
|
(((struct qdf_nbuf_cb *)((skb)->cb))->u.rx.tcp_offset)
|
|
(((struct qdf_nbuf_cb *)((skb)->cb))->u.rx.tcp_offset)
|
|
#define QDF_NBUF_CB_RX_CTX_ID(skb) \
|
|
#define QDF_NBUF_CB_RX_CTX_ID(skb) \
|
|
(((struct qdf_nbuf_cb *)((skb)->cb))->u.rx.rx_ctx_id)
|
|
(((struct qdf_nbuf_cb *)((skb)->cb))->u.rx.rx_ctx_id)
|
|
-#define QDF_NBUF_CB_RX_FLUSH_IND(skb) \
|
|
|
|
- (((struct qdf_nbuf_cb *)((skb)->cb))->u.rx.flush_ind)
|
|
|
|
#define QDF_NBUF_CB_RX_NUM_ELEMENTS_IN_LIST(skb) \
|
|
#define QDF_NBUF_CB_RX_NUM_ELEMENTS_IN_LIST(skb) \
|
|
(((struct qdf_nbuf_cb *)((skb)->cb))->u.rx.num_elements_in_list)
|
|
(((struct qdf_nbuf_cb *)((skb)->cb))->u.rx.num_elements_in_list)
|
|
|
|
|
|
@@ -382,6 +377,9 @@ QDF_COMPILE_TIME_ASSERT(qdf_nbuf_cb_size,
|
|
#define QDF_NBUF_CB_RX_FTYPE(skb) \
|
|
#define QDF_NBUF_CB_RX_FTYPE(skb) \
|
|
(((struct qdf_nbuf_cb *)((skb)->cb))->u.rx.ftype)
|
|
(((struct qdf_nbuf_cb *)((skb)->cb))->u.rx.ftype)
|
|
|
|
|
|
|
|
+#define QDF_NBUF_CB_RX_VDEV_ID(skb) \
|
|
|
|
+ (((struct qdf_nbuf_cb *)((skb)->cb))->u.rx.vdev_id)
|
|
|
|
+
|
|
#define QDF_NBUF_CB_RX_CHFRAG_START(skb) \
|
|
#define QDF_NBUF_CB_RX_CHFRAG_START(skb) \
|
|
(((struct qdf_nbuf_cb *) \
|
|
(((struct qdf_nbuf_cb *) \
|
|
((skb)->cb))->u.rx.flag_chfrag_start)
|
|
((skb)->cb))->u.rx.flag_chfrag_start)
|
|
@@ -391,9 +389,6 @@ QDF_COMPILE_TIME_ASSERT(qdf_nbuf_cb_size,
|
|
#define QDF_NBUF_CB_RX_CHFRAG_END(skb) \
|
|
#define QDF_NBUF_CB_RX_CHFRAG_END(skb) \
|
|
(((struct qdf_nbuf_cb *) \
|
|
(((struct qdf_nbuf_cb *) \
|
|
((skb)->cb))->u.rx.flag_chfrag_end)
|
|
((skb)->cb))->u.rx.flag_chfrag_end)
|
|
-#define QDF_NBUF_CB_RX_PACKET_BUFF_POOL(skb) \
|
|
|
|
- (((struct qdf_nbuf_cb *) \
|
|
|
|
- ((skb)->cb))->u.rx.packet_buff_pool)
|
|
|
|
|
|
|
|
#define QDF_NBUF_CB_RX_DA_MCBC(skb) \
|
|
#define QDF_NBUF_CB_RX_DA_MCBC(skb) \
|
|
(((struct qdf_nbuf_cb *) \
|
|
(((struct qdf_nbuf_cb *) \
|