tests/divert: fix after 2ce85919bb (IP source address validation)

Just make the test packet more legitimate.

Reviewed by:	melifaro
This commit is contained in:
Gleb Smirnoff 2021-11-12 11:17:56 -08:00
parent 034a924009
commit 6913bf4c3d
2 changed files with 4 additions and 2 deletions

View File

@ -42,6 +42,7 @@
def parse_args():
parser = argparse.ArgumentParser(description='divert socket tester')
parser.add_argument('--dip', type=str, help='destination packet IP')
parser.add_argument('--sip', type=str, help='source packet IP')
parser.add_argument('--divert_port', type=int, default=6668,
help='divert port to use')
parser.add_argument('--test_name', type=str, required=True,
@ -65,7 +66,7 @@ def ipdivert_ip6_output_remote_success(args):
def ipdivert_ip_input_local_success(args):
"""Sends IPv4 packet to OS stack as inbound local packet."""
packet = sc.IP(dst=args.dip) / sc.ICMP(type='echo-request')
packet = sc.IP(dst=args.dip,src=args.sip) / sc.ICMP(type='echo-request')
with socket.socket(socket.AF_INET, socket.SOCK_RAW, IPPROTO_DIVERT) as s:
s.bind(('0.0.0.0', args.divert_port))
s.sendto(bytes(packet), (args.dip, 0))

View File

@ -135,7 +135,8 @@ ipdivert_ip_input_local_success_body() {
jexec ${jname} ifconfig ${epair}b inet ${ip4b}/30
atf_check -s exit:0 jexec ${jname} $(atf_get_srcdir)/${script_name} \
--dip ${ip4b} --test_name ipdivert_ip_input_local_success
--sip ${ip4a} --dip ${ip4b} \
--test_name ipdivert_ip_input_local_success
count=`jexec ${jname} netstat -s -p icmp | grep 'Input histogram:' -A8 | grep -c 'echo: '`
# Verify redirect got installed