diff --git a/src/cmdu.h b/src/cmdu.h
index 9c970586122b098c069356fc1a9355a76ee799d4..6c34fa3aeade7f6cea928a3e741b4ed394ea3ce6 100644
--- a/src/cmdu.h
+++ b/src/cmdu.h
@@ -97,9 +97,16 @@ struct cmdu_buff {
 enum tlv_presence {
 	TLV_PRESENT_UNDEFINED,
 	TLV_PRESENT_ONE,		/**< only one tlv of this type present */
+
 	TLV_PRESENT_MORE,		/**< one or more tlvs of this tlv present */
+	TLV_PRESENT_ONE_OR_MORE = TLV_PRESENT_MORE,
+
 	TLV_PRESENT_OPTIONAL_ONE,	/**< zero or one of this tlv present */
+	TLV_PRESENT_ZERO_OR_ONE = TLV_PRESENT_OPTIONAL_ONE,
+
 	TLV_PRESENT_OPTIONAL_MORE,	/**< zero or more of this tlv present */
+	TLV_PRESENT_ZERO_OR_MORE = TLV_PRESENT_OPTIONAL_MORE,
+
 	TLV_PRESENT_NUM,
 };
 
diff --git a/src/extensions/map/easymesh.h b/src/extensions/map/easymesh.h
index da128c3b144e25016d8ac842f7aa14a7ad29daa5..7ab3717903e9df7a23da44481a1bf3147e819140 100644
--- a/src/extensions/map/easymesh.h
+++ b/src/extensions/map/easymesh.h
@@ -80,7 +80,12 @@
 #define CMDU_QOS_MANAGEMENT_NOTIFICATION               0x8037
 #endif /* EASYMESH_VERSION */
 
+
+#if (EASYMESH_VERSION > 2)
+#define LAST_MAP_CMDU                                  CMDU_QOS_MANAGEMENT_NOTIFICATION
+#else
 #define LAST_MAP_CMDU                                  CMDU_FAILED_CONNECTION
+#endif
 #define MAP_CMDU_TYPE_MAX                              LAST_MAP_CMDU
 
 
diff --git a/src/extensions/map/policy.c b/src/extensions/map/policy.c
index fbbd6871a32885df8204a1d912b74707c019fb40..2eb8a8ecc916f8abd356eb968b81879fe0ca5aef 100644
--- a/src/extensions/map/policy.c
+++ b/src/extensions/map/policy.c
@@ -22,7 +22,7 @@
 
 
 #define CMDU_TYPE_MAP_START	CMDU_1905_ACK
-#define CMDU_TYPE_MAP_END	CMDU_FAILED_CONNECTION
+#define CMDU_TYPE_MAP_END	MAP_CMDU_TYPE_MAX
 
 struct tlv_policy_map {
 	size_t num;
@@ -54,7 +54,7 @@ DEFINE_POLICY(CMDU_TYPE_TOPOLOGY_NOTIFICATION) = {
 		.len = 6
 	},
 	{
-		.type = TLV_TYPE_MAC_ADDRESS_TYPE,
+		.type = MAP_TLV_CLIENT_ASSOCIATION_EVENT,
 		.present = TLV_PRESENT_OPTIONAL_ONE,
 		.len = sizeof(struct tlv_client_assoc_event)
 	},
@@ -100,6 +100,11 @@ DEFINE_POLICY(CMDU_TYPE_TOPOLOGY_RESPONSE) = {
 		.present = TLV_PRESENT_ONE,
 		.len = sizeof(struct tlv_map_profile)
 	},
+#if (EASYMESH_VERSION > 2)
+	{	.type = MAP_TLV_BSS_CONFIGURATION_REPORT,
+		.present = TLV_PRESENT_ONE,
+	},
+#endif
 };
 
 DEFINE_POLICY(CMDU_TYPE_AP_AUTOCONFIGURATION_SEARCH) = {
@@ -116,17 +121,22 @@ DEFINE_POLICY(CMDU_TYPE_AP_AUTOCONFIGURATION_SEARCH) = {
 		.len = 1, /* tlv_autoconfig_band */
 	},
 	[3] = { .type = MAP_TLV_SUPPORTED_SERVICE,
-		.present = TLV_PRESENT_ONE,
+		.present = TLV_PRESENT_OPTIONAL_ONE,
 		.minlen = 1, /* num of services */
 	},
 	[4] = { .type = MAP_TLV_SEARCHED_SERVICE,
-		.present = TLV_PRESENT_ONE,
+		.present = TLV_PRESENT_OPTIONAL_ONE,
 		.minlen = 1, /* num of services */
 	},
 	[5] = { .type = MAP_TLV_MULTIAP_PROFILE,
 		.present = TLV_PRESENT_ONE,
 		.len = 1, /* tlv_map_profile */
-	}
+	},
+#if (EASYMESH_VERSION > 2)
+	[6] = { .type = MAP_TLV_DPP_CHIRP_VALUE,
+		.present = TLV_PRESENT_OPTIONAL_ONE,
+	},
+#endif
 };
 
 
@@ -147,6 +157,17 @@ DEFINE_POLICY(CMDU_TYPE_AP_AUTOCONFIGURATION_RESPONSE) = {
 		.present = TLV_PRESENT_ONE,
 		.len = 1, /* tlv_map_profile */
 	},
+#if (EASYMESH_VERSION > 2)
+	[4] = { .type = MAP_TLV_1905_SECURITY_CAPS,
+		.present = TLV_PRESENT_ONE,
+	},
+	[5] = { .type = MAP_TLV_DPP_CHIRP_VALUE,
+		.present = TLV_PRESENT_OPTIONAL_ONE,
+	},
+	[6] = { .type = MAP_TLV_CONTROLLER_CAPS,
+		.present = TLV_PRESENT_OPTIONAL_ONE,
+	},
+#endif
 };
 
 DEFINE_POLICY(CMDU_TYPE_AP_AUTOCONFIGURATION_WSC_M1) = {
@@ -233,7 +254,21 @@ DEFINE_POLICY(CMDU_AP_CAPABILITY_REPORT) = {
 	[8] = {
 		.type = MAP_TLV_METRIC_COLLECTION_INTERVAL,
 		.present = TLV_PRESENT_ONE
-	}
+	},
+#if (EASYMESH_VERSION > 2)
+	[9] = { .type = MAP_TLV_AP_WIFI6_CAPS,
+		.present = TLV_PRESENT_OPTIONAL_MORE,
+	},
+	[10] = { .type = MAP_TLV_1905_SECURITY_CAPS,
+		.present = TLV_PRESENT_ONE,
+	},
+	[11] = { .type = MAP_TLV_DEVICE_INVENTORY,
+		.present = TLV_PRESENT_ONE,
+	},
+	[12] = { .type = MAP_TLV_AP_RADIO_ADV_CAPABILITY,
+		.present = TLV_PRESENT_OPTIONAL_MORE,
+	},
+#endif
 };
 
 DEFINE_POLICY(CMDU_POLICY_CONFIG_REQ) = {
@@ -265,6 +300,11 @@ DEFINE_POLICY(CMDU_POLICY_CONFIG_REQ) = {
 		.type = MAP_TLV_BACKHAUL_BSS_CONFIG,
 		.present = TLV_PRESENT_OPTIONAL_MORE
 	},
+#if (EASYMESH_VERSION > 2)
+	[7] = { .type = MAP_TLV_QOS_MANAGEMENT_POLICY,
+		.present = TLV_PRESENT_OPTIONAL_MORE,
+	},
+#endif
 };
 
 DEFINE_POLICY(CMDU_CHANNEL_PREFERENCE_QUERY) = {
@@ -298,21 +338,36 @@ DEFINE_POLICY(CMDU_CHANNEL_SELECTION_REQ) = {
 	[1] = {
 		.type = MAP_TLV_TRANSMIT_POWER_LIMIT,
 		.present = TLV_PRESENT_OPTIONAL_MORE
-	}
+	},
+#if (EASYMESH_VERSION > 2)
+	[2] = { .type = MAP_TLV_SPATIAL_REUSE_REQUEST,
+		.present = TLV_PRESENT_OPTIONAL_MORE,
+	},
+#endif
 };
 
 DEFINE_POLICY(CMDU_CHANNEL_SELECTION_RESPONSE) = {
 	[0] = {
 		.type = MAP_TLV_CHANNEL_SELECTION_RESPONSE,
-		.present = TLV_PRESENT_MORE
+		.present = TLV_PRESENT_MORE,
+	},
+#if (EASYMESH_VERSION > 2)
+	[1] = { .type = MAP_TLV_SPATIAL_REUSE_CONFIG_RESPONSE,
+		.present = TLV_PRESENT_OPTIONAL_MORE,
 	},
+#endif
 };
 
 DEFINE_POLICY(CMDU_OPERATING_CHANNEL_REPORT) = {
 	[0] = {
 		.type = MAP_TLV_OPERATING_CHANNEL_REPORT,
 		.present = TLV_PRESENT_MORE
-	}
+	},
+#if (EASYMESH_VERSION > 2)
+	[1] = { .type = MAP_TLV_SPATIAL_REUSE_REPORT,
+		.present = TLV_PRESENT_OPTIONAL_MORE,
+	},
+#endif
 };
 
 DEFINE_POLICY(CMDU_CLIENT_CAPABILITY_QUERY) = {
@@ -351,28 +406,34 @@ DEFINE_POLICY(CMDU_AP_METRICS_QUERY) = {
 DEFINE_POLICY(CMDU_AP_METRICS_RESPONSE) = {
 	[0] = {
 		.type = MAP_TLV_AP_METRICS,
-		.present = TLV_PRESENT_MORE
+		.present = TLV_PRESENT_MORE,
 	},
 	[1] = {
 		.type = MAP_TLV_ASSOCIATED_STA_TRAFFIC_STATS,
-		.present = TLV_PRESENT_OPTIONAL_MORE
+		.present = TLV_PRESENT_OPTIONAL_MORE,
 	},
 	[2] = {
 		.type = MAP_TLV_ASSOCIATED_STA_LINK_METRICS,
-		.present = TLV_PRESENT_OPTIONAL_MORE
+		.present = TLV_PRESENT_OPTIONAL_MORE,
 	},
 	[3] = {
 		.type = MAP_TLV_AP_EXTENDED_METRICS,
-		.present = TLV_PRESENT_MORE
+		.present = TLV_PRESENT_MORE,
 	},
 	[4] = {
 		.type = MAP_TLV_RADIO_METRICS,
-		.present = TLV_PRESENT_OPTIONAL_MORE
+		.present = TLV_PRESENT_OPTIONAL_MORE,
 	},
 	[5] = {
 		.type = MAP_TLV_ASSOCIATED_STA_EXT_LINK_METRICS,
-		.present = TLV_PRESENT_OPTIONAL_MORE
-	}
+		.present = TLV_PRESENT_OPTIONAL_MORE,
+	},
+#if (EASYMESH_VERSION > 2)
+	[6] = {
+		.type = MAP_TLV_ASSOCIATED_WIFI6_STA_STATUS,
+		.present = TLV_PRESENT_OPTIONAL_MORE,
+	},
+#endif
 };
 
 DEFINE_POLICY(CMDU_ASSOC_STA_LINK_METRICS_QUERY) = {
@@ -595,8 +656,177 @@ DEFINE_POLICY(CMDU_FAILED_CONNECTION) = {
 		.type = MAP_TLV_REASON_CODE,
 		.present = TLV_PRESENT_OPTIONAL_ONE
 	},
+#if (EASYMESH_VERSION > 2)
+	[3] = {
+		.type = MAP_TLV_BSSID,
+		.present = TLV_PRESENT_ONE
+	},
+#endif
+};
+
+#if (EASYMESH_VERSION > 2)
+DEFINE_POLICY(CMDU_1905_REKEY_REQUEST) = {
+	/* empty */
+};
+
+DEFINE_POLICY(CMDU_1905_DECRYPT_FAIL) = {
+	[0] = {
+		.type = TLV_TYPE_AL_MAC_ADDRESS_TYPE,
+		.present = TLV_PRESENT_ONE
+	},
+};
+
+DEFINE_POLICY(CMDU_SERVICE_PRIORITIZATION_REQUEST) = {
+	[0] = {
+		.type = MAP_TLV_SERVICE_PRIORITIZATION_RULE,
+		.present = TLV_PRESENT_OPTIONAL_MORE,
+	},
+	[1] = {
+		.type = MAP_TLV_DSCP_MAPPING_TABLE,
+		.present = TLV_PRESENT_OPTIONAL_ONE,
+	},
+	[2] = {
+		.type = MAP_TLV_QOS_MANAGEMENT_DESCRIPTOR,
+		.present = TLV_PRESENT_OPTIONAL_MORE,
+	},
+};
+
+DEFINE_POLICY(CMDU_PROXIED_ENCAP_DPP) = {
+	[0] = {
+		.type = MAP_TLV_1905_ENCAP_DPP,
+		.present = TLV_PRESENT_ONE,
+	},
+	[1] = {
+		.type = MAP_TLV_DPP_CHIRP_VALUE,
+		.present = TLV_PRESENT_OPTIONAL_ONE,
+	},
+};
+
+DEFINE_POLICY(CMDU_1905_ENCAP_EAPOL) = {
+	[0] = {
+		.type = MAP_TLV_1905_ENCAP_EAPOL,
+		.present = TLV_PRESENT_ONE
+	},
+};
+
+DEFINE_POLICY(CMDU_DPP_BOOTSTRAPING_URI) = {
+	[0] = {
+		.type = MAP_TLV_DPP_BOOTSTRAP_URI_NOTIFICATION,
+		.present = TLV_PRESENT_ONE
+	},
+};
+
+DEFINE_POLICY(CMDU_DPP_CCE_INDICATION) = {
+	[0] = {
+		.type = MAP_TLV_DPP_CCE_INDICATION,
+		.present = TLV_PRESENT_ONE
+	},
 };
 
+DEFINE_POLICY(CMDU_CHIRP_NOTIFICATION) = {
+	[0] = {
+		.type = MAP_TLV_DPP_CHIRP_VALUE,
+		.present = TLV_PRESENT_OPTIONAL_MORE,
+	},
+};
+
+DEFINE_POLICY(CMDU_BSS_CONFIG_REQUEST) = {
+	[0] = {
+		.type = MAP_TLV_MULTIAP_PROFILE,
+		.present = TLV_PRESENT_ONE,
+	},
+	[1] = {
+		.type = MAP_TLV_SUPPORTED_SERVICE,
+		.present = TLV_PRESENT_ONE,
+	},
+	[2] = {
+		.type = MAP_TLV_AKM_SUITE_CAPS,
+		.present = TLV_PRESENT_ONE,
+	},
+	[3] = {
+		.type = MAP_TLV_AP_RADIO_BASIC_CAPABILITIES,
+		.present = TLV_PRESENT_MORE,
+	},
+	[4] = {
+		.type = MAP_TLV_BACKHAUL_STA_RADIO_CAPABILITY,
+		.present = TLV_PRESENT_OPTIONAL_MORE,
+	},
+	[5] = {
+		.type = MAP_TLV_PROFILE2_AP_CAPABILITY,
+		.present = TLV_PRESENT_ONE,
+	},
+	[6] = {
+		.type = MAP_TLV_AP_RADIO_ADV_CAPABILITY,
+		.present = TLV_PRESENT_MORE,
+	},
+	[7] = {
+		.type = MAP_TLV_BSS_CONFIGURATION_REQUEST,
+		.present = TLV_PRESENT_ONE,
+	},
+};
+
+DEFINE_POLICY(CMDU_BSS_CONFIG_RESPONSE) = {
+	[0] = {
+		.type = MAP_TLV_BSS_CONFIGURATION_RESPONSE,
+		.present = TLV_PRESENT_MORE,
+	},
+	[1] = {
+		.type = MAP_TLV_DEFAULT_8021Q_SETTINGS,
+		.present = TLV_PRESENT_OPTIONAL_MORE,
+	},
+	[2] = {
+		.type = MAP_TLV_TRAFFIC_SEPARATION_POLICY,
+		.present = TLV_PRESENT_OPTIONAL_MORE,
+	},
+};
+
+DEFINE_POLICY(CMDU_BSS_CONFIG_RESULT) = {
+	[0] = {
+		.type = MAP_TLV_BSS_CONFIGURATION_REPORT,
+		.present = TLV_PRESENT_ONE,
+	},
+};
+
+DEFINE_POLICY(CMDU_DIRECT_ENCAP_DPP) = {
+	[0] = {
+		.type = MAP_TLV_DPP_MESSAGE,
+		.present = TLV_PRESENT_ONE,
+	},
+};
+
+DEFINE_POLICY(CMDU_RECONFIG_TRIGGER) = {
+	/* no tlvs */
+};
+
+DEFINE_POLICY(CMDU_AGENT_LIST) = {
+	[0] = {
+		.type = MAP_TLV_AGENT_LIST,
+		.present = TLV_PRESENT_ONE,
+	},
+};
+
+DEFINE_POLICY(CMDU_ANTICIPATED_CHANNEL_PREFERENCE) = {
+	[0] = {
+		.type = MAP_TLV_ANTICIPATED_CHANNEL_PREF,
+		.present = TLV_PRESENT_ONE,
+	},
+};
+
+DEFINE_POLICY(CMDU_ANTICIPATED_CHANNEL_USAGE) = {
+	[0] = {
+		.type = MAP_TLV_ANTICIPATED_CHANNEL_USAGE,
+		.present = TLV_PRESENT_MORE,
+	},
+};
+
+DEFINE_POLICY(CMDU_QOS_MANAGEMENT_NOTIFICATION) = {
+	[0] = {
+		.type = MAP_TLV_QOS_MANAGEMENT_DESCRIPTOR,
+		.present = TLV_PRESENT_MORE,
+	},
+};
+#endif /* EASYMESH_VERSION > 2 */
+
 static struct tlv_policy_map map_policy[] = {
 	P(CMDU_TYPE_TOPOLOGY_DISCOVERY),
 	P(CMDU_TYPE_TOPOLOGY_NOTIFICATION),
@@ -626,7 +856,7 @@ static struct tlv_policy_map map_policy[] = {
 	P(CMDU_ASSOC_STA_LINK_METRICS_QUERY),
 	P(CMDU_ASSOC_STA_LINK_METRICS_RESPONSE),
 	P(CMDU_UNASSOC_STA_LINK_METRIC_QUERY),
-	P(CMDU_UNASSOC_STA_LINK_METRIC_RESPONSE),
+	P(CMDU_UNASSOC_STA_LINK_METRIC_RESPONSE),	/* 0x8010 */
 	P(CMDU_BEACON_METRICS_QUERY),
 	P(CMDU_BEACON_METRICS_RESPONSE),
 	P(CMDU_COMBINED_INFRA_METRICS),
@@ -639,28 +869,41 @@ static struct tlv_policy_map map_policy[] = {
 	P(CMDU_BACKHAUL_STEER_RESPONSE),
 	P(CMDU_CHANNEL_SCAN_REQUEST),
 	P(CMDU_CHANNEL_SCAN_REPORT),	/* 0x801C */
-	{ 0, NULL },
-	{ 0, NULL },
-	{ 0, NULL },
+#if (EASYMESH_VERSION > 2)
+	P(CMDU_DPP_CCE_INDICATION),	/* 0x801d */
+	P(CMDU_1905_REKEY_REQUEST),
+	P(CMDU_1905_DECRYPT_FAIL),
+#endif
 	P(CMDU_CAC_REQUEST),		/* 0x8020 */
 	P(CMDU_CAC_TERMINATION),
 	P(CMDU_CLIENT_DISASSOCIATION_STATS),
+#if (EASYMESH_VERSION > 2)
+	P(CMDU_SERVICE_PRIORITIZATION_REQUEST),	/* 0x8023 */
+#endif
 	P(CMDU_ERROR_RESPONSE),
 	P(CMDU_ASSOCIATION_STATUS_NOTIFICATION),
 	P(CMDU_TUNNELED),
 	P(CMDU_BACKHAUL_STA_CAPABILITY_QUERY),
 	P(CMDU_BACKHAUL_STA_CAPABILITY_REPORT),	/* 0x8028 */
-	{ 0, NULL },
-	{ 0, NULL },
-	{ 0, NULL },
-	{ 0, NULL },
-	{ 0, NULL },
-	{ 0, NULL },
-	{ 0, NULL },
-	{ 0, NULL },
-	{ 0, NULL },
-	{ 0, NULL },
+#if (EASYMESH_VERSION > 2)
+	P(CMDU_PROXIED_ENCAP_DPP),
+	P(CMDU_DIRECT_ENCAP_DPP),	/* 0x802a */
+	P(CMDU_RECONFIG_TRIGGER),
+	P(CMDU_BSS_CONFIG_REQUEST),
+	P(CMDU_BSS_CONFIG_RESPONSE),
+	P(CMDU_BSS_CONFIG_RESULT),
+	P(CMDU_CHIRP_NOTIFICATION),
+	P(CMDU_1905_ENCAP_EAPOL),	/* 0x8030 */
+	P(CMDU_DPP_BOOTSTRAPING_URI),
+	P(CMDU_ANTICIPATED_CHANNEL_PREFERENCE),
+#endif
 	P(CMDU_FAILED_CONNECTION),	/* 0x8033 */
+	{ 0, NULL },
+#if (EASYMESH_VERSION > 2)
+	P(CMDU_AGENT_LIST),  /* 0x8035 */
+	P(CMDU_ANTICIPATED_CHANNEL_USAGE),
+	P(CMDU_QOS_MANAGEMENT_NOTIFICATION),  /* 0x8037 */
+#endif
 };