Use own filtering code
This commit is contained in:
		
					parent
					
						
							
								a8b00447e9
							
						
					
				
			
			
				commit
				
					
						baa50b91c6
					
				
			
		
					 2 changed files with 16 additions and 4 deletions
				
			
		| 
						 | 
				
			
			@ -5266,6 +5266,15 @@ we get
 | 
			
		|||
 | 
			
		||||
sum 0x48ad (incorrect -> 0x85eb)
 | 
			
		||||
 | 
			
		||||
Still using scapy + adjusted diff:
 | 
			
		||||
 | 
			
		||||
    /* here is also a possible overflow in both directions */
 | 
			
		||||
    hdr.tcp.checksum = hdr.tcp.checksum + meta.v6sum - meta.v4sum;
 | 
			
		||||
 | 
			
		||||
gets
 | 
			
		||||
 | 
			
		||||
sum 0xc5f2 (incorrect -> 0xe7cf)
 | 
			
		||||
 | 
			
		||||
** The NetPFGA saga
 | 
			
		||||
Problems encountered:
 | 
			
		||||
- The logfile for a compile run is 10k+ lines
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -15,9 +15,10 @@ action v4sum() {
 | 
			
		|||
 | 
			
		||||
    /* filtering code copied from scapy */
 | 
			
		||||
    tmp = (tmp >> 16) + (tmp & 0xffff);
 | 
			
		||||
    tmp = tmp + (tmp >> 16);
 | 
			
		||||
    tmp = (tmp >> 16) + (tmp & 0xffff);
 | 
			
		||||
    tmp = ~tmp;
 | 
			
		||||
    meta.v4sum = (bit<16>) ((((tmp>>8) & 0xff)|tmp<<8) & 0xffff);
 | 
			
		||||
//    meta.v4sum = (bit<16>) ((((tmp>>8) & 0xff)|tmp<<8) & 0xffff);
 | 
			
		||||
    meta.v4sum = (bit<16>) tmp;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -48,9 +49,11 @@ action v6sum() {
 | 
			
		|||
 | 
			
		||||
    /* filtering code copied from scapy */
 | 
			
		||||
    tmp = (tmp >> 16) + (tmp & 0xffff);
 | 
			
		||||
    tmp = tmp + (tmp >> 16);
 | 
			
		||||
    tmp = (tmp >> 16) + (tmp & 0xffff);
 | 
			
		||||
//    tmp = tmp + (tmp >> 16);
 | 
			
		||||
    tmp = ~tmp;
 | 
			
		||||
    meta.v6sum = (bit<16>) ((((tmp>>8) & 0xff)|tmp<<8) & 0xffff) ;
 | 
			
		||||
//    meta.v6sum = (bit<16>) ((((tmp>>8) & 0xff)|tmp<<8) & 0xffff) ;
 | 
			
		||||
    meta.v6sum = (bit<16>) tmp;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue