ip netns exec $1 ./pm_nl_ctl dump token $tk
 }
 
+# $1: ns ; $2: id
+userspace_pm_get_addr()
+{
+       local evts=$evts_ns1
+       local tk
+
+       [ "$1" == "$ns2" ] && evts=$evts_ns2
+       tk=$(mptcp_lib_evts_get_info token "$evts")
+
+       ip netns exec $1 ./pm_nl_ctl get $2 token $tk
+}
+
 userspace_pm_chk_dump_addr()
 {
        local ns="${1}"
        fi
 }
 
+userspace_pm_chk_get_addr()
+{
+       local ns="${1}"
+       local id="${2}"
+       local exp="${3}"
+
+       print_check "get id ${id} addr"
+
+       if mptcp_lib_kallsyms_has "mptcp_userspace_pm_get_addr$"; then
+               check_output "userspace_pm_get_addr ${ns} ${id}" "${exp}"
+       else
+               print_skip
+       fi
+}
+
 userspace_tests()
 {
        # userspace pm type prevents add_addr
                userspace_pm_chk_dump_addr "${ns1}" \
                        $'id 10 flags signal 10.0.2.1\nid 20 flags signal 10.0.3.1' \
                        "signal"
+               userspace_pm_chk_get_addr "${ns1}" "10" "id 10 flags signal 10.0.2.1"
+               userspace_pm_chk_get_addr "${ns1}" "20" "id 20 flags signal 10.0.3.1"
                userspace_pm_rm_addr $ns1 10
                userspace_pm_rm_sf $ns1 "::ffff:10.0.2.1" $SUB_ESTABLISHED
                userspace_pm_chk_dump_addr "${ns1}" \
                userspace_pm_chk_dump_addr "${ns2}" \
                        "id 20 flags subflow 10.0.3.2" \
                        "subflow"
+               userspace_pm_chk_get_addr "${ns2}" "20" "id 20 flags subflow 10.0.3.2"
                userspace_pm_rm_addr $ns2 20
                userspace_pm_rm_sf $ns2 10.0.3.2 $SUB_ESTABLISHED
                userspace_pm_chk_dump_addr "${ns2}" \