问题描述
如果project使用kernel-3.18,在跑vtskernelnettest测项中,如果出现类似backtrace
FAIL: testProcNetIcmp6 (ping6_test.Ping6Test)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/data/nativetest64/kernel_net_tests/kernel_net_tests/runfiles/ping6_test.py", line 807, in testProcNetIcmp6
txmem=0, rxmem=0)
File "/data/nativetest64/kernel_net_tests/kernel_net_tests/runfiles/ping6_test.py", line 333, in CheckSockStatFile
self.fail("Cound not find socket matching %s" % expected)
AssertionError: Cound not find socket matching ['000080FE00000000FF000000016400FE:D00D', '000002FF000000000000000001000000:DEAD', '01', '00000000:00000000', '0', '2', '0']
----------------------------------------------------------------------
Traceback (most recent call last):
File "/data/nativetest64/kernel_net_tests/kernel_net_tests/runfiles/ping6_test.py", line 807, in testProcNetIcmp6
txmem=0, rxmem=0)
File "/data/nativetest64/kernel_net_tests/kernel_net_tests/runfiles/ping6_test.py", line 333, in CheckSockStatFile
self.fail("Cound not find socket matching %s" % expected)
AssertionError: Cound not find socket matching ['000080FE00000000FF000000016400FE:D00D', '000002FF000000000000000001000000:DEAD', '01', '00000000:00000000', '0', '2', '0']
需要申请patch。
fail的原因是,这个case是发ICMPV6包,得到reply后去cat /proc/net/icmpv6的refcnt。正常refcnt是2,fail的refcnt是3。ping包是发送refcnt+1,收到reply后refct-1.由于之前的某个bug fix,只修掉了icmp的bug,没有考虑到icmpv6的情况。
解决方案
在icmpv6处理时,收到reply 同样refcnt-1.
p0.mp1,请申请ALPS04688788的patch
p0.mp2,请申请ALPS04251039的patch