diff --git a/README.md b/README.md
index 319065f6952d8773a4db32a796a742ca2facfad4..6aa262a9940001e51a2c3c9bcd92b44087cff1b0 100644
--- a/README.md
+++ b/README.md
@@ -64,45 +64,146 @@ root@iopsys:~$ ubus call topology status
 }
 
 #To show current topology -
-root@iopsys:~$ ubus call topology dump
+root@iopsys:# ubus call topology dump
 {
-        "Nodes": [
+        "self": {
+                "ieee1905_macaddr": "00:22:07:70:f5:6c",
+                "num_neighbors": 1,
+                "neighbors": [
+                        {
+                                "nbr_mac_id": "00:22:07:6e:d8:08"
+                        }
+                ],
+                "num_non1905_neighbors": 3,
+                "non1905_neighbors": [
+                        "00:22:07:6d:3d:8e",
+                        "00:22:07:6d:3d:90",
+                        "b0:5c:da:5d:9e:19"
+                ]
+        },
+        "nodes": [
                 {
-                        "local_mac": "02:22:07:70:ef:e6",
-                        "neighbors_nr": 0,
+                        "ieee1905_macaddr": "00:22:07:6e:d8:08",
+                        "num_neighbors": 1,
                         "neighbors": [
-
+                                {
+                                        "nbr_mac_id": "00:22:07:70:f5:6c",
+                                        "link_metrics": [
+                                                {
+                                                        "nbr_intf_macid": "00:22:07:70:f5:6c",
+                                                        "ieee_bridge": 1,
+                                                        "tx_packet_error": 0,
+                                                        "tx_packet_ok": 1081,
+                                                        "mac_thrput_capacity": 0,
+                                                        "link_availability": 100,
+                                                        "phy_rate": 0,
+                                                        "rx_packet_error": 0,
+                                                        "rx_packet_ok": 2265,
+                                                        "rssi": 0
+                                                }
+                                        ]
+                                }
+                        ],
+                        "num_non1905_neighbors": 1,
+                        "non1905_neighbors": [
+                                "b0:5c:da:5d:9e:19"
+                        ],
+                        "registrar_freq_band": "802.11 2.4 GHz,802.11 5 GHz",
+                        "non1905_nbr_localintf": "00:22:07:6e:d8:08",
+                        "1905_nbr_localintf": "00:22:07:6e:d8:08",
+                        "local_interface_nbr": 3,
+                        "interfaces": [
+                                {
+                                        "interface_id": "00:22:07:6e:d8:09",
+                                        "media_type": "IEEE 802.11ac",
+                                        "network_membership": "00:22:07:6e:d8:09",
+                                        "role": "AP",
+                                        "ap_channel_band": 2,
+                                        "freq_index1": 60,
+                                        "freq_index2": 0
+                                },
+                                {
+                                        "interface_id": "00:22:07:6e:d8:0a",
+                                        "media_type": "IEEE 802.11n 2.4",
+                                        "network_membership": "00:22:07:6e:d8:0a",
+                                        "role": "AP",
+                                        "ap_channel_band": 0,
+                                        "freq_index1": 11,
+                                        "freq_index2": 0
+                                },
+                                {
+                                        "interface_id": "00:22:07:6e:d8:08",
+                                        "media_type": "IEEE 802.3ab"
+                                }
+                        ],
+                        "l2_neighbor_num": 2,
+                        "l2_neighbor": [
+                                {
+                                        "local_intf_id": "00:22:07:6e:d8:08",
+                                        "local_nbr_id": "00:22:07:70:f5:6c"
+                                },
+                                {
+                                        "local_intf_id": "00:22:07:6e:d8:08",
+                                        "local_nbr_id": "b0:5c:da:5d:9e:19"
+                                }
+                        ],
+                        "bridging_tuple_num": 3,
+                        "bridge_tuple": [
+                                {
+                                        "bridge_tuple_mac_id": "00:22:07:6e:d8:09"
+                                },
+                                {
+                                        "bridge_tuple_mac_id": "00:22:07:6e:d8:0a"
+                                },
+                                {
+                                        "bridge_tuple_mac_id": "00:22:07:6e:d8:08"
+                                }
+                        ],
+                        "version": "1905.1a",
+                        "friendly_name": "iopsysWrt",
+                        "manufacturer_name": "IOPSYS",
+                        "manufacturer_model": "EG400R0",
+                        "control_url": "http://192.168.1.1",
+                        "ipv4_itfr_num": 1,
+                        "ipv4_params": [
+                                {
+                                        "mac_address": "00:22:07:6e:d8:08",
+                                        "ipv4_addr_type": "IPV4_DHCP",
+                                        "ipv4_address": "192.168.1.1",
+                                        "dhcp_addr": "127.1.1.1"
+                                }
                         ],
-                        "non_1905_neighbors_nr": 0,
-                        "non_1905_neighbors": [
+                        "ipv6_itfr_num": 0,
+                        "ipv6_params": [
 
                         ]
                 }
         ]
+
 }
 
 #To show the topology changelogs -
-root@iopsys:~# ubus call topology changelog
+root@iopsys:# ubus call topology changelog
 {
-	"num_changelog": 2,
-	"changelog": [
-		{
-			"reporter": "00:22:07:6d:3d:8e",
-			"reporter_interface": "00:22:07:70:f5:6c",
-			"neighbor": "00:22:07:6d:3d:8e",
-			"is1905_neighbor": "true",
-			"event_type": "add",
-			"timestamp": "2020-07-06T11:51:54"
-		},
-		{
-			"reporter": "00:22:07:ae:ed:fd",
-			"reporter_interface": "00:22:07:70:f5:6c",
-			"neighbor": "00:22:07:ae:ed:fd",
-			"is1905_neighbor": "true",
-			"event_type": "add",
-			"timestamp": "2020-07-06T11:56:01"
-		}
-	]
+        "num_changelog": 2,
+        "changelog": [
+                {
+                        "reporter": "00:22:07:6e:d8:08",
+                        "reporter_interface": "00:22:07:6e:d8:08",
+                        "neighbor": "00:22:07:6e:d8:08",
+                        "is1905_neighbor": "true",
+                        "event_type": "add",
+                        "timestamp": "2020-08-25T12:02:46"
+                },
+                {
+                        "reporter": "00:22:07:6e:d8:08",
+                        "reporter_interface": "00:22:07:6e:d8:08",
+                        "neighbor": "b0:5c:da:5d:9e:19",
+                        "is1905_neighbor": "false",
+                        "event_type": "add",
+                        "timestamp": "2020-08-25T12:09:24"
+                }
+        ]
 }
 
 ````
diff --git a/src/topologyd.c b/src/topologyd.c
index 2ab27e573f27c455ee9045bf48a01963fd7cdec4..8cdc6f96353f40a164623071130895941b62d53f 100644
--- a/src/topologyd.c
+++ b/src/topologyd.c
@@ -876,7 +876,7 @@ void topologyd_dump_node(struct blob_buf *bb, struct node *p, int is_self)
                                         p->device_ipv6[j].ipv6addr_origin[10], p->device_ipv6[j].ipv6addr_origin[11],
                                         p->device_ipv6[j].ipv6addr_origin[12], p->device_ipv6[j].ipv6addr_origin[13],
 				       	p->device_ipv6[j].ipv6addr_origin[14],p->device_ipv6[j].ipv6addr_origin[15]);
-                        addr[39] = '\0';
+                        addr_v6[39] = '\0';
                         blobmsg_add_string(bb, "origin", addr_v6);
                 }
                 blobmsg_close_table(bb, table);
@@ -1297,16 +1297,19 @@ void changelog_copy_node_info(struct topologyd_private *t, struct node *p, int32
 	dbg("Inside changelog_copy_node_info \n");
 	struct topology_changelog elem;
 
-	if( t == NULL || p == NULL)
+	if (t == NULL || p == NULL)
 		return; 
 
-	if(event == 0)
+	if (event == 0) {
 		memcpy(elem.rpt_macaddr, p->hwaddr, 6);
-	else
+		memcpy(elem.rpt_ifmacaddr, p->nbr_localintf, 6);
+	}
+	else {
 		memcpy(elem.rpt_macaddr, t->ieee1905_macaddr, 6);
-
-	//add the selfnode macaddress
-	memcpy(elem.rpt_ifmacaddr, t->ieee1905_macaddr, 6);
+		memcpy(elem.rpt_ifmacaddr, t->selfnode.nbr_localintf, 6);
+	}
+	
+	memcpy(elem.rpt_ifmacaddr, p->nbr_localintf, 6);
 	memcpy(elem.nbr_macaddr, p->hwaddr, 6);
 	elem.is1905_nbr = is1905;
 	elem.type = event;
@@ -1339,7 +1342,7 @@ void update_changelog_info(struct topologyd_private *priv, struct node *dest, st
 				if (found == 0) {
 					memcpy(elem.nbr_macaddr, dest->nbr_list[i].nbr_macid, 6);
 					memcpy(elem.rpt_macaddr, dest->hwaddr, 6);
-					memcpy(elem.rpt_ifmacaddr, dest->hwaddr, 6);
+					memcpy(elem.rpt_ifmacaddr, dest->nbr_localintf, 6);
 					elem.is1905_nbr = 1;
 					elem.type = 1;
 					enqueue_changelog(&(priv->topo), &elem);
@@ -1353,7 +1356,7 @@ void update_changelog_info(struct topologyd_private *priv, struct node *dest, st
 			for( i = 0; i< k ; i++) {
 				memcpy(elem.nbr_macaddr, src->nbr_list[i].nbr_macid, 6);
 				memcpy(elem.rpt_macaddr, src->hwaddr, 6);
-				memcpy(elem.rpt_ifmacaddr, src->hwaddr, 6);
+				memcpy(elem.rpt_ifmacaddr, src->nbr_localintf, 6);
 				elem.is1905_nbr = 1;
 				elem.type = 0;
 				enqueue_changelog(&(priv->topo), &elem);
@@ -1378,7 +1381,7 @@ void update_changelog_info(struct topologyd_private *priv, struct node *dest, st
 				if (found == 0) {
 					memcpy(elem.nbr_macaddr, dest->non1905_nbrlist[i], 6);
 					memcpy(elem.rpt_macaddr, dest->hwaddr, 6);
-					memcpy(elem.rpt_ifmacaddr, dest->hwaddr, 6);
+					memcpy(elem.rpt_ifmacaddr, dest->non1905_nbr_localintf, 6);
 					elem.is1905_nbr = 0;
 					elem.type = 1;
 					enqueue_changelog(&(priv->topo), &elem);
@@ -1392,7 +1395,7 @@ void update_changelog_info(struct topologyd_private *priv, struct node *dest, st
                         for( i = 0; i< k ; i++) {
                                 memcpy(elem.nbr_macaddr, src->non1905_nbrlist[i], 6);
                                 memcpy(elem.rpt_macaddr, src->hwaddr, 6);
-                                memcpy(elem.rpt_ifmacaddr, src->hwaddr, 6);
+                                memcpy(elem.rpt_ifmacaddr, src->non1905_nbr_localintf, 6);
                                 elem.is1905_nbr = 0;
                                 elem.type = 0;
                                 enqueue_changelog(&(priv->topo), &elem);