mirror of
				https://github.com/xcat2/xcat-core.git
				synced 2025-10-31 03:12:30 +00:00 
			
		
		
		
	Improve reliability of duplicate response detection phase 1, also check netfn and command match
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@14225 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This commit is contained in:
		| @@ -384,6 +384,8 @@ sub subcmd { | ||||
|     if ($self->{confalgo}) { | ||||
|         $type = $type | 0b10000000; #add secrecy | ||||
|     } | ||||
|     $self->{expectedcmd}=$args{command}; | ||||
|     $self->{expectednetfn}=$args{netfn}+1; | ||||
|     $self->sendpayload(payload=>\@payload,type=>$type,delayxmit=>$args{delayxmit}); | ||||
| } | ||||
|  | ||||
| @@ -822,7 +824,7 @@ sub parse_ipmi_payload { | ||||
|     my @payload = @_; | ||||
|     #for now, just trash the headers, this has been validated to death anyway | ||||
|     #except seqlun, that one is important | ||||
|     if ($payload[4] != $self->{seqlun} or $payload[0] != $self->{rqaddr}) { | ||||
|     unless ($payload[4] == $self->{seqlun} and $payload[0] == $self->{rqaddr} and $payload[1]>>2 == $self->{expectednetfn} and $payload[5] == $self->{expectedcmd} ) { | ||||
| 	#both sequence number and arqaddr must match, because we are using rqaddr to extend the sequence number | ||||
|         #print "Successfully didn't get confused by stale response ".$payload[4]." and ".($self->{seqlun}-4)."\n"; | ||||
|         #hexdump(@payload); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user