Refactoring of code as per google feature : Block list feature
diff --git a/halimpl/pn54x/configs/NXP_NFCC_Features.h b/halimpl/pn54x/configs/NXP_NFCC_Features.h
old mode 100755
new mode 100644
index 9882823..741c297
--- a/halimpl/pn54x/configs/NXP_NFCC_Features.h
+++ b/halimpl/pn54x/configs/NXP_NFCC_Features.h
@@ -32,7 +32,6 @@
#define NXP_NFCC_DYNAMIC_DUAL_UICC true
#define NXP_NFCC_FW_WA true
#define NXP_NFCC_FORCE_NCI1_0_INIT true
-#define NXP_NFCC_ROUTING_BLOCK_BIT true
#define NFC_NXP_STAT_DUAL_UICC_EXT_SWITCH false
#define NFC_NXP_STAT_DUAL_UICC_WO_EXT_SWITCH true
#define NXP_NFCC_SPI_FW_DOWNLOAD_SYNC true
@@ -56,7 +55,6 @@
#define NXP_NFCC_DYNAMIC_DUAL_UICC true
#define NXP_NFCC_FW_WA true
#define NXP_NFCC_FORCE_NCI1_0_INIT false
-#define NXP_NFCC_ROUTING_BLOCK_BIT true
#define NFC_NXP_STAT_DUAL_UICC_EXT_SWITCH false
#define NFC_NXP_STAT_DUAL_UICC_WO_EXT_SWITCH true
#define NXP_NFCC_SPI_FW_DOWNLOAD_SYNC true
diff --git a/src/include/NXP_NFCC_Features.h b/src/include/NXP_NFCC_Features.h
index 240c01e..8ba46a2 100644
--- a/src/include/NXP_NFCC_Features.h
+++ b/src/include/NXP_NFCC_Features.h
@@ -70,7 +70,6 @@
#else
#define NFA_EE_MAX_EE_SUPPORTED 3
#endif
-#define NXP_NFCC_LISTEN_ROUTING_TABLE_ORDER true
#elif(NFC_NXP_CHIP_TYPE == PN551)
#define NXP_NFCC_I2C_READ_WRITE_IMPROVEMENT true
#define NXP_NFCC_AID_MATCHING_PLATFORM_CONFIG true
diff --git a/src/include/config.h b/src/include/config.h
index 8a4dcd3..b0da5f0 100644
--- a/src/include/config.h
+++ b/src/include/config.h
@@ -138,9 +138,7 @@
#define NAME_NXP_ALLOW_WIRED_IN_MIFARE_DESFIRE_CLT \
"NXP_ALLOW_WIRED_IN_MIFARE_DESFIRE_CLT"
#define NAME_NXP_NFCC_RF_FIELD_EVENT_TIMEOUT "NXP_NFCC_RF_FIELD_EVENT_TIMEOUT"
-#if (NXP_NFCC_ROUTING_BLOCK_BIT == true)
-#define NAME_NXP_PROP_BLACKLIST_ROUTING "NXP_PROP_BLACKLIST_ROUTING"
-#endif
+#define NAME_NFA_BLOCK_ROUTE "NFA_BLOCK_ROUTE"
#if (NXP_ESE_DUAL_MODE_PRIO_SCHEME == NXP_ESE_WIRED_MODE_TIMEOUT)
#define NAME_NXP_MIFARE_DESFIRE_DISABLE "NXP_MIFARE_DESFIRE_DISABLE"
#endif
diff --git a/src/nfa/ee/nfa_ee_act.c b/src/nfa/ee/nfa_ee_act.c
index 61d3a69..dc2ffa5 100644
--- a/src/nfa/ee/nfa_ee_act.c
+++ b/src/nfa/ee/nfa_ee_act.c
@@ -420,7 +420,7 @@
/* Applying Route Block for ISO DEP Protocol, so that AIDs
* which are not in the routing table can also be blocked */
if (nfa_ee_proto_mask_list[xx] == NFA_PROTOCOL_MASK_ISO_DEP) {
- proto_tag = NFC_ROUTE_TAG_PROTO;
+ proto_tag = NFC_ROUTE_TAG_PROTO | nfa_ee_cb.route_block_control;
/* Enable screen on lock power state for ISO-DEP protocol to
enable HCE screen lock */
@@ -493,7 +493,7 @@
}
uint8_t tag =
- NFC_ROUTE_TAG_AID | route_qual;
+ NFC_ROUTE_TAG_AID | nfa_ee_cb.route_block_control | route_qual;;
add_route_aid_tlv(&pp, pa, p_cb->aid_rt_loc[xx], p_cb->aid_pwr_cfg[xx], tag);
}
@@ -2909,23 +2909,6 @@
uint8_t new_size;
tNFA_STATUS status = NFA_STATUS_OK;
-#if (NXP_NFCC_ROUTING_BLOCK_BIT == true)
- uint8_t route_blacklist_mask = 0x00;
- long retlen = 0;
- NFA_TRACE_DEBUG1("NAME_NXP_PROP_BLACKLIST_ROUTING enter=0x%x",
- route_blacklist_mask);
- if (GetNumValue(NAME_NXP_PROP_BLACKLIST_ROUTING, (void*)&retlen,
- sizeof(retlen))) {
- if (retlen == 0x01) {
- route_blacklist_mask = NFA_EE_NXP_ROUTE_BLOCK_BIT;
- NFA_TRACE_DEBUG1("NAME_NXP_PROP_BLACKLIST_ROUTING change=0x%x",
- route_blacklist_mask);
- } else {
- NFA_TRACE_DEBUG1("NAME_NXP_PROP_BLACKLIST_ROUTING exit=0x%x",
- route_blacklist_mask);
- }
- }
-#endif
nfa_ee_check_set_routing(p_cb->size_mask, p_max_len, ps, p_cur_offset);
max_tlv = (uint8_t)((*p_max_len > NFA_EE_ROUT_MAX_TLV_SIZE)
? NFA_EE_ROUT_MAX_TLV_SIZE
@@ -2963,9 +2946,6 @@
if(p_cb->aid_info[xx] & NCI_ROUTE_QUAL_SHORT_SELECT)
route_qual |= NCI_ROUTE_QUAL_SHORT_SELECT;
*pp = NFC_ROUTE_TAG_AID | route_qual;
-#if (NXP_NFCC_ROUTING_BLOCK_BIT == true)
- *pp |= route_blacklist_mask;
-#endif
pp++;
*pp++ = len + 2;
*pp++ = p_cb->aid_rt_loc[xx];
@@ -3025,13 +3005,6 @@
}
if (power_cfg) {
*proto_pp = NFC_ROUTE_TAG_PROTO;
-#if (NXP_NFCC_ROUTING_BLOCK_BIT == true)
- /*Setting blocking bit for ISO-DEP and ISO7816 protocol only*/
- if (nfa_ee_proto_list[xx] == NFC_PROTOCOL_ISO_DEP ||
- nfa_ee_proto_list[xx] == NFC_PROTOCOL_ISO7816) {
- *proto_pp |= route_blacklist_mask;
- }
-#endif
proto_pp++;
*proto_pp++ = 3;
*proto_pp++ = p_cb->nfcee_id;
@@ -3154,13 +3127,6 @@
if (power_cfg) {
*pp = NFC_ROUTE_TAG_PROTO;
-#if (NXP_NFCC_ROUTING_BLOCK_BIT == true)
- /*Setting blocking bit for ISO-DEP and ISO7816 protocol only*/
- if (nfa_ee_proto_list[xx] == NFC_PROTOCOL_ISO_DEP ||
- nfa_ee_proto_list[xx] == NFC_PROTOCOL_ISO7816) {
- *pp |= route_blacklist_mask;
- }
-#endif
*pp++;
*pp++ = 3;
*pp++ = p_cb->nfcee_id;
@@ -3224,11 +3190,7 @@
if(p_cb->aid_info[xx] & NCI_ROUTE_QUAL_SHORT_SELECT)
route_qual |= NCI_ROUTE_QUAL_SHORT_SELECT;
*pp = NFC_ROUTE_TAG_AID | route_qual;
-#if (NXP_NFCC_ROUTING_BLOCK_BIT == true)
- // This aid is for exact match.
- *pp |= (route_blacklist_mask);
-#endif
- pp++;
+ pp++;
#else
*pp++ = NFC_ROUTE_TAG_AID;
#endif
diff --git a/src/nfa/ee/nfa_ee_main.c b/src/nfa/ee/nfa_ee_main.c
index 719c3a5..69e579c 100644
--- a/src/nfa/ee/nfa_ee_main.c
+++ b/src/nfa/ee/nfa_ee_main.c
@@ -45,6 +45,7 @@
#include "nfa_sys_int.h"
#include "nfa_dm_int.h"
#include "nfa_ee_int.h"
+#include "config.h"
extern void nfa_ee_vs_cback(tNFC_VS_EVT event, NFC_HDR* p_data);
/*****************************************************************************
@@ -147,6 +148,22 @@
**
*******************************************************************************/
void nfa_ee_sys_enable(void) {
+
+ unsigned long retlen = 0;
+
+ NFA_TRACE_DEBUG1("%s", __func__);
+
+ nfa_ee_cb.route_block_control = 0x00;
+
+ if (GetNumValue(NAME_NFA_BLOCK_ROUTE, (void*)&retlen, sizeof(retlen))) {
+ if ((retlen == 0x01) && ((NFC_GetNCIVersion() == NCI_VERSION_2_0)
+ || (NXP_NFCC_ROUTING_BLOCK_BIT == true))) {
+ nfa_ee_cb.route_block_control = NCI_ROUTE_QUAL_BLOCK_ROUTE;
+ NFA_TRACE_DEBUG1("nfa_ee_cb.route_block_control=0x%x",
+ nfa_ee_cb.route_block_control);
+ }
+ }
+
if (nfa_ee_max_ee_cfg) {
/* collect NFCEE information */
NFC_NfceeDiscover(true);
diff --git a/src/nfa/include/nfa_ee_api.h b/src/nfa/include/nfa_ee_api.h
index 195db4c..68d6674 100644
--- a/src/nfa/include/nfa_ee_api.h
+++ b/src/nfa/include/nfa_ee_api.h
@@ -61,9 +61,6 @@
extern uint8_t nfa_ee_ce_route_strict_disable;
extern uint8_t nfa_ee_ce_p61_active;
#define NFA_EE_AE_NXP_PREFIX_MATCH (0x10)
-#if (NXP_NFCC_ROUTING_BLOCK_BIT == true)
-#define NFA_EE_NXP_ROUTE_BLOCK_BIT (0x40)
-#endif
#endif
/* NFA EE callback events */
diff --git a/src/nfa/int/nfa_ee_int.h b/src/nfa/int/nfa_ee_int.h
index 5479faa..8beb4a9 100644
--- a/src/nfa/int/nfa_ee_int.h
+++ b/src/nfa/int/nfa_ee_int.h
@@ -646,6 +646,7 @@
tNFA_EE_FLAGS ee_flags; /* flags */
uint8_t nfcee_id;
uint8_t mode;
+ uint8_t route_block_control; /* controls route block feature */
} tNFA_EE_CB;
/* Order of Routing entries in Routing Table */