On Thu, Apr 24, 2008 at 09:29:00PM +0900, Yukiyo Akisada wrote:
> Hi, Karsten.
>
> Please give me time to investigate.
>
> ct-2.1.1 is already obsoleted package,
> so it is lower priority in my queue.
I understand that.
So far I known here are no newer tests for default address selection, or did
I miss something ?
>
> Anyway, your point about timestamp is correct.
> And changing seektime at vRecv() must be done carefully.
>
> I guess that you must insert vClear() before vSend() if you use 0 as seektime.
>
I understand, this makes sense.
Looks this patch OK for you ?
--- ct-2.1.1/default-addr-select/ADDR_SELECT.pm 2003-05-28 02:20:27.000000000 +0200
+++ ct-2.1.1.mod/default-addr-select/ADDR_SELECT.pm 2008-04-24 15:02:39.000000000 +0200
@@ -445,7 +445,6 @@
#======================================================================
sub ping6_Destination2SOURCE1($$) {
my ($CPP,$IF_SELECT) = @_;
- my $rcv_time = 0;
vCapture("$IF_SELECT");
vClear("$IF_SELECT");
vSend("$IF_SELECT", 'echo_request_DESTINATION2SOURCE1');
@@ -453,24 +452,24 @@
while($TRUE){
my $CPP_THIS = $CPP;
# my %ret = vRecv("$IF_SELECT", 5, $rcv_time, 0, 'ns_NUT2DEFAULT_ROUTER_SLLA','ns_NUT2DEFAULT_ROUTER_noOPT','ns_NUT2DESTINATION_SLLA','ns_NUT2DESTINATION_noOPT','echo_reply_SOURCE12DESTINATION');
- my %ret = vRecv("$IF_SELECT", 7, $rcv_time, 0, 'ns_NUT2DEFAULT_ROUTER_SLLA','ns_NUT2DEFAULT_ROUTER_noOPT','ns_NUT2DESTINATION_SLLA','ns_NUT2DESTINATION_noOPT','echo_reply_SOURCE12DESTINATION');
+ my %ret = vRecv("$IF_SELECT", 7, 0, 0, 'ns_NUT2DEFAULT_ROUTER_SLLA','ns_NUT2DEFAULT_ROUTER_noOPT','ns_NUT2DESTINATION_SLLA','ns_NUT2DESTINATION_noOPT','echo_reply_SOURCE12DESTINATION');
if($ret{status} == 0) {
if($ret{recvFrame} eq 'ns_NUT2DEFAULT_ROUTER_SLLA' || $ret{recvFrame} eq 'ns_NUT2DEFAULT_ROUTER_noOPT') {
$CPP_THIS .= " -DRECEIVE_SOURCE=\\\"$ret{'Frame_Ether.Packet_IPv6.Hdr_IPv6.SourceAddress'}\\\"";
vCPP($CPP_THIS);
+ vClear("$IF_SELECT");
%ret2 = vSend("$IF_SELECT", 'na_DEFAULT_ROUTER2NUT_TLLA');
- $rcv_time = $ret2{sentTime1};
}elsif($ret{recvFrame} eq 'ns_NUT2DESTINATION_SLLA' || $ret{recvFrame} eq 'ns_NUT2DESTINATION_noOPT') {
$CPP_THIS .= " -DRECEIVE_SOURCE=\\\"$ret{'Frame_Ether.Packet_IPv6.Hdr_IPv6.SourceAddress'}\\\"";
vCPP($CPP_THIS);
+ vClear("$IF_SELECT");
%ret2 = vSend("$IF_SELECT", 'na_DESTINATION_R_2NUT_TLLA');
- $rcv_time = $ret2{sentTime1};
}elsif($ret{recvFrame} eq 'echo_reply_SOURCE12DESTINATION') {
# %ret2 = vRecv("$IF_SELECT", 3, 0, 0, 'ns_NUT2DESTINATION_SLLA','ns_NUT2DESTINATION_noOPT');
- %ret2 = vRecv("$IF_SELECT", 7, $rcv_time, 0, 'ns_NUT2DESTINATION_SLLA','ns_NUT2DESTINATION_noOPT');
+ %ret2 = vRecv("$IF_SELECT", 7, 0, 0, 'ns_NUT2DESTINATION_SLLA','ns_NUT2DESTINATION_noOPT');
if($ret2{status} == 0) {
$CPP_THIS .= " -DRECEIVE_SOURCE=\\\"$ret2{'Frame_Ether.Packet_IPv6.Hdr_IPv6.SourceAddress'}\\\"";
vCPP($CPP_THIS);
@@ -825,7 +824,6 @@
#======================================================================
sub nutPing62Dest($$$;$) {
my ($CPP,$SEND_DEST,$ON_LINK,$NO_IF) = @_;
- my $rcv_time = 0;
if($ON_LINK == $TRUE){
$NS_SLLA = 'ns_NUT2DESTINATION_ON_LINK_SLLA';
@@ -851,20 +849,21 @@
while($TRUE){
my $CPP_THIS = $CPP;
- my %ret = vRecv("$IF", 10, $rcv_time, 0, 'ns_NUT2DEFAULT_ROUTER_SLLA','ns_NUT2DEFAULT_ROUTER_noOPT', $NS_SLLA,$NS_noOPT,$PING6);
+ # my %ret = vRecv("$IF", 10, $rcv_time, 0, 'ns_NUT2DEFAULT_ROUTER_SLLA','ns_NUT2DEFAULT_ROUTER_noOPT', $NS_SLLA,$NS_noOPT,$PING6);
+ my %ret = vRecv("$IF", 10, 0, 0, 'ns_NUT2DEFAULT_ROUTER_SLLA','ns_NUT2DEFAULT_ROUTER_noOPT', $NS_SLLA,$NS_noOPT,$PING6);
if($ret{status} == 0) {
if($ret{recvFrame} eq 'ns_NUT2DEFAULT_ROUTER_SLLA' || $ret{recvFrame} eq 'ns_NUT2DEFAULT_ROUTER_noOPT') {
$CPP_THIS .= " -DRECEIVE_SOURCE=\\\"$ret{'Frame_Ether.Packet_IPv6.Hdr_IPv6.SourceAddress'}\\\"";
vCPP($CPP_THIS);
+ vClear("$IF");
%ret2 = vSend("$IF", 'na_DEFAULT_ROUTER2NUT_TLLA');
- $rcv_time = $ret2{sentTime1};
}elsif($ret{recvFrame} eq $NS_SLLA || $ret{recvFrame} eq $NS_noOPT) {
$CPP_THIS .= " -DRECEIVE_SOURCE=\\\"$ret{'Frame_Ether.Packet_IPv6.Hdr_IPv6.SourceAddress'}\\\"";
vCPP($CPP_THIS);
+ vClear("$IF");
%ret2 = vSend("$IF", $NA_TLLA);
- $rcv_time = $ret2{sentTime1};
}elsif($ret{recvFrame} eq $PING6) {
nutPing6AsyncWait() || exit $V6evalTool::exitFatal;
return $TRUE;
@@ -882,7 +881,6 @@
#======================================================================
sub nutPing62Dest_TempAddr($$$;$) {
my ($CPP,$SEND_DEST,$ON_LINK,$NO_IF) = @_;
- my $rcv_time = 0;
if($ON_LINK == $TRUE){
$NS_SLLA = 'ns_NUT2DESTINATION_ON_LINK_SLLA_any';
@@ -910,20 +908,21 @@
while($TRUE){
my $CPP_THIS = $CPP;
- my %ret = vRecv("$IF", 10, $rcv_time, 0, 'ns_NUT2DEFAULT_ROUTER_SLLA_any','ns_NUT2DEFAULT_ROUTER_noOPT_any', $NS_SLLA,$NS_noOPT,$PING6_UNEXP,$PING6_ANY);
+ # my %ret = vRecv("$IF", 10, $rcv_time, 0, 'ns_NUT2DEFAULT_ROUTER_SLLA_any','ns_NUT2DEFAULT_ROUTER_noOPT_any', $NS_SLLA,$NS_noOPT,$PING6_UNEXP,$PING6_ANY);
+ my %ret = vRecv("$IF", 10, 0, 0, 'ns_NUT2DEFAULT_ROUTER_SLLA_any','ns_NUT2DEFAULT_ROUTER_noOPT_any', $NS_SLLA,$NS_noOPT,$PING6_UNEXP,$PING6_ANY);
if($ret{status} == 0) {
if($ret{recvFrame} eq 'ns_NUT2DEFAULT_ROUTER_SLLA_any' || $ret{recvFrame} eq 'ns_NUT2DEFAULT_ROUTER_noOPT_any') {
$CPP_THIS .= " -DRECEIVE_SOURCE=\\\"$ret{'Frame_Ether.Packet_IPv6.Hdr_IPv6.SourceAddress'}\\\"";
vCPP($CPP_THIS);
+ vClear("$IF");
%ret2 = vSend("$IF", 'na_DEFAULT_ROUTER2NUT_TLLA');
- $rcv_time = $ret2{sentTime1};
}elsif($ret{recvFrame} eq $NS_SLLA || $ret{recvFrame} eq $NS_noOPT) {
$CPP_THIS .= " -DRECEIVE_SOURCE=\\\"$ret{'Frame_Ether.Packet_IPv6.Hdr_IPv6.SourceAddress'}\\\"";
vCPP($CPP_THIS);
+ vClear("$IF");
%ret2 = vSend("$IF", $NA_TLLA);
- $rcv_time = $ret2{sentTime1};
}elsif($ret{recvFrame} eq $PING6_UNEXP) {
vLogHTML("<FONT COLOR=\"#FF0000\">#### SourceAddress is not expected one ####</FONT><BR>");
@@ -948,7 +947,6 @@
#======================================================================
sub nutPing62Dest_Dns($$$;$) {
my ($CPP,$ANS_NUM,$ON_LINK,$NO_IF) = @_;
- my $rcv_time = 0;
if($ON_LINK == $TRUE){
$NS_SLLA = 'ns_NUT2DESTINATION_ON_LINK_SLLA';
@@ -973,37 +971,38 @@
}
while($TRUE){
my $CPP_THIS = $CPP;
- my %ret = vRecv("$IF", 10, $rcv_time, 0, 'ns_NUT2DEFAULT_ROUTER_SLLA','ns_NUT2DEFAULT_ROUTER_noOPT', 'dns_question_AAAA', $NS_SLLA,$NS_noOPT,$PING6,'ns_NUT2DNS_SLLA_any','ns_NUT2DNS_noOPT_any');
+ # my %ret = vRecv("$IF", 10, $rcv_time, 0, 'ns_NUT2DEFAULT_ROUTER_SLLA','ns_NUT2DEFAULT_ROUTER_noOPT', 'dns_question_AAAA', $NS_SLLA,$NS_noOPT,$PING6,'ns_NUT2DNS_SLLA_any','ns_NUT2DNS_noOPT_any');
+ my %ret = vRecv("$IF", 10, 0, 0, 'ns_NUT2DEFAULT_ROUTER_SLLA','ns_NUT2DEFAULT_ROUTER_noOPT', 'dns_question_AAAA', $NS_SLLA,$NS_noOPT,$PING6,'ns_NUT2DNS_SLLA_any','ns_NUT2DNS_noOPT_any');
if($ret{status} == 0) {
if($ret{recvFrame} eq 'ns_NUT2DEFAULT_ROUTER_SLLA' || $ret{recvFrame} eq 'ns_NUT2DEFAULT_ROUTER_noOPT') {
$CPP_THIS .= " -DRECEIVE_SOURCE=\\\"$ret{'Frame_Ether.Packet_IPv6.Hdr_IPv6.SourceAddress'}\\\"";
vCPP($CPP_THIS);
+ vClear("$IF");
%ret2 = vSend("$IF", 'na_DEFAULT_ROUTER2NUT_TLLA');
- $rcv_time = $ret2{sentTime1};
}elsif($ret{recvFrame} eq 'dns_question_AAAA') {
$CPP_THIS .= " -DRECEIVE_SOURCE=\\\"$ret{'Frame_Ether.Packet_IPv6.Hdr_IPv6.SourceAddress'}\\\" -DSOURCE_PORT=$ret{'Frame_Ether.Packet_IPv6.Upp_UDP.Hdr_UDP.SourcePort'} -DDNS_ID=$ret{'Frame_Ether.Packet_IPv6.Upp_UDP.Udp_DNS.Identifier'}";
vCPP($CPP_THIS);
+ vClear("$IF");
if($ANS_NUM == 3){
%ret2 = vSend("$IF", 'dns_answer_AAAA3');
}else{
%ret2 = vSend("$IF", 'dns_answer_AAAA2');
}
- $rcv_time = $ret2{sentTime1};
}elsif($ret{recvFrame} eq $NS_SLLA || $ret{recvFrame} eq $NS_noOPT) {
$CPP_THIS .= " -DRECEIVE_SOURCE=\\\"$ret{'Frame_Ether.Packet_IPv6.Hdr_IPv6.SourceAddress'}\\\"";
vCPP($CPP_THIS);
+ vClear("$IF");
%ret2 = vSend("$IF", $NA_TLLA);
- $rcv_time = $ret2{sentTime1};
}elsif($ret{recvFrame} eq $PING6) {
nutPing6AsyncWait() || exit $V6evalTool::exitFatal;
return $TRUE;
}elsif($ret{recvFrame} eq 'ns_NUT2DNS_SLLA_any' || $ret{recvFrame} eq 'ns_NUT2DNS_noOPT_any') {
$CPP_THIS .= " -DRECEIVE_SOURCE=\\\"$ret{'Frame_Ether.Packet_IPv6.Hdr_IPv6.SourceAddress'}\\\"";
vCPP($CPP_THIS);
+ vClear("$IF");
%ret2 = vSend("$IF", 'na_DNS2NUT_TLLA');
- $rcv_time = $ret2{sentTime1};
}
}else{
vLogHTML('<FONT COLOR="#FF0000">#### No response from NUT, Configuration Problem ? ####</FONT><BR>');
--
Karsten Keil
SuSE Labs
ISDN and VOIP development
SUSE LINUX Products GmbH, Maxfeldstr.5 90409 Nuernberg, GF: Markus Rex, HRB 16746 (AG Nuernberg)