[Bug 233535] Fix refcount leak in IPv6 MLD code leading to loss of IPv6 connectivity

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Thu Jan 10 02:43:42 UTC 2019


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=233535

--- Comment #30 from Andrey V. Elsukov <ae at FreeBSD.org> ---
(In reply to Hans Petter Selasky from comment #27)
> Created attachment 200956 [details]
> Fix MLD refcounting in IPv6 code.
> 
> Hi,
> 
> Please test this patch while watching:
> 
> vmstat -m | grep multi

It still leaks. The memory leak is unimportant problem. The much worse is that
system leaves multicast groups when you do an address configuration several
times. When system leaves multicast groups, it stops respond to ND6 NS, and
becomes unresponsive for neighbors.

# vmstat -m | grep multi
  ether_multi    61     5K       -      135  16,32,64,128
     in_multi     2     1K       -        3  256
    in6_multi    33     6K       -       73  32,256
# ifmcstat -i re0
re0:
        inet 10.9.8.12
        igmpv2
                group 224.0.0.1 mode exclude
                        mcast-macaddr 01:00:5e:00:00:01
        inet6 fe80::1ebd:b9ff:fede:d7d%re0 scopeid 0x2
        mldv1 flags=2<USEALLOW>
                group ff01::1%re0 scopeid 0x2 mode exclude
                        mcast-macaddr 33:33:00:00:00:01
                group ff02::1%re0 scopeid 0x2 mode exclude
                        mcast-macaddr 33:33:00:00:00:01
# ifconfig re0 inet6 fc00::1
# vmstat -m | grep multi
  ether_multi    76     6K       -      150  16,32,64,128
     in_multi     2     1K       -        3  256
    in6_multi    39     7K       -       81  32,256
# ifmcstat -i re0
re0:
        inet6 fe80::1ebd:b9ff:fede:d7d%re0 scopeid 0x2
        mldv1 flags=2<USEALLOW>
                group ff02::2:d4f1:c447%re0 scopeid 0x2 mode exclude
                        mcast-macaddr 33:33:d4:f1:c4:47
                group ff02::2:ffd4:f1c4%re0 scopeid 0x2 mode exclude
                        mcast-macaddr 33:33:ff:d4:f1:c4
                group ff02::1:ff00:1%re0 scopeid 0x2 mode exclude
                        mcast-macaddr 33:33:ff:00:00:01
        inet 10.9.8.12
        igmpv2
                group 224.0.0.1 mode exclude
                        mcast-macaddr 01:00:5e:00:00:01
        inet6 fe80::1ebd:b9ff:fede:d7d%re0 scopeid 0x2
        mldv1 flags=2<USEALLOW>
                group ff01::1%re0 scopeid 0x2 mode exclude
                        mcast-macaddr 33:33:00:00:00:01
                group ff02::1%re0 scopeid 0x2 mode exclude
                        mcast-macaddr 33:33:00:00:00:01

# ifconfig re0 inet6 fc00::1
# vmstat -m | grep multi
  ether_multi    70     6K       -      165  16,32,64,128
     in_multi     2     1K       -        3  256
    in6_multi    36     6K       -       89  32,256
# ifmcstat -i re0
re0:
        inet 10.9.8.12
        igmpv2
                group 224.0.0.1 mode exclude
                        mcast-macaddr 01:00:5e:00:00:01
        inet6 fe80::1ebd:b9ff:fede:d7d%re0 scopeid 0x2
        mldv1 flags=2<USEALLOW>
                group ff01::1%re0 scopeid 0x2 mode exclude
                        mcast-macaddr 33:33:00:00:00:01
                group ff02::1%re0 scopeid 0x2 mode exclude
                        mcast-macaddr 33:33:00:00:00:01
# ifconfig re0 inet6 fc00::1
# vmstat -m | grep multi
  ether_multi    85     7K       -      180  16,32,64,128
     in_multi     2     1K       -        3  256
    in6_multi    42     7K       -       97  32,256
# ifmcstat -i re0
re0:
        inet6 fe80::1ebd:b9ff:fede:d7d%re0 scopeid 0x2
        mldv1 flags=2<USEALLOW>
                group ff02::2:d4f1:c447%re0 scopeid 0x2 mode exclude
                        mcast-macaddr 33:33:d4:f1:c4:47
                group ff02::2:ffd4:f1c4%re0 scopeid 0x2 mode exclude
                        mcast-macaddr 33:33:ff:d4:f1:c4
                group ff02::1:ff00:1%re0 scopeid 0x2 mode exclude
                        mcast-macaddr 33:33:ff:00:00:01
        inet 10.9.8.12
        igmpv2
                group 224.0.0.1 mode exclude
                        mcast-macaddr 01:00:5e:00:00:01
        inet6 fe80::1ebd:b9ff:fede:d7d%re0 scopeid 0x2
        mldv1 flags=2<USEALLOW>
                group ff01::1%re0 scopeid 0x2 mode exclude
                        mcast-macaddr 33:33:00:00:00:01
                group ff02::1%re0 scopeid 0x2 mode exclude
                        mcast-macaddr 33:33:00:00:00:01

# ifconfig re0 inet6 fc00::1
# ifmcstat -i re0
re0:
        inet 10.9.8.12
        igmpv2
                group 224.0.0.1 mode exclude
                        mcast-macaddr 01:00:5e:00:00:01
        inet6 fe80::1ebd:b9ff:fede:d7d%re0 scopeid 0x2
        mldv1 flags=2<USEALLOW>
                group ff01::1%re0 scopeid 0x2 mode exclude
                        mcast-macaddr 33:33:00:00:00:01
                group ff02::1%re0 scopeid 0x2 mode exclude
                        mcast-macaddr 33:33:00:00:00:01
# vmstat -m | grep multi
  ether_multi    79     6K       -      195  16,32,64,128
     in_multi     2     1K       -        3  256
    in6_multi    39     7K       -      105  32,256

....

# vmstat -m | grep multi
  ether_multi   127    10K       -      315  16,32,64,128
     in_multi     2     1K       -        3  256
    in6_multi    56    11K       -      169  32,256

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the freebsd-net mailing list