diff --git a/qca-nss-drv/Makefile b/qca-nss-drv/Makefile index 2d922d8..9111a02 100644 --- a/qca-nss-drv/Makefile +++ b/qca-nss-drv/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=qca-nss-drv -PKG_RELEASE:=9 +PKG_RELEASE:=10 PKG_SOURCE_URL:=https://git.codelinaro.org/clo/qsdk/oss/lklm/nss-drv.git PKG_SOURCE_PROTO:=git diff --git a/qca-nss-drv/patches-11.4/0012-Makefile-modularize-driver.patch b/qca-nss-drv/patches-11.4/0012-Makefile-modularize-driver.patch index 9c8ba9d..8ad2124 100644 --- a/qca-nss-drv/patches-11.4/0012-Makefile-modularize-driver.patch +++ b/qca-nss-drv/patches-11.4/0012-Makefile-modularize-driver.patch @@ -163,6 +163,14 @@ ifeq ($(SoC),$(filter $(SoC),ipq807x ipq807x_64)) qca-nss-drv-objs += nss_hal/ipq807x/nss_hal_pvt.o \ nss_data_plane/hal/nss_ipq807x.o +@@ -496,6 +545,7 @@ ccflags-y += -I$(obj)/nss_hal/ipq50xx -D + endif + + ccflags-y += -I$(obj)/nss_hal/include -I$(obj)/nss_data_plane/include -I$(obj)/exports -DNSS_DEBUG_LEVEL=0 -DNSS_PKT_STATS_ENABLED=1 ++ + ccflags-y += -I$(obj)/nss_data_plane/hal/include + ccflags-y += -DNSS_PM_DEBUG_LEVEL=0 -DNSS_SKB_REUSE_SUPPORT=1 + ccflags-y += -Wall -Werror @@ -510,7 +560,14 @@ NSS_CCFLAGS = -DNSS_DT_SUPPORT=1 -DNSS_F ccflags-y += -I$(obj) endif diff --git a/qca-nss-drv/patches-11.4/0013-backport-12.4-docs.patch b/qca-nss-drv/patches-11.4/0013-backport-12.4-docs.patch new file mode 100644 index 0000000..5ca1933 --- /dev/null +++ b/qca-nss-drv/patches-11.4/0013-backport-12.4-docs.patch @@ -0,0 +1,1080 @@ +--- a/exports/nss_wifi_mesh.h ++++ b/exports/nss_wifi_mesh.h +@@ -102,7 +102,7 @@ enum nss_wifi_mesh_pre_header_type { + + /* + * nss_wifi_mesh_extended_data_pkt_types +- * Wi-Fi mesh extended data pkt types. ++ * Wi-Fi mesh extended data packet types. + */ + enum nss_wifi_mesh_extended_data_pkt_types { + WIFI_MESH_EXT_DATA_PKT_TYPE_NONE, /**< No packet type. */ +@@ -114,13 +114,13 @@ enum nss_wifi_mesh_extended_data_pkt_typ + * Wi-Fi header + */ + struct nss_wifi_mesh_ieee80211_hdr { +- uint16_t frame_ctl; /* Frame control. */ +- uint16_t duration_id; /* Duration ID. */ +- uint8_t addr1[ETH_ALEN]; /* Address 1. */ +- uint8_t addr2[ETH_ALEN]; /* Address 2. */ +- uint8_t addr3[ETH_ALEN]; /* Address 3. */ +- uint16_t seq_ctrl; /* Sequence control. */ +- uint8_t addr4[ETH_ALEN]; /* Address 4. */ ++ uint16_t frame_ctl; /**< Frame control. */ ++ uint16_t duration_id; /**< Duration ID. */ ++ uint8_t addr1[ETH_ALEN]; /**< Address 1. */ ++ uint8_t addr2[ETH_ALEN]; /**< Address 2. */ ++ uint8_t addr3[ETH_ALEN]; /**< Address 3. */ ++ uint16_t seq_ctrl; /**< Sequence control. */ ++ uint8_t addr4[ETH_ALEN]; /**< Address 4. */ + }__packed; + + /* +@@ -128,16 +128,16 @@ struct nss_wifi_mesh_ieee80211_hdr { + * Wi-Fi mesh header + */ + struct nss_wifi_mesh_ieee80211s_hdr { +- uint8_t flags; /* Mesh flags. */ +- uint8_t ttl; /* TTL. */ +- uint32_t seq_num; /* Sequence number. */ +- uint8_t eaddr1[ETH_ALEN]; /* Mesh Address1. */ +- uint8_t eaddr2[ETH_ALEN]; /* Mesh Address2. */ ++ uint8_t flags; /**< Mesh flags. */ ++ uint8_t ttl; /**< TTL. */ ++ uint32_t seq_num; /**< Sequence number. */ ++ uint8_t eaddr1[ETH_ALEN]; /**< Mesh Address1. */ ++ uint8_t eaddr2[ETH_ALEN]; /**< Mesh Address2. */ + }__packed; + + /* + * nss_wifi_mesh_per_packet_metadata +- * Wi-Fi mesh per packet metadata structure. ++ * Wi-Fi mesh per packet metadata structure. + */ + struct nss_wifi_mesh_per_packet_metadata { + uint16_t pkt_type; /* Packet type of the metadata. */ +@@ -150,8 +150,8 @@ struct nss_wifi_mesh_per_packet_metadata + * NSS-to-host path will be seen by ECM for rules. + */ + enum nss_wifi_mesh_dp_type { +- NSS_WIFI_MESH_DP_INNER, /**< Inner/Encapsulation Interface. */ +- NSS_WIFI_MESH_DP_OUTER, /**< Outer/Decapsulation Interface. */ ++ NSS_WIFI_MESH_DP_INNER, /**< Inner/encapsulation interface. */ ++ NSS_WIFI_MESH_DP_OUTER, /**< Outer/decapsulation interface. */ + }; + + /** +@@ -350,7 +350,7 @@ struct nss_wifi_mesh_proxy_path_del_msg + + /** + * nss_wifi_mesh_mpath_not_found_msg +- * Wi-Fi mesh path not found meesage. ++ * Wi-Fi mesh path not found message. + */ + struct nss_wifi_mesh_mpath_not_found_msg { + uint8_t dest_mac_addr[ETH_ALEN]; /**< Destination MAC address. */ +@@ -386,27 +386,27 @@ struct nss_wifi_mesh_path_expiry_msg { + * Encapsulation statistics. + */ + struct nss_wifi_mesh_encap_stats { +- uint32_t expiry_notify_sent; /* Number of times expiry notification sent to host. */ +- uint32_t mc_count; /* Number of multicast packets. */ +- uint32_t mp_not_found; /* Number of times mesh path is not found. */ +- uint32_t mp_active; /* Number of times mesh path is active. */ +- uint32_t mpp_not_found; /* Number of times proxy path is not found. */ +- uint32_t mpp_found; /* Number of times proxy path is found. */ +- uint32_t encap_hdr_fail; /* Number of times encapsulating mesh header failed. */ +- uint32_t mp_del_notify_fail; /* Number of times notifying mesh path delete failed. */ +- uint32_t link_enqueue; /* Number of packets enqueued to the link VAP. */ +- uint32_t link_enq_fail; /* Number of times enqueue to link vap failed. */ +- uint32_t ra_lup_fail; /* Number of times receiver address look up is failed. */ +- uint32_t dummy_add_count; /* Number of times dummy path is added. */ +- uint32_t encap_mp_add_notify_fail; /* Number of times add notification failed. */ +- uint32_t dummy_add_fail; /* Number of times dummy addition failed. */ +- uint32_t dummy_lup_fail; /* Number of times dummy lookup failed. */ +- uint32_t send_to_host_failed; /* Number of packets failed to be sent to host. */ +- uint32_t sent_to_host; /* Number of packets sent to host. */ +- uint32_t expiry_notify_fail; /* Number of times expiry notification to host failed. */ +- uint32_t no_headroom; /* Number of packets dropped because there is no headroom. */ +- uint32_t path_refresh_sent; /* Number of times path refresh is sent to host. */ +- uint32_t linearise_failed; /* Number of packets dropped because pb_linearise. */ ++ uint32_t expiry_notify_sent; /**< Number of times expiry notification sent to host. */ ++ uint32_t mc_count; /**< Number of multicast packets. */ ++ uint32_t mp_not_found; /**< Number of times mesh path is not found. */ ++ uint32_t mp_active; /**< Number of times mesh path is active. */ ++ uint32_t mpp_not_found; /**< Number of times proxy path is not found. */ ++ uint32_t mpp_found; /**< Number of times proxy path is found. */ ++ uint32_t encap_hdr_fail; /**< Number of times encapsulating mesh header failed. */ ++ uint32_t mp_del_notify_fail; /**< Number of times notifying mesh path delete failed. */ ++ uint32_t link_enqueue; /**< Number of packets enqueued to the link VAP. */ ++ uint32_t link_enq_fail; /**< Number of times enqueue to link vap failed. */ ++ uint32_t ra_lup_fail; /**< Number of times receiver address look up is failed. */ ++ uint32_t dummy_add_count; /**< Number of times dummy path is added. */ ++ uint32_t encap_mp_add_notify_fail; /**< Number of times add notification failed. */ ++ uint32_t dummy_add_fail; /**< Number of times dummy addition failed. */ ++ uint32_t dummy_lup_fail; /**< Number of times dummy lookup failed. */ ++ uint32_t send_to_host_failed; /**< Number of packets failed to be sent to host. */ ++ uint32_t sent_to_host; /**< Number of packets sent to host. */ ++ uint32_t expiry_notify_fail; /**< Number of times expiry notification to host failed. */ ++ uint32_t no_headroom; /**< Number of packets dropped because there is no headroom. */ ++ uint32_t path_refresh_sent; /**< Number of times path refresh is sent to host. */ ++ uint32_t linearise_failed; /**< Number of packets dropped because pb_linearise. */ + }; + + /* +@@ -526,22 +526,22 @@ struct nss_wifi_mesh_path_stats { + * Wi-Fi mesh proxy path statistics. + */ + struct nss_wifi_mesh_proxy_path_stats { +- uint32_t alloc_failures; /**< Mesh proxy path alloc failure count. */ +- uint32_t entry_exist_failures; /**< Mesh proxy path entry already exists. */ +- uint32_t add_success; /**< Mesh proxy path add success count. */ +- uint32_t table_full_errors; /**< Mesh proxy path table full count. */ +- uint32_t insert_failures; /**< Mesh proxy path insert failure count. */ +- uint32_t not_found; /**< Mesh proxy path not found count. */ +- uint32_t unhashed_errors; /**< Mesh proxy path unhased erorr count. */ +- uint32_t delete_failures; /**< Mesh proxy path delete failure count. */ +- uint32_t delete_success; /**< Mesh proxy path delete success count. */ +- uint32_t update_success; /**< Mesh proxy path update success count. */ +- uint32_t lookup_success; /**< Mesh proxy path lookup success count. */ +- uint32_t add_requests; /**< Mesh proxy path addition requests. */ +- uint32_t del_requests; /**< Mesh proxy path deletion requests. */ +- uint32_t update_requests; /**< Mesh proxy path updation requests. */ +- uint32_t mda_updations; /**< Mesh proxy path mda updations. */ +- uint32_t flag_updations; /**< Mesh proxy path flags updations. */ ++ uint32_t alloc_failures; /**< Mesh proxy path allocation failure count. */ ++ uint32_t entry_exist_failures; /**< Mesh proxy path entry already exists. */ ++ uint32_t add_success; /**< Mesh proxy path add success count. */ ++ uint32_t table_full_errors; /**< Mesh proxy path table full count. */ ++ uint32_t insert_failures; /**< Mesh proxy path insert failure count. */ ++ uint32_t not_found; /**< Mesh proxy path not found count. */ ++ uint32_t unhashed_errors; /**< Mesh proxy path unhased erorr count. */ ++ uint32_t delete_failures; /**< Mesh proxy path delete failure count. */ ++ uint32_t delete_success; /**< Mesh proxy path delete success count. */ ++ uint32_t update_success; /**< Mesh proxy path update success count. */ ++ uint32_t lookup_success; /**< Mesh proxy path lookup success count. */ ++ uint32_t add_requests; /**< Mesh proxy path addition requests. */ ++ uint32_t del_requests; /**< Mesh proxy path deletion requests. */ ++ uint32_t update_requests; /**< Mesh proxy path updation requests. */ ++ uint32_t mda_updations; /**< Mesh proxy path mda updations. */ ++ uint32_t flag_updations; /**< Mesh proxy path flags updations. */ + }; + + /** +@@ -958,7 +958,7 @@ nss_tx_status_t nss_wifi_mesh_tx_msg_ext + + /** + * nss_wifi_mesh_verify_if_num +- * Verify Wi-Fi mesh interface number. ++ * Verifies the Wi-Fi mesh interface number. + * + * @datatypes + * interface number \n +@@ -997,4 +997,9 @@ extern int nss_wifi_mesh_stats_register_ + * 0 on success or non-zero on failure. + */ + extern int nss_wifi_mesh_stats_unregister_notifier(struct notifier_block *nb); ++ ++/** ++ * @} ++ */ ++ + #endif /* __NSS_WIFI_MESH_H */ +--- a/nss_wifi_mesh_strings.c ++++ b/nss_wifi_mesh_strings.c +@@ -106,22 +106,22 @@ static ssize_t nss_wifi_mesh_path_stats_ + * Wi-Fi mesh proxy path statistics string. + */ + struct nss_stats_info nss_wifi_mesh_strings_proxy_path_stats[NSS_WIFI_MESH_PROXY_PATH_STATS_TYPE_MAX] = { +- {"alloc_failures", NSS_STATS_TYPE_SPECIAL}, +- {"entry_exist_failures", NSS_STATS_TYPE_SPECIAL}, +- {"add_success", NSS_STATS_TYPE_SPECIAL}, +- {"table_full_errors", NSS_STATS_TYPE_SPECIAL}, +- {"insert_failures", NSS_STATS_TYPE_SPECIAL}, +- {"not_found", NSS_STATS_TYPE_SPECIAL}, +- {"unhashed_errors", NSS_STATS_TYPE_SPECIAL}, +- {"delete_failures", NSS_STATS_TYPE_SPECIAL}, +- {"delete_success", NSS_STATS_TYPE_SPECIAL}, +- {"update_success", NSS_STATS_TYPE_SPECIAL}, +- {"lookup_success", NSS_STATS_TYPE_SPECIAL}, +- {"add_requests", NSS_STATS_TYPE_SPECIAL}, +- {"del_requests", NSS_STATS_TYPE_SPECIAL}, +- {"update_requests", NSS_STATS_TYPE_SPECIAL}, +- {"mda_updations", NSS_STATS_TYPE_SPECIAL}, +- {"flag_updations", NSS_STATS_TYPE_SPECIAL} ++ {"alloc_failures", NSS_STATS_TYPE_SPECIAL}, ++ {"entry_exist_failures", NSS_STATS_TYPE_SPECIAL}, ++ {"add_success", NSS_STATS_TYPE_SPECIAL}, ++ {"table_full_errors", NSS_STATS_TYPE_SPECIAL}, ++ {"insert_failures", NSS_STATS_TYPE_SPECIAL}, ++ {"not_found", NSS_STATS_TYPE_SPECIAL}, ++ {"unhashed_errors", NSS_STATS_TYPE_SPECIAL}, ++ {"delete_failures", NSS_STATS_TYPE_SPECIAL}, ++ {"delete_success", NSS_STATS_TYPE_SPECIAL}, ++ {"update_success", NSS_STATS_TYPE_SPECIAL}, ++ {"lookup_success", NSS_STATS_TYPE_SPECIAL}, ++ {"add_requests", NSS_STATS_TYPE_SPECIAL}, ++ {"del_requests", NSS_STATS_TYPE_SPECIAL}, ++ {"update_requests", NSS_STATS_TYPE_SPECIAL}, ++ {"mda_updations", NSS_STATS_TYPE_SPECIAL}, ++ {"flag_updations", NSS_STATS_TYPE_SPECIAL} + }; + + /* +--- a/exports/nss_wifi.h ++++ b/exports/nss_wifi.h +@@ -641,8 +641,8 @@ struct nss_wifi_stats_sync_msg { + * Information for creating a Wi-Fi peer freelist. + */ + struct nss_wifi_peer_freelist_append_msg { +- uint32_t addr; /**< Starting address of peer freelist pool. */ +- uint32_t length; /**< Size of peer freelist pool. */ ++ uint32_t addr; /**< Starting address of the peer freelist pool. */ ++ uint32_t length; /**< Size of the peer freelist pool. */ + uint32_t num_peers; /**< Maximum peer entries supported in the pool. */ + }; + +@@ -709,7 +709,7 @@ struct nss_wifi_peer_ol_stats { + uint32_t tx_mcast; /**< Number of multicast packets sent. */ + uint32_t tx_ucast; /**< Number of unicast packets sent. */ + uint32_t tx_data; /**< Number data packets sent. */ +- uint32_t tx_bytes; /**< Number of bytes sent. */ ++ uint32_t tx_bytes; /**< Number of bytes transmitted. */ + uint32_t tx_fail; /**< Number of failed Tx packets. */ + uint32_t thrup_bytes; /**< Number of throughput bytes. */ + uint32_t tx_bcast_pkts; /**< Number of broadcast packets sent. */ +@@ -742,7 +742,7 @@ struct nss_wifi_ol_stats_msg { + + /** + * nss_wifi_sta_kickout_msg +- * Station kickout message from NSS Firmware ++ * Station kickout message from NSS firmware. + */ + struct nss_wifi_sta_kickout_msg { + uint32_t peer_id; /**< Peer ID. */ +@@ -759,7 +759,7 @@ struct nss_wifi_peer_isolation_msg { + + /** + * nss_wifi_wnm_peer_rx_activity_msg +- * Rx active state information for the peer. ++ * Receive active state information for the peer. + */ + struct nss_wifi_wnm_peer_rx_activity_msg { + uint16_t nentries; /**< Number of entries. */ +@@ -917,7 +917,7 @@ struct nss_wifi_msg { + struct nss_wifi_cmd_msg wcmdm; + /**< Pdev command information. */ + struct nss_wifi_enable_ol_statsv2 wesh_msg; +- /**< Enable version 2 tx/rx stats. */ ++ /**< Enable version 2 transmit/receive statistics. */ + struct nss_wifi_ol_peer_time_msg wopt_msg; + /**< Send per peer/TID timestamp statistics to host. */ + struct nss_wifi_peer_isolation_msg isolation_msg; +@@ -927,7 +927,7 @@ struct nss_wifi_msg { + + /** + * nss_wifi_get_context +- * Gets the Wi-Fi context used in nss_gre_tx. ++ * Gets the Wi-Fi context used in NSS GRE transmit. + * + * @return + * Pointer to the NSS core context. +--- a/exports/nss_c2c_rx.h ++++ b/exports/nss_c2c_rx.h +@@ -1,6 +1,6 @@ + /* + ************************************************************************** +- * Copyright (c) 2019-2020, The Linux Foundation. All rights reserved. ++ * Copyright (c) 2019-2021, The Linux Foundation. All rights reserved. + * Permission to use, copy, modify, and/or distribute this software for + * any purpose with or without fee is hereby granted, provided that the + * above copyright notice and this permission notice appear in all copies. +@@ -36,7 +36,7 @@ enum nss_c2c_rx_stats_types { + /**< Number of received simple pbufs. */ + NSS_C2C_RX_STATS_PBUF_SG, /**< Number of scatter-gather pbufs received. */ + NSS_C2C_RX_STATS_PBUF_RETURNING, /**< Number of returning scatter-gather pbufs. */ +- NSS_C2C_RX_STATS_INVAL_DEST, /**< Number of pbuf enqueue failures because of destination is invalid. */ ++ NSS_C2C_RX_STATS_INVAL_DEST, /**< Number of pbuf enqueue failures because destination is invalid. */ + NSS_C2C_RX_STATS_MAX, /**< Maximum message type. */ + }; + +--- a/exports/nss_c2c_tx.h ++++ b/exports/nss_c2c_tx.h +@@ -1,6 +1,6 @@ + /* + ************************************************************************** +- * Copyright (c) 2018-2020, The Linux Foundation. All rights reserved. ++ * Copyright (c) 2018-2021, The Linux Foundation. All rights reserved. + * Permission to use, copy, modify, and/or distribute this software for + * any purpose with or without fee is hereby granted, provided that the + * above copyright notice and this permission notice appear in all copies. +@@ -72,9 +72,9 @@ enum nss_c2c_tx_test_type { + */ + enum nss_c2c_tx_stats_types { + NSS_C2C_TX_STATS_PBUF_SIMPLE = NSS_STATS_NODE_MAX, +- /**< Number of received simple pbuf. */ +- NSS_C2C_TX_STATS_PBUF_SG, /**< Number of scatter-gather pbuf received. */ +- NSS_C2C_TX_STATS_PBUF_RETURNING, /**< Number of returning scatter-gather pbuf. */ ++ /**< Number of received simple pbufs. */ ++ NSS_C2C_TX_STATS_PBUF_SG, /**< Number of scatter-gather pbufs received. */ ++ NSS_C2C_TX_STATS_PBUF_RETURNING, /**< Number of returning scatter-gather pbufs. */ + NSS_C2C_TX_STATS_MAX, /**< Maximum message type. */ + }; + +--- a/exports/nss_cmn.h ++++ b/exports/nss_cmn.h +@@ -1,6 +1,6 @@ + /* + ************************************************************************** +- * Copyright (c) 2014, 2016-2020, The Linux Foundation. All rights reserved. ++ * Copyright (c) 2014, 2016-2021, The Linux Foundation. All rights reserved. + * Permission to use, copy, modify, and/or distribute this software for + * any purpose with or without fee is hereby granted, provided that the + * above copyright notice and this permission notice appear in all copies. +@@ -27,7 +27,7 @@ + * @{ + */ + +-/* ++/** + * Interface Number 1 Valid 7 Core 8 Type 16 Index + */ + typedef int32_t nss_if_num_t; +--- a/exports/nss_gre.h ++++ b/exports/nss_gre.h +@@ -1,6 +1,9 @@ + /* + **************************************************************************** + * Copyright (c) 2017-2019, 2021, The Linux Foundation. All rights reserved. ++ * ++ * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. ++ * + * Permission to use, copy, modify, and/or distribute this software for + * any purpose with or without fee is hereby granted, provided that the + * above copyright notice and this permission notice appear in all copies. +@@ -101,16 +104,16 @@ enum nss_gre_msg_types { + }; + + /** +- * GRE Mode Types ++ * GRE mode types. + */ + enum nss_gre_mode { +- NSS_GRE_MODE_TUN, /**< GRE Tunnel interface. */ +- NSS_GRE_MODE_TAP, /**< GRE Tap interface. */ ++ NSS_GRE_MODE_TUN, /**< GRE tunnel interface. */ ++ NSS_GRE_MODE_TAP, /**< GRE TAP interface. */ + NSS_GRE_MODE_MAX /**< Maxmum GRE mode. */ + }; + + /** +- * GRE IP Types ++ * GRE IP types. + */ + enum nss_gre_ip_types { + NSS_GRE_IP_IPV4, /**< Outer Tunnel is IPV4. */ +@@ -168,11 +171,11 @@ enum nss_gre_session_types { + * GRE create message structure. + */ + struct nss_gre_config_msg { +- uint32_t src_ip[4]; /**< Source IPv4 or IPv6 Adddress. */ +- uint32_t dest_ip[4]; /**< Destination IPv4 or IPv6 Adddress. */ ++ uint32_t src_ip[4]; /**< Source IPv4 or IPv6 address. */ ++ uint32_t dest_ip[4]; /**< Destination IPv4 or IPv6 address. */ + uint32_t flags; /**< GRE Flags. */ +- uint32_t ikey; /**< GRE rx KEY.*/ +- uint32_t okey; /**< GRE tx KEY. */ ++ uint32_t ikey; /**< GRE Rx key.*/ ++ uint32_t okey; /**< GRE Tx key. */ + uint32_t mode; /**< GRE TUN or TAP. */ + uint32_t ip_type; /**< IPv4 or IPv6 type. */ + uint32_t next_node_if_num; /**< To whom to forward packets. */ +@@ -185,7 +188,7 @@ struct nss_gre_config_msg { + }; + + /** +- * GRE link up message structure ++ * GRE link up message structure. + */ + struct nss_gre_linkup_msg { + int if_number; /**< Interface number. */ +@@ -202,11 +205,11 @@ struct nss_gre_linkdown_msg { + * GRE deconfig message structure + */ + struct nss_gre_deconfig_msg { +- int if_number; /**< Interface number */ ++ int if_number; /**< Interface number. */ + }; + + /** +- * GRE session statistics message ++ * GRE session statistics message. + */ + struct nss_gre_session_stats_msg { + struct nss_cmn_node_stats node_stats; /**< Common node statistics. */ +@@ -214,7 +217,7 @@ struct nss_gre_session_stats_msg { + }; + + /** +- * GRE base statistics message ++ * GRE base statistics message. + */ + struct nss_gre_base_stats_msg { + uint32_t stats[NSS_GRE_BASE_DEBUG_MAX]; /**< Base debug statistics. */ +@@ -241,10 +244,10 @@ struct nss_gre_session_stats_notificatio + + /** + * nss_gre_msg +- * Message structure to send/receive GRE messages ++ * Message structure to send/receive GRE messages. + */ + struct nss_gre_msg { +- struct nss_cmn_msg cm; /**< Common message header */ ++ struct nss_cmn_msg cm; /**< Common message header. */ + + /** + * Payload of a GRE message. +@@ -304,7 +307,7 @@ extern nss_tx_status_t nss_gre_tx_msg_sy + + /** + * nss_gre_tx_buf +- * Sends packet to the NSS ++ * Sends a packet to the NSS. + * + * @datatypes + * nss_ctx_instance \n +--- a/exports/nss_gre_redir.h ++++ b/exports/nss_gre_redir.h +@@ -302,7 +302,7 @@ struct nss_gre_redir_stats_sync_msg { + + /** + * nss_gre_redir_tun_stats +- * GRE redirect statistics to accumulate all the stats values. ++ * GRE redirect statistics to accumulate all stats values. + */ + struct nss_gre_redir_tun_stats { + uint64_t rx_packets; /**< Number of packets received. */ +--- a/exports/nss_if.h ++++ b/exports/nss_if.h +@@ -321,6 +321,23 @@ extern struct nss_ctx_instance *nss_if_r + extern nss_tx_status_t nss_if_tx_buf(struct nss_ctx_instance *nss_ctx, struct sk_buff *os_buf, uint32_t if_num); + + /** ++ * nss_if_tx_msg_with_size ++ * Sends a message to the NSS interface. ++ * ++ * @datatypes ++ * nss_ctx_instance \n ++ * nss_if_msg ++ * ++ * @param[in,out] nss_ctx Pointer to the NSS context. ++ * @param[in] nim Pointer to the NSS interface message. ++ * @param[in] size Total message buffer size. ++ * ++ * @return ++ * Status of the Tx operation. ++ */ ++nss_tx_status_t nss_if_tx_msg_with_size(struct nss_ctx_instance *nss_ctx, struct nss_if_msg *nim, uint32_t size); ++ ++/** + * nss_if_tx_msg + * Sends a message to the NSS interface. + * +@@ -338,7 +355,7 @@ nss_tx_status_t nss_if_tx_msg(struct nss + + /** + * nss_if_msg_sync +- * Sends a message to the NSS interface and wait for the response. ++ * Sends a message to the NSS interface and waits for the response. + * + * @datatypes + * nss_ctx_instance \n +@@ -385,7 +402,7 @@ nss_tx_status_t nss_if_reset_nexthop(str + + /** + * nss_if_change_mtu +- * Change the MTU of the interface. ++ * Changes the MTU of the interface. + * + * @datatypes + * nss_ctx_instance +@@ -401,7 +418,7 @@ nss_tx_status_t nss_if_change_mtu(struct + + /** + * nss_if_change_mac_addr +- * Change the MAC address of the interface. ++ * Changes the MAC address of the interface. + * + * @datatypes + * nss_ctx_instance +@@ -417,7 +434,7 @@ nss_tx_status_t nss_if_change_mac_addr(s + + /** + * nss_if_vsi_unassign +- * Detach the VSI ID from the given interface. ++ * Detaches the VSI ID from the given interface. + * + * @datatypes + * nss_ctx_instance +@@ -433,7 +450,7 @@ nss_tx_status_t nss_if_vsi_unassign(stru + + /** + * nss_if_vsi_assign +- * Attach the VSI ID to the given interface. ++ * Attaches the VSI ID to the given interface. + * + * @datatypes + * nss_ctx_instance +--- a/exports/nss_ipv4.h ++++ b/exports/nss_ipv4.h +@@ -1,9 +1,12 @@ + /* + ************************************************************************** + * Copyright (c) 2014-2021, The Linux Foundation. All rights reserved. ++ * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. ++ * + * Permission to use, copy, modify, and/or distribute this software for + * any purpose with or without fee is hereby granted, provided that the + * above copyright notice and this permission notice appear in all copies. ++ * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +@@ -55,16 +58,16 @@ struct nss_ipv4_create { + /**< Source interface number (virtual or physical). */ + int32_t dest_interface_num; + /**< Destination interface number (virtual or physical). */ +- int32_t protocol; /**< L4 protocol (e.g., TCP or UDP). */ +- uint32_t flags; /**< Flags (if any) associated with this rule. */ ++ int32_t protocol; /**< L4 protocol, e.g., TCP or UDP. */ ++ uint32_t flags; /**< Flags associated with this rule. */ + uint32_t from_mtu; /**< MTU of the incoming interface. */ + uint32_t to_mtu; /**< MTU of the outgoing interface. */ + uint32_t src_ip; /**< Source IP address. */ +- int32_t src_port; /**< Source L4 port (e.g., TCP or UDP port). */ ++ int32_t src_port; /**< Source L4 port, e.g., TCP or UDP port. */ + uint32_t src_ip_xlate; /**< Translated source IP address (used with SNAT). */ + int32_t src_port_xlate; /**< Translated source L4 port (used with SNAT). */ + uint32_t dest_ip; /**< Destination IP address. */ +- int32_t dest_port; /**< Destination L4 port (e.g., TCP or UDP port). */ ++ int32_t dest_port; /**< Destination L4 port, e.g., TCP or UDP port. */ + uint32_t dest_ip_xlate; + /**< Translated destination IP address (used with DNAT). */ + int32_t dest_port_xlate; +@@ -82,7 +85,7 @@ struct nss_ipv4_create { + uint32_t flow_end; /**< TCP window end. */ + uint32_t flow_max_end; /**< TCP window maximum end. */ + uint32_t flow_pppoe_if_exist; +- /**< Flow direction: PPPoE interface exist flag. */ ++ /**< Flow direction: PPPoE interface existence flag. */ + int32_t flow_pppoe_if_num; + /**< Flow direction: PPPoE interface number. */ + uint16_t ingress_vlan_tag; /**< Ingress VLAN tag expected for this flow. */ +@@ -131,9 +134,9 @@ struct nss_ipv4_create { + struct nss_ipv4_destroy { + int32_t protocol; /**< L4 protocol ID. */ + uint32_t src_ip; /**< Source IP address. */ +- int32_t src_port; /**< Source L4 port (e.g., TCP or UDP port). */ ++ int32_t src_port; /**< Source L4 port, e.g., TCP or UDP port. */ + uint32_t dest_ip; /**< Destination IP address. */ +- int32_t dest_port; /**< Destination L4 port (e.g., TCP or UDP port). */ ++ int32_t dest_port; /**< Destination L4 port, e.g., TCP or UDP port. */ + }; + + /** +@@ -956,10 +959,10 @@ struct nss_ipv4_node_sync { + /**< Number of multicast connection flushes. */ + + uint32_t ipv4_connection_create_invalid_mirror_ifnum; +- /**< Number of create request failed with an invalid mirror interface number. */ ++ /**< Number of failed create requests with an invalid mirror interface number. */ + + uint32_t ipv4_connection_create_invalid_mirror_iftype; +- /**< Number of create request failed with an invalid mirror interface type. */ ++ /**< Number of failed create requests with an invalid mirror interface type. */ + + uint32_t ipv4_mirror_failures; + /**< Mirror packet failed. */ +--- a/exports/nss_ipv6.h ++++ b/exports/nss_ipv6.h +@@ -1,9 +1,12 @@ + /* + ************************************************************************** + * Copyright (c) 2014-2021, The Linux Foundation. All rights reserved. ++ * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. ++ * + * Permission to use, copy, modify, and/or distribute this software for + * any purpose with or without fee is hereby granted, provided that the + * above copyright notice and this permission notice appear in all copies. ++ * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +@@ -82,14 +85,14 @@ struct nss_ipv6_create { + /**< Source interface number (virtual or physical). */ + int32_t dest_interface_num; + /**< Destination interface number (virtual or physical). */ +- int32_t protocol; /**< L4 protocol (e.g., TCP or UDP). */ +- uint32_t flags; /**< Flags (if any) associated with this rule. */ ++ int32_t protocol; /**< L4 protocol, e.g., TCP or UDP,. */ ++ uint32_t flags; /**< Flags associated with this rule. */ + uint32_t from_mtu; /**< MTU of the incoming interface. */ + uint32_t to_mtu; /**< MTU of the outgoing interface. */ + uint32_t src_ip[4]; /**< Source IP address. */ +- int32_t src_port; /**< Source L4 port (e.g., TCP or UDP port). */ ++ int32_t src_port; /**< Source L4 port, e.g., TCP or UDP port. */ + uint32_t dest_ip[4]; /**< Destination IP address. */ +- int32_t dest_port; /**< Destination L4 port (e.g., TCP or UDP port). */ ++ int32_t dest_port; /**< Destination L4 port, e.g., TCP or UDP port. */ + uint8_t src_mac[ETH_ALEN]; /**< Source MAC address. */ + uint8_t dest_mac[ETH_ALEN]; /**< Destination MAC address. */ + uint8_t flow_window_scale; /**< Window scaling factor (TCP). */ +@@ -111,7 +114,7 @@ struct nss_ipv6_create { + uint32_t return_max_end; + /**< Maximum end for the return direction. */ + uint32_t return_pppoe_if_exist; +- /**< Return direction: PPPoE interface exist flag. */ ++ /**< Return direction: PPPoE interface existence flag. */ + int32_t return_pppoe_if_num; + /**< Return direction: PPPoE interface number. */ + uint16_t egress_vlan_tag; /**< Egress VLAN tag expected for this flow. */ +@@ -139,11 +142,11 @@ struct nss_ipv6_create { + * Information for an IPv6 flow or connection destroy rule. + */ + struct nss_ipv6_destroy { +- int32_t protocol; /**< L4 protocol (e.g., TCP or UDP). */ ++ int32_t protocol; /**< L4 protocol, e.g., TCP or UDP. */ + uint32_t src_ip[4]; /**< Source IP address. */ +- int32_t src_port; /**< Source L4 port (e.g., TCP or UDP port). */ ++ int32_t src_port; /**< Source L4 port, e.g., TCP or UDP port. */ + uint32_t dest_ip[4]; /**< Destination IP address. */ +- int32_t dest_port; /**< Destination L4 port (e.g., TCP or UDP port). */ ++ int32_t dest_port; /**< Destination L4 port, e.g., TCP or UDP port. */ + }; + + /** +@@ -951,10 +954,10 @@ struct nss_ipv6_node_sync { + /**< Number of multicast connection flushes. */ + + uint32_t ipv6_connection_create_invalid_mirror_ifnum; +- /**< Number of create request failed with an invalid mirror interface number. */ ++ /**< Number of failed create requests with an invalid mirror interface number. */ + + uint32_t ipv6_connection_create_invalid_mirror_iftype; +- /**< Number of create request failed with an invalid mirror interface type. */ ++ /**< Number of failed create requests with an invalid mirror interface type. */ + + uint32_t ipv6_mirror_failures; + /**< Mirror packet failed. */ +--- a/exports/nss_lso_rx.h ++++ b/exports/nss_lso_rx.h +@@ -1,6 +1,6 @@ + /* + ************************************************************************** +- * Copyright (c) 2019-2020, The Linux Foundation. All rights reserved. ++ * Copyright (c) 2019-2021, The Linux Foundation. All rights reserved. + * + * Permission to use, copy, modify, and/or distribute this software for + * any purpose with or without fee is hereby granted, provided that the +@@ -17,7 +17,7 @@ + */ + + /* +- * nss_lso_rx.h ++ * @file nss_lso_rx.h + * NSS driver LSO (Large Send Offload) Rx header file. + */ + +--- a/exports/nss_map_t.h ++++ b/exports/nss_map_t.h +@@ -36,14 +36,18 @@ + */ + #define NSS_MAX_MAP_T_DYNAMIC_INTERFACES 4 + ++/** ++ * MAP-T metadata flag. ++ */ + #define NSS_MAPT_MDATA_FLAG_DF_BIT (1 << 0) + +-/* +- * mapt meta data ++/** ++ * nss_map_t_mdata ++ * MAP-T metadata + */ + struct nss_map_t_mdata { +- uint16_t flags; +- uint16_t res[6]; ++ uint16_t flags; /**< Metadata flags. */ ++ uint16_t res[6]; /**< Reserved for future use. */ + }; + + /** +--- a/exports/nss_virt_if.h ++++ b/exports/nss_virt_if.h +@@ -1,6 +1,6 @@ + /* + ************************************************************************** +- * Copyright (c) 2014-2017, 2019, The Linux Foundation. All rights reserved. ++ * Copyright (c) 2014-2017, 2019, 2021, The Linux Foundation. All rights reserved. + * Permission to use, copy, modify, and/or distribute this software for + * any purpose with or without fee is hereby granted, provided that the + * above copyright notice and this permission notice appear in all copies. +@@ -93,8 +93,8 @@ struct nss_virt_if_interface_stats { + * Virtual interface statistics received from the NSS. + */ + struct nss_virt_if_stats { +- struct nss_virt_if_base_node_stats base_stats; +- struct nss_virt_if_interface_stats if_stats; ++ struct nss_virt_if_base_node_stats base_stats; /**< Virtual interface statistics of NSS base node. */ ++ struct nss_virt_if_interface_stats if_stats; /**< Virtual interface statistics of each pair of interfaces. */ + }; + + /** +--- a/nss_c2c_rx.c ++++ b/nss_c2c_rx.c +@@ -1,9 +1,12 @@ + /* + ************************************************************************** + * Copyright (c) 2018-2020, The Linux Foundation. All rights reserved. ++ * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. ++ * + * Permission to use, copy, modify, and/or distribute this software for + * any purpose with or without fee is hereby granted, provided that the + * above copyright notice and this permission notice appear in all copies. ++ * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +--- a/nss_c2c_tx.c ++++ b/nss_c2c_tx.c +@@ -1,9 +1,12 @@ + /* + ************************************************************************** + * Copyright (c) 2018-2020, The Linux Foundation. All rights reserved. ++ * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. ++ * + * Permission to use, copy, modify, and/or distribute this software for + * any purpose with or without fee is hereby granted, provided that the + * above copyright notice and this permission notice appear in all copies. ++ * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +--- a/nss_coredump.c ++++ b/nss_coredump.c +@@ -1,6 +1,8 @@ + /* + ************************************************************************** + * Copyright (c) 2015-2020, The Linux Foundation. All rights reserved. ++ * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. ++ * + * Permission to use, copy, modify, and/or distribute this software for + * any purpose with or without fee is hereby granted, provided that the + * above copyright notice and this permission notice appear in all copies. +--- a/nss_dynamic_interface.c ++++ b/nss_dynamic_interface.c +@@ -1,9 +1,12 @@ + /* + ************************************************************************** + * Copyright (c) 2014-2020, The Linux Foundation. All rights reserved. ++ * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. ++ * + * Permission to use, copy, modify, and/or distribute this software for + * any purpose with or without fee is hereby granted, provided that the + * above copyright notice and this permission notice appear in all copies. ++ * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +--- a/nss_hal/ipq806x/nss_hal_pvt.c ++++ b/nss_hal/ipq806x/nss_hal_pvt.c +@@ -1,9 +1,12 @@ + /* + ************************************************************************** + * Copyright (c) 2013, 2015-2021, The Linux Foundation. All rights reserved. ++ * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved. ++ * + * Permission to use, copy, modify, and/or distribute this software for + * any purpose with or without fee is hereby granted, provided that the + * above copyright notice and this permission notice appear in all copies. ++ * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +--- a/nss_meminfo.c ++++ b/nss_meminfo.c +@@ -1,5 +1,6 @@ + /* + * Copyright (c) 2018-2021, The Linux Foundation. All rights reserved. ++ * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved. + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above +--- a/nss_phys_if.h ++++ b/nss_phys_if.h +@@ -1,6 +1,6 @@ + /* + ************************************************************************** +- * Copyright (c) 2014-2020, The Linux Foundation. All rights reserved. ++ * Copyright (c) 2014-2021, The Linux Foundation. All rights reserved. + * Permission to use, copy, modify, and/or distribute this software for + * any purpose with or without fee is hereby granted, provided that the + * above copyright notice and this permission notice appear in all copies. +--- a/nss_profiler.c ++++ b/nss_profiler.c +@@ -1,9 +1,12 @@ + /* + ************************************************************************** + * Copyright (c) 2013-2020, The Linux Foundation. All rights reserved. ++ * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved. ++ * + * Permission to use, copy, modify, and/or distribute this software for + * any purpose with or without fee is hereby granted, provided that the + * above copyright notice and this permission notice appear in all copies. ++ * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +--- a/nss_qrfs.c ++++ b/nss_qrfs.c +@@ -1,6 +1,6 @@ + /* + ************************************************************************** +- * Copyright (c) 2017-2020, The Linux Foundation. All rights reserved. ++ * Copyright (c) 2017-2021 The Linux Foundation. All rights reserved. + * Permission to use, copy, modify, and/or distribute this software for + * any purpose with or without fee is hereby granted, provided that the + * above copyright notice and this permission notice appear in all copies. +--- a/nss_rmnet_rx.c ++++ b/nss_rmnet_rx.c +@@ -1,6 +1,6 @@ + /* + ************************************************************************** +- * Copyright (c) 2019-2020, The Linux Foundation. All rights reserved. ++ * Copyright (c) 2019-2021, The Linux Foundation. All rights reserved. + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above +--- a/nss_stats.c ++++ b/nss_stats.c +@@ -1,9 +1,12 @@ + /* + ************************************************************************** + * Copyright (c) 2013-2020, The Linux Foundation. All rights reserved. ++ * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved. ++ * + * Permission to use, copy, modify, and/or distribute this software for + * any purpose with or without fee is hereby granted, provided that the + * above copyright notice and this permission notice appear in all copies. ++ * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +--- a/nss_stats.h ++++ b/nss_stats.h +@@ -1,9 +1,12 @@ + /* + ************************************************************************** + * Copyright (c) 2016-2017, 2019-2020 The Linux Foundation. All rights reserved. ++ * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved. ++ * + * Permission to use, copy, modify, and/or distribute this software for + * any purpose with or without fee is hereby granted, provided that the + * above copyright notice and this permission notice appear in all copies. ++ * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +--- a/nss_vxlan.c ++++ b/nss_vxlan.c +@@ -1,6 +1,6 @@ + /* + ************************************************************************** +- * Copyright (c) 2019-2020, The Linux Foundation. All rights reserved. ++ * Copyright (c) 2019-2021, The Linux Foundation. All rights reserved. + * Permission to use, copy, modify, and/or distribute this software for + * any purpose with or without fee is hereby granted, provided that the + * above copyright notice and this permission notice appear in all copies. +--- a/nss_data_plane/include/nss_data_plane.h ++++ b/nss_data_plane/include/nss_data_plane.h +@@ -1,6 +1,6 @@ + /* + ************************************************************************** +- * Copyright (c) 2014-2017,2020, The Linux Foundation. All rights reserved. ++ * Copyright (c) 2014-2017,2020-2021, The Linux Foundation. All rights reserved. + * Permission to use, copy, modify, and/or distribute this software for + * any purpose with or without fee is hereby granted, provided that the + * above copyright notice and this permission notice appear in all copies. +--- a/nss_data_plane/nss_data_plane.c ++++ b/nss_data_plane/nss_data_plane.c +@@ -1,6 +1,6 @@ + /* + ************************************************************************** +- * Copyright (c) 2016-2020, The Linux Foundation. All rights reserved. ++ * Copyright (c) 2016-2021, The Linux Foundation. All rights reserved. + * Permission to use, copy, modify, and/or distribute this software for + * any purpose with or without fee is hereby granted, provided that the + * above copyright notice and this permission notice appear in all copies. +--- a/exports/nss_wifi_vdev.h ++++ b/exports/nss_wifi_vdev.h +@@ -1071,13 +1071,13 @@ struct nss_wifi_vdev_msg { + struct nss_wifi_vdev_me_snptbl_deny_grp_add_msg vdev_deny_member_add; + /**< Add a snooplist member to the deny list. */ + struct nss_wifi_vdev_me_hmmc_add_msg vdev_hmmc_member_add; +- /**< Adds a new member into the HMMC list. */ ++ /**< Adds a member to the HMMC list. */ + struct nss_wifi_vdev_me_hmmc_del_msg vdev_hmmc_member_del; +- /**< Delete a member from the HMMC list. */ ++ /**< Deletes a member from the HMMC list. */ + struct nss_wifi_vdev_me_deny_ip_add_msg vdev_deny_list_member_add; +- /**< Adds a new member into the deny list. */ ++ /**< Adds a member to the denylist. */ + struct nss_wifi_vdev_me_deny_ip_del_msg vdev_deny_list_member_del; +- /**< Delete a member from the deny list. */ ++ /**< Deletes a member from the denylist. */ + struct nss_wifi_vdev_txmsg vdev_txmsgext; + /**< Transmits special data. */ + struct nss_wifi_vdev_vow_dbg_cfg_msg vdev_vow_dbg_cfg; +--- a/exports/nss_wifi_ext_vdev_if.h ++++ b/exports/nss_wifi_ext_vdev_if.h +@@ -1,6 +1,6 @@ + /* + ************************************************************************** +- * Copyright (c) 2020, The Linux Foundation. All rights reserved. ++ * Copyright (c) 2020, 2021, The Linux Foundation. All rights reserved. + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above +@@ -26,6 +26,11 @@ + + #define NSS_WIFI_EXT_VDEV_MAX 16 + ++/** ++ * @addtogroup nss_wifi_ext_vdev_subsystem ++ * @{ ++ */ ++ + /* + * nss_wifi_ext_vdev_msg_types + * WiFi extension virtual device mesage types. +@@ -294,4 +299,8 @@ extern struct nss_ctx_instance *nss_wifi + nss_wifi_ext_vdev_data_callback_t cb_func_data, nss_wifi_ext_vdev_ext_data_callback_t cb_func_ext, + nss_wifi_ext_vdev_msg_callback_t cb_func_msg, struct net_device *netdev, uint32_t features, + void *app_ctx); ++/** ++ * @} ++ */ ++ + #endif +--- a/exports/nss_wifili_if.h ++++ b/exports/nss_wifili_if.h +@@ -1,16 +1,19 @@ + /* + ************************************************************************** + * Copyright (c) 2017-2021, The Linux Foundation. All rights reserved. +- * Permission to use, copy, modify, and/or distribute this software for +- * any purpose with or without fee is hereby granted, provided that the +- * above copyright notice and this permission notice appear in all copies. ++ * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. ++ * ++ * Permission to use, copy, modify, and/or distribute this software for any ++ * purpose with or without fee is hereby granted, provided that the above ++ * copyright notice and this permission notice appear in all copies. ++ * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT +- * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ++ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ++ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + ************************************************************************** + */ + +@@ -711,7 +714,7 @@ struct nss_wifili_hal_srng_soc_msg { + uint32_t shadow_wrptr_mem_addr; + /**< Shadow write pointer address. */ + uint32_t lmac_rings_start_id; +- /**< start id of LMAC rings. */ ++ /**< Start ID of LMAC rings. */ + }; + + /** +--- a/exports/nss_wifi_mac_db_if.h ++++ b/exports/nss_wifi_mac_db_if.h +@@ -1,6 +1,6 @@ + /* + ************************************************************************** +- * Copyright (c) 2020, The Linux Foundation. All rights reserved. ++ * Copyright (c) 2020, 2021, The Linux Foundation. All rights reserved. + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above +@@ -25,6 +25,11 @@ + + #define NSS_WIFI_MAC_DB_ENTRY_IF_LOCAL 0x1 + ++ /** ++ * @addtogroup nss_wifi_mac_db_if_subsystem ++ * @{ ++ */ ++ + /* + * MAX Wi-Fi MAC database entries sent in group + * is chosen considering the entry size and +@@ -72,6 +77,7 @@ enum nss_wifi_mac_db_if_opmode { + }; + + /** ++ * nss_wifi_mac_db_err_types + * Wi-Fi MAC database errors. + */ + enum nss_wifi_mac_db_err_types { +@@ -274,4 +280,9 @@ struct nss_ctx_instance *nss_register_wi + */ + void nss_unregister_wifi_mac_db_if(uint32_t if_num); + struct nss_ctx_instance *nss_wifi_mac_db_get_context(void); ++ ++/** ++ * @} ++ */ ++ + #endif /* __NSS_WIFI_MAC_DB_H */ +--- a/nss_wifili_stats.c ++++ b/nss_wifili_stats.c +@@ -1,6 +1,6 @@ + /* + ************************************************************************** +- * Copyright (c) 2017-2020, The Linux Foundation. All rights reserved. ++ * Copyright (c) 2017-2021, The Linux Foundation. All rights reserved. + * Permission to use, copy, modify, and/or distribute this software for + * any purpose with or without fee is hereby granted, provided that the + * above copyright notice and this permission notice appear in all copies. +--- a/nss_wifili_strings.c ++++ b/nss_wifili_strings.c +@@ -1,6 +1,6 @@ + /* + ************************************************************************** +- * Copyright (c) 2019-2020, The Linux Foundation. All rights reserved. ++ * Copyright (c) 2019-2021, The Linux Foundation. All rights reserved. + * + * Permission to use, copy, modify, and/or distribute this software for + * any purpose with or without fee is hereby granted, provided that the +@@ -71,10 +71,10 @@ struct nss_stats_info nss_wifili_strings + * wifili tx comp stats + */ + struct nss_stats_info nss_wifili_strings_stats_tx_comp[NSS_WIFILI_STATS_TX_DESC_FREE_MAX] = { +- {"tx_desc_free_inv_bufsrc" , NSS_STATS_TYPE_ERROR}, +- {"tx_desc_free_inv_cookie" , NSS_STATS_TYPE_SPECIAL}, +- {"tx_desc_free_hw_ring_empty" , NSS_STATS_TYPE_SPECIAL}, +- {"tx_desc_free_reaped" , NSS_STATS_TYPE_SPECIAL} ++ {"tx_desc_free_inv_bufsrc" , NSS_STATS_TYPE_ERROR}, ++ {"tx_desc_free_inv_cookie" , NSS_STATS_TYPE_SPECIAL}, ++ {"tx_desc_free_hw_ring_empty" , NSS_STATS_TYPE_SPECIAL}, ++ {"tx_desc_free_reaped" , NSS_STATS_TYPE_SPECIAL} + }; + + /* diff --git a/qca-nss-drv/patches-11.4/0013-backport-12.4.patch b/qca-nss-drv/patches-11.4/0013-backport-12.4.patch index a63c032..66d7c0b 100644 --- a/qca-nss-drv/patches-11.4/0013-backport-12.4.patch +++ b/qca-nss-drv/patches-11.4/0013-backport-12.4.patch @@ -1,168 +1,6 @@ ---- a/exports/nss_c2c_rx.h -+++ b/exports/nss_c2c_rx.h -@@ -1,6 +1,6 @@ - /* - ************************************************************************** -- * Copyright (c) 2019-2020, The Linux Foundation. All rights reserved. -+ * Copyright (c) 2019-2021, The Linux Foundation. All rights reserved. - * Permission to use, copy, modify, and/or distribute this software for - * any purpose with or without fee is hereby granted, provided that the - * above copyright notice and this permission notice appear in all copies. -@@ -36,7 +36,7 @@ enum nss_c2c_rx_stats_types { - /**< Number of received simple pbufs. */ - NSS_C2C_RX_STATS_PBUF_SG, /**< Number of scatter-gather pbufs received. */ - NSS_C2C_RX_STATS_PBUF_RETURNING, /**< Number of returning scatter-gather pbufs. */ -- NSS_C2C_RX_STATS_INVAL_DEST, /**< Number of pbuf enqueue failures because of destination is invalid. */ -+ NSS_C2C_RX_STATS_INVAL_DEST, /**< Number of pbuf enqueue failures because destination is invalid. */ - NSS_C2C_RX_STATS_MAX, /**< Maximum message type. */ - }; - ---- a/exports/nss_c2c_tx.h -+++ b/exports/nss_c2c_tx.h -@@ -1,6 +1,6 @@ - /* - ************************************************************************** -- * Copyright (c) 2018-2020, The Linux Foundation. All rights reserved. -+ * Copyright (c) 2018-2021, The Linux Foundation. All rights reserved. - * Permission to use, copy, modify, and/or distribute this software for - * any purpose with or without fee is hereby granted, provided that the - * above copyright notice and this permission notice appear in all copies. -@@ -72,9 +72,9 @@ enum nss_c2c_tx_test_type { - */ - enum nss_c2c_tx_stats_types { - NSS_C2C_TX_STATS_PBUF_SIMPLE = NSS_STATS_NODE_MAX, -- /**< Number of received simple pbuf. */ -- NSS_C2C_TX_STATS_PBUF_SG, /**< Number of scatter-gather pbuf received. */ -- NSS_C2C_TX_STATS_PBUF_RETURNING, /**< Number of returning scatter-gather pbuf. */ -+ /**< Number of received simple pbufs. */ -+ NSS_C2C_TX_STATS_PBUF_SG, /**< Number of scatter-gather pbufs received. */ -+ NSS_C2C_TX_STATS_PBUF_RETURNING, /**< Number of returning scatter-gather pbufs. */ - NSS_C2C_TX_STATS_MAX, /**< Maximum message type. */ - }; - ---- a/exports/nss_cmn.h -+++ b/exports/nss_cmn.h -@@ -1,6 +1,6 @@ - /* - ************************************************************************** -- * Copyright (c) 2014, 2016-2020, The Linux Foundation. All rights reserved. -+ * Copyright (c) 2014, 2016-2021, The Linux Foundation. All rights reserved. - * Permission to use, copy, modify, and/or distribute this software for - * any purpose with or without fee is hereby granted, provided that the - * above copyright notice and this permission notice appear in all copies. -@@ -27,7 +27,7 @@ - * @{ - */ - --/* -+/** - * Interface Number 1 Valid 7 Core 8 Type 16 Index - */ - typedef int32_t nss_if_num_t; --- a/exports/nss_gre.h +++ b/exports/nss_gre.h -@@ -1,6 +1,9 @@ - /* - **************************************************************************** - * Copyright (c) 2017-2019, 2021, The Linux Foundation. All rights reserved. -+ * -+ * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. -+ * - * Permission to use, copy, modify, and/or distribute this software for - * any purpose with or without fee is hereby granted, provided that the - * above copyright notice and this permission notice appear in all copies. -@@ -101,16 +104,16 @@ enum nss_gre_msg_types { - }; - - /** -- * GRE Mode Types -+ * GRE mode types. - */ - enum nss_gre_mode { -- NSS_GRE_MODE_TUN, /**< GRE Tunnel interface. */ -- NSS_GRE_MODE_TAP, /**< GRE Tap interface. */ -+ NSS_GRE_MODE_TUN, /**< GRE tunnel interface. */ -+ NSS_GRE_MODE_TAP, /**< GRE TAP interface. */ - NSS_GRE_MODE_MAX /**< Maxmum GRE mode. */ - }; - - /** -- * GRE IP Types -+ * GRE IP types. - */ - enum nss_gre_ip_types { - NSS_GRE_IP_IPV4, /**< Outer Tunnel is IPV4. */ -@@ -168,11 +171,11 @@ enum nss_gre_session_types { - * GRE create message structure. - */ - struct nss_gre_config_msg { -- uint32_t src_ip[4]; /**< Source IPv4 or IPv6 Adddress. */ -- uint32_t dest_ip[4]; /**< Destination IPv4 or IPv6 Adddress. */ -+ uint32_t src_ip[4]; /**< Source IPv4 or IPv6 address. */ -+ uint32_t dest_ip[4]; /**< Destination IPv4 or IPv6 address. */ - uint32_t flags; /**< GRE Flags. */ -- uint32_t ikey; /**< GRE rx KEY.*/ -- uint32_t okey; /**< GRE tx KEY. */ -+ uint32_t ikey; /**< GRE Rx key.*/ -+ uint32_t okey; /**< GRE Tx key. */ - uint32_t mode; /**< GRE TUN or TAP. */ - uint32_t ip_type; /**< IPv4 or IPv6 type. */ - uint32_t next_node_if_num; /**< To whom to forward packets. */ -@@ -185,7 +188,7 @@ struct nss_gre_config_msg { - }; - - /** -- * GRE link up message structure -+ * GRE link up message structure. - */ - struct nss_gre_linkup_msg { - int if_number; /**< Interface number. */ -@@ -202,11 +205,11 @@ struct nss_gre_linkdown_msg { - * GRE deconfig message structure - */ - struct nss_gre_deconfig_msg { -- int if_number; /**< Interface number */ -+ int if_number; /**< Interface number. */ - }; - - /** -- * GRE session statistics message -+ * GRE session statistics message. - */ - struct nss_gre_session_stats_msg { - struct nss_cmn_node_stats node_stats; /**< Common node statistics. */ -@@ -214,7 +217,7 @@ struct nss_gre_session_stats_msg { - }; - - /** -- * GRE base statistics message -+ * GRE base statistics message. - */ - struct nss_gre_base_stats_msg { - uint32_t stats[NSS_GRE_BASE_DEBUG_MAX]; /**< Base debug statistics. */ -@@ -241,10 +244,10 @@ struct nss_gre_session_stats_notificatio - - /** - * nss_gre_msg -- * Message structure to send/receive GRE messages -+ * Message structure to send/receive GRE messages. - */ - struct nss_gre_msg { -- struct nss_cmn_msg cm; /**< Common message header */ -+ struct nss_cmn_msg cm; /**< Common message header. */ - - /** - * Payload of a GRE message. -@@ -304,7 +307,7 @@ extern nss_tx_status_t nss_gre_tx_msg_sy - - /** - * nss_gre_tx_buf -- * Sends packet to the NSS -+ * Sends a packet to the NSS. - * - * @datatypes - * nss_ctx_instance \n -@@ -445,7 +448,17 @@ typedef void (*nss_gre_pkt_callback_t)(s +@@ -448,7 +448,17 @@ typedef void (*nss_gre_pkt_callback_t)(s * @return * None. */ @@ -180,7 +18,7 @@ /** * nss_gre_unregister_pkt_callback -@@ -457,7 +470,17 @@ extern void nss_gre_register_pkt_callbac +@@ -460,7 +470,17 @@ extern void nss_gre_register_pkt_callbac * @return * None. */ @@ -198,134 +36,9 @@ /** * nss_gre_stats_unregister_notifier ---- a/exports/nss_gre_redir.h -+++ b/exports/nss_gre_redir.h -@@ -302,7 +302,7 @@ struct nss_gre_redir_stats_sync_msg { - - /** - * nss_gre_redir_tun_stats -- * GRE redirect statistics to accumulate all the stats values. -+ * GRE redirect statistics to accumulate all stats values. - */ - struct nss_gre_redir_tun_stats { - uint64_t rx_packets; /**< Number of packets received. */ ---- a/exports/nss_if.h -+++ b/exports/nss_if.h -@@ -321,6 +321,23 @@ extern struct nss_ctx_instance *nss_if_r - extern nss_tx_status_t nss_if_tx_buf(struct nss_ctx_instance *nss_ctx, struct sk_buff *os_buf, uint32_t if_num); - - /** -+ * nss_if_tx_msg_with_size -+ * Sends a message to the NSS interface. -+ * -+ * @datatypes -+ * nss_ctx_instance \n -+ * nss_if_msg -+ * -+ * @param[in,out] nss_ctx Pointer to the NSS context. -+ * @param[in] nim Pointer to the NSS interface message. -+ * @param[in] size Total message buffer size. -+ * -+ * @return -+ * Status of the Tx operation. -+ */ -+nss_tx_status_t nss_if_tx_msg_with_size(struct nss_ctx_instance *nss_ctx, struct nss_if_msg *nim, uint32_t size); -+ -+/** - * nss_if_tx_msg - * Sends a message to the NSS interface. - * -@@ -338,7 +355,7 @@ nss_tx_status_t nss_if_tx_msg(struct nss - - /** - * nss_if_msg_sync -- * Sends a message to the NSS interface and wait for the response. -+ * Sends a message to the NSS interface and waits for the response. - * - * @datatypes - * nss_ctx_instance \n -@@ -385,7 +402,7 @@ nss_tx_status_t nss_if_reset_nexthop(str - - /** - * nss_if_change_mtu -- * Change the MTU of the interface. -+ * Changes the MTU of the interface. - * - * @datatypes - * nss_ctx_instance -@@ -401,7 +418,7 @@ nss_tx_status_t nss_if_change_mtu(struct - - /** - * nss_if_change_mac_addr -- * Change the MAC address of the interface. -+ * Changes the MAC address of the interface. - * - * @datatypes - * nss_ctx_instance -@@ -417,7 +434,7 @@ nss_tx_status_t nss_if_change_mac_addr(s - - /** - * nss_if_vsi_unassign -- * Detach the VSI ID from the given interface. -+ * Detaches the VSI ID from the given interface. - * - * @datatypes - * nss_ctx_instance -@@ -433,7 +450,7 @@ nss_tx_status_t nss_if_vsi_unassign(stru - - /** - * nss_if_vsi_assign -- * Attach the VSI ID to the given interface. -+ * Attaches the VSI ID to the given interface. - * - * @datatypes - * nss_ctx_instance --- a/exports/nss_ipv4.h +++ b/exports/nss_ipv4.h -@@ -1,9 +1,12 @@ - /* - ************************************************************************** - * Copyright (c) 2014-2021, The Linux Foundation. All rights reserved. -+ * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. -+ * - * Permission to use, copy, modify, and/or distribute this software for - * any purpose with or without fee is hereby granted, provided that the - * above copyright notice and this permission notice appear in all copies. -+ * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -@@ -55,16 +58,16 @@ struct nss_ipv4_create { - /**< Source interface number (virtual or physical). */ - int32_t dest_interface_num; - /**< Destination interface number (virtual or physical). */ -- int32_t protocol; /**< L4 protocol (e.g., TCP or UDP). */ -- uint32_t flags; /**< Flags (if any) associated with this rule. */ -+ int32_t protocol; /**< L4 protocol, e.g., TCP or UDP. */ -+ uint32_t flags; /**< Flags associated with this rule. */ - uint32_t from_mtu; /**< MTU of the incoming interface. */ - uint32_t to_mtu; /**< MTU of the outgoing interface. */ - uint32_t src_ip; /**< Source IP address. */ -- int32_t src_port; /**< Source L4 port (e.g., TCP or UDP port). */ -+ int32_t src_port; /**< Source L4 port, e.g., TCP or UDP port. */ - uint32_t src_ip_xlate; /**< Translated source IP address (used with SNAT). */ - int32_t src_port_xlate; /**< Translated source L4 port (used with SNAT). */ - uint32_t dest_ip; /**< Destination IP address. */ -- int32_t dest_port; /**< Destination L4 port (e.g., TCP or UDP port). */ -+ int32_t dest_port; /**< Destination L4 port, e.g., TCP or UDP port. */ - uint32_t dest_ip_xlate; - /**< Translated destination IP address (used with DNAT). */ - int32_t dest_port_xlate; -@@ -82,7 +85,7 @@ struct nss_ipv4_create { - uint32_t flow_end; /**< TCP window end. */ - uint32_t flow_max_end; /**< TCP window maximum end. */ - uint32_t flow_pppoe_if_exist; -- /**< Flow direction: PPPoE interface exist flag. */ -+ /**< Flow direction: PPPoE interface existence flag. */ - int32_t flow_pppoe_if_num; - /**< Flow direction: PPPoE interface number. */ - uint16_t ingress_vlan_tag; /**< Ingress VLAN tag expected for this flow. */ -@@ -100,7 +103,7 @@ struct nss_ipv4_create { +@@ -103,7 +103,7 @@ struct nss_ipv4_create { /**< Return direction: PPPoE interface number. */ uint16_t egress_vlan_tag; /**< Egress VLAN tag expected for this flow. */ uint8_t spo_needed; /**< Indicates whether SPO is required. */ @@ -334,83 +47,9 @@ uint32_t param_a1; /**< Custom parameter 1. */ uint32_t param_a2; /**< Custom parameter 2. */ uint32_t param_a3; /**< Custom parameter 3. */ -@@ -131,9 +134,9 @@ struct nss_ipv4_create { - struct nss_ipv4_destroy { - int32_t protocol; /**< L4 protocol ID. */ - uint32_t src_ip; /**< Source IP address. */ -- int32_t src_port; /**< Source L4 port (e.g., TCP or UDP port). */ -+ int32_t src_port; /**< Source L4 port, e.g., TCP or UDP port. */ - uint32_t dest_ip; /**< Destination IP address. */ -- int32_t dest_port; /**< Destination L4 port (e.g., TCP or UDP port). */ -+ int32_t dest_port; /**< Destination L4 port, e.g., TCP or UDP port. */ - }; - - /** -@@ -900,6 +903,7 @@ enum nss_ipv4_exception_events { - NSS_IPV4_EXCEPTION_EVENT_ICMP_IPV4_GRE_HEADER_INCOMPLETE, - NSS_IPV4_EXCEPTION_EVENT_ICMP_IPV4_ESP_HEADER_INCOMPLETE, - NSS_IPV4_EXCEPTION_EVENT_EMESH_PRIO_MISMATCH, -+ NSS_IPV4_EXCEPTION_EVENT_MC_UCAST_DMAC, - NSS_IPV4_EXCEPTION_EVENT_MAX - }; - -@@ -956,10 +960,10 @@ struct nss_ipv4_node_sync { - /**< Number of multicast connection flushes. */ - - uint32_t ipv4_connection_create_invalid_mirror_ifnum; -- /**< Number of create request failed with an invalid mirror interface number. */ -+ /**< Number of failed create requests with an invalid mirror interface number. */ - - uint32_t ipv4_connection_create_invalid_mirror_iftype; -- /**< Number of create request failed with an invalid mirror interface type. */ -+ /**< Number of failed create requests with an invalid mirror interface type. */ - - uint32_t ipv4_mirror_failures; - /**< Mirror packet failed. */ --- a/exports/nss_ipv6.h +++ b/exports/nss_ipv6.h -@@ -1,9 +1,12 @@ - /* - ************************************************************************** - * Copyright (c) 2014-2021, The Linux Foundation. All rights reserved. -+ * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. -+ * - * Permission to use, copy, modify, and/or distribute this software for - * any purpose with or without fee is hereby granted, provided that the - * above copyright notice and this permission notice appear in all copies. -+ * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -@@ -82,14 +85,14 @@ struct nss_ipv6_create { - /**< Source interface number (virtual or physical). */ - int32_t dest_interface_num; - /**< Destination interface number (virtual or physical). */ -- int32_t protocol; /**< L4 protocol (e.g., TCP or UDP). */ -- uint32_t flags; /**< Flags (if any) associated with this rule. */ -+ int32_t protocol; /**< L4 protocol, e.g., TCP or UDP,. */ -+ uint32_t flags; /**< Flags associated with this rule. */ - uint32_t from_mtu; /**< MTU of the incoming interface. */ - uint32_t to_mtu; /**< MTU of the outgoing interface. */ - uint32_t src_ip[4]; /**< Source IP address. */ -- int32_t src_port; /**< Source L4 port (e.g., TCP or UDP port). */ -+ int32_t src_port; /**< Source L4 port, e.g., TCP or UDP port. */ - uint32_t dest_ip[4]; /**< Destination IP address. */ -- int32_t dest_port; /**< Destination L4 port (e.g., TCP or UDP port). */ -+ int32_t dest_port; /**< Destination L4 port, e.g., TCP or UDP port. */ - uint8_t src_mac[ETH_ALEN]; /**< Source MAC address. */ - uint8_t dest_mac[ETH_ALEN]; /**< Destination MAC address. */ - uint8_t flow_window_scale; /**< Window scaling factor (TCP). */ -@@ -111,7 +114,7 @@ struct nss_ipv6_create { - uint32_t return_max_end; - /**< Maximum end for the return direction. */ - uint32_t return_pppoe_if_exist; -- /**< Return direction: PPPoE interface exist flag. */ -+ /**< Return direction: PPPoE interface existence flag. */ - int32_t return_pppoe_if_num; - /**< Return direction: PPPoE interface number. */ - uint16_t egress_vlan_tag; /**< Egress VLAN tag expected for this flow. */ -@@ -132,6 +135,7 @@ struct nss_ipv6_create { +@@ -135,6 +135,7 @@ struct nss_ipv6_create { /**< Egress VLAN tag expected for this flow. */ uint8_t flow_dscp; /**< IP DSCP value for flow direction. */ uint8_t return_dscp; /**< IP DSCP value for the return direction. */ @@ -418,115 +57,47 @@ }; /** -@@ -139,11 +143,11 @@ struct nss_ipv6_create { - * Information for an IPv6 flow or connection destroy rule. - */ - struct nss_ipv6_destroy { -- int32_t protocol; /**< L4 protocol (e.g., TCP or UDP). */ -+ int32_t protocol; /**< L4 protocol, e.g., TCP or UDP. */ - uint32_t src_ip[4]; /**< Source IP address. */ -- int32_t src_port; /**< Source L4 port (e.g., TCP or UDP port). */ -+ int32_t src_port; /**< Source L4 port, e.g., TCP or UDP port. */ - uint32_t dest_ip[4]; /**< Destination IP address. */ -- int32_t dest_port; /**< Destination L4 port (e.g., TCP or UDP port). */ -+ int32_t dest_port; /**< Destination L4 port, e.g., TCP or UDP port. */ - }; - - /** -@@ -951,10 +955,10 @@ struct nss_ipv6_node_sync { - /**< Number of multicast connection flushes. */ - - uint32_t ipv6_connection_create_invalid_mirror_ifnum; -- /**< Number of create request failed with an invalid mirror interface number. */ -+ /**< Number of failed create requests with an invalid mirror interface number. */ - - uint32_t ipv6_connection_create_invalid_mirror_iftype; -- /**< Number of create request failed with an invalid mirror interface type. */ -+ /**< Number of failed create requests with an invalid mirror interface type. */ - - uint32_t ipv6_mirror_failures; - /**< Mirror packet failed. */ ---- a/exports/nss_lso_rx.h -+++ b/exports/nss_lso_rx.h -@@ -1,6 +1,6 @@ - /* - ************************************************************************** -- * Copyright (c) 2019-2020, The Linux Foundation. All rights reserved. -+ * Copyright (c) 2019-2021, The Linux Foundation. All rights reserved. - * - * Permission to use, copy, modify, and/or distribute this software for - * any purpose with or without fee is hereby granted, provided that the -@@ -17,7 +17,7 @@ - */ +--- a/exports/nss_wifili_if.h ++++ b/exports/nss_wifili_if.h +@@ -104,6 +104,11 @@ + #define NSS_WIFILI_PEER_SIZE 1600 /* -- * nss_lso_rx.h -+ * @file nss_lso_rx.h - * NSS driver LSO (Large Send Offload) Rx header file. - */ - ---- a/exports/nss_map_t.h -+++ b/exports/nss_map_t.h -@@ -36,14 +36,18 @@ - */ - #define NSS_MAX_MAP_T_DYNAMIC_INTERFACES 4 - -+/** -+ * MAP-T metadata flag. ++ * Maximum size of target SoC type string + */ - #define NSS_MAPT_MDATA_FLAG_DF_BIT (1 << 0) - --/* -- * mapt meta data -+/** -+ * nss_map_t_mdata -+ * MAP-T metadata ++#define NSS_WIFILI_SOC_STRING_SIZE_MAX 24 ++ ++/* + * Radio specific flags */ - struct nss_map_t_mdata { -- uint16_t flags; -- uint16_t res[6]; -+ uint16_t flags; /**< Metadata flags. */ -+ uint16_t res[6]; /**< Reserved for future use. */ + #define NSS_WIFILI_PDEV_FLAG_V3_STATS_ENABLED 0x00000008 +@@ -660,9 +665,12 @@ struct nss_wifili_stats { + * NSS wifili soc stats + */ + struct nss_wifili_soc_stats { +- uint32_t soc_maxpdev; /**< Maximum number of radios per SoC. */ ++ uint32_t soc_maxpdev; ++ /**< Maximum number of radios per SoC. */ + struct nss_wifili_stats stats_wifili; +- /**< Per-SoC statistics. */ ++ /**< Per-SoC statistics. */ ++ char soc_type[NSS_WIFILI_SOC_STRING_SIZE_MAX]; ++ /**< Target SoC type string. */ }; /** ---- a/exports/nss_virt_if.h -+++ b/exports/nss_virt_if.h -@@ -1,6 +1,6 @@ - /* - ************************************************************************** -- * Copyright (c) 2014-2017, 2019, The Linux Foundation. All rights reserved. -+ * Copyright (c) 2014-2017, 2019, 2021, The Linux Foundation. All rights reserved. - * Permission to use, copy, modify, and/or distribute this software for - * any purpose with or without fee is hereby granted, provided that the - * above copyright notice and this permission notice appear in all copies. -@@ -93,8 +93,8 @@ struct nss_virt_if_interface_stats { - * Virtual interface statistics received from the NSS. - */ - struct nss_virt_if_stats { -- struct nss_virt_if_base_node_stats base_stats; -- struct nss_virt_if_interface_stats if_stats; -+ struct nss_virt_if_base_node_stats base_stats; /**< Virtual interface statistics of NSS base node. */ -+ struct nss_virt_if_interface_stats if_stats; /**< Virtual interface statistics of each pair of interfaces. */ +@@ -1267,6 +1275,8 @@ struct nss_wifili_device_stats { + struct nss_wifili_stats_sync_msg { + struct nss_wifili_device_stats stats; + /**< Device statistics. */ ++ uint32_t target_type; ++ /**< Target SoC type. */ }; /** --- a/nss_c2c_rx.c +++ b/nss_c2c_rx.c -@@ -1,9 +1,12 @@ - /* - ************************************************************************** - * Copyright (c) 2018-2020, The Linux Foundation. All rights reserved. -+ * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. -+ * - * Permission to use, copy, modify, and/or distribute this software for - * any purpose with or without fee is hereby granted, provided that the - * above copyright notice and this permission notice appear in all copies. -+ * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -@@ -107,7 +110,7 @@ void nss_c2c_rx_register_handler(struct +@@ -110,7 +110,7 @@ void nss_c2c_rx_register_handler(struct if (nss_ctx->id == NSS_CORE_0) { nss_c2c_rx_stats_dentry_create(); @@ -537,20 +108,7 @@ EXPORT_SYMBOL(nss_c2c_rx_register_handler); --- a/nss_c2c_tx.c +++ b/nss_c2c_tx.c -@@ -1,9 +1,12 @@ - /* - ************************************************************************** - * Copyright (c) 2018-2020, The Linux Foundation. All rights reserved. -+ * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. -+ * - * Permission to use, copy, modify, and/or distribute this software for - * any purpose with or without fee is hereby granted, provided that the - * above copyright notice and this permission notice appear in all copies. -+ * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -@@ -142,8 +145,8 @@ void nss_c2c_tx_register_handler(struct +@@ -145,8 +145,8 @@ void nss_c2c_tx_register_handler(struct if (nss_ctx->id == NSS_CORE_0) { nss_c2c_tx_stats_dentry_create(); @@ -626,9 +184,10 @@ * Configure the maximum number of IPv4/IPv6 * connections supported by the accelerator. */ +- nss_ipv4_conn_cfg = max_ipv4_conn; +#ifdef NSS_DRV_IPV4_ENABLE - nss_ipv4_conn_cfg = max_ipv4_conn; -+ nss_ipv4_update_conn_count(max_ipv4_conn); ++ nss_ipv4_conn_cfg = max_ipv4_conn; ++ nss_ipv4_update_conn_count(max_ipv4_conn); +#endif + #ifdef NSS_DRV_IPV6_ENABLE @@ -736,16 +295,7 @@ uint64_t tx_q_full_cnt; /* Descriptor queue full count */ --- a/nss_coredump.c +++ b/nss_coredump.c -@@ -1,6 +1,8 @@ - /* - ************************************************************************** - * Copyright (c) 2015-2020, The Linux Foundation. All rights reserved. -+ * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. -+ * - * Permission to use, copy, modify, and/or distribute this software for - * any purpose with or without fee is hereby granted, provided that the - * above copyright notice and this permission notice appear in all copies. -@@ -47,7 +49,8 @@ static struct workqueue_struct *coredump +@@ -49,7 +49,8 @@ static struct workqueue_struct *coredump */ static void nss_coredump_wait(struct work_struct *work) { @@ -772,20 +322,7 @@ return NSS_TX_SUCCESS; --- a/nss_dynamic_interface.c +++ b/nss_dynamic_interface.c -@@ -1,9 +1,12 @@ - /* - ************************************************************************** - * Copyright (c) 2014-2020, The Linux Foundation. All rights reserved. -+ * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. -+ * - * Permission to use, copy, modify, and/or distribute this software for - * any purpose with or without fee is hereby granted, provided that the - * above copyright notice and this permission notice appear in all copies. -+ * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -@@ -320,7 +323,9 @@ nss_tx_status_t nss_dynamic_interface_de +@@ -323,7 +323,9 @@ nss_tx_status_t nss_dynamic_interface_de void nss_dynamic_interface_register_handler(struct nss_ctx_instance *nss_ctx) { nss_core_register_handler(nss_ctx, NSS_DYNAMIC_INTERFACE, nss_dynamic_interface_handler, NULL); @@ -798,20 +335,7 @@ /* --- a/nss_hal/ipq806x/nss_hal_pvt.c +++ b/nss_hal/ipq806x/nss_hal_pvt.c -@@ -1,9 +1,12 @@ - /* - ************************************************************************** - * Copyright (c) 2013, 2015-2021, The Linux Foundation. All rights reserved. -+ * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved. -+ * - * Permission to use, copy, modify, and/or distribute this software for - * any purpose with or without fee is hereby granted, provided that the - * above copyright notice and this permission notice appear in all copies. -+ * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -@@ -978,12 +981,12 @@ static int __nss_hal_clock_configure(str +@@ -981,12 +981,12 @@ static int __nss_hal_clock_configure(str * Check if turbo is supported */ if (npd->turbo_frequency) { @@ -826,7 +350,7 @@ } /* -@@ -1082,26 +1085,26 @@ clk_complete: +@@ -1085,26 +1085,26 @@ clk_complete: } } @@ -1142,14 +666,7 @@ nss_ipv6_unregister_sysctl(); --- a/nss_meminfo.c +++ b/nss_meminfo.c -@@ -1,5 +1,6 @@ - /* - * Copyright (c) 2018-2021, The Linux Foundation. All rights reserved. -+ * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved. - * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above -@@ -408,7 +409,7 @@ static bool nss_meminfo_init_block_lists +@@ -409,7 +409,7 @@ static bool nss_meminfo_init_block_lists if (strcmp(r->name, "profile_dma_ctrl") == 0) { mem_ctx->sdma_ctrl = kern_addr; @@ -1158,7 +675,7 @@ } /* -@@ -535,6 +536,13 @@ static bool nss_meminfo_configure_n2h_h2 +@@ -536,6 +536,13 @@ static bool nss_meminfo_configure_n2h_h2 } /* @@ -1172,7 +689,7 @@ * Bring a fresh copy of if_map from memory in order to read it correctly. */ if_map = mem_ctx->if_map; -@@ -793,6 +801,6 @@ bool nss_meminfo_init(struct nss_ctx_ins +@@ -794,6 +801,6 @@ bool nss_meminfo_init(struct nss_ctx_ins nss_meminfo_init_debugfs(nss_ctx); @@ -1197,14 +714,6 @@ /* --- a/nss_phys_if.h +++ b/nss_phys_if.h -@@ -1,6 +1,6 @@ - /* - ************************************************************************** -- * Copyright (c) 2014-2020, The Linux Foundation. All rights reserved. -+ * Copyright (c) 2014-2021, The Linux Foundation. All rights reserved. - * Permission to use, copy, modify, and/or distribute this software for - * any purpose with or without fee is hereby granted, provided that the - * above copyright notice and this permission notice appear in all copies. @@ -70,6 +70,12 @@ struct nss_phys_if_estats { uint32_t gmac_worst_case_ticks; /**< Worst case iteration of the GMAC in ticks */ uint32_t gmac_iterations; /**< Number of iterations around the GMAC */ @@ -1228,20 +737,7 @@ /** --- a/nss_profiler.c +++ b/nss_profiler.c -@@ -1,9 +1,12 @@ - /* - ************************************************************************** - * Copyright (c) 2013-2020, The Linux Foundation. All rights reserved. -+ * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved. -+ * - * Permission to use, copy, modify, and/or distribute this software for - * any purpose with or without fee is hereby granted, provided that the - * above copyright notice and this permission notice appear in all copies. -+ * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -@@ -97,7 +100,7 @@ nss_tx_status_t nss_profiler_if_tx_buf(v +@@ -100,7 +100,7 @@ nss_tx_status_t nss_profiler_if_tx_buf(v return NSS_TX_FAILURE_TOO_LARGE; } @@ -1250,7 +746,7 @@ if (!npm) { nss_warning("%px: Failed to allocate memory for message\n", nss_ctx); return NSS_TX_FAILURE; -@@ -121,6 +124,7 @@ void *nss_profiler_alloc_dma(struct nss_ +@@ -124,6 +124,7 @@ void *nss_profiler_alloc_dma(struct nss_ { int size; void *kaddr; @@ -1258,7 +754,7 @@ struct nss_profile_sdma_producer *dma; struct nss_profile_sdma_ctrl *ctrl = (struct nss_profile_sdma_ctrl *)nss_ctx->meminfo_ctx.sdma_ctrl; if (!ctrl) -@@ -132,7 +136,13 @@ void *nss_profiler_alloc_dma(struct nss_ +@@ -135,7 +136,13 @@ void *nss_profiler_alloc_dma(struct nss_ kaddr = kmalloc(size, GFP_KERNEL | __GFP_ZERO); if (kaddr) { @@ -1275,14 +771,6 @@ ctrl->consumer[0].ring.kp = kaddr; --- a/nss_qrfs.c +++ b/nss_qrfs.c -@@ -1,6 +1,6 @@ - /* - ************************************************************************** -- * Copyright (c) 2017-2020, The Linux Foundation. All rights reserved. -+ * Copyright (c) 2017-2021 The Linux Foundation. All rights reserved. - * Permission to use, copy, modify, and/or distribute this software for - * any purpose with or without fee is hereby granted, provided that the - * above copyright notice and this permission notice appear in all copies. @@ -415,6 +415,65 @@ nss_tx_status_t nss_qrfs_set_flow_rule(s EXPORT_SYMBOL(nss_qrfs_set_flow_rule); @@ -1351,14 +839,6 @@ void nss_qrfs_register_handler(struct nss_ctx_instance *nss_ctx) --- a/nss_rmnet_rx.c +++ b/nss_rmnet_rx.c -@@ -1,6 +1,6 @@ - /* - ************************************************************************** -- * Copyright (c) 2019-2020, The Linux Foundation. All rights reserved. -+ * Copyright (c) 2019-2021, The Linux Foundation. All rights reserved. - * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above @@ -243,6 +243,8 @@ static int nss_rmnet_rx_handle_destroy_s rmnet_rx_handle[index_h2n] = NULL; spin_unlock_bh(&nss_rmnet_rx_lock); @@ -1438,20 +918,7 @@ /* nss_rps_pri_map_cfg_handler() --- a/nss_stats.c +++ b/nss_stats.c -@@ -1,9 +1,12 @@ - /* - ************************************************************************** - * Copyright (c) 2013-2020, The Linux Foundation. All rights reserved. -+ * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved. -+ * - * Permission to use, copy, modify, and/or distribute this software for - * any purpose with or without fee is hereby granted, provided that the - * above copyright notice and this permission notice appear in all copies. -+ * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -@@ -149,6 +152,14 @@ int nss_stats_open(struct inode *inode, +@@ -152,6 +152,14 @@ int nss_stats_open(struct inode *inode, } /* @@ -1468,20 +935,7 @@ */ --- a/nss_stats.h +++ b/nss_stats.h -@@ -1,9 +1,12 @@ - /* - ************************************************************************** - * Copyright (c) 2016-2017, 2019-2020 The Linux Foundation. All rights reserved. -+ * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved. -+ * - * Permission to use, copy, modify, and/or distribute this software for - * any purpose with or without fee is hereby granted, provided that the - * above copyright notice and this permission notice appear in all copies. -+ * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -@@ -38,10 +41,11 @@ +@@ -41,10 +41,11 @@ #define NSS_STATS_EXTRA_OUTPUT_LINES 35 #define NSS_STATS_DECLARE_FILE_OPERATIONS(name) \ @@ -1495,7 +949,7 @@ .release = nss_stats_release, \ }; -@@ -68,6 +72,7 @@ extern void nss_stats_register_sysctl(vo +@@ -71,6 +72,7 @@ extern void nss_stats_register_sysctl(vo void nss_stats_init(void); extern int nss_stats_release(struct inode *inode, struct file *filp); extern int nss_stats_open(struct inode *inode, struct file *filp); @@ -1505,14 +959,6 @@ extern size_t nss_stats_fill_common_stats(uint32_t if_num, int instance, char *lbuf, size_t size_wr, size_t size_al, char *node); --- a/nss_vxlan.c +++ b/nss_vxlan.c -@@ -1,6 +1,6 @@ - /* - ************************************************************************** -- * Copyright (c) 2019-2020, The Linux Foundation. All rights reserved. -+ * Copyright (c) 2019-2021, The Linux Foundation. All rights reserved. - * Permission to use, copy, modify, and/or distribute this software for - * any purpose with or without fee is hereby granted, provided that the - * above copyright notice and this permission notice appear in all copies. @@ -226,6 +226,7 @@ bool nss_vxlan_unregister_if(uint32_t if } @@ -1542,14 +988,6 @@ EXPORT_SYMBOL(nss_wifi_vdev_tx_buf); --- a/nss_data_plane/include/nss_data_plane.h +++ b/nss_data_plane/include/nss_data_plane.h -@@ -1,6 +1,6 @@ - /* - ************************************************************************** -- * Copyright (c) 2014-2017,2020, The Linux Foundation. All rights reserved. -+ * Copyright (c) 2014-2017,2020-2021, The Linux Foundation. All rights reserved. - * Permission to use, copy, modify, and/or distribute this software for - * any purpose with or without fee is hereby granted, provided that the - * above copyright notice and this permission notice appear in all copies. @@ -25,6 +25,8 @@ #include #include "nss_phys_if.h" @@ -1561,14 +999,6 @@ * Called from nss_init to schedule a work to do data_plane register to data plane host driver --- a/nss_data_plane/nss_data_plane.c +++ b/nss_data_plane/nss_data_plane.c -@@ -1,6 +1,6 @@ - /* - ************************************************************************** -- * Copyright (c) 2016-2020, The Linux Foundation. All rights reserved. -+ * Copyright (c) 2016-2021, The Linux Foundation. All rights reserved. - * Permission to use, copy, modify, and/or distribute this software for - * any purpose with or without fee is hereby granted, provided that the - * above copyright notice and this permission notice appear in all copies. @@ -101,12 +101,6 @@ static int __nss_data_plane_mac_addr(str static int __nss_data_plane_change_mtu(struct nss_dp_data_plane_ctx *dpc, uint32_t mtu) { @@ -1590,338 +1020,12 @@ - nss_warning("skb->len ( %u ) > Maximum packet length ( %u ) \n", skb->len, NSS_DP_MAX_PACKET_LEN); + if (skb->len > NSS_DATA_PLANE_MAX_PACKET_LEN) { + nss_warning("skb->len ( %u ) > Maximum packet length ( %u ) \n", -+ skb->len, NSS_DATA_PLANE_MAX_PACKET_LEN); ++ skb->len, NSS_DATA_PLANE_MAX_PACKET_LEN); goto drop; } ---- a/exports/nss_wifi_vdev.h -+++ b/exports/nss_wifi_vdev.h -@@ -166,6 +166,7 @@ enum nss_wifi_vdev_ext_data_pkt_type { - /**< Mesh link VAP special packet. */ - NSS_WIFI_VDEV_MESH_EXT_DATA_PKT_TYPE_RX_MCAST_EXC = 16, - /**< Mesh link VAP multicast packet. */ -+ NSS_WIFI_VDEV_EXT_DATA_PKT_TYPE_4ADDR, /**< 4 address exception to host. */ - NSS_WIFI_VDEV_EXT_DATA_PKT_TYPE_MAX - }; - -@@ -815,6 +816,16 @@ struct nss_wifi_vdev_ppdu_metadata { - }; - - /** -+ * nss_wifi_vdev_addr4_data_metadata -+ * Address four metadata -+ */ -+struct nss_wifi_vdev_addr4_data_metadata { -+ uint16_t peer_id; /**< Peer ID. */ -+ uint8_t sa_valid; /**< Source address is valid. */ -+ uint8_t addr4_valid; /**< Address four is valid. */ -+}; -+ -+/** - * nss_wifi_vdev_per_packet_metadata - * Wi-Fi per packet metadata content. - */ -@@ -843,6 +854,8 @@ struct nss_wifi_vdev_per_packet_metadata - /**< Per packet Tx metadata structure for wireless distribution system mode. */ - struct nss_wifi_vdev_ppdu_metadata ppdu_metadata; - /**< Per packet PPDU metadata needed for per PPDU copy mode. */ -+ struct nss_wifi_vdev_addr4_data_metadata addr4_metadata; -+ /**< Create metadata for the WDS extension interface. */ - } metadata; - /**< Metadata payload for special data receive message. */ - }; -@@ -1039,6 +1052,8 @@ struct nss_wifi_vdev_stats_sync_msg { - uint32_t rx_mic_err; /**< Receive MIC error */ - uint32_t mcbc_exc_host_fail_cnt; - /**< Number of multicast/broadcast packets failed to send to host through exception path. */ -+ uint32_t addr4_exc_fail; /**< Number of failed 4 address exceptions. */ -+ uint32_t addr4_exc_pass; /**< Number of successful 4 address exceptions. */ - }; - - /** -@@ -1071,13 +1086,13 @@ struct nss_wifi_vdev_msg { - struct nss_wifi_vdev_me_snptbl_deny_grp_add_msg vdev_deny_member_add; - /**< Add a snooplist member to the deny list. */ - struct nss_wifi_vdev_me_hmmc_add_msg vdev_hmmc_member_add; -- /**< Adds a new member into the HMMC list. */ -+ /**< Adds a member to the HMMC list. */ - struct nss_wifi_vdev_me_hmmc_del_msg vdev_hmmc_member_del; -- /**< Delete a member from the HMMC list. */ -+ /**< Deletes a member from the HMMC list. */ - struct nss_wifi_vdev_me_deny_ip_add_msg vdev_deny_list_member_add; -- /**< Adds a new member into the deny list. */ -+ /**< Adds a member to the denylist. */ - struct nss_wifi_vdev_me_deny_ip_del_msg vdev_deny_list_member_del; -- /**< Delete a member from the deny list. */ -+ /**< Deletes a member from the denylist. */ - struct nss_wifi_vdev_txmsg vdev_txmsgext; - /**< Transmits special data. */ - struct nss_wifi_vdev_vow_dbg_cfg_msg vdev_vow_dbg_cfg; ---- a/exports/nss_wifi_ext_vdev_if.h -+++ b/exports/nss_wifi_ext_vdev_if.h -@@ -1,6 +1,6 @@ - /* - ************************************************************************** -- * Copyright (c) 2020, The Linux Foundation. All rights reserved. -+ * Copyright (c) 2020, 2021, The Linux Foundation. All rights reserved. - * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above -@@ -26,6 +26,11 @@ - - #define NSS_WIFI_EXT_VDEV_MAX 16 - -+/** -+ * @addtogroup nss_wifi_ext_vdev_subsystem -+ * @{ -+ */ -+ - /* - * nss_wifi_ext_vdev_msg_types - * WiFi extension virtual device mesage types. -@@ -294,4 +299,8 @@ extern struct nss_ctx_instance *nss_wifi - nss_wifi_ext_vdev_data_callback_t cb_func_data, nss_wifi_ext_vdev_ext_data_callback_t cb_func_ext, - nss_wifi_ext_vdev_msg_callback_t cb_func_msg, struct net_device *netdev, uint32_t features, - void *app_ctx); -+/** -+ * @} -+ */ -+ - #endif ---- a/exports/nss_wifili_if.h -+++ b/exports/nss_wifili_if.h -@@ -1,16 +1,19 @@ - /* - ************************************************************************** - * Copyright (c) 2017-2021, The Linux Foundation. All rights reserved. -- * Permission to use, copy, modify, and/or distribute this software for -- * any purpose with or without fee is hereby granted, provided that the -- * above copyright notice and this permission notice appear in all copies. -+ * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. -+ * -+ * Permission to use, copy, modify, and/or distribute this software for any -+ * purpose with or without fee is hereby granted, provided that the above -+ * copyright notice and this permission notice appear in all copies. -+ * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT -- * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - ************************************************************************** - */ - -@@ -84,7 +87,7 @@ - /**< Maximum DMA error codes. */ - #define NSS_WIFILI_MAX_TID 8 - /**< Maximum TID values. */ --#define NSS_WIFILI_DELAY_INDEX_MAX 10 -+#define NSS_WIFILI_DELAY_INDEX_MAX 13 - /**< Maximum software enqueue delay buckets. */ - #define NSS_WIFILI_MAX_NUMBER_OF_ADDTNL_SEG 64 - /**< Maximum number of additional pages allocated from host. */ -@@ -94,6 +97,8 @@ - /**< Maximum number of flow queues. */ - #define NSS_WIFILI_WBM_INTERNAL_ERR_MAX 5 - /**< WBM internal maximum errors. */ -+#define NSS_WIFILI_MAX_VOW_TID_NUM 4 -+ /**< Maximum version 3 TID values. */ - - /* - * Peer Size in Bytes -@@ -101,6 +106,11 @@ - #define NSS_WIFILI_PEER_SIZE 1600 - - /* -+ * Maximum size of target SoC type string -+ */ -+#define NSS_WIFILI_SOC_STRING_SIZE_MAX 24 -+ -+/* - * Radio specific flags - */ - #define NSS_WIFILI_PDEV_FLAG_V3_STATS_ENABLED 0x00000008 -@@ -657,9 +667,12 @@ struct nss_wifili_stats { - * NSS wifili soc stats - */ - struct nss_wifili_soc_stats { -- uint32_t soc_maxpdev; /**< Maximum number of radios per SoC. */ -+ uint32_t soc_maxpdev; -+ /**< Maximum number of radios per SoC. */ - struct nss_wifili_stats stats_wifili; -- /**< Per-SoC statistics. */ -+ /**< Per-SoC statistics. */ -+ char soc_type[NSS_WIFILI_SOC_STRING_SIZE_MAX]; -+ /**< Target SoC type string. */ - }; - - /** -@@ -711,7 +724,7 @@ struct nss_wifili_hal_srng_soc_msg { - uint32_t shadow_wrptr_mem_addr; - /**< Shadow write pointer address. */ - uint32_t lmac_rings_start_id; -- /**< start id of LMAC rings. */ -+ /**< Start ID of LMAC rings. */ - }; - - /** -@@ -1264,6 +1277,8 @@ struct nss_wifili_device_stats { - struct nss_wifili_stats_sync_msg { - struct nss_wifili_device_stats stats; - /**< Device statistics. */ -+ uint32_t target_type; -+ /**< Target SoC type. */ - }; - - /** ---- a/exports/nss_wifi_mac_db_if.h -+++ b/exports/nss_wifi_mac_db_if.h -@@ -1,6 +1,6 @@ - /* - ************************************************************************** -- * Copyright (c) 2020, The Linux Foundation. All rights reserved. -+ * Copyright (c) 2020, 2021, The Linux Foundation. All rights reserved. - * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above -@@ -25,6 +25,11 @@ - - #define NSS_WIFI_MAC_DB_ENTRY_IF_LOCAL 0x1 - -+ /** -+ * @addtogroup nss_wifi_mac_db_if_subsystem -+ * @{ -+ */ -+ - /* - * MAX Wi-Fi MAC database entries sent in group - * is chosen considering the entry size and -@@ -72,6 +77,7 @@ enum nss_wifi_mac_db_if_opmode { - }; - - /** -+ * nss_wifi_mac_db_err_types - * Wi-Fi MAC database errors. - */ - enum nss_wifi_mac_db_err_types { -@@ -274,4 +280,9 @@ struct nss_ctx_instance *nss_register_wi - */ - void nss_unregister_wifi_mac_db_if(uint32_t if_num); - struct nss_ctx_instance *nss_wifi_mac_db_get_context(void); -+ -+/** -+ * @} -+ */ -+ - #endif /* __NSS_WIFI_MAC_DB_H */ ---- a/exports/nss_wifi_mesh.h -+++ b/exports/nss_wifi_mesh.h -@@ -102,7 +102,7 @@ enum nss_wifi_mesh_pre_header_type { - - /* - * nss_wifi_mesh_extended_data_pkt_types -- * Wi-Fi mesh extended data pkt types. -+ * Wi-Fi mesh extended data packet types. - */ - enum nss_wifi_mesh_extended_data_pkt_types { - WIFI_MESH_EXT_DATA_PKT_TYPE_NONE, /**< No packet type. */ -@@ -114,13 +114,13 @@ enum nss_wifi_mesh_extended_data_pkt_typ - * Wi-Fi header - */ - struct nss_wifi_mesh_ieee80211_hdr { -- uint16_t frame_ctl; /* Frame control. */ -- uint16_t duration_id; /* Duration ID. */ -- uint8_t addr1[ETH_ALEN]; /* Address 1. */ -- uint8_t addr2[ETH_ALEN]; /* Address 2. */ -- uint8_t addr3[ETH_ALEN]; /* Address 3. */ -- uint16_t seq_ctrl; /* Sequence control. */ -- uint8_t addr4[ETH_ALEN]; /* Address 4. */ -+ uint16_t frame_ctl; /**< Frame control. */ -+ uint16_t duration_id; /**< Duration ID. */ -+ uint8_t addr1[ETH_ALEN]; /**< Address 1. */ -+ uint8_t addr2[ETH_ALEN]; /**< Address 2. */ -+ uint8_t addr3[ETH_ALEN]; /**< Address 3. */ -+ uint16_t seq_ctrl; /**< Sequence control. */ -+ uint8_t addr4[ETH_ALEN]; /**< Address 4. */ - }__packed; - - /* -@@ -128,16 +128,16 @@ struct nss_wifi_mesh_ieee80211_hdr { - * Wi-Fi mesh header - */ - struct nss_wifi_mesh_ieee80211s_hdr { -- uint8_t flags; /* Mesh flags. */ -- uint8_t ttl; /* TTL. */ -- uint32_t seq_num; /* Sequence number. */ -- uint8_t eaddr1[ETH_ALEN]; /* Mesh Address1. */ -- uint8_t eaddr2[ETH_ALEN]; /* Mesh Address2. */ -+ uint8_t flags; /**< Mesh flags. */ -+ uint8_t ttl; /**< TTL. */ -+ uint32_t seq_num; /**< Sequence number. */ -+ uint8_t eaddr1[ETH_ALEN]; /**< Mesh Address1. */ -+ uint8_t eaddr2[ETH_ALEN]; /**< Mesh Address2. */ - }__packed; - - /* - * nss_wifi_mesh_per_packet_metadata -- * Wi-Fi mesh per packet metadata structure. -+ * Wi-Fi mesh per packet metadata structure. - */ - struct nss_wifi_mesh_per_packet_metadata { - uint16_t pkt_type; /* Packet type of the metadata. */ -@@ -150,8 +150,8 @@ struct nss_wifi_mesh_per_packet_metadata - * NSS-to-host path will be seen by ECM for rules. - */ - enum nss_wifi_mesh_dp_type { -- NSS_WIFI_MESH_DP_INNER, /**< Inner/Encapsulation Interface. */ -- NSS_WIFI_MESH_DP_OUTER, /**< Outer/Decapsulation Interface. */ -+ NSS_WIFI_MESH_DP_INNER, /**< Inner/encapsulation interface. */ -+ NSS_WIFI_MESH_DP_OUTER, /**< Outer/decapsulation interface. */ - }; - - /** -@@ -350,7 +350,7 @@ struct nss_wifi_mesh_proxy_path_del_msg - - /** - * nss_wifi_mesh_mpath_not_found_msg -- * Wi-Fi mesh path not found meesage. -+ * Wi-Fi mesh path not found message. - */ - struct nss_wifi_mesh_mpath_not_found_msg { - uint8_t dest_mac_addr[ETH_ALEN]; /**< Destination MAC address. */ -@@ -958,7 +958,7 @@ nss_tx_status_t nss_wifi_mesh_tx_msg_ext - - /** - * nss_wifi_mesh_verify_if_num -- * Verify Wi-Fi mesh interface number. -+ * Verifies the Wi-Fi mesh interface number. - * - * @datatypes - * interface number \n -@@ -997,4 +997,9 @@ extern int nss_wifi_mesh_stats_register_ - * 0 on success or non-zero on failure. - */ - extern int nss_wifi_mesh_stats_unregister_notifier(struct notifier_block *nb); -+ -+/** -+ * @} -+ */ -+ - #endif /* __NSS_WIFI_MESH_H */ --- a/nss_wifili_stats.c +++ b/nss_wifili_stats.c -@@ -1,6 +1,6 @@ - /* - ************************************************************************** -- * Copyright (c) 2017-2020, The Linux Foundation. All rights reserved. -+ * Copyright (c) 2017-2021, The Linux Foundation. All rights reserved. - * Permission to use, copy, modify, and/or distribute this software for - * any purpose with or without fee is hereby granted, provided that the - * above copyright notice and this permission notice appear in all copies. @@ -37,6 +37,38 @@ ATOMIC_NOTIFIER_HEAD(nss_wifili_stats_no struct nss_wifili_soc_stats soc_stats[NSS_WIFILI_MAX_SOC_NUM]; @@ -1954,7 +1058,7 @@ + break; + default : + snprintf(target_type_str, NSS_WIFILI_SOC_STRING_SIZE_MAX, "Unknown"); -+ } ++ } +} + +/* @@ -2044,31 +1148,6 @@ #include "nss_core.h" #include "nss_wifili_if.h" ---- a/nss_wifili_strings.c -+++ b/nss_wifili_strings.c -@@ -1,6 +1,6 @@ - /* - ************************************************************************** -- * Copyright (c) 2019-2020, The Linux Foundation. All rights reserved. -+ * Copyright (c) 2019-2021, The Linux Foundation. All rights reserved. - * - * Permission to use, copy, modify, and/or distribute this software for - * any purpose with or without fee is hereby granted, provided that the -@@ -71,10 +71,10 @@ struct nss_stats_info nss_wifili_strings - * wifili tx comp stats - */ - struct nss_stats_info nss_wifili_strings_stats_tx_comp[NSS_WIFILI_STATS_TX_DESC_FREE_MAX] = { -- {"tx_desc_free_inv_bufsrc" , NSS_STATS_TYPE_ERROR}, -- {"tx_desc_free_inv_cookie" , NSS_STATS_TYPE_SPECIAL}, -- {"tx_desc_free_hw_ring_empty" , NSS_STATS_TYPE_SPECIAL}, -- {"tx_desc_free_reaped" , NSS_STATS_TYPE_SPECIAL} -+ {"tx_desc_free_inv_bufsrc" , NSS_STATS_TYPE_ERROR}, -+ {"tx_desc_free_inv_cookie" , NSS_STATS_TYPE_SPECIAL}, -+ {"tx_desc_free_hw_ring_empty" , NSS_STATS_TYPE_SPECIAL}, -+ {"tx_desc_free_reaped" , NSS_STATS_TYPE_SPECIAL} - }; - - /* --- a/nss_wifi_mesh_stats.c +++ b/nss_wifi_mesh_stats.c @@ -223,7 +223,7 @@ static uint32_t nss_wifi_mesh_get_valid_ @@ -2080,13 +1159,3 @@ ssize_t bytes_read = 0; struct nss_stats_data *data = fp->private_data; int ifindex; ---- a/nss_wifi_stats.c -+++ b/nss_wifi_stats.c -@@ -1,6 +1,6 @@ - /* - ************************************************************************** -- * Copyright (c) 2016-2017, 2019-2020 The Linux Foundation. All rights reserved. -+ * Copyright (c) 2016-2017, 2019-2021 The Linux Foundation. All rights reserved. - * Permission to use, copy, modify, and/or distribute this software for - * any purpose with or without fee is hereby granted, provided that the - * above copyright notice and this permission notice appear in all copies. diff --git a/qca-nss-drv/patches-11.4/0017-nss-drv-wifili-add-exported-symbols.patch b/qca-nss-drv/patches-11.4/0017-nss-drv-wifili-add-exported-symbols.patch index 08b3831..b750fc3 100644 --- a/qca-nss-drv/patches-11.4/0017-nss-drv-wifili-add-exported-symbols.patch +++ b/qca-nss-drv/patches-11.4/0017-nss-drv-wifili-add-exported-symbols.patch @@ -1,6 +1,6 @@ --- a/exports/nss_wifili_if.h +++ b/exports/nss_wifili_if.h -@@ -685,6 +685,15 @@ struct nss_wifili_stats_notification { +@@ -683,6 +683,15 @@ struct nss_wifili_stats_notification { struct nss_wifili_stats stats; /**< Wifili statistics. */ }; diff --git a/qca-nss-drv/patches-11.4/0021-nss-drv-doc-format.patch b/qca-nss-drv/patches-11.4/0021-nss-drv-doc-format.patch deleted file mode 100644 index 08cf50e..0000000 --- a/qca-nss-drv/patches-11.4/0021-nss-drv-doc-format.patch +++ /dev/null @@ -1,150 +0,0 @@ ---- a/exports/nss_wifi_mesh.h -+++ b/exports/nss_wifi_mesh.h -@@ -386,27 +386,27 @@ struct nss_wifi_mesh_path_expiry_msg { - * Encapsulation statistics. - */ - struct nss_wifi_mesh_encap_stats { -- uint32_t expiry_notify_sent; /* Number of times expiry notification sent to host. */ -- uint32_t mc_count; /* Number of multicast packets. */ -- uint32_t mp_not_found; /* Number of times mesh path is not found. */ -- uint32_t mp_active; /* Number of times mesh path is active. */ -- uint32_t mpp_not_found; /* Number of times proxy path is not found. */ -- uint32_t mpp_found; /* Number of times proxy path is found. */ -- uint32_t encap_hdr_fail; /* Number of times encapsulating mesh header failed. */ -- uint32_t mp_del_notify_fail; /* Number of times notifying mesh path delete failed. */ -- uint32_t link_enqueue; /* Number of packets enqueued to the link VAP. */ -- uint32_t link_enq_fail; /* Number of times enqueue to link vap failed. */ -- uint32_t ra_lup_fail; /* Number of times receiver address look up is failed. */ -- uint32_t dummy_add_count; /* Number of times dummy path is added. */ -- uint32_t encap_mp_add_notify_fail; /* Number of times add notification failed. */ -- uint32_t dummy_add_fail; /* Number of times dummy addition failed. */ -- uint32_t dummy_lup_fail; /* Number of times dummy lookup failed. */ -- uint32_t send_to_host_failed; /* Number of packets failed to be sent to host. */ -- uint32_t sent_to_host; /* Number of packets sent to host. */ -- uint32_t expiry_notify_fail; /* Number of times expiry notification to host failed. */ -- uint32_t no_headroom; /* Number of packets dropped because there is no headroom. */ -- uint32_t path_refresh_sent; /* Number of times path refresh is sent to host. */ -- uint32_t linearise_failed; /* Number of packets dropped because pb_linearise. */ -+ uint32_t expiry_notify_sent; /**< Number of times expiry notification sent to host. */ -+ uint32_t mc_count; /**< Number of multicast packets. */ -+ uint32_t mp_not_found; /**< Number of times mesh path is not found. */ -+ uint32_t mp_active; /**< Number of times mesh path is active. */ -+ uint32_t mpp_not_found; /**< Number of times proxy path is not found. */ -+ uint32_t mpp_found; /**< Number of times proxy path is found. */ -+ uint32_t encap_hdr_fail; /**< Number of times encapsulating mesh header failed. */ -+ uint32_t mp_del_notify_fail; /**< Number of times notifying mesh path delete failed. */ -+ uint32_t link_enqueue; /**< Number of packets enqueued to the link VAP. */ -+ uint32_t link_enq_fail; /**< Number of times enqueue to link vap failed. */ -+ uint32_t ra_lup_fail; /**< Number of times receiver address look up is failed. */ -+ uint32_t dummy_add_count; /**< Number of times dummy path is added. */ -+ uint32_t encap_mp_add_notify_fail; /**< Number of times add notification failed. */ -+ uint32_t dummy_add_fail; /**< Number of times dummy addition failed. */ -+ uint32_t dummy_lup_fail; /**< Number of times dummy lookup failed. */ -+ uint32_t send_to_host_failed; /**< Number of packets failed to be sent to host. */ -+ uint32_t sent_to_host; /**< Number of packets sent to host. */ -+ uint32_t expiry_notify_fail; /**< Number of times expiry notification to host failed. */ -+ uint32_t no_headroom; /**< Number of packets dropped because there is no headroom. */ -+ uint32_t path_refresh_sent; /**< Number of times path refresh is sent to host. */ -+ uint32_t linearise_failed; /**< Number of packets dropped because pb_linearise. */ - }; - - /* ---- a/nss_wifi_mesh_strings.c -+++ b/nss_wifi_mesh_strings.c -@@ -106,22 +106,22 @@ static ssize_t nss_wifi_mesh_path_stats_ - * Wi-Fi mesh proxy path statistics string. - */ - struct nss_stats_info nss_wifi_mesh_strings_proxy_path_stats[NSS_WIFI_MESH_PROXY_PATH_STATS_TYPE_MAX] = { -- {"alloc_failures", NSS_STATS_TYPE_SPECIAL}, -- {"entry_exist_failures", NSS_STATS_TYPE_SPECIAL}, -- {"add_success", NSS_STATS_TYPE_SPECIAL}, -- {"table_full_errors", NSS_STATS_TYPE_SPECIAL}, -- {"insert_failures", NSS_STATS_TYPE_SPECIAL}, -- {"not_found", NSS_STATS_TYPE_SPECIAL}, -- {"unhashed_errors", NSS_STATS_TYPE_SPECIAL}, -- {"delete_failures", NSS_STATS_TYPE_SPECIAL}, -- {"delete_success", NSS_STATS_TYPE_SPECIAL}, -- {"update_success", NSS_STATS_TYPE_SPECIAL}, -- {"lookup_success", NSS_STATS_TYPE_SPECIAL}, -- {"add_requests", NSS_STATS_TYPE_SPECIAL}, -- {"del_requests", NSS_STATS_TYPE_SPECIAL}, -- {"update_requests", NSS_STATS_TYPE_SPECIAL}, -- {"mda_updations", NSS_STATS_TYPE_SPECIAL}, -- {"flag_updations", NSS_STATS_TYPE_SPECIAL} -+ {"alloc_failures", NSS_STATS_TYPE_SPECIAL}, -+ {"entry_exist_failures", NSS_STATS_TYPE_SPECIAL}, -+ {"add_success", NSS_STATS_TYPE_SPECIAL}, -+ {"table_full_errors", NSS_STATS_TYPE_SPECIAL}, -+ {"insert_failures", NSS_STATS_TYPE_SPECIAL}, -+ {"not_found", NSS_STATS_TYPE_SPECIAL}, -+ {"unhashed_errors", NSS_STATS_TYPE_SPECIAL}, -+ {"delete_failures", NSS_STATS_TYPE_SPECIAL}, -+ {"delete_success", NSS_STATS_TYPE_SPECIAL}, -+ {"update_success", NSS_STATS_TYPE_SPECIAL}, -+ {"lookup_success", NSS_STATS_TYPE_SPECIAL}, -+ {"add_requests", NSS_STATS_TYPE_SPECIAL}, -+ {"del_requests", NSS_STATS_TYPE_SPECIAL}, -+ {"update_requests", NSS_STATS_TYPE_SPECIAL}, -+ {"mda_updations", NSS_STATS_TYPE_SPECIAL}, -+ {"flag_updations", NSS_STATS_TYPE_SPECIAL} - }; - - /* ---- a/exports/nss_wifi.h -+++ b/exports/nss_wifi.h -@@ -641,8 +641,8 @@ struct nss_wifi_stats_sync_msg { - * Information for creating a Wi-Fi peer freelist. - */ - struct nss_wifi_peer_freelist_append_msg { -- uint32_t addr; /**< Starting address of peer freelist pool. */ -- uint32_t length; /**< Size of peer freelist pool. */ -+ uint32_t addr; /**< Starting address of the peer freelist pool. */ -+ uint32_t length; /**< Size of the peer freelist pool. */ - uint32_t num_peers; /**< Maximum peer entries supported in the pool. */ - }; - -@@ -709,7 +709,7 @@ struct nss_wifi_peer_ol_stats { - uint32_t tx_mcast; /**< Number of multicast packets sent. */ - uint32_t tx_ucast; /**< Number of unicast packets sent. */ - uint32_t tx_data; /**< Number data packets sent. */ -- uint32_t tx_bytes; /**< Number of bytes sent. */ -+ uint32_t tx_bytes; /**< Number of bytes transmitted. */ - uint32_t tx_fail; /**< Number of failed Tx packets. */ - uint32_t thrup_bytes; /**< Number of throughput bytes. */ - uint32_t tx_bcast_pkts; /**< Number of broadcast packets sent. */ -@@ -742,7 +742,7 @@ struct nss_wifi_ol_stats_msg { - - /** - * nss_wifi_sta_kickout_msg -- * Station kickout message from NSS Firmware -+ * Station kickout message from NSS firmware. - */ - struct nss_wifi_sta_kickout_msg { - uint32_t peer_id; /**< Peer ID. */ -@@ -759,7 +759,7 @@ struct nss_wifi_peer_isolation_msg { - - /** - * nss_wifi_wnm_peer_rx_activity_msg -- * Rx active state information for the peer. -+ * Receive active state information for the peer. - */ - struct nss_wifi_wnm_peer_rx_activity_msg { - uint16_t nentries; /**< Number of entries. */ -@@ -917,7 +917,7 @@ struct nss_wifi_msg { - struct nss_wifi_cmd_msg wcmdm; - /**< Pdev command information. */ - struct nss_wifi_enable_ol_statsv2 wesh_msg; -- /**< Enable version 2 tx/rx stats. */ -+ /**< Enable version 2 transmit/receive statistics. */ - struct nss_wifi_ol_peer_time_msg wopt_msg; - /**< Send per peer/TID timestamp statistics to host. */ - struct nss_wifi_peer_isolation_msg isolation_msg; -@@ -927,7 +927,7 @@ struct nss_wifi_msg { - - /** - * nss_wifi_get_context -- * Gets the Wi-Fi context used in nss_gre_tx. -+ * Gets the Wi-Fi context used in NSS GRE transmit. - * - * @return - * Pointer to the NSS core context. diff --git a/qca-nss-drv/patches-11.4/0022-nss-drv-set-addr-to-const.patch b/qca-nss-drv/patches-11.4/0022-nss-drv-set-addr-to-const.patch index af09f8a..e08a37d 100644 --- a/qca-nss-drv/patches-11.4/0022-nss-drv-set-addr-to-const.patch +++ b/qca-nss-drv/patches-11.4/0022-nss-drv-set-addr-to-const.patch @@ -22,7 +22,7 @@ * nss_vlan_tx_vsi_attach_msg --- a/exports/nss_wifi_vdev.h +++ b/exports/nss_wifi_vdev.h -@@ -1344,7 +1344,7 @@ nss_tx_status_t nss_wifi_vdev_base_set_n +@@ -1329,7 +1329,7 @@ nss_tx_status_t nss_wifi_vdev_base_set_n * @return * Status of the Tx operation. */