Skip to content

Commit d3cec5c

Browse files
lschlesinger-dndavem330
authored andcommitted
selftests: vrf: Add test for SNAT over VRF
Commit 09e856d ("vrf: Reset skb conntrack connection on VRF rcv") fixes the "reverse-DNAT" of an SNAT-ed packet over a VRF. This patch adds a test for this scenario. Signed-off-by: Lahav Schlesinger <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 41467d2 commit d3cec5c

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

tools/testing/selftests/net/fcnal-test.sh

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3879,13 +3879,41 @@ use_case_ping_lla_multi()
38793879
log_test_addr ${MCAST}%${NSC_DEV} $? 0 "Post cycle ${NSA} ${NSA_DEV2}, ping out ns-C"
38803880
}
38813881

3882+
# Perform IPv{4,6} SNAT on ns-A, and verify TCP connection is successfully
3883+
# established with ns-B.
3884+
use_case_snat_on_vrf()
3885+
{
3886+
setup "yes"
3887+
3888+
local port="12345"
3889+
3890+
run_cmd iptables -t nat -A POSTROUTING -p tcp -m tcp --dport ${port} -j SNAT --to-source ${NSA_LO_IP} -o ${VRF}
3891+
run_cmd ip6tables -t nat -A POSTROUTING -p tcp -m tcp --dport ${port} -j SNAT --to-source ${NSA_LO_IP6} -o ${VRF}
3892+
3893+
run_cmd_nsb nettest -s -l ${NSB_IP} -p ${port} &
3894+
sleep 1
3895+
run_cmd nettest -d ${VRF} -r ${NSB_IP} -p ${port}
3896+
log_test $? 0 "IPv4 TCP connection over VRF with SNAT"
3897+
3898+
run_cmd_nsb nettest -6 -s -l ${NSB_IP6} -p ${port} &
3899+
sleep 1
3900+
run_cmd nettest -6 -d ${VRF} -r ${NSB_IP6} -p ${port}
3901+
log_test $? 0 "IPv6 TCP connection over VRF with SNAT"
3902+
3903+
# Cleanup
3904+
run_cmd iptables -t nat -D POSTROUTING -p tcp -m tcp --dport ${port} -j SNAT --to-source ${NSA_LO_IP} -o ${VRF}
3905+
run_cmd ip6tables -t nat -D POSTROUTING -p tcp -m tcp --dport ${port} -j SNAT --to-source ${NSA_LO_IP6} -o ${VRF}
3906+
}
3907+
38823908
use_cases()
38833909
{
38843910
log_section "Use cases"
38853911
log_subsection "Device enslaved to bridge"
38863912
use_case_br
38873913
log_subsection "Ping LLA with multiple interfaces"
38883914
use_case_ping_lla_multi
3915+
log_subsection "SNAT on VRF"
3916+
use_case_snat_on_vrf
38893917
}
38903918

38913919
################################################################################

0 commit comments

Comments
 (0)