| 1: if marking tag exist then |
| 2: exit |
| 3: end if |
| 4: create marking tag |
| 5: create route-to-user tag point to previous node |
| 6: for each neighbor in the target region do |
| 7: create child Discovery SM with given predicate |
| 8: if this SM is the created child Discovery SM then |
| 9: migrate to the neighbor node |
| 10: call Flood Migration |
| 11: exit |
| 12: end if |
| 13: end for |
| 14: if this node matches the predicate then |
| 15: migrate back to user node |
| (also create route-to-id and route |
| to previous node along the way) |
| 16: add this node in a set of bound node |
| 17: end if |