Loading qdf/inc/qdf_nbuf.h +39 −0 Original line number Diff line number Diff line Loading @@ -2952,6 +2952,32 @@ bool qdf_nbuf_data_is_dns_response(qdf_nbuf_t buf) return __qdf_nbuf_data_is_dns_response(qdf_nbuf_data(buf)); } /** * qdf_nbuf_data_is_tcp_fin() - check if skb data is a tcp fin * @buf: buffer * * Return: true if packet is tcp fin packet. * false otherwise. */ static inline bool qdf_nbuf_data_is_tcp_fin(qdf_nbuf_t buf) { return __qdf_nbuf_data_is_tcp_fin(qdf_nbuf_data(buf)); } /** * qdf_nbuf_data_is_tcp_fin_ack() - check if skb data is a tcp fin ack * @buf: buffer * * Return: true if packet is tcp fin ack packet. * false otherwise. */ static inline bool qdf_nbuf_data_is_tcp_fin_ack(qdf_nbuf_t buf) { return __qdf_nbuf_data_is_tcp_fin_ack(qdf_nbuf_data(buf)); } /** * qdf_nbuf_data_is_tcp_syn() - check if skb data is a tcp syn * @buf: buffer Loading @@ -2978,6 +3004,19 @@ bool qdf_nbuf_data_is_tcp_syn_ack(qdf_nbuf_t buf) return __qdf_nbuf_data_is_tcp_syn_ack(qdf_nbuf_data(buf)); } /** * qdf_nbuf_data_is_tcp_rst() - check if skb data is a tcp rst * @buf: buffer * * Return: true if packet is tcp rst packet. * false otherwise. */ static inline bool qdf_nbuf_data_is_tcp_rst(qdf_nbuf_t buf) { return __qdf_nbuf_data_is_tcp_rst(qdf_nbuf_data(buf)); } /** * qdf_nbuf_data_is_tcp_ack() - check if skb data is a tcp ack * @buf: buffer Loading qdf/linux/src/i_qdf_nbuf.h +8 −0 Original line number Diff line number Diff line Loading @@ -73,6 +73,11 @@ typedef struct sk_buff_head __qdf_nbuf_queue_head_t; /* mark the first packet after wow wakeup */ #define QDF_MARK_FIRST_WAKEUP_PACKET 0x80000000 /* TCP Related MASK */ #define QDF_NBUF_PKT_TCPOP_FIN 0x01 #define QDF_NBUF_PKT_TCPOP_FIN_ACK 0x11 #define QDF_NBUF_PKT_TCPOP_RST 0x04 /* * Make sure that qdf_dma_addr_t in the cb block is always 64 bit aligned */ Loading Loading @@ -836,8 +841,11 @@ uint32_t __qdf_nbuf_get_arp_tgt_ip(uint8_t *data); uint8_t *__qdf_nbuf_get_dns_domain_name(uint8_t *data, uint32_t len); bool __qdf_nbuf_data_is_dns_query(uint8_t *data); bool __qdf_nbuf_data_is_dns_response(uint8_t *data); bool __qdf_nbuf_data_is_tcp_fin(uint8_t *data); bool __qdf_nbuf_data_is_tcp_fin_ack(uint8_t *data); bool __qdf_nbuf_data_is_tcp_syn(uint8_t *data); bool __qdf_nbuf_data_is_tcp_syn_ack(uint8_t *data); bool __qdf_nbuf_data_is_tcp_rst(uint8_t *data); bool __qdf_nbuf_data_is_tcp_ack(uint8_t *data); uint16_t __qdf_nbuf_data_get_tcp_src_port(uint8_t *data); uint16_t __qdf_nbuf_data_get_tcp_dst_port(uint8_t *data); Loading qdf/linux/src/qdf_nbuf.c +66 −0 Original line number Diff line number Diff line Loading @@ -1725,6 +1725,50 @@ bool __qdf_nbuf_data_is_dns_response(uint8_t *data) return false; } /** * __qdf_nbuf_data_is_tcp_fin() - check if skb data is a tcp fin * @data: Pointer to network data buffer * * This api is to check if the packet is tcp fin. * * Return: true if packet is tcp fin packet. * false otherwise. */ bool __qdf_nbuf_data_is_tcp_fin(uint8_t *data) { uint8_t op_code; op_code = (uint8_t)(*(uint8_t *)(data + QDF_NBUF_PKT_TCP_OPCODE_OFFSET)); if (op_code == QDF_NBUF_PKT_TCPOP_FIN) return true; return false; } /** * __qdf_nbuf_data_is_tcp_fin_ack() - check if skb data is a tcp fin ack * @data: Pointer to network data buffer * * This api is to check if the tcp packet is fin ack. * * Return: true if packet is tcp fin ack packet. * false otherwise. */ bool __qdf_nbuf_data_is_tcp_fin_ack(uint8_t *data) { uint8_t op_code; op_code = (uint8_t)(*(uint8_t *)(data + QDF_NBUF_PKT_TCP_OPCODE_OFFSET)); if (op_code == QDF_NBUF_PKT_TCPOP_FIN_ACK) return true; return false; } /** * __qdf_nbuf_data_is_tcp_syn() - check if skb data is a tcp syn * @data: Pointer to network data buffer Loading Loading @@ -1767,6 +1811,28 @@ bool __qdf_nbuf_data_is_tcp_syn_ack(uint8_t *data) return false; } /** * __qdf_nbuf_data_is_tcp_rst() - check if skb data is a tcp rst * @data: Pointer to network data buffer * * This api is to check if the tcp packet is rst. * * Return: true if packet is tcp rst packet. * false otherwise. */ bool __qdf_nbuf_data_is_tcp_rst(uint8_t *data) { uint8_t op_code; op_code = (uint8_t)(*(uint8_t *)(data + QDF_NBUF_PKT_TCP_OPCODE_OFFSET)); if (op_code == QDF_NBUF_PKT_TCPOP_RST) return true; return false; } /** * __qdf_nbuf_data_is_tcp_ack() - check if skb data is a tcp ack * @data: Pointer to network data buffer Loading Loading
qdf/inc/qdf_nbuf.h +39 −0 Original line number Diff line number Diff line Loading @@ -2952,6 +2952,32 @@ bool qdf_nbuf_data_is_dns_response(qdf_nbuf_t buf) return __qdf_nbuf_data_is_dns_response(qdf_nbuf_data(buf)); } /** * qdf_nbuf_data_is_tcp_fin() - check if skb data is a tcp fin * @buf: buffer * * Return: true if packet is tcp fin packet. * false otherwise. */ static inline bool qdf_nbuf_data_is_tcp_fin(qdf_nbuf_t buf) { return __qdf_nbuf_data_is_tcp_fin(qdf_nbuf_data(buf)); } /** * qdf_nbuf_data_is_tcp_fin_ack() - check if skb data is a tcp fin ack * @buf: buffer * * Return: true if packet is tcp fin ack packet. * false otherwise. */ static inline bool qdf_nbuf_data_is_tcp_fin_ack(qdf_nbuf_t buf) { return __qdf_nbuf_data_is_tcp_fin_ack(qdf_nbuf_data(buf)); } /** * qdf_nbuf_data_is_tcp_syn() - check if skb data is a tcp syn * @buf: buffer Loading @@ -2978,6 +3004,19 @@ bool qdf_nbuf_data_is_tcp_syn_ack(qdf_nbuf_t buf) return __qdf_nbuf_data_is_tcp_syn_ack(qdf_nbuf_data(buf)); } /** * qdf_nbuf_data_is_tcp_rst() - check if skb data is a tcp rst * @buf: buffer * * Return: true if packet is tcp rst packet. * false otherwise. */ static inline bool qdf_nbuf_data_is_tcp_rst(qdf_nbuf_t buf) { return __qdf_nbuf_data_is_tcp_rst(qdf_nbuf_data(buf)); } /** * qdf_nbuf_data_is_tcp_ack() - check if skb data is a tcp ack * @buf: buffer Loading
qdf/linux/src/i_qdf_nbuf.h +8 −0 Original line number Diff line number Diff line Loading @@ -73,6 +73,11 @@ typedef struct sk_buff_head __qdf_nbuf_queue_head_t; /* mark the first packet after wow wakeup */ #define QDF_MARK_FIRST_WAKEUP_PACKET 0x80000000 /* TCP Related MASK */ #define QDF_NBUF_PKT_TCPOP_FIN 0x01 #define QDF_NBUF_PKT_TCPOP_FIN_ACK 0x11 #define QDF_NBUF_PKT_TCPOP_RST 0x04 /* * Make sure that qdf_dma_addr_t in the cb block is always 64 bit aligned */ Loading Loading @@ -836,8 +841,11 @@ uint32_t __qdf_nbuf_get_arp_tgt_ip(uint8_t *data); uint8_t *__qdf_nbuf_get_dns_domain_name(uint8_t *data, uint32_t len); bool __qdf_nbuf_data_is_dns_query(uint8_t *data); bool __qdf_nbuf_data_is_dns_response(uint8_t *data); bool __qdf_nbuf_data_is_tcp_fin(uint8_t *data); bool __qdf_nbuf_data_is_tcp_fin_ack(uint8_t *data); bool __qdf_nbuf_data_is_tcp_syn(uint8_t *data); bool __qdf_nbuf_data_is_tcp_syn_ack(uint8_t *data); bool __qdf_nbuf_data_is_tcp_rst(uint8_t *data); bool __qdf_nbuf_data_is_tcp_ack(uint8_t *data); uint16_t __qdf_nbuf_data_get_tcp_src_port(uint8_t *data); uint16_t __qdf_nbuf_data_get_tcp_dst_port(uint8_t *data); Loading
qdf/linux/src/qdf_nbuf.c +66 −0 Original line number Diff line number Diff line Loading @@ -1725,6 +1725,50 @@ bool __qdf_nbuf_data_is_dns_response(uint8_t *data) return false; } /** * __qdf_nbuf_data_is_tcp_fin() - check if skb data is a tcp fin * @data: Pointer to network data buffer * * This api is to check if the packet is tcp fin. * * Return: true if packet is tcp fin packet. * false otherwise. */ bool __qdf_nbuf_data_is_tcp_fin(uint8_t *data) { uint8_t op_code; op_code = (uint8_t)(*(uint8_t *)(data + QDF_NBUF_PKT_TCP_OPCODE_OFFSET)); if (op_code == QDF_NBUF_PKT_TCPOP_FIN) return true; return false; } /** * __qdf_nbuf_data_is_tcp_fin_ack() - check if skb data is a tcp fin ack * @data: Pointer to network data buffer * * This api is to check if the tcp packet is fin ack. * * Return: true if packet is tcp fin ack packet. * false otherwise. */ bool __qdf_nbuf_data_is_tcp_fin_ack(uint8_t *data) { uint8_t op_code; op_code = (uint8_t)(*(uint8_t *)(data + QDF_NBUF_PKT_TCP_OPCODE_OFFSET)); if (op_code == QDF_NBUF_PKT_TCPOP_FIN_ACK) return true; return false; } /** * __qdf_nbuf_data_is_tcp_syn() - check if skb data is a tcp syn * @data: Pointer to network data buffer Loading Loading @@ -1767,6 +1811,28 @@ bool __qdf_nbuf_data_is_tcp_syn_ack(uint8_t *data) return false; } /** * __qdf_nbuf_data_is_tcp_rst() - check if skb data is a tcp rst * @data: Pointer to network data buffer * * This api is to check if the tcp packet is rst. * * Return: true if packet is tcp rst packet. * false otherwise. */ bool __qdf_nbuf_data_is_tcp_rst(uint8_t *data) { uint8_t op_code; op_code = (uint8_t)(*(uint8_t *)(data + QDF_NBUF_PKT_TCP_OPCODE_OFFSET)); if (op_code == QDF_NBUF_PKT_TCPOP_RST) return true; return false; } /** * __qdf_nbuf_data_is_tcp_ack() - check if skb data is a tcp ack * @data: Pointer to network data buffer Loading