def METHOD_NAME(self):
    br1 = self.nodes[BR1]
    br2 = self.nodes[BR2]
    host = self.nodes[HOST]
    ed1 = self.nodes[ED1]
    ed2 = self.nodes[ED2]
    host.start(start_radvd=False)
    self.simulator.go(5)
    br1.start()
    self.simulator.go(config.LEADER_STARTUP_DELAY)
    self.assertEqual('leader', br1.get_state())
    self.simulator.go(5)
    br2.start()
    self.simulator.go(config.BORDER_ROUTER_STARTUP_DELAY)
    self.assertEqual('router', br2.get_state())
    ed1.start()
    ed2.start()
    self.simulator.go(5)
    self.assertEqual('child', ed1.get_state())
    self.assertEqual('child', ed2.get_state())
    br1.srp_server_set_enabled(True)
    br1.srp_server_set_lease_range(LEASE, LEASE, KEY_LEASE, KEY_LEASE)
    br2.srp_server_set_enabled(True)
    br2.srp_server_set_lease_range(LEASE, LEASE, KEY_LEASE, KEY_LEASE)
    self.simulator.go(3)
    self.assertEqual(br1.srp_server_get_state(), 'running')
    self.assertEqual(br2.srp_server_get_state(), 'running')
    # ED1 and ED2 register a service by SRP respectively.
    ed1.srp_client_set_host_name('ed1-host')
    ed1.srp_client_set_host_address(ed1.get_ip6_address(config.ADDRESS_TYPE.OMR)[0])
    ed1.srp_client_add_service('ed1', '_ed1._tcp', 12345, txt_entries=['id=ed1'])
    ed1.srp_client_enable_auto_start_mode()
    ed2.srp_client_set_host_name('ed2-host')
    ed2.srp_client_set_host_address(ed2.get_ip6_address(config.ADDRESS_TYPE.OMR)[0])
    ed2.srp_client_add_service('ed2', '_ed2._tcp', 12345, txt_entries=['id=ed2'])
    ed2.srp_client_enable_auto_start_mode()
    self.simulator.go(10)
    self.assertEqual(len(host.browse_mdns_services('_meshcop._udp')), 2)
    self.assertEqual(len(host.browse_mdns_services('_ed1._tcp')), 1)
    self.assertEqual(len(host.browse_mdns_services('_ed2._tcp')), 1)
    # BR1's mdns restart
    br1.stop_mdns_service()
    br1.start_mdns_service()
    self.simulator.go(10)
    self.assertEqual(len(host.browse_mdns_services('_meshcop._udp')), 2)
    self.assertEqual(len(host.browse_mdns_services('_ed1._tcp')), 1)
    self.assertEqual(len(host.browse_mdns_services('_ed2._tcp')), 1)
    ed1.dns_set_config(br1.get_ip6_address(config.ADDRESS_TYPE.ML_EID))
    # Since there is only one match, server should include
    # service info in additional section of its response.
    browsed_services = ed1.dns_browse('_ed2._tcp.default.service.arpa')
    self.assertEqual(len(browsed_services), 1)
    self.assertEqual(browsed_services['ed2']['port'], 12345)
    self.assertEqual(browsed_services['ed2']['txt_data'], 'id=656432')
    ed2.dns_set_config(br1.get_ip6_address(config.ADDRESS_TYPE.ML_EID))
    browsed_services = ed2.dns_browse('_ed1._tcp.default.service.arpa')
    self.assertEqual(len(browsed_services), 1)
    self.assertEqual(browsed_services['ed1']['port'], 12345)
    self.assertEqual(browsed_services['ed1']['txt_data'], 'id=656431')