From b31a0b4560e86d9e9ac5228b1a0ce38fcdfbe268 Mon Sep 17 00:00:00 2001 From: Richard Fuchs Date: Wed, 14 Dec 2011 08:21:37 +0000 Subject: [PATCH] move test script to new kernel structs --- tests/kernel-module-test.pl | 57 ++++++++++++++++++++++++++++++------- 1 file changed, 46 insertions(+), 11 deletions(-) diff --git a/tests/kernel-module-test.pl b/tests/kernel-module-test.pl index 032324b2f..cbc56a899 100755 --- a/tests/kernel-module-test.pl +++ b/tests/kernel-module-test.pl @@ -3,7 +3,9 @@ use strict; use warnings; use Socket; +use Socket6; +my %cmds = (noop => 1, add => 2, delete => 3, update => 4); $| = 1; open(F, "> /proc/mediaproxy/1/control"); @@ -12,43 +14,76 @@ open(F, "> /proc/mediaproxy/1/control"); $| = 1; select($x); } -#print F (pack("I SS LLSS LS S", 0, 0, -1, 0, 0, 0, 0, 0, 0, -1)); -#sleep(10); + +sub mp_address { + my ($fam, $addr, $port) = @_; + + if ($fam eq 'inet') { + return pack('i a4 a12 S S', 2, inet_aton($addr), '', $port, 0); + } + if ($fam eq 'inet6') { + return pack('i a16 S S', 10, inet_pton(AF_INET6, $addr), $port, 0); + } + if ($fam eq '') { + return pack('i a16 S S', 0, '', 0, 0); + } + + die; +} +sub mediaproxy_message { + my ($cmd, $target_port, + $src_addr_family, $src_addr_addr, $src_addr_port, + $dst_addr_family, $dst_addr_addr, $dst_addr_port, + $mirror_addr_family, $mirror_addr_addr, $mirror_addr_port, + $tos) = @_; + + my $ret = ''; + + $ret .= pack('I SS', $cmds{$cmd}, $target_port, 0); + $ret .= mp_address($src_addr_family, $src_addr_addr, $src_addr_port); + $ret .= mp_address($dst_addr_family, $dst_addr_addr, $dst_addr_port); + $ret .= mp_address($mirror_addr_family, $mirror_addr_addr, $mirror_addr_port); + $ret .= pack('C CS', $tos, 0, 0); +} + +my @src = qw(inet 192.168.231.132); +my @dst = qw(inet 192.168.231.1); +my @nul = ('', '', ''); print("add 9876 -> 1234/6543\n"); -syswrite(F, pack("I SS a4a4 SS a4 S S", 1, 9876, -1, inet_aton("192.168.231.132"), inet_aton("192.168.231.1"), 1234, 6543, "", 0, -1)); +syswrite(F, mediaproxy_message('add', 9876, @src, 1234, @dst, 6543, @nul, 184)); sleep(30); print("add fail\n"); -syswrite(F, pack("I SS a4a4 SS a4 S S", 1, 9876, -1, inet_aton("192.168.231.132"), inet_aton("192.168.231.1"), 1234, 6543, inet_aton("192.168.231.1"), 6789, -1)); +syswrite(F, mediaproxy_message('add', 9876, @src, 1234, @dst, 6543, @dst, 6789, 184)); sleep(30); print("update 9876 -> 1234/6543 & 6789\n"); -syswrite(F, pack("I SS a4a4 SS a4 S S", 3, 9876, -1, inet_aton("192.168.231.132"), inet_aton("192.168.231.1"), 1234, 6543, inet_aton("192.168.231.1"), 6789, -1)); +syswrite(F, mediaproxy_message('update', 9876, @src, 1234, @dst, 6543, @dst, 6789, 184)); sleep(30); print("update 9876 -> 2345/7890 & 4321\n"); -syswrite(F, pack("I SS a4a4 SS a4 S S", 3, 9876, -1, inet_aton("192.168.231.132"), inet_aton("192.168.231.1"), 2345, 7890, inet_aton("192.168.231.1"), 4321, -1)); +syswrite(F, mediaproxy_message('update', 9876, @src, 2345, @dst, 7890, @dst, 4321, 184)); sleep(30); print("add fail\n"); -syswrite(F, pack("I SS a4a4 SS a4 S S", 1, 9876, -1, inet_aton("192.168.231.132"), inet_aton("192.168.231.1"), 1234, 6543, inet_aton("192.168.231.1"), 6789, -1)); +syswrite(F, mediaproxy_message('add', 9876, @src, 1234, @dst, 6543, @dst, 6789, 184)); sleep(30); print("update 9876 -> 1234/6543\n"); -syswrite(F, pack("I SS a4a4 SS a4 S S", 3, 9876, -1, inet_aton("192.168.231.132"), inet_aton("192.168.231.1"), 1234, 6543, "", 0, -1)); +syswrite(F, mediaproxy_message('update', 9876, @src, 1234, @dst, 6543, @nul, 184)); sleep(30); print("delete\n"); -syswrite(F, pack("I SS a4a4 SS a4 S S", 2, 9876, -1, "", "", 0, 0, "", 0, -1)); +syswrite(F, mediaproxy_message('delete', 9876, @nul, @nul, @nul, 0)); sleep(30); print("delete fail\n"); -syswrite(F, pack("I SS a4a4 SS a4 S S", 2, 9876, -1, "", "", 0, 0, "", 0, -1)); +syswrite(F, mediaproxy_message('delete', 9876, @nul, @nul, @nul, 0)); sleep(30); print("update fail\n"); -syswrite(F, pack("I SS a4a4 SS a4 S S", 3, 9876, -1, inet_aton("192.168.231.132"), inet_aton("192.168.231.1"), 1234, 6543, "", 0, -1)); +syswrite(F, mediaproxy_message('update', 9876, @src, 1234, @dst, 6543, @nul, 184)); sleep(30); close(F);