summaryrefslogtreecommitdiff
path: root/cleopatre/devkit/p1905_managerd/src/p1905_managerd.c
diff options
context:
space:
mode:
Diffstat (limited to 'cleopatre/devkit/p1905_managerd/src/p1905_managerd.c')
-rw-r--r--cleopatre/devkit/p1905_managerd/src/p1905_managerd.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/cleopatre/devkit/p1905_managerd/src/p1905_managerd.c b/cleopatre/devkit/p1905_managerd/src/p1905_managerd.c
index 028bf524c2..9c52e666ce 100644
--- a/cleopatre/devkit/p1905_managerd/src/p1905_managerd.c
+++ b/cleopatre/devkit/p1905_managerd/src/p1905_managerd.c
@@ -84,6 +84,19 @@ static void p1905_signal_handler(struct p1905_managerd_ctx *ctx)
update_non_1905_device_from_fdb(&(ctx->topology_entry.tpddb_head),
ctx->non_p1905_neighbor_dev);
+ /* if detect new non-1905.1 device join, send topology discovery
+ * this mechanism will let 1905.1 device discover soon
+ */
+ ctx->mid ++;
+ insert_cmdu_txq(p1905_multicast_address,ctx->plc0_mac_addr,\
+ e_topology_discovery,ctx->mid);
+ insert_cmdu_txq(p1905_multicast_address,ctx->eth0_mac_addr,\
+ e_topology_discovery,ctx->mid);
+#ifdef SUPPORT_WIFI
+ insert_cmdu_txq(p1905_multicast_address, ctx->wifi0_mac_addr,\
+ e_topology_discovery, ctx->mid);
+#endif
+
/* use is_topology_changed() to detect any non-1905.1 neighbor
* device joined/removed. if yes, need to send notify.
*/