chk_mptcp_info()
 {
-       local nr_info=$1
-       local info
+       local info1=$1
+       local exp1=$2
+       local info2=$3
+       local exp2=$4
        local cnt1
        local cnt2
        local dump_stats
 
-       if [[ $nr_info = "subflows_"* ]]; then
-               info="subflows"
-               nr_info=${nr_info:9}
-       else
-               echo "[fail] unsupported argument: $nr_info"
-               fail_test
-               return 1
-       fi
-
-       printf "%-${nr_blank}s %-30s" " " "mptcp_info $info=$nr_info"
+       printf "%-${nr_blank}s %-30s" " " "mptcp_info $info1:$info2=$exp1:$exp2"
 
-       cnt1=$(ss -N $ns1 -inmHM | grep "$info:" |
-               sed -n 's/.*\('"$info"':\)\([[:digit:]]*\).*$/\2/p;q')
+       cnt1=$(ss -N $ns1 -inmHM | grep "$info1:" |
+              sed -n 's/.*\('"$info1"':\)\([[:digit:]]*\).*$/\2/p;q')
+       cnt2=$(ss -N $ns2 -inmHM | grep "$info2:" |
+              sed -n 's/.*\('"$info2"':\)\([[:digit:]]*\).*$/\2/p;q')
+       # 'ss' only display active connections and counters that are not 0.
        [ -z "$cnt1" ] && cnt1=0
-       cnt2=$(ss -N $ns2 -inmHM | grep "$info:" |
-               sed -n 's/.*\('"$info"':\)\([[:digit:]]*\).*$/\2/p;q')
        [ -z "$cnt2" ] && cnt2=0
-       if [ "$cnt1" != "$nr_info" ] || [ "$cnt2" != "$nr_info" ]; then
-               echo "[fail] got $cnt1:$cnt2 $info expected $nr_info"
+
+       if [ "$cnt1" != "$exp1" ] || [ "$cnt2" != "$exp2" ]; then
+               echo "[fail] got $cnt1:$cnt2 $info1:$info2 expected $exp1:$exp2"
                fail_test
                dump_stats=1
        else
                userspace_pm_add_addr 10.0.2.1 10
                chk_join_nr 1 1 1
                chk_add_nr 1 1
+               chk_mptcp_info subflows 1 subflows 1
+               chk_mptcp_info add_addr_signal 1 add_addr_accepted 1
                userspace_pm_rm_sf_addr_ns1 10.0.2.1 10
                chk_rm_nr 1 1 invert
+               chk_mptcp_info subflows 0 subflows 0
                kill_events_pids
                wait $tests_pid
        fi
                wait_mpj $ns2
                userspace_pm_add_sf 10.0.3.2 20
                chk_join_nr 1 1 1
+               chk_mptcp_info subflows 1 subflows 1
                userspace_pm_rm_sf_addr_ns2 10.0.3.2 20
                chk_rm_nr 1 1
+               chk_mptcp_info subflows 0 subflows 0
                kill_events_pids
                wait $tests_pid
        fi
                wait_mpj $ns1
                pm_nl_check_endpoint 1 "creation" \
                        $ns2 10.0.2.2 id 1 flags implicit
+               chk_mptcp_info subflows 1 subflows 1
+               chk_mptcp_info add_addr_signal 1 add_addr_accepted 1
 
                pm_nl_add_endpoint $ns2 10.0.2.2 id 33
                pm_nl_check_endpoint 0 "ID change is prevented" \
 
                wait_mpj $ns2
                chk_subflow_nr needtitle "before delete" 2
-               chk_mptcp_info subflows_1
+               chk_mptcp_info subflows 1 subflows 1
 
                pm_nl_del_endpoint $ns2 2 10.0.2.2
                sleep 0.5
                chk_subflow_nr "" "after delete" 1
-               chk_mptcp_info subflows_0
+               chk_mptcp_info subflows 0 subflows 0
 
                pm_nl_add_endpoint $ns2 10.0.2.2 dev ns2eth2 flags subflow
                wait_mpj $ns2
                chk_subflow_nr "" "after re-add" 2
-               chk_mptcp_info subflows_1
+               chk_mptcp_info subflows 1 subflows 1
                kill_tests_wait
        fi
 }